@milaboratories/graph-maker 1.1.150 → 1.1.152

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 (98) hide show
  1. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.d.ts.map +1 -1
  2. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js +2 -1
  3. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js.map +1 -1
  4. package/dist/GraphMaker/components/Chart.vue.js +3 -3
  5. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  6. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts +3 -12
  7. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
  8. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js +42 -85
  9. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
  10. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts +1 -9
  11. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
  12. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js +44 -89
  13. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
  14. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts +1 -3
  15. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts.map +1 -1
  16. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js +68 -86
  17. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js.map +1 -1
  18. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts +7 -11
  19. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
  20. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js +48 -91
  21. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
  22. package/dist/GraphMaker/components/DragAndDrop/types.d.ts +1 -21
  23. package/dist/GraphMaker/components/DragAndDrop/types.d.ts.map +1 -1
  24. package/dist/GraphMaker/components/PlColorSliderThumb.vue.js +18 -18
  25. package/dist/GraphMaker/components/PlColorSliderThumb.vue.js.map +1 -1
  26. package/dist/GraphMaker/constantsCommon.d.ts +0 -1
  27. package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
  28. package/dist/GraphMaker/constantsCommon.js +95 -95
  29. package/dist/GraphMaker/constantsCommon.js.map +1 -1
  30. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.d.ts.map +1 -1
  31. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js +128 -166
  32. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
  33. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.d.ts.map +1 -1
  34. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js +93 -131
  35. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js.map +1 -1
  36. package/dist/GraphMaker/forms/DataMappingForm/utils.d.ts +1 -1
  37. package/dist/GraphMaker/forms/DataMappingForm/utils.d.ts.map +1 -1
  38. package/dist/GraphMaker/forms/DataMappingForm/utils.js +79 -155
  39. package/dist/GraphMaker/forms/DataMappingForm/utils.js.map +1 -1
  40. package/dist/GraphMaker/forms/index.js +2 -2
  41. package/dist/GraphMaker/forms/index.js.map +1 -1
  42. package/dist/GraphMaker/icons/StackedAreaIcon.vue.d.ts +3 -0
  43. package/dist/GraphMaker/icons/StackedAreaIcon.vue.d.ts.map +1 -0
  44. package/dist/GraphMaker/icons/StackedAreaIcon.vue.js +19 -0
  45. package/dist/GraphMaker/icons/StackedAreaIcon.vue.js.map +1 -0
  46. package/dist/GraphMaker/index.vue.js +1 -1
  47. package/dist/GraphMaker/store.d.ts.map +1 -1
  48. package/dist/GraphMaker/store.js +43 -45
  49. package/dist/GraphMaker/store.js.map +1 -1
  50. package/dist/GraphMaker/types.d.ts +1 -1
  51. package/dist/GraphMaker/types.d.ts.map +1 -1
  52. package/dist/GraphMaker/utils/addFixedOptionsToState.js +2 -2
  53. package/dist/GraphMaker/utils/addFixedOptionsToState.js.map +1 -1
  54. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js +25 -25
  55. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  56. package/dist/GraphMaker/utils/loadDefaultSources.d.ts +2 -3
  57. package/dist/GraphMaker/utils/loadDefaultSources.d.ts.map +1 -1
  58. package/dist/GraphMaker/utils/loadDefaultSources.js +47 -51
  59. package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
  60. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  61. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +39 -41
  62. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
  63. package/dist/lib.js +1 -1
  64. package/dist/node_modules/@milaboratories/helpers/dist/objects.js +33 -0
  65. package/dist/node_modules/@milaboratories/helpers/dist/objects.js.map +1 -0
  66. package/dist/node_modules/@milaboratories/helpers/dist/utils.js +12 -0
  67. package/dist/node_modules/@milaboratories/helpers/dist/utils.js.map +1 -0
  68. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +6 -5
  69. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +146 -149
  71. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -1
  72. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +168 -221
  73. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +95 -102
  75. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +145 -156
  77. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js.map +1 -1
  78. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +68 -75
  79. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js.map +1 -1
  80. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +154 -159
  81. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -1
  82. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +48 -55
  83. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js.map +1 -1
  84. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +114 -122
  85. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -1
  86. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +111 -119
  87. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
  88. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +4 -4
  89. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +70 -69
  90. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -1
  91. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js +2 -2
  92. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js.map +1 -1
  93. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +184 -183
  94. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -1
  95. package/dist/node_modules/@vueuse/shared/index.js.map +1 -1
  96. package/package.json +4 -4
  97. package/dist/node_modules/@milaboratories/helpers/dist/index.js +0 -372
  98. package/dist/node_modules/@milaboratories/helpers/dist/index.js.map +0 -1
@@ -1,12 +1,12 @@
1
- import j from "../../_virtual/canonicalize.js";
2
- import M from "../../_virtual/lodash.js";
3
- import { FORMAT as T } from "../../constants.js";
4
- import { ControllerBase as V } from "../ControllerBase.js";
5
- import { ComponentController as p } from "../ComponentController.js";
6
- import { columnOrAxisIdFromString as u, AxisId as N, isColumnId as b } from "../../spec.js";
7
- import { checkSourceBySpecForFilters as k, createLinkerMap as X, getFiltersFromStates as Y, getAxesSpecsFromSources as H, getLinkerColumnsForSource as $, getColumnOrAxisValueLabelsId as D, createHighlightColumn as J, getColumnOrAxisLabel as I, getColumnOrAxisSpec as z } from "../../utils.js";
8
- var Q = Object.defineProperty, R = (h, t, e) => t in h ? Q(h, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : h[t] = e, U = (h, t, e) => R(h, t + "", e);
9
- const oe = {
1
+ import M from "../../_virtual/canonicalize.js";
2
+ import q from "../../_virtual/lodash.js";
3
+ import { FORMAT as F } from "../../constants.js";
4
+ import { ControllerBase as W } from "../ControllerBase.js";
5
+ import { ComponentController as c } from "../ComponentController.js";
6
+ import { AxisId as T, columnOrAxisIdFromString as S, isColumnId as x } from "../../spec.js";
7
+ import { createLinkerMap as Y, createMultipliesByMap as j, getFiltersFromStates as H, getAxesSpecsFromSources as X, getLinkerColumnsForSource as N, getColumnOrAxisValueLabelsId as v, createHighlightColumn as J, getColumnOrAxisLabel as b, getColumnOrAxisSpec as k } from "../../utils.js";
8
+ var R = Object.defineProperty, V = (w, t, e) => t in w ? R(w, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : w[t] = e, E = (w, t, e) => V(w, typeof t != "symbol" ? t + "" : t, e);
9
+ const ee = {
10
10
  type: "scatterplot",
11
11
  components: {
12
12
  x: { type: "simple", selectorStates: [] },
@@ -23,11 +23,11 @@ const oe = {
23
23
  },
24
24
  dividedAxes: {}
25
25
  };
26
- class ne extends V {
26
+ class te extends W {
27
27
  constructor() {
28
28
  super(
29
29
  {
30
- x: new p({
30
+ x: new c({
31
31
  componentName: "x",
32
32
  allowedTypes: ["Int", "Long", "Double", "Float", "String"],
33
33
  parentComponents: ["y"],
@@ -39,7 +39,7 @@ class ne extends V {
39
39
  columnsAllowed: !0
40
40
  }
41
41
  }),
42
- y: new p({
42
+ y: new c({
43
43
  componentName: "y",
44
44
  allowedTypes: ["Int", "Long", "Double", "Float", "String"],
45
45
  parentComponents: ["x"],
@@ -51,7 +51,7 @@ class ne extends V {
51
51
  columnsAllowed: !0
52
52
  }
53
53
  }),
54
- facetBy: new p({
54
+ facetBy: new c({
55
55
  componentName: "facetBy",
56
56
  allowedTypes: ["String", "Int", "Long"],
57
57
  strictlyDependsOnParents: !0,
@@ -63,7 +63,7 @@ class ne extends V {
63
63
  multipleSelectors: !0
64
64
  }
65
65
  }),
66
- grouping: new p({
66
+ grouping: new c({
67
67
  componentName: "grouping",
68
68
  allowedTypes: ["String", "Int", "Long", "Double", "Float"],
69
69
  strictlyDependsOnParents: !0,
@@ -74,7 +74,7 @@ class ne extends V {
74
74
  multipleSelectors: !0
75
75
  }
76
76
  }),
77
- shape: new p({
77
+ shape: new c({
78
78
  componentName: "shape",
79
79
  allowedTypes: ["String", "Int", "Long"],
80
80
  strictlyDependsOnParents: !0,
@@ -84,7 +84,7 @@ class ne extends V {
84
84
  axesAllowed: !0
85
85
  }
86
86
  }),
87
- size: new p({
87
+ size: new c({
88
88
  componentName: "size",
89
89
  allowedTypes: ["Int", "Long", "Double", "Float"],
90
90
  strictlyDependsOnParents: !0,
@@ -94,7 +94,7 @@ class ne extends V {
94
94
  axesAllowed: !0
95
95
  }
96
96
  }),
97
- tooltipContent: new p({
97
+ tooltipContent: new c({
98
98
  componentName: "tooltipContent",
99
99
  allowedTypes: ["String", "Int", "Long", "Float", "Double"],
100
100
  strictlyDependsOnParents: !0,
@@ -106,7 +106,7 @@ class ne extends V {
106
106
  multipleSelectors: !0
107
107
  }
108
108
  }),
109
- label: new p({
109
+ label: new c({
110
110
  componentName: "label",
111
111
  allowedTypes: ["String", "Int", "Long"],
112
112
  strictlyDependsOnParents: !0,
@@ -120,7 +120,7 @@ class ne extends V {
120
120
  })
121
121
  },
122
122
  {
123
- filters: new p({
123
+ filters: new c({
124
124
  componentName: "filters",
125
125
  allowedTypes: ["String", "Int", "Long", "Double", "Float"],
126
126
  strictlyDependsOnParents: !0,
@@ -131,10 +131,9 @@ class ne extends V {
131
131
  columnsAllowed: !0,
132
132
  dimensionConsumer: !0,
133
133
  multipleSelectors: !0
134
- },
135
- checkSourceBySpec: k
134
+ }
136
135
  }),
137
- tabBy: new p({
136
+ tabBy: new c({
138
137
  componentName: "tabBy",
139
138
  allowedTypes: ["String", "Int"],
140
139
  strictlyDependsOnParents: !0,
@@ -145,7 +144,7 @@ class ne extends V {
145
144
  dimensionConsumer: !0
146
145
  }
147
146
  }),
148
- highlight: new p({
147
+ highlight: new c({
149
148
  componentName: "highlight",
150
149
  allowedTypes: ["String", "Int", "Long", "Double", "Float"],
151
150
  strictlyDependsOnParents: !0,
@@ -155,48 +154,45 @@ class ne extends V {
155
154
  axesAllowed: !0,
156
155
  columnsAllowed: !0,
157
156
  multipleSelectors: !0
158
- },
159
- checkSourceBySpec: k
157
+ }
160
158
  })
161
159
  }
162
- ), U(this, "dataInputs", ["x", "y"]);
160
+ ), E(this, "dataInputs", ["x", "y"]), E(this, "allowHangingAxes", !0);
163
161
  }
164
- async getMustBeConsumedAxes(t, e) {
165
- if (!e.components.x.selectorStates.length || !e.components.y.selectorStates.length)
162
+ getMustBeConsumedAxes(t, e) {
163
+ if (!t.components.x.selectorStates.length || !t.components.y.selectorStates.length)
166
164
  return /* @__PURE__ */ new Set();
167
- const S = e.components.x.selectorStates[0].selectedSource, g = e.components.y.selectorStates[0].selectedSource, m = await t.pFrameProvider.getColumnSpecById(u(S)), d = await t.pFrameProvider.getColumnSpecById(u(g));
168
- if (!m || !d)
165
+ const g = t.components.x.selectorStates[0].selectedSource, y = t.components.y.selectorStates[0].selectedSource, p = e.get(g), u = e.get(y);
166
+ if (!p || !u || p.kind !== "column" || u.kind !== "column")
169
167
  return /* @__PURE__ */ new Set();
170
- const r = m.axesSpec.map((n) => N.fromAxisSpec(n).toCanonicalString()), i = d.axesSpec.map((n) => N.fromAxisSpec(n).toCanonicalString()), c = r.filter((n) => !i.some((w) => w === n)), y = i.filter((n) => !r.some((w) => w === n));
171
- return /* @__PURE__ */ new Set([...c, ...y]);
168
+ const r = p.spec.axesSpec.map((s) => T.fromAxisSpec(s).toCanonicalString()), i = u.spec.axesSpec.map((s) => T.fromAxisSpec(s).toCanonicalString()), a = r.filter((s) => !i.some((d) => d === s)), m = i.filter((s) => !r.some((d) => d === s));
169
+ return a.length && m.length ? /* @__PURE__ */ new Set([...a, ...m]) : /* @__PURE__ */ new Set();
172
170
  }
173
171
  async createDataByColumns(t, e) {
174
- var S, g;
175
- const m = (S = e.components.x.selectorStates[0]) == null ? void 0 : S.selectedSource, d = (g = e.components.y.selectorStates[0]) == null ? void 0 : g.selectedSource;
176
- if (!m || !d)
172
+ var g, y;
173
+ const p = (g = e.components.x.selectorStates[0]) == null ? void 0 : g.selectedSource, u = (y = e.components.y.selectorStates[0]) == null ? void 0 : y.selectedSource;
174
+ if (!p || !u)
177
175
  throw Error("X or Y column is not valid");
178
- const r = u(m), i = u(d), c = {
176
+ const r = S(p), i = S(u), a = {
179
177
  type: "columns",
180
- id: j(e.components) ?? "",
178
+ id: M(e.components) ?? "",
181
179
  values: {}
182
- }, y = await X(t), n = [
180
+ }, m = await Y(t), s = await j(t), d = [
183
181
  ...e.components.filters.selectorStates,
184
182
  ...e.components.tabBy.selectorStates
185
- ], w = Y(n), P = n.map((s) => u(s.selectedSource)).filter(b), A = [r, i].filter(b).map((s) => s.toCanonicalString());
186
- if (A.length === 0)
183
+ ], I = H(d), A = d.map((o) => S(o.selectedSource)).filter(x), C = [r, i].filter(x).map((o) => o.toCanonicalString());
184
+ if (C.length === 0)
187
185
  throw Error("One of X and Y should be a column");
188
- const L = await H(t, A), F = [r, i, ...P], f = [], B = [[], []], O = [], v = [];
189
- for (const { selectedSource: s, fixedAxes: a } of n)
190
- v.push(...await $(
186
+ const O = await X(t, C), P = [r, i, ...A], h = [], f = [];
187
+ for (const { selectedSource: o } of d)
188
+ f.push(...await N(
191
189
  t,
192
- y,
193
- L,
190
+ m,
194
191
  s,
195
- a
196
- )), B.push(
197
- (a ?? []).map(({ axisIdx: C, axisValue: x }) => ({ idx: C, value: x }))
198
- );
199
- const o = [
192
+ O,
193
+ o
194
+ ));
195
+ const D = [
200
196
  e.components.grouping,
201
197
  e.components.size,
202
198
  e.components.shape,
@@ -205,119 +201,115 @@ class ne extends V {
205
201
  e.components.label,
206
202
  e.components.highlight
207
203
  ];
208
- for (const s of o)
209
- for (const { selectedSource: a, fixedAxes: C } of s.selectorStates) {
210
- f.push(u(a)), O.push(
211
- (C ?? []).map(({ axisIdx: E, axisValue: q }) => ({ idx: E, value: q }))
212
- ), v.push(...await $(
204
+ for (const o of D)
205
+ for (const { selectedSource: l } of o.selectorStates) {
206
+ h.push(S(l)), f.push(...await N(
213
207
  t,
214
- y,
215
- L,
216
- a,
217
- C
208
+ m,
209
+ s,
210
+ O,
211
+ l
218
212
  ));
219
- const x = await D(t, a, A);
220
- x && f.push(x);
213
+ const L = await v(t, l, C);
214
+ L && h.push(L);
221
215
  }
222
- const l = await t.pFrameProvider.getTableOuterJoin(
223
- [r, i, ...v, ...P],
224
- f,
225
- w,
226
- !1,
227
- B,
228
- O
216
+ const n = await t.pFrameProvider.getTableOuterJoin(
217
+ [r, i, ...f, ...A],
218
+ h,
219
+ I,
220
+ !1
229
221
  );
230
- return [...F, ...f].forEach((s) => {
231
- const a = s.toCanonicalString();
232
- c.values[a] = b(s) ? l.columnsData[a] : l.axesData[a];
233
- }), c.values.key = new Array(c.values[Object.keys(c.values)[0]].length).fill(0).map((s, a) => a), e.components.highlight.selectorStates.length && (c.values.highlight = J(e.components.highlight.selectorStates, l)), { byColumns: c };
222
+ return [...P, ...h].forEach((o) => {
223
+ const l = o.toCanonicalString();
224
+ a.values[l] = x(o) ? n.columnsData[l] : n.axesData[l];
225
+ }), a.values.key = new Array(a.values[Object.keys(a.values)[0]].length).fill(0).map((o, l) => l), e.components.highlight.selectorStates.length && (a.values.highlight = J(e.components.highlight.selectorStates, n)), { byColumns: a };
234
226
  }
235
227
  async createChartSettings(t, e) {
236
- var S, g, m, d;
237
- const r = (S = e.components.x.selectorStates[0]) == null ? void 0 : S.selectedSource, i = (g = e.components.y.selectorStates[0]) == null ? void 0 : g.selectedSource, c = r ? u(r) : null, y = i ? u(i) : null;
238
- if (!r || !i || !c || !y || !b(c) && !b(y))
228
+ var g, y, p, u;
229
+ const r = (g = e.components.x.selectorStates[0]) == null ? void 0 : g.selectedSource, i = (y = e.components.y.selectorStates[0]) == null ? void 0 : y.selectedSource, a = r ? S(r) : null, m = i ? S(i) : null;
230
+ if (!r || !i || !a || !m || !x(a) && !x(m))
239
231
  throw Error("Empty or invalid required data");
240
- const n = [c, y].filter(b).map((o) => o.toCanonicalString()), w = {
232
+ const s = [a, m].filter(x).map((n) => n.toCanonicalString()), d = {
241
233
  type: "column",
242
234
  value: r,
243
- label: await I(t, r, n)
244
- }, P = {
235
+ label: await b(t, r, s)
236
+ }, I = {
245
237
  type: "column",
246
238
  value: i,
247
- label: await I(t, i, n)
239
+ label: await b(t, i, s)
248
240
  }, A = {
249
241
  type: "column",
250
242
  value: "key"
251
- }, L = await Promise.all(
252
- e.components.facetBy.selectorStates.map(async (o) => {
253
- var l;
243
+ }, C = await Promise.all(
244
+ e.components.facetBy.selectorStates.map(async (n) => {
245
+ var o;
254
246
  return {
255
247
  type: "column",
256
- value: ((l = await D(t, o.selectedSource, n)) == null ? void 0 : l.toCanonicalString()) ?? o.selectedSource
248
+ value: ((o = await v(t, n.selectedSource, s)) == null ? void 0 : o.toCanonicalString()) ?? n.selectedSource
257
249
  };
258
250
  })
259
- ), F = M.uniq([
260
- ...e.components.grouping.selectorStates.map((o) => o.selectedSource),
261
- ...e.components.size.selectorStates.map((o) => o.selectedSource),
262
- ...e.components.shape.selectorStates.map((o) => o.selectedSource)
263
- ]), f = await Promise.all(
264
- F.map(async (o) => {
265
- var l;
251
+ ), O = q.uniq([
252
+ ...e.components.grouping.selectorStates.map((n) => n.selectedSource),
253
+ ...e.components.size.selectorStates.map((n) => n.selectedSource),
254
+ ...e.components.shape.selectorStates.map((n) => n.selectedSource)
255
+ ]), P = await Promise.all(
256
+ O.map(async (n) => {
257
+ var o;
266
258
  return {
267
259
  columnName: {
268
260
  type: "column",
269
- label: await I(t, o, n) || o,
270
- value: o,
271
- valueLabels: ((l = await D(t, o, n)) == null ? void 0 : l.toCanonicalString()) ?? o
261
+ label: await b(t, n, s) || n,
262
+ value: n,
263
+ valueLabels: ((o = await v(t, n, s)) == null ? void 0 : o.toCanonicalString()) ?? n
272
264
  }
273
265
  };
274
266
  })
275
- ), B = await Promise.all(
276
- e.components.tooltipContent.selectorStates.map(async (o) => {
277
- var l;
278
- const s = o.selectedSource, a = u(s), C = await D(t, s, n) ?? a, x = await z(t, s, n);
267
+ ), h = await Promise.all(
268
+ e.components.tooltipContent.selectorStates.map(async (n) => {
269
+ var o;
270
+ const l = n.selectedSource, L = S(l), z = await v(t, l, s) ?? L, B = await k(t, l, s);
279
271
  return {
280
272
  type: "column",
281
- label: await I(t, s, n) || s,
282
- value: s,
283
- valueLabels: C.toCanonicalString(),
284
- format: (l = x == null ? void 0 : x.annotations) == null ? void 0 : l[T]
273
+ label: await b(t, l, s) || l,
274
+ value: l,
275
+ valueLabels: z.toCanonicalString(),
276
+ format: (o = B == null ? void 0 : B.annotations) == null ? void 0 : o[F]
285
277
  };
286
278
  })
287
279
  );
288
- let O;
280
+ let f;
289
281
  if (e.components.label.selectorStates.length) {
290
- const o = e.components.label.selectorStates[0].selectedSource, l = await z(t, o, n);
291
- O = {
282
+ const n = e.components.label.selectorStates[0].selectedSource, o = await k(t, n, s);
283
+ f = {
292
284
  type: "column",
293
- value: o,
294
- label: await I(t, o, n),
295
- valueLabels: ((m = await D(t, o, n)) == null ? void 0 : m.toCanonicalString()) ?? o,
296
- format: (d = l == null ? void 0 : l.annotations) == null ? void 0 : d[T]
285
+ value: n,
286
+ label: await b(t, n, s),
287
+ valueLabels: ((p = await v(t, n, s)) == null ? void 0 : p.toCanonicalString()) ?? n,
288
+ format: (u = o == null ? void 0 : o.annotations) == null ? void 0 : u[F]
297
289
  };
298
290
  }
299
- let v;
300
- return e.components.highlight.selectorStates.length && (v = {
291
+ let D;
292
+ return e.components.highlight.selectorStates.length && (D = {
301
293
  type: "column",
302
294
  value: "highlight"
303
295
  }), {
304
296
  type: "scatterplot",
305
- x: w,
306
- y: P,
297
+ x: d,
298
+ y: I,
307
299
  keyColumn: A,
308
- facetBy: L,
309
- grouping: f,
310
- label: O,
311
- highlight: v,
300
+ facetBy: C,
301
+ grouping: P,
302
+ label: f,
303
+ highlight: D,
312
304
  tooltips: {
313
305
  show: !0,
314
- content: B
306
+ content: h
315
307
  }
316
308
  };
317
309
  }
318
310
  }
319
311
  export {
320
- oe as InitialScatterplotState,
321
- ne as ScatterplotStateController
312
+ ee as InitialScatterplotState,
313
+ te as ScatterplotStateController
322
314
  };
323
315
  //# sourceMappingURL=scatterplot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scatterplot.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/scatterplot.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport lodash from 'lodash';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputStateParent,\n} from '../../common';\nimport {FORMAT} from '../../constants';\nimport {PValue} from '../../store';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {AxisId, ColumnId} from '../../spec';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n checkSourceBySpecForFilters,\n createHighlightColumn,\n createLinkerMap,\n getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates,\n getLinkerColumnsForSource,\n} from '../../utils';\n\nexport interface ScatterplotUIState extends InputStateParent<'scatterplot'> {\n type: 'scatterplot';\n components: {\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n filters: ComponentStateFilter;\n highlight: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n grouping: ComponentStateSimple;\n shape: ComponentStateSimple;\n size: ComponentStateSimple;\n label: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n };\n}\n\nexport const InitialScatterplotState: ScatterplotUIState = {\n type: 'scatterplot',\n components: {\n x: {type: 'simple', selectorStates: []},\n y: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n highlight: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n grouping: {type: 'simple', selectorStates: []},\n shape: {type: 'simple', selectorStates: []},\n size: {type: 'simple', selectorStates: []},\n label: {type: 'simple', selectorStates: []},\n tooltipContent: {type: 'simple', selectorStates: []}\n },\n dividedAxes: {},\n};\n\nexport class ScatterplotStateController extends ControllerBase<ScatterplotUIState> {\n dataInputs = ['x', 'y'];\n\n constructor() {\n super(\n {\n x: new ComponentController<ScatterplotUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'Long', 'Double' , 'Float', 'String'],\n parentComponents: ['y'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n y: new ComponentController<ScatterplotUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n parentComponents: ['x'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n facetBy: new ComponentController<ScatterplotUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n grouping: new ComponentController<ScatterplotUIState, 'grouping'>({\n componentName: 'grouping',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n shape: new ComponentController<ScatterplotUIState, 'shape'>({\n componentName: 'shape',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n },\n }),\n size: new ComponentController<ScatterplotUIState, 'size'>({\n componentName: 'size',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n },\n }),\n tooltipContent: new ComponentController<ScatterplotUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n label: new ComponentController<ScatterplotUIState, 'label'>({\n componentName: 'label',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: false,\n },\n }),\n },\n {\n filters: new ComponentController<ScatterplotUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n checkSourceBySpec: checkSourceBySpecForFilters\n }),\n tabBy: new ComponentController<ScatterplotUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n highlight: new ComponentController<ScatterplotUIState, 'highlight'>({\n componentName: 'highlight',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: true,\n },\n checkSourceBySpec: checkSourceBySpecForFilters\n }),\n }\n );\n }\n\n async getMustBeConsumedAxes(store: DataStore, state: ScatterplotUIState):Promise<Set<string>> {\n if (!state.components.x.selectorStates.length || !state.components.y.selectorStates.length) {\n return new Set<string>();\n }\n const sourceIdX = state.components.x.selectorStates[0].selectedSource;\n const sourceIdY = state.components.y.selectorStates[0].selectedSource;\n const specX = await store.pFrameProvider.getColumnSpecById(columnOrAxisIdFromString(sourceIdX));\n const specY = await store.pFrameProvider.getColumnSpecById(columnOrAxisIdFromString(sourceIdY));\n if (!specX || !specY) {\n return new Set<string>();\n }\n const axesX = specX.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const axesY = specY.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const hangingX = axesX.filter(axisKey => !axesY.some(id => id === axisKey));\n const hangingY = axesY.filter(axisKey => !axesX.some(id => id === axisKey));\n\n return new Set<string>([...hangingX, ...hangingY])\n }\n\n async createDataByColumns(store: DataStore, state: ScatterplotUIState): Promise<PlotDataAndSettings['data']> {\n const xColumnIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yColumnIdString = state.components.y.selectorStates[0]?.selectedSource;\n if (!xColumnIdString || !yColumnIdString) {\n throw Error('X or Y column is not valid');\n }\n const xId = columnOrAxisIdFromString(xColumnIdString);\n const yId = columnOrAxisIdFromString(yColumnIdString);\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(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 parentSources = [xId, yId].filter(isColumnId).map(item => item.toCanonicalString());\n\n if (parentSources.length === 0) {\n throw Error('One of X and Y should be a column');\n }\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n\n const primarySources = [xId, yId, ...filterColumns];\n const secondarySources: (ColumnId | AxisId)[] = [];\n const primarySourcesFixedAxes:{idx: number, value: PValue}[][] = [[], []];\n const secondarySourcesFixedAxes:{idx: number, value: PValue}[][] = [];\n const linkerColumns:ColumnId[] = [];\n\n for (const {selectedSource, fixedAxes} of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n parentAxesList,\n selectedSource,\n fixedAxes\n ));\n primarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n }\n\n const inputs = [\n state.components.grouping,\n state.components.size,\n state.components.shape,\n state.components.tooltipContent,\n state.components.facetBy,\n state.components.label,\n state.components.highlight,\n ];\n for (const input of inputs) {\n for (const {selectedSource, fixedAxes} of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n secondarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n parentAxesList,\n selectedSource,\n fixedAxes\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 [xId, yId, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n false,\n primarySourcesFixedAxes,\n secondarySourcesFixedAxes\n );\n\n [...primarySources, ...secondarySources].forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item) ? data.columnsData[key] : data.axesData[key];\n });\n\n dataByColumns.values['key'] = new Array(dataByColumns.values[Object.keys(dataByColumns.values)[0]].length).fill(0).map((_v, idx) => idx);\n\n if (state.components.highlight.selectorStates.length) {\n dataByColumns.values['highlight'] = createHighlightColumn(state.components.highlight.selectorStates, data) as PValue[];\n }\n\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: ScatterplotUIState): Promise<Record<string, unknown>> {\n const xIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yIdString = state.components.y.selectorStates[0]?.selectedSource;\n const xIdWithQ = xIdString ? columnOrAxisIdFromString(xIdString) : null;\n const yIdWithQ = yIdString ? columnOrAxisIdFromString(yIdString) : null;\n if (!xIdString || !yIdString || !xIdWithQ || !yIdWithQ || (!isColumnId(xIdWithQ) && !isColumnId(yIdWithQ))) {\n throw Error('Empty or invalid required data');\n }\n\n const parentSources = [xIdWithQ, yIdWithQ].filter(isColumnId).map(item => item.toCanonicalString());\n const x = {\n type: 'column',\n value: xIdString,\n label: await getColumnOrAxisLabel(store, xIdString, parentSources),\n };\n const y = {\n type: 'column',\n value: yIdString,\n label: await getColumnOrAxisLabel(store, yIdString, parentSources),\n };\n const keyColumn = {\n type: 'column',\n value: 'key',\n };\n const facetBy = await Promise.all(\n 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 allGroupingIds = lodash.uniq([\n ...state.components.grouping.selectorStates.map(s => s.selectedSource),\n ...state.components.size.selectorStates.map(s => s.selectedSource),\n ...state.components.shape.selectorStates.map(s => s.selectedSource),\n ]);\n const grouping = await Promise.all(\n allGroupingIds.map(async idString => {\n return {\n columnName: {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, idString, parentSources)) || idString,\n value: idString,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString,\n }\n };\n })\n );\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const id = columnOrAxisIdFromString(source);\n const labelColumn = (await getColumnOrAxisValueLabelsId(store, source, parentSources)) ?? id;\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: labelColumn.toCanonicalString(),\n format: spec?.annotations?.[FORMAT]\n };\n })\n );\n\n let label;\n if (state.components.label.selectorStates.length) {\n const source = state.components.label.selectorStates[0].selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n label = {\n type: 'column',\n value: source,\n label: await getColumnOrAxisLabel(store, source, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: spec?.annotations?.[FORMAT]\n };\n }\n let highlight;\n if (state.components.highlight.selectorStates.length) {\n highlight = {\n type: 'column',\n value: 'highlight'\n }\n }\n return {\n type: 'scatterplot',\n x,\n y,\n keyColumn,\n facetBy,\n grouping,\n label,\n highlight,\n tooltips: {\n show: true,\n content: tooltipContent\n }\n };\n }\n}\n"],"names":["InitialScatterplotState","ScatterplotStateController","ControllerBase","ComponentController","checkSourceBySpecForFilters","__publicField","store","state","sourceIdX","sourceIdY","specX","columnOrAxisIdFromString","specY","axesX","s","AxisId","axesY","hangingX","axisKey","id","hangingY","xColumnIdString","_a","yColumnIdString","_b","xId","yId","dataByColumns","canonicalize","linkerMap","createLinkerMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","isColumnId","parentSources","item","parentAxesList","getAxesSpecsFromSources","primarySources","secondarySources","primarySourcesFixedAxes","secondarySourcesFixedAxes","linkerColumns","selectedSource","fixedAxes","getLinkerColumnsForSource","axisIdx","axisValue","inputs","input","labelsColumnId","getColumnOrAxisValueLabelsId","data","key","_v","idx","createHighlightColumn","xIdString","yIdString","xIdWithQ","yIdWithQ","x","getColumnOrAxisLabel","y","keyColumn","facetBy","selectorState","allGroupingIds","lodash","grouping","idString","tooltipContent","source","labelColumn","spec","getColumnOrAxisSpec","FORMAT","label","_c","_d","highlight"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"scatterplot.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/scatterplot.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport lodash from 'lodash';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputStateParent,\n} from '../../common';\nimport {FORMAT} from '../../constants';\nimport {PValue} from '../../store';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {AxisId, ColumnId} from '../../spec';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n createHighlightColumn,\n createLinkerMap,\n createMultipliesByMap,\n getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates,\n getLinkerColumnsForSource,\n OptionsInfo,\n} from '../../utils';\n\nexport interface ScatterplotUIState extends InputStateParent<'scatterplot'> {\n type: 'scatterplot';\n components: {\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n filters: ComponentStateFilter;\n highlight: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n grouping: ComponentStateSimple;\n shape: ComponentStateSimple;\n size: ComponentStateSimple;\n label: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n };\n}\n\nexport const InitialScatterplotState: ScatterplotUIState = {\n type: 'scatterplot',\n components: {\n x: {type: 'simple', selectorStates: []},\n y: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n highlight: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n grouping: {type: 'simple', selectorStates: []},\n shape: {type: 'simple', selectorStates: []},\n size: {type: 'simple', selectorStates: []},\n label: {type: 'simple', selectorStates: []},\n tooltipContent: {type: 'simple', selectorStates: []}\n },\n dividedAxes: {},\n};\n\nexport class ScatterplotStateController extends ControllerBase<ScatterplotUIState> {\n dataInputs = ['x', 'y'];\n allowHangingAxes = true;\n\n constructor() {\n super(\n {\n x: new ComponentController<ScatterplotUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'Long', 'Double' , 'Float', 'String'],\n parentComponents: ['y'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n y: new ComponentController<ScatterplotUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n parentComponents: ['x'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n facetBy: new ComponentController<ScatterplotUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n grouping: new ComponentController<ScatterplotUIState, 'grouping'>({\n componentName: 'grouping',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n shape: new ComponentController<ScatterplotUIState, 'shape'>({\n componentName: 'shape',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n },\n }),\n size: new ComponentController<ScatterplotUIState, 'size'>({\n componentName: 'size',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n },\n }),\n tooltipContent: new ComponentController<ScatterplotUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n label: new ComponentController<ScatterplotUIState, 'label'>({\n componentName: 'label',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: false,\n },\n }),\n },\n {\n filters: new ComponentController<ScatterplotUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n tabBy: new ComponentController<ScatterplotUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n highlight: new ComponentController<ScatterplotUIState, 'highlight'>({\n componentName: 'highlight',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: true,\n },\n }),\n }\n );\n }\n\n getMustBeConsumedAxes(state: ScatterplotUIState, optionsInfo: OptionsInfo): Set<string> {\n if (!state.components.x.selectorStates.length || !state.components.y.selectorStates.length) {\n return new Set<string>();\n }\n const sourceIdX = state.components.x.selectorStates[0].selectedSource;\n const sourceIdY = state.components.y.selectorStates[0].selectedSource;\n const dataX = optionsInfo.get(sourceIdX);\n const dataY = optionsInfo.get(sourceIdY);\n if (!dataX || !dataY || dataX.kind !== 'column' || dataY.kind !== 'column') {\n return new Set<string>();\n }\n const axesX = dataX.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const axesY = dataY.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const hangingX = axesX.filter(axisKey => !axesY.some(id => id === axisKey));\n const hangingY = axesY.filter(axisKey => !axesX.some(id => id === axisKey));\n\n if (hangingX.length && hangingY.length) {\n return new Set<string>([...hangingX, ...hangingY])\n }\n return new Set<string>();\n }\n\n async createDataByColumns(store: DataStore, state: ScatterplotUIState): Promise<PlotDataAndSettings['data']> {\n const xColumnIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yColumnIdString = state.components.y.selectorStates[0]?.selectedSource;\n if (!xColumnIdString || !yColumnIdString) {\n throw Error('X or Y column is not valid');\n }\n const xId = columnOrAxisIdFromString(xColumnIdString);\n const yId = columnOrAxisIdFromString(yColumnIdString);\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 parentSources = [xId, yId].filter(isColumnId).map(item => item.toCanonicalString());\n\n if (parentSources.length === 0) {\n throw Error('One of X and Y should be a column');\n }\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n\n const primarySources = [xId, yId, ...filterColumns];\n const secondarySources: (ColumnId | AxisId)[] = [];\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 const inputs = [\n state.components.grouping,\n state.components.size,\n state.components.shape,\n state.components.tooltipContent,\n state.components.facetBy,\n state.components.label,\n state.components.highlight,\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 [xId, yId, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n false\n );\n\n [...primarySources, ...secondarySources].forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item) ? data.columnsData[key] : data.axesData[key];\n });\n\n dataByColumns.values['key'] = new Array(dataByColumns.values[Object.keys(dataByColumns.values)[0]].length).fill(0).map((_v, idx) => idx);\n\n if (state.components.highlight.selectorStates.length) {\n dataByColumns.values['highlight'] = createHighlightColumn(state.components.highlight.selectorStates, data) as PValue[];\n }\n\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: ScatterplotUIState): Promise<Record<string, unknown>> {\n const xIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yIdString = state.components.y.selectorStates[0]?.selectedSource;\n const xIdWithQ = xIdString ? columnOrAxisIdFromString(xIdString) : null;\n const yIdWithQ = yIdString ? columnOrAxisIdFromString(yIdString) : null;\n if (!xIdString || !yIdString || !xIdWithQ || !yIdWithQ || (!isColumnId(xIdWithQ) && !isColumnId(yIdWithQ))) {\n throw Error('Empty or invalid required data');\n }\n\n const parentSources = [xIdWithQ, yIdWithQ].filter(isColumnId).map(item => item.toCanonicalString());\n const x = {\n type: 'column',\n value: xIdString,\n label: await getColumnOrAxisLabel(store, xIdString, parentSources),\n };\n const y = {\n type: 'column',\n value: yIdString,\n label: await getColumnOrAxisLabel(store, yIdString, parentSources),\n };\n const keyColumn = {\n type: 'column',\n value: 'key',\n };\n const facetBy = await Promise.all(\n 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 allGroupingIds = lodash.uniq([\n ...state.components.grouping.selectorStates.map(s => s.selectedSource),\n ...state.components.size.selectorStates.map(s => s.selectedSource),\n ...state.components.shape.selectorStates.map(s => s.selectedSource),\n ]);\n const grouping = await Promise.all(\n allGroupingIds.map(async idString => {\n return {\n columnName: {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, idString, parentSources)) || idString,\n value: idString,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString,\n }\n };\n })\n );\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const id = columnOrAxisIdFromString(source);\n const labelColumn = (await getColumnOrAxisValueLabelsId(store, source, parentSources)) ?? id;\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: labelColumn.toCanonicalString(),\n format: spec?.annotations?.[FORMAT]\n };\n })\n );\n\n let label;\n if (state.components.label.selectorStates.length) {\n const source = state.components.label.selectorStates[0].selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n label = {\n type: 'column',\n value: source,\n label: await getColumnOrAxisLabel(store, source, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: spec?.annotations?.[FORMAT]\n };\n }\n let highlight;\n if (state.components.highlight.selectorStates.length) {\n highlight = {\n type: 'column',\n value: 'highlight'\n }\n }\n return {\n type: 'scatterplot',\n x,\n y,\n keyColumn,\n facetBy,\n grouping,\n label,\n highlight,\n tooltips: {\n show: true,\n content: tooltipContent\n }\n };\n }\n}\n"],"names":["InitialScatterplotState","ScatterplotStateController","ControllerBase","ComponentController","__publicField","state","optionsInfo","sourceIdX","sourceIdY","dataX","dataY","axesX","s","AxisId","axesY","hangingX","axisKey","id","hangingY","store","xColumnIdString","_a","yColumnIdString","_b","xId","columnOrAxisIdFromString","yId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","isColumnId","parentSources","item","parentAxesList","getAxesSpecsFromSources","primarySources","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","inputs","input","labelsColumnId","getColumnOrAxisValueLabelsId","data","key","_v","idx","createHighlightColumn","xIdString","yIdString","xIdWithQ","yIdWithQ","x","getColumnOrAxisLabel","y","keyColumn","facetBy","selectorState","allGroupingIds","lodash","grouping","idString","tooltipContent","source","labelColumn","spec","getColumnOrAxisSpec","FORMAT","label","_c","_d","highlight"],"mappings":"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","x_google_ignoreList":[0]}
@@ -31,10 +31,10 @@ const e = {
31
31
  bubble: r
32
32
  }
33
33
  };
34
- function j(t) {
34
+ function T(t) {
35
35
  return e.controllers[t];
36
36
  }
37
- function q(t) {
37
+ function x(t) {
38
38
  return e.initialStates[t];
39
39
  }
40
40
  export {
@@ -43,7 +43,7 @@ export {
43
43
  i as DiscreteStateController,
44
44
  s as HeatmapStateController,
45
45
  c as ScatterplotStateController,
46
- j as getControllerByType,
47
- q as getInitialStateByType
46
+ T as getControllerByType,
47
+ x as getInitialStateByType
48
48
  };
49
49
  //# sourceMappingURL=index.js.map