@milaboratories/graph-maker 1.1.139 → 1.1.141

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 (152) hide show
  1. package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
  2. package/dist/GraphMaker/components/Chart.vue.js +1 -0
  3. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  4. package/dist/GraphMaker/dataBindAes.d.ts +5 -5
  5. package/dist/GraphMaker/dataBindAes.d.ts.map +1 -1
  6. package/dist/GraphMaker/dataBindAes.js +52 -49
  7. package/dist/GraphMaker/dataBindAes.js.map +1 -1
  8. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js +14 -14
  9. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js.map +1 -1
  10. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  11. package/dist/GraphMaker/index.vue.js +115 -113
  12. package/dist/GraphMaker/index.vue.js.map +1 -1
  13. package/dist/GraphMaker/store.js +9 -9
  14. package/dist/GraphMaker/types.d.ts +1 -1
  15. package/dist/GraphMaker/types.d.ts.map +1 -1
  16. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +3 -3
  17. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts +4 -8
  18. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts.map +1 -1
  19. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  20. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +2 -2
  21. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +5 -5
  22. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  23. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +7 -7
  24. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +9 -9
  25. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  26. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +20 -16
  27. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  28. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +65 -69
  29. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  30. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +20 -16
  31. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  32. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +20 -19
  33. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  34. package/dist/GraphMaker/utils/loadDefaultSources.js +4 -3
  35. package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
  36. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  37. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +57 -54
  38. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
  39. package/dist/_virtual/_commonjsHelpers.js +3 -5
  40. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  41. package/dist/lib.js +1 -1
  42. package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js +5 -5
  43. package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js.map +1 -1
  44. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +8 -5
  45. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js.map +1 -1
  46. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +22 -22
  47. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  48. package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js +4 -22
  49. package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js.map +1 -1
  50. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +53 -53
  51. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
  52. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +6 -6
  53. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +45 -45
  54. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  55. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +71 -70
  56. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  57. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +117 -112
  58. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  59. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +14 -14
  60. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +6 -6
  61. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  62. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +36 -36
  63. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
  64. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +24 -24
  65. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  66. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +23 -26
  67. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
  68. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +13 -10
  69. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +67 -73
  71. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
  72. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +44 -39
  73. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js +18 -0
  75. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js.map +1 -0
  76. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +14 -14
  77. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  78. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +68 -64
  79. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
  80. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +23 -17
  81. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
  82. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +23 -17
  83. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
  84. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js +7 -0
  85. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js.map +1 -0
  86. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js +9 -0
  87. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js.map +1 -0
  88. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js +8 -0
  89. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js.map +1 -0
  90. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash.js +8 -0
  91. package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/lodash.js.map +1 -1
  92. package/dist/{_virtual/lodash.js → node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js} +1 -1
  93. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js.map +1 -0
  94. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify.js +3 -0
  95. package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/stringify.js.map +1 -1
  96. package/dist/{_virtual/stringify.js → node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js} +1 -1
  97. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js.map +1 -0
  98. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +15 -0
  99. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -0
  100. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +198 -0
  101. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -0
  102. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +342 -0
  103. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -0
  104. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +278 -0
  105. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -0
  106. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +453 -0
  107. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js.map +1 -0
  108. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +203 -0
  109. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js.map +1 -0
  110. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +432 -0
  111. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -0
  112. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +170 -0
  113. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js.map +1 -0
  114. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +315 -0
  115. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -0
  116. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +323 -0
  117. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -0
  118. package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js +11 -0
  119. package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js.map +1 -0
  120. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +36 -3420
  121. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
  122. package/dist/node_modules/@milaboratories/{pl-error-like → pf-plots/dist/node_modules/@milaboratories/pl-error-like}/dist/index.js +1 -1
  123. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +1 -0
  124. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +979 -0
  125. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +1 -0
  126. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js +1599 -0
  127. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js.map +1 -0
  128. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js +19 -0
  129. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js.map +1 -0
  130. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js +26 -0
  131. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js.map +1 -0
  132. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js +3678 -0
  133. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js.map +1 -0
  134. package/dist/node_modules/{zod → @milaboratories/pf-plots/dist/node_modules/zod}/lib/index.js +1141 -1141
  135. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/zod/lib/index.js.map +1 -0
  136. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +247 -0
  137. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -0
  138. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js +62 -0
  139. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js.map +1 -0
  140. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +286 -0
  141. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -0
  142. package/package.json +3 -3
  143. package/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +0 -1
  144. package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +0 -584
  145. package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +0 -1
  146. package/dist/node_modules/@platforma-sdk/model/dist/index.js +0 -1559
  147. package/dist/node_modules/@platforma-sdk/model/dist/index.js.map +0 -1
  148. package/dist/node_modules/json-stringify-safe/stringify.js +0 -20
  149. package/dist/node_modules/json-stringify-safe/stringify.js.map +0 -1
  150. package/dist/node_modules/lodash/lodash.js +0 -3678
  151. package/dist/node_modules/lodash/lodash.js.map +0 -1
  152. package/dist/node_modules/zod/lib/index.js.map +0 -1
@@ -0,0 +1,203 @@
1
+ import F from "../../_virtual/canonicalize.js";
2
+ import { ControllerBase as N } from "../ControllerBase.js";
3
+ import { ComponentController as u } from "../ComponentController.js";
4
+ import { columnOrAxisIdFromString as C, isColumnId as v } from "../../spec.js";
5
+ import { checkSourceBySpecForFilters as P, createLinkerMap as T, getFiltersFromStates as k, getAxesSpecsFromSources as E, getLinkerColumnsForSource as D, getColumnOrAxisValueLabelsId as x, getColumnOrAxisLabel as b } from "../../utils.js";
6
+ var V = Object.defineProperty, j = (c, e, t) => e in c ? V(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t, O = (c, e, t) => j(c, typeof e != "symbol" ? e + "" : e, t);
7
+ const J = {
8
+ type: "discrete",
9
+ components: {
10
+ y: { type: "simple", selectorStates: [] },
11
+ filters: { type: "filter", selectorStates: [] },
12
+ tabBy: { type: "filter", selectorStates: [] },
13
+ facetBy: { type: "simple", selectorStates: [] },
14
+ primaryGrouping: { type: "simple", selectorStates: [] },
15
+ secondaryGrouping: { type: "simple", selectorStates: [] }
16
+ },
17
+ dividedAxes: {}
18
+ };
19
+ class M extends N {
20
+ constructor() {
21
+ super(
22
+ {
23
+ y: new u({
24
+ componentName: "y",
25
+ allowedTypes: ["Int", "Double", "Long", "Float"],
26
+ settings: { isDataComponent: !0 }
27
+ }),
28
+ primaryGrouping: new u({
29
+ componentName: "primaryGrouping",
30
+ allowedTypes: ["String", "Int", "Long"],
31
+ strictlyDependsOnParents: !0,
32
+ parentComponents: ["y"],
33
+ dependsOn: ["y"],
34
+ settings: {
35
+ axesAllowed: !0,
36
+ homogeneous: !0
37
+ }
38
+ }),
39
+ secondaryGrouping: new u({
40
+ componentName: "secondaryGrouping",
41
+ allowedTypes: ["String", "Int", "Long"],
42
+ strictlyDependsOnParents: !0,
43
+ parentComponents: ["y"],
44
+ dependsOn: ["primaryGrouping"],
45
+ settings: {
46
+ axesAllowed: !0,
47
+ homogeneous: !0
48
+ }
49
+ }),
50
+ facetBy: new u({
51
+ componentName: "facetBy",
52
+ allowedTypes: ["String", "Int", "Long"],
53
+ strictlyDependsOnParents: !0,
54
+ parentComponents: ["y"],
55
+ dependsOn: ["y"],
56
+ settings: {
57
+ axesAllowed: !0,
58
+ dimensionConsumer: !0,
59
+ multipleSelectors: !0
60
+ }
61
+ })
62
+ },
63
+ {
64
+ filters: new u({
65
+ componentName: "filters",
66
+ allowedTypes: ["String", "Int", "Long", "Double", "Float"],
67
+ strictlyDependsOnParents: !0,
68
+ parentComponents: ["y"],
69
+ dependsOn: ["y"],
70
+ settings: {
71
+ axesAllowed: !0,
72
+ dimensionConsumer: !0,
73
+ multipleSelectors: !0
74
+ },
75
+ checkSourceBySpec: P
76
+ }),
77
+ tabBy: new u({
78
+ componentName: "tabBy",
79
+ allowedTypes: ["String", "Int"],
80
+ strictlyDependsOnParents: !0,
81
+ parentComponents: ["y"],
82
+ dependsOn: ["y"],
83
+ settings: {
84
+ axesAllowed: !0,
85
+ dimensionConsumer: !0
86
+ }
87
+ })
88
+ }
89
+ ), O(this, "dataInputs", ["y"]), O(this, "dontAllowUnfilteredHighCardinality", !0);
90
+ }
91
+ async createDataByColumns(e, t) {
92
+ const p = t.components.y.selectorStates[0].selectedSource, l = C(p);
93
+ if (!p || !v(l))
94
+ throw Error("Y column is not valid");
95
+ const s = {
96
+ type: "columns",
97
+ id: F(t.components) ?? "",
98
+ values: {}
99
+ }, d = await T(e), m = [
100
+ ...t.components.filters.selectorStates,
101
+ ...t.components.tabBy.selectorStates
102
+ ], r = k(m), g = m.map((a) => C(a.selectedSource)).filter(v), y = [p], S = await E(e, y), o = [t.components.primaryGrouping, t.components.secondaryGrouping, t.components.facetBy], i = [], A = [[]], B = [], h = [];
103
+ for (const { selectedSource: a, fixedAxes: n } of m)
104
+ h.push(...await D(
105
+ e,
106
+ d,
107
+ S,
108
+ a,
109
+ n
110
+ )), A.push(
111
+ (n ?? []).map(({ axisIdx: f, axisValue: w }) => ({ idx: f, value: w }))
112
+ );
113
+ for (const a of o)
114
+ for (const { selectedSource: n, fixedAxes: f } of a.selectorStates) {
115
+ i.push(C(n)), B.push(
116
+ (f ?? []).map(({ axisIdx: I, axisValue: L }) => ({ idx: I, value: L }))
117
+ ), h.push(...await D(
118
+ e,
119
+ d,
120
+ S,
121
+ n,
122
+ f
123
+ ));
124
+ const w = await x(e, n, y);
125
+ w && i.push(w);
126
+ }
127
+ const G = await e.pFrameProvider.getTableOuterJoin(
128
+ [l, ...h, ...g],
129
+ i,
130
+ r,
131
+ !0,
132
+ A,
133
+ B
134
+ );
135
+ return i.forEach((a) => {
136
+ const n = a.toCanonicalString();
137
+ s.values[n] = v(a) ? G.columnsData[n] : G.axesData[n];
138
+ }), s.values[l.toCanonicalString()] = G.columnsData[l.toCanonicalString()], { byColumns: s };
139
+ }
140
+ async createChartSettings(e, t) {
141
+ var p, l;
142
+ const s = t.components.y.selectorStates[0].selectedSource, d = C(s);
143
+ if (!s || !v(d))
144
+ throw Error("Y column is not valid");
145
+ const m = {
146
+ type: "column",
147
+ value: s,
148
+ label: await b(e, s, [])
149
+ }, r = [s];
150
+ let g;
151
+ if (t.components.primaryGrouping.selectorStates.length) {
152
+ const { selectedSource: o } = t.components.primaryGrouping.selectorStates[0];
153
+ g = {
154
+ columnName: {
155
+ type: "column",
156
+ value: o,
157
+ label: await b(e, o, r),
158
+ valueLabels: (p = await x(
159
+ e,
160
+ o,
161
+ r
162
+ )) == null ? void 0 : p.toCanonicalString()
163
+ }
164
+ };
165
+ }
166
+ let y;
167
+ if (t.components.secondaryGrouping.selectorStates.length) {
168
+ const { selectedSource: o } = t.components.secondaryGrouping.selectorStates[0];
169
+ y = {
170
+ columnName: {
171
+ type: "column",
172
+ value: o,
173
+ label: await b(e, o, r),
174
+ valueLabels: (l = await x(
175
+ e,
176
+ o,
177
+ r
178
+ )) == null ? void 0 : l.toCanonicalString()
179
+ }
180
+ };
181
+ }
182
+ const S = await Promise.all(t.components.facetBy.selectorStates.map(async (o) => {
183
+ var i;
184
+ return {
185
+ type: "column",
186
+ value: ((i = await x(e, o.selectedSource, r)) == null ? void 0 : i.toCanonicalString()) ?? o.selectedSource,
187
+ label: await b(e, o.selectedSource, r)
188
+ };
189
+ }));
190
+ return {
191
+ type: "discrete",
192
+ y: m,
193
+ primaryGrouping: g,
194
+ secondaryGrouping: y,
195
+ facetBy: S
196
+ };
197
+ }
198
+ }
199
+ export {
200
+ M as DiscreteStateController,
201
+ J as InitialDiscreteState
202
+ };
203
+ //# sourceMappingURL=discrete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discrete.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/discrete.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputState,\n InputStateParent,\n} from '../../common';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport type {AxisId, ColumnId} from '../../spec';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore, PValue} from '../../store';\nimport {\n checkSourceBySpecForFilters, createLinkerMap, getAxesSpecsFromSources,\n getColumnOrAxisLabel,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getLinkerColumnsForSource,\n} from '../../utils';\n\nexport interface DiscreteUIState extends InputStateParent<'discrete'> {\n type: 'discrete';\n components: {\n y: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n primaryGrouping: ComponentStateSimple;\n secondaryGrouping: ComponentStateSimple;\n };\n}\n\nexport const InitialDiscreteState: DiscreteUIState = {\n type: 'discrete',\n components: {\n y: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n primaryGrouping: {type: 'simple', selectorStates: []},\n secondaryGrouping: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nexport function isDiscreteState(state: InputState): state is DiscreteUIState {\n return state.type == 'discrete';\n}\n\nexport class DiscreteStateController extends ControllerBase<DiscreteUIState> {\n dataInputs = ['y'];\n dontAllowUnfilteredHighCardinality = true;\n\n constructor() {\n super(\n {\n y: new ComponentController<DiscreteUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'Double', 'Long', 'Float'],\n settings: { isDataComponent: true },\n }),\n primaryGrouping: new ComponentController<DiscreteUIState, 'primaryGrouping'>({\n componentName: 'primaryGrouping',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['y'],\n dependsOn: ['y'],\n settings: {\n axesAllowed: true,\n homogeneous: true,\n },\n }),\n secondaryGrouping: new ComponentController<DiscreteUIState, 'secondaryGrouping'>({\n componentName: 'secondaryGrouping',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['y'],\n dependsOn: ['primaryGrouping'],\n settings: {\n axesAllowed: true,\n homogeneous: true,\n },\n }),\n facetBy: new ComponentController<DiscreteUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['y'],\n dependsOn: ['y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n },\n {\n filters: new ComponentController<DiscreteUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['y'],\n dependsOn: ['y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n checkSourceBySpec: checkSourceBySpecForFilters\n }),\n tabBy: new ComponentController<DiscreteUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['y'],\n dependsOn: ['y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n },\n );\n }\n\n async createDataByColumns(store: DataStore, state: DiscreteUIState): Promise<PlotDataAndSettings['data']> {\n const yColumnIdString = state.components.y.selectorStates[0].selectedSource;\n const yColumnIdWithQ = columnOrAxisIdFromString(yColumnIdString);\n if (!yColumnIdString || !isColumnId(yColumnIdWithQ)) {\n throw Error('Y 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\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 = [yColumnIdString];\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n const inputs = [state.components.primaryGrouping, state.components.secondaryGrouping, state.components.facetBy];\n\n const secondarySources: (ColumnId | AxisId)[] = []; // primary sources are the only Y column\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 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 const data = await store.pFrameProvider.getTableOuterJoin(\n [yColumnIdWithQ, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n true,\n primarySourcesFixedAxes,\n secondarySourcesFixedAxes\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[yColumnIdWithQ.toCanonicalString()] = data.columnsData[yColumnIdWithQ.toCanonicalString()];\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: DiscreteUIState): Promise<Record<string, unknown>> {\n const yColumnIdString = state.components.y.selectorStates[0].selectedSource;\n const yColumnId = columnOrAxisIdFromString(yColumnIdString);\n if (!yColumnIdString || !isColumnId(yColumnId)) {\n throw Error('Y column is not valid');\n }\n const y = {\n type: 'column',\n value: yColumnIdString,\n label: await getColumnOrAxisLabel(store, yColumnIdString, []),\n };\n\n const parentSources = [yColumnIdString];\n\n let primaryGrouping;\n if (state.components.primaryGrouping.selectorStates.length) {\n const {selectedSource} = state.components.primaryGrouping.selectorStates[0];\n primaryGrouping = {\n columnName: {\n type: 'column',\n value: selectedSource,\n label: await getColumnOrAxisLabel(store, selectedSource, parentSources),\n valueLabels: (await getColumnOrAxisValueLabelsId(\n store,\n selectedSource,\n parentSources,\n ))?.toCanonicalString(),\n },\n };\n }\n let secondaryGrouping;\n if (state.components.secondaryGrouping.selectorStates.length) {\n const {selectedSource} = state.components.secondaryGrouping.selectorStates[0];\n secondaryGrouping = {\n columnName: {\n type: 'column',\n value: selectedSource,\n label: await getColumnOrAxisLabel(store, selectedSource, parentSources),\n valueLabels: (await getColumnOrAxisValueLabelsId(\n store,\n selectedSource,\n parentSources,\n ))?.toCanonicalString(),\n },\n };\n }\n const facetBy = await Promise.all(state.components.facetBy.selectorStates.map(async state => ({\n type: 'column',\n value:\n (await getColumnOrAxisValueLabelsId(store, state.selectedSource, parentSources))?.toCanonicalString() ??\n state.selectedSource,\n label: await getColumnOrAxisLabel(store, state.selectedSource, parentSources),\n })));\n\n return {\n type: 'discrete',\n y,\n primaryGrouping,\n secondaryGrouping,\n facetBy,\n };\n }\n}\n"],"names":["InitialDiscreteState","DiscreteStateController","ControllerBase","ComponentController","checkSourceBySpecForFilters","__publicField","store","state","yColumnIdString","yColumnIdWithQ","columnOrAxisIdFromString","isColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","s","parentSources","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","primarySourcesFixedAxes","secondarySourcesFixedAxes","linkerColumns","selectedSource","fixedAxes","getLinkerColumnsForSource","axisIdx","axisValue","input","labelsColumnId","getColumnOrAxisValueLabelsId","data","item","key","yColumnId","y","getColumnOrAxisLabel","primaryGrouping","_a","secondaryGrouping","_b","facetBy"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,432 @@
1
+ import q from "../../_virtual/canonicalize.js";
2
+ import { FORMAT as M } from "../../constants.js";
3
+ import { ControllerBase as z } from "../ControllerBase.js";
4
+ import { ComponentController as S } from "../ComponentController.js";
5
+ import { AxisId as w, columnOrAxisIdFromString as d, isColumnId as A } from "../../spec.js";
6
+ import { checkSourceBySpecForFilters as U, createLinkerMap as J, getFiltersFromStates as R, getAxesSpecsFromSources as Q, getLinkerColumnsForSource as V, getColumnOrAxisValueLabelsId as B, getColumnOrAxisLabel as C, getColumnOrAxisSpec as W } from "../../utils.js";
7
+ var Z = Object.defineProperty, _ = (c, e, t) => e in c ? Z(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t, E = (c, e, t) => _(c, typeof e != "symbol" ? e + "" : e, t);
8
+ const ae = {
9
+ type: "heatmap",
10
+ components: {
11
+ value: { type: "simple", selectorStates: [] },
12
+ x: { type: "simple", selectorStates: [] },
13
+ y: { type: "simple", selectorStates: [] },
14
+ xGroupBy: { type: "simple", selectorStates: [] },
15
+ yGroupBy: { type: "simple", selectorStates: [] },
16
+ filters: { type: "filter", selectorStates: [] },
17
+ tabBy: { type: "filter", selectorStates: [] },
18
+ facetBy: { type: "simple", selectorStates: [] },
19
+ annotationsX: { type: "simple", selectorStates: [] },
20
+ annotationsY: { type: "simple", selectorStates: [] },
21
+ tooltipContent: { type: "simple", selectorStates: [] }
22
+ },
23
+ dividedAxes: {}
24
+ };
25
+ function j(c) {
26
+ return c ? "kind" in c && c.kind === "PColumn" ? c.valueType === "String" : c.type === "String" : !0;
27
+ }
28
+ function F(c, e) {
29
+ if (!e.length)
30
+ return [];
31
+ const t = e.map((u) => d(u)), l = Object.values(c.columnsData)[0].length, o = [];
32
+ for (let u = 0; u < l; u++) {
33
+ const s = t.map((g) => {
34
+ const x = g.toCanonicalString();
35
+ return A(g) ? c.columnsData[x][u] : c.axesData[x][u];
36
+ }).join(", ");
37
+ o.push(s);
38
+ }
39
+ return o;
40
+ }
41
+ class le extends z {
42
+ constructor() {
43
+ super(
44
+ {
45
+ value: new S({
46
+ componentName: "value",
47
+ allowedTypes: ["Int", "Long", "Double", "Float", "String"],
48
+ settings: {
49
+ isDataComponent: !0,
50
+ columnsAllowed: !0,
51
+ axesAllowed: !1,
52
+ required: !0
53
+ }
54
+ }),
55
+ x: new S({
56
+ componentName: "x",
57
+ allowedTypes: ["Int", "String", "Long"],
58
+ strictlyDependsOnParents: !0,
59
+ parentComponents: ["value"],
60
+ settings: {
61
+ required: !0,
62
+ dimensionConsumer: !0,
63
+ multipleSelectors: !0,
64
+ axesAllowed: !0,
65
+ columnsAllowed: !1
66
+ }
67
+ }),
68
+ xGroupBy: new S({
69
+ componentName: "xGroupBy",
70
+ allowedTypes: ["Int", "String", "Long"],
71
+ strictlyDependsOnParents: !0,
72
+ parentComponents: ["value"],
73
+ settings: {
74
+ dimensionConsumer: !0,
75
+ multipleSelectors: !0,
76
+ axesAllowed: !0,
77
+ columnsAllowed: !0
78
+ },
79
+ dependsOn: ["x"],
80
+ checkSourceBySpec: (e, t) => {
81
+ const l = /* @__PURE__ */ new Set([
82
+ ...t.components.x.selectorStates.map((o) => o.selectedSource),
83
+ ...t.components.xGroupBy.selectorStates.map((o) => o.selectedSource)
84
+ ]);
85
+ return "kind" in e && e.kind === "PColumn" ? w.fromAxesSpec(e.axesSpec).every(
86
+ (o) => l.has(o.toCanonicalString())
87
+ ) : !0;
88
+ }
89
+ }),
90
+ y: new S({
91
+ componentName: "y",
92
+ allowedTypes: ["Int", "String", "Long"],
93
+ strictlyDependsOnParents: !0,
94
+ parentComponents: ["value"],
95
+ settings: {
96
+ required: !0,
97
+ dimensionConsumer: !0,
98
+ multipleSelectors: !0,
99
+ axesAllowed: !0,
100
+ columnsAllowed: !0
101
+ }
102
+ }),
103
+ yGroupBy: new S({
104
+ componentName: "yGroupBy",
105
+ allowedTypes: ["Int", "String", "Long"],
106
+ strictlyDependsOnParents: !0,
107
+ parentComponents: ["value"],
108
+ settings: {
109
+ dimensionConsumer: !0,
110
+ multipleSelectors: !0,
111
+ axesAllowed: !0,
112
+ columnsAllowed: !0
113
+ },
114
+ dependsOn: ["y"],
115
+ checkSourceBySpec: (e, t) => {
116
+ const l = /* @__PURE__ */ new Set([
117
+ ...t.components.y.selectorStates.map((o) => o.selectedSource),
118
+ ...t.components.yGroupBy.selectorStates.map((o) => o.selectedSource)
119
+ ]);
120
+ return "kind" in e && e.kind === "PColumn" ? w.fromAxesSpec(e.axesSpec).every(
121
+ (o) => l.has(o.toCanonicalString())
122
+ ) : !0;
123
+ }
124
+ }),
125
+ tooltipContent: new S({
126
+ componentName: "tooltipContent",
127
+ allowedTypes: ["String", "Int", "Long", "Float", "Double"],
128
+ strictlyDependsOnParents: !0,
129
+ parentComponents: ["value"],
130
+ dependsOn: ["value"],
131
+ settings: {
132
+ columnsAllowed: !0,
133
+ axesAllowed: !0,
134
+ multipleSelectors: !0
135
+ }
136
+ }),
137
+ facetBy: new S({
138
+ componentName: "facetBy",
139
+ allowedTypes: ["String", "Int", "Long"],
140
+ strictlyDependsOnParents: !0,
141
+ parentComponents: ["value"],
142
+ dependsOn: ["value"],
143
+ settings: {
144
+ axesAllowed: !0,
145
+ dimensionConsumer: !0,
146
+ multipleSelectors: !0
147
+ }
148
+ }),
149
+ annotationsX: new S({
150
+ componentName: "annotationsX",
151
+ allowedTypes: ["Int", "Long", "Double", "Float", "String"],
152
+ parentComponents: ["value"],
153
+ settings: {
154
+ axesAllowed: !0,
155
+ multipleSelectors: !0
156
+ },
157
+ dependsOn: ["x"],
158
+ checkSourceBySpec: (e, t) => {
159
+ const l = /* @__PURE__ */ new Set([
160
+ ...t.components.x.selectorStates.map((o) => o.selectedSource),
161
+ ...t.components.xGroupBy.selectorStates.map((o) => o.selectedSource)
162
+ ]);
163
+ return "kind" in e && e.kind === "PColumn" ? w.fromAxesSpec(e.axesSpec).every(
164
+ (o) => l.has(o.toCanonicalString())
165
+ ) : l.has(w.fromAxisSpec(e).toCanonicalString());
166
+ }
167
+ }),
168
+ annotationsY: new S({
169
+ componentName: "annotationsY",
170
+ allowedTypes: ["Int", "Long", "Double", "Float", "String"],
171
+ parentComponents: ["value"],
172
+ settings: {
173
+ axesAllowed: !0,
174
+ multipleSelectors: !0
175
+ },
176
+ dependsOn: ["y"],
177
+ checkSourceBySpec: (e, t) => {
178
+ const l = /* @__PURE__ */ new Set([
179
+ ...t.components.y.selectorStates.map((o) => o.selectedSource),
180
+ ...t.components.yGroupBy.selectorStates.map((o) => o.selectedSource)
181
+ ]);
182
+ return "kind" in e && e.kind === "PColumn" ? w.fromAxesSpec(e.axesSpec).every(
183
+ (o) => l.has(o.toCanonicalString())
184
+ ) : l.has(w.fromAxisSpec(e).toCanonicalString());
185
+ }
186
+ })
187
+ },
188
+ {
189
+ filters: new S({
190
+ componentName: "filters",
191
+ allowedTypes: ["String", "Int", "Long", "Double", "Long"],
192
+ strictlyDependsOnParents: !0,
193
+ parentComponents: ["value"],
194
+ dependsOn: ["value"],
195
+ settings: {
196
+ columnsAllowed: !0,
197
+ axesAllowed: !0,
198
+ dimensionConsumer: !0,
199
+ multipleSelectors: !0
200
+ },
201
+ checkSourceBySpec: U
202
+ }),
203
+ tabBy: new S({
204
+ componentName: "tabBy",
205
+ allowedTypes: ["String", "Int"],
206
+ strictlyDependsOnParents: !0,
207
+ parentComponents: ["value"],
208
+ dependsOn: ["value"],
209
+ settings: {
210
+ columnsAllowed: !0,
211
+ axesAllowed: !0,
212
+ dimensionConsumer: !0
213
+ }
214
+ })
215
+ }
216
+ ), E(this, "dataInputs", ["value"]), E(this, "dontAllowUnfilteredHighCardinality", !0);
217
+ }
218
+ async getMustBeConsumedAxes(e, t) {
219
+ if (!t.components.value.selectorStates.length)
220
+ return /* @__PURE__ */ new Set();
221
+ const l = t.components.value.selectorStates[0].selectedSource, o = await e.pFrameProvider.getColumnSpecById(d(l));
222
+ return o ? new Set(o.axesSpec.map((u) => w.fromAxisSpec(u).toCanonicalString())) : /* @__PURE__ */ new Set();
223
+ }
224
+ async createDataByColumns(e, t) {
225
+ var l;
226
+ const o = (l = t.components.value.selectorStates[0]) == null ? void 0 : l.selectedSource;
227
+ if (!o)
228
+ throw Error("Value column is not valid");
229
+ const u = d(o);
230
+ if (!A(u))
231
+ throw Error("Value column is not valid");
232
+ const s = {
233
+ type: "columns",
234
+ id: q(t.components) ?? "",
235
+ values: {}
236
+ }, g = await J(e), x = [
237
+ ...t.components.filters.selectorStates,
238
+ ...t.components.tabBy.selectorStates
239
+ ], T = R(x), N = x.map((a) => d(a.selectedSource)).filter(A), b = [o], O = await Q(e, b), f = [
240
+ t.components.facetBy,
241
+ t.components.annotationsX,
242
+ t.components.annotationsY,
243
+ t.components.x,
244
+ t.components.y,
245
+ t.components.xGroupBy,
246
+ t.components.yGroupBy,
247
+ t.components.tooltipContent
248
+ ], h = [], I = [[]], D = [], P = [];
249
+ for (const { selectedSource: a, fixedAxes: i } of x)
250
+ P.push(...await V(
251
+ e,
252
+ g,
253
+ O,
254
+ a,
255
+ i
256
+ )), I.push(
257
+ (i ?? []).map(({ axisIdx: G, axisValue: k }) => ({ idx: G, value: k }))
258
+ );
259
+ for (const a of f)
260
+ for (const { selectedSource: i, fixedAxes: G } of a.selectorStates) {
261
+ h.push(d(i)), D.push(
262
+ (G ?? []).map(({ axisIdx: Y, axisValue: H }) => ({ idx: Y, value: H }))
263
+ ), P.push(...await V(
264
+ e,
265
+ g,
266
+ O,
267
+ i,
268
+ G
269
+ ));
270
+ const k = await B(e, i, b);
271
+ k && h.push(k);
272
+ }
273
+ const y = await e.pFrameProvider.getTableOuterJoin(
274
+ [u, ...P, ...N],
275
+ h,
276
+ T,
277
+ !0,
278
+ I,
279
+ D
280
+ );
281
+ h.forEach((a) => {
282
+ const i = a.toCanonicalString();
283
+ s.values[i] = A(a) ? y.columnsData[i] : y.axesData[i];
284
+ }), s.values[u.toCanonicalString()] = y.columnsData[u.toCanonicalString()];
285
+ const n = t.components.x.selectorStates.concat(t.components.xGroupBy.selectorStates).map((a) => a.selectedSource), r = n.join(", ");
286
+ s.values[r] = F(y, n);
287
+ const p = t.components.x.selectorStates.map((a) => a.selectedSource), m = await Promise.all(
288
+ p.map(
289
+ async (a) => {
290
+ var i;
291
+ return ((i = await B(e, a, b)) == null ? void 0 : i.toCanonicalString()) ?? a;
292
+ }
293
+ )
294
+ );
295
+ s.values.xLabelsKey = F(y, m);
296
+ const v = t.components.y.selectorStates.concat(t.components.yGroupBy.selectorStates).map((a) => a.selectedSource), L = v.join(", ");
297
+ s.values[L] = F(y, v);
298
+ const K = t.components.y.selectorStates.map((a) => a.selectedSource), X = await Promise.all(
299
+ K.map(
300
+ async (a) => {
301
+ var i;
302
+ return ((i = await B(e, a, b)) == null ? void 0 : i.toCanonicalString()) ?? a;
303
+ }
304
+ )
305
+ );
306
+ return s.values.yLabelsKey = F(y, X), { byColumns: s };
307
+ }
308
+ async createChartSettings(e, t) {
309
+ var l;
310
+ const o = (l = t.components.value.selectorStates[0]) == null ? void 0 : l.selectedSource;
311
+ if (!o)
312
+ throw Error("Value column is not valid");
313
+ const u = d(o);
314
+ if (!A(u))
315
+ throw Error("Value column is not valid");
316
+ const s = [o], g = {
317
+ type: "column",
318
+ value: o,
319
+ label: await C(e, o, [])
320
+ }, x = t.components.x.selectorStates.concat(t.components.xGroupBy.selectorStates).map(({ selectedSource: n }) => d(n)).map((n) => n.toCanonicalString()).join(", "), T = t.components.y.selectorStates.concat(t.components.yGroupBy.selectorStates).map(({ selectedSource: n }) => d(n)).map((n) => n.toCanonicalString()).join(", "), N = await Promise.all(
321
+ t.components.facetBy.selectorStates.map(async (n) => {
322
+ var r;
323
+ return {
324
+ type: "column",
325
+ value: ((r = await B(e, n.selectedSource, s)) == null ? void 0 : r.toCanonicalString()) ?? n.selectedSource
326
+ };
327
+ })
328
+ ), b = await Promise.all(
329
+ t.components.xGroupBy.selectorStates.map(async (n) => {
330
+ var r;
331
+ return {
332
+ type: "column",
333
+ label: await C(e, n.selectedSource, s),
334
+ value: n.selectedSource,
335
+ valueLabels: ((r = await B(e, n.selectedSource, s)) == null ? void 0 : r.toCanonicalString()) ?? n.selectedSource
336
+ };
337
+ })
338
+ ), O = await Promise.all(
339
+ t.components.yGroupBy.selectorStates.map(async (n) => {
340
+ var r;
341
+ return {
342
+ type: "column",
343
+ label: await C(e, n.selectedSource, s),
344
+ value: n.selectedSource,
345
+ valueLabels: ((r = await B(e, n.selectedSource, s)) == null ? void 0 : r.toCanonicalString()) ?? n.selectedSource
346
+ };
347
+ })
348
+ ), f = await e.pFrameProvider.getColumnSpecById(u), h = await Promise.all(
349
+ t.components.annotationsX.selectorStates.map(async (n) => {
350
+ var r;
351
+ const p = n.selectedSource, m = d(p), v = A(m) ? await e.pFrameProvider.getColumnSpecById(m) : ((r = f == null ? void 0 : f.axesSpec) == null ? void 0 : r.find(
352
+ (L) => w.fromAxisSpec(L).toCanonicalString() === p
353
+ )) ?? null;
354
+ return {
355
+ axis: "x",
356
+ valueColumn: {
357
+ type: "column",
358
+ value: p,
359
+ label: await C(e, p, s)
360
+ },
361
+ type: j(v) ? "discrete" : "continuous"
362
+ };
363
+ })
364
+ ), I = await Promise.all(
365
+ t.components.annotationsY.selectorStates.map(async (n) => {
366
+ var r;
367
+ const p = n.selectedSource, m = d(p), v = A(m) ? await e.pFrameProvider.getColumnSpecById(m) : ((r = f == null ? void 0 : f.axesSpec) == null ? void 0 : r.find(
368
+ (L) => w.fromAxisSpec(L).toCanonicalString() === p
369
+ )) ?? null;
370
+ return {
371
+ axis: "y",
372
+ valueColumn: {
373
+ type: "column",
374
+ value: p,
375
+ label: await C(e, p, s)
376
+ },
377
+ type: j(v) ? "discrete" : "continuous"
378
+ };
379
+ })
380
+ ), D = (await Promise.all(
381
+ t.components.x.selectorStates.map(
382
+ (n) => C(e, n.selectedSource, s)
383
+ )
384
+ )).join(", "), P = (await Promise.all(
385
+ t.components.y.selectorStates.map(
386
+ (n) => C(e, n.selectedSource, s)
387
+ )
388
+ )).join(", "), y = await Promise.all(
389
+ t.components.tooltipContent.selectorStates.map(async (n) => {
390
+ var r, p;
391
+ const m = n.selectedSource, v = await W(e, m, s);
392
+ return {
393
+ type: "column",
394
+ label: await C(e, m, s) || m,
395
+ value: m,
396
+ valueLabels: ((r = await B(e, m, s)) == null ? void 0 : r.toCanonicalString()) ?? m,
397
+ format: ((p = v == null ? void 0 : v.annotations) == null ? void 0 : p[M]) ?? ".0%"
398
+ };
399
+ })
400
+ );
401
+ return {
402
+ type: "heatmap",
403
+ valueColumn: g,
404
+ valueType: j(f) ? "discrete" : "continuous",
405
+ xColumn: {
406
+ type: "column",
407
+ value: x,
408
+ label: D,
409
+ valueLabels: "xLabelsKey"
410
+ },
411
+ yColumn: {
412
+ type: "column",
413
+ value: T,
414
+ label: P,
415
+ valueLabels: "yLabelsKey"
416
+ },
417
+ facetBy: N,
418
+ xGroupBy: b,
419
+ yGroupBy: O,
420
+ annotations: [...h, ...I],
421
+ tooltips: {
422
+ show: !0,
423
+ content: y
424
+ }
425
+ };
426
+ }
427
+ }
428
+ export {
429
+ le as HeatmapStateController,
430
+ ae as InitialHeatmapState
431
+ };
432
+ //# sourceMappingURL=heatmap.js.map