@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.
- package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/Chart.vue.js +1 -0
- package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
- package/dist/GraphMaker/dataBindAes.d.ts +5 -5
- package/dist/GraphMaker/dataBindAes.d.ts.map +1 -1
- package/dist/GraphMaker/dataBindAes.js +52 -49
- package/dist/GraphMaker/dataBindAes.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js +14 -14
- package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js.map +1 -1
- package/dist/GraphMaker/index.vue.d.ts.map +1 -1
- package/dist/GraphMaker/index.vue.js +115 -113
- package/dist/GraphMaker/index.vue.js.map +1 -1
- package/dist/GraphMaker/store.js +9 -9
- package/dist/GraphMaker/types.d.ts +1 -1
- package/dist/GraphMaker/types.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +3 -3
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts +4 -8
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +2 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +5 -5
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +7 -7
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +9 -9
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +20 -16
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +65 -69
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +20 -16
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +20 -19
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/loadDefaultSources.js +4 -3
- package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +57 -54
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
- package/dist/_virtual/_commonjsHelpers.js +3 -5
- package/dist/_virtual/_commonjsHelpers.js.map +1 -1
- package/dist/lib.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js +5 -5
- package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +8 -5
- package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +22 -22
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js +4 -22
- package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +53 -53
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +6 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +45 -45
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +71 -70
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +117 -112
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +6 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +36 -36
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +24 -24
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +23 -26
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +13 -10
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +67 -73
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +44 -39
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js +18 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +68 -64
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +23 -17
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +23 -17
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js +7 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js +9 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js +8 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash.js +8 -0
- package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/lodash.js.map +1 -1
- package/dist/{_virtual/lodash.js → node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js} +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify.js +3 -0
- package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/stringify.js.map +1 -1
- package/dist/{_virtual/stringify.js → node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js} +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +15 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +198 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +342 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +278 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +453 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +203 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +432 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +170 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +315 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +323 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js +11 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +36 -3420
- package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/{pl-error-like → pf-plots/dist/node_modules/@milaboratories/pl-error-like}/dist/index.js +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +979 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js +1599 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js +19 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js +26 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js +3678 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js.map +1 -0
- package/dist/node_modules/{zod → @milaboratories/pf-plots/dist/node_modules/zod}/lib/index.js +1141 -1141
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/zod/lib/index.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +247 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js +62 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +286 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -0
- package/package.json +3 -3
- package/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +0 -1
- package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +0 -584
- package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +0 -1
- package/dist/node_modules/@platforma-sdk/model/dist/index.js +0 -1559
- package/dist/node_modules/@platforma-sdk/model/dist/index.js.map +0 -1
- package/dist/node_modules/json-stringify-safe/stringify.js +0 -20
- package/dist/node_modules/json-stringify-safe/stringify.js.map +0 -1
- package/dist/node_modules/lodash/lodash.js +0 -3678
- package/dist/node_modules/lodash/lodash.js.map +0 -1
- package/dist/node_modules/zod/lib/index.js.map +0 -1
package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import H from "../../_virtual/canonicalize.js";
|
|
2
|
+
import { FORMAT as J } from "../../constants.js";
|
|
3
|
+
import { ControllerBase as K } from "../ControllerBase.js";
|
|
4
|
+
import { ComponentController as w } from "../ComponentController.js";
|
|
5
|
+
import { columnOrAxisIdFromString as C, AxisId as G, isColumnId as c } from "../../spec.js";
|
|
6
|
+
import { checkSourceBySpecForFilters as Q, createLinkerMap as W, getFiltersFromStates as X, getAxesSpecsFromSources as Y, getLinkerColumnsForSource as N, getColumnOrAxisValueLabelsId as A, getColumnOrAxisLabel as D, getColumnOrAxisSpec as Z } from "../../utils.js";
|
|
7
|
+
var _ = Object.defineProperty, $ = (m, e, t) => e in m ? _(m, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : m[e] = t, E = (m, e, t) => $(m, typeof e != "symbol" ? e + "" : e, t);
|
|
8
|
+
const se = {
|
|
9
|
+
type: "bubble",
|
|
10
|
+
components: {
|
|
11
|
+
valueSize: { type: "simple", selectorStates: [] },
|
|
12
|
+
valueColor: { type: "simple", selectorStates: [] },
|
|
13
|
+
x: { type: "simple", selectorStates: [] },
|
|
14
|
+
y: { type: "simple", selectorStates: [] },
|
|
15
|
+
filters: { type: "filter", selectorStates: [] },
|
|
16
|
+
tabBy: { type: "filter", selectorStates: [] },
|
|
17
|
+
facetBy: { type: "simple", selectorStates: [] },
|
|
18
|
+
tooltipContent: { type: "simple", selectorStates: [] }
|
|
19
|
+
},
|
|
20
|
+
dividedAxes: {}
|
|
21
|
+
};
|
|
22
|
+
function z(m, e) {
|
|
23
|
+
if (!e.length)
|
|
24
|
+
return [];
|
|
25
|
+
const t = e.map((l) => C(l)), v = Object.values(m.columnsData)[0].length, i = [];
|
|
26
|
+
for (let l = 0; l < v; l++) {
|
|
27
|
+
const u = t.map((p) => {
|
|
28
|
+
const d = p.toCanonicalString();
|
|
29
|
+
return c(p) ? m.columnsData[d][l] : m.axesData[d][l];
|
|
30
|
+
}).join(", ");
|
|
31
|
+
i.push(u);
|
|
32
|
+
}
|
|
33
|
+
return i;
|
|
34
|
+
}
|
|
35
|
+
class re extends K {
|
|
36
|
+
constructor() {
|
|
37
|
+
super({
|
|
38
|
+
valueSize: new w({
|
|
39
|
+
componentName: "valueSize",
|
|
40
|
+
allowedTypes: ["Int", "Long", "Double", "Float"],
|
|
41
|
+
strictlyDependsOnParents: !0,
|
|
42
|
+
parentComponents: ["valueColor"],
|
|
43
|
+
settings: {
|
|
44
|
+
isDataComponent: !0,
|
|
45
|
+
columnsAllowed: !0,
|
|
46
|
+
axesAllowed: !1,
|
|
47
|
+
required: !0
|
|
48
|
+
}
|
|
49
|
+
}),
|
|
50
|
+
valueColor: new w({
|
|
51
|
+
componentName: "valueColor",
|
|
52
|
+
allowedTypes: ["Int", "Long", "Double", "Float"],
|
|
53
|
+
strictlyDependsOnParents: !0,
|
|
54
|
+
parentComponents: ["valueSize"],
|
|
55
|
+
settings: {
|
|
56
|
+
isDataComponent: !0,
|
|
57
|
+
columnsAllowed: !0,
|
|
58
|
+
axesAllowed: !1,
|
|
59
|
+
required: !0
|
|
60
|
+
}
|
|
61
|
+
}),
|
|
62
|
+
x: new w({
|
|
63
|
+
componentName: "x",
|
|
64
|
+
allowedTypes: ["Int", "String", "Long"],
|
|
65
|
+
strictlyDependsOnParents: !0,
|
|
66
|
+
parentComponents: ["valueSize", "valueColor"],
|
|
67
|
+
settings: {
|
|
68
|
+
required: !0,
|
|
69
|
+
dimensionConsumer: !0,
|
|
70
|
+
multipleSelectors: !0,
|
|
71
|
+
axesAllowed: !0,
|
|
72
|
+
columnsAllowed: !1
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
y: new w({
|
|
76
|
+
componentName: "y",
|
|
77
|
+
allowedTypes: ["Int", "String", "Long"],
|
|
78
|
+
strictlyDependsOnParents: !0,
|
|
79
|
+
parentComponents: ["valueSize", "valueColor"],
|
|
80
|
+
settings: {
|
|
81
|
+
required: !0,
|
|
82
|
+
dimensionConsumer: !0,
|
|
83
|
+
multipleSelectors: !0,
|
|
84
|
+
axesAllowed: !0,
|
|
85
|
+
columnsAllowed: !1
|
|
86
|
+
}
|
|
87
|
+
}),
|
|
88
|
+
tooltipContent: new w({
|
|
89
|
+
componentName: "tooltipContent",
|
|
90
|
+
allowedTypes: ["String", "Int", "Long", "Float", "Double"],
|
|
91
|
+
strictlyDependsOnParents: !0,
|
|
92
|
+
parentComponents: ["valueSize", "valueColor"],
|
|
93
|
+
settings: {
|
|
94
|
+
columnsAllowed: !0,
|
|
95
|
+
axesAllowed: !0,
|
|
96
|
+
multipleSelectors: !0
|
|
97
|
+
}
|
|
98
|
+
}),
|
|
99
|
+
facetBy: new w({
|
|
100
|
+
componentName: "facetBy",
|
|
101
|
+
allowedTypes: ["String", "Int", "Long"],
|
|
102
|
+
strictlyDependsOnParents: !0,
|
|
103
|
+
parentComponents: ["valueSize", "valueColor"],
|
|
104
|
+
settings: {
|
|
105
|
+
axesAllowed: !0,
|
|
106
|
+
dimensionConsumer: !0,
|
|
107
|
+
multipleSelectors: !0
|
|
108
|
+
}
|
|
109
|
+
})
|
|
110
|
+
}, {
|
|
111
|
+
filters: new w({
|
|
112
|
+
componentName: "filters",
|
|
113
|
+
allowedTypes: ["String", "Int", "Long", "Double", "Long"],
|
|
114
|
+
strictlyDependsOnParents: !0,
|
|
115
|
+
parentComponents: ["valueSize", "valueColor"],
|
|
116
|
+
settings: {
|
|
117
|
+
columnsAllowed: !0,
|
|
118
|
+
axesAllowed: !0,
|
|
119
|
+
dimensionConsumer: !0,
|
|
120
|
+
multipleSelectors: !0
|
|
121
|
+
},
|
|
122
|
+
checkSourceBySpec: Q
|
|
123
|
+
}),
|
|
124
|
+
tabBy: new w({
|
|
125
|
+
componentName: "tabBy",
|
|
126
|
+
allowedTypes: ["String", "Int"],
|
|
127
|
+
strictlyDependsOnParents: !0,
|
|
128
|
+
parentComponents: ["valueSize", "valueColor"],
|
|
129
|
+
settings: {
|
|
130
|
+
columnsAllowed: !0,
|
|
131
|
+
axesAllowed: !0,
|
|
132
|
+
dimensionConsumer: !0
|
|
133
|
+
}
|
|
134
|
+
})
|
|
135
|
+
}), E(this, "dataInputs", ["valueSize", "valueColor"]), E(this, "dontAllowUnfilteredHighCardinality", !0);
|
|
136
|
+
}
|
|
137
|
+
async getMustBeConsumedAxes(e, t) {
|
|
138
|
+
if (!t.components.valueColor.selectorStates.length)
|
|
139
|
+
return /* @__PURE__ */ new Set();
|
|
140
|
+
const v = t.components.valueColor.selectorStates[0].selectedSource, i = await e.pFrameProvider.getColumnSpecById(C(v));
|
|
141
|
+
return i ? new Set(i.axesSpec.map((l) => G.fromAxisSpec(l).toCanonicalString())) : /* @__PURE__ */ new Set();
|
|
142
|
+
}
|
|
143
|
+
async createDataByColumns(e, t) {
|
|
144
|
+
var v, i;
|
|
145
|
+
const l = (v = t.components.valueColor.selectorStates[0]) == null ? void 0 : v.selectedSource, u = (i = t.components.valueSize.selectorStates[0]) == null ? void 0 : i.selectedSource;
|
|
146
|
+
if (!l || !u)
|
|
147
|
+
throw Error("Value column is not valid");
|
|
148
|
+
const p = C(l), d = C(u);
|
|
149
|
+
if (!p || !d || !c(p) && !c(d))
|
|
150
|
+
throw Error("Value column is not valid");
|
|
151
|
+
const s = {
|
|
152
|
+
type: "columns",
|
|
153
|
+
id: H(t.components) ?? "",
|
|
154
|
+
values: {}
|
|
155
|
+
}, h = await W(e), g = [
|
|
156
|
+
...t.components.filters.selectorStates,
|
|
157
|
+
...t.components.tabBy.selectorStates
|
|
158
|
+
], I = X(g), O = g.map((o) => C(o.selectedSource)).filter(c), x = [p, d].filter(c), f = x.map((o) => o.toCanonicalString()), B = await Y(e, f), F = [
|
|
159
|
+
t.components.facetBy,
|
|
160
|
+
t.components.x,
|
|
161
|
+
t.components.y,
|
|
162
|
+
t.components.tooltipContent
|
|
163
|
+
], a = [], y = x.map(() => []), b = [], S = [];
|
|
164
|
+
for (const { selectedSource: o, fixedAxes: n } of g)
|
|
165
|
+
S.push(...await N(
|
|
166
|
+
e,
|
|
167
|
+
h,
|
|
168
|
+
B,
|
|
169
|
+
o,
|
|
170
|
+
n
|
|
171
|
+
)), y.push(
|
|
172
|
+
(n ?? []).map(({ axisIdx: L, axisValue: P }) => ({ idx: L, value: P }))
|
|
173
|
+
);
|
|
174
|
+
for (const o of F)
|
|
175
|
+
for (const { selectedSource: n, fixedAxes: L } of o.selectorStates) {
|
|
176
|
+
a.push(C(n)), b.push(
|
|
177
|
+
(L ?? []).map(({ axisIdx: U, axisValue: R }) => ({ idx: U, value: R }))
|
|
178
|
+
), S.push(...await N(
|
|
179
|
+
e,
|
|
180
|
+
h,
|
|
181
|
+
B,
|
|
182
|
+
n,
|
|
183
|
+
L
|
|
184
|
+
));
|
|
185
|
+
const P = await A(e, n, f);
|
|
186
|
+
P && a.push(P);
|
|
187
|
+
}
|
|
188
|
+
const r = await e.pFrameProvider.getTableOuterJoin(
|
|
189
|
+
[...x, ...S, ...O],
|
|
190
|
+
a,
|
|
191
|
+
I,
|
|
192
|
+
!0,
|
|
193
|
+
y,
|
|
194
|
+
b
|
|
195
|
+
);
|
|
196
|
+
a.forEach((o) => {
|
|
197
|
+
const n = o.toCanonicalString();
|
|
198
|
+
s.values[n] = c(o) ? r.columnsData[n] : r.axesData[n];
|
|
199
|
+
}), s.values[l] = c(p) ? r.columnsData[l] : r.axesData[l], s.values[u] = c(d) ? r.columnsData[u] : r.axesData[u];
|
|
200
|
+
const j = t.components.x.selectorStates.map((o) => o.selectedSource), V = j.join(", "), k = await Promise.all(j.map(
|
|
201
|
+
async (o) => {
|
|
202
|
+
var n;
|
|
203
|
+
return ((n = await A(e, o, f)) == null ? void 0 : n.toCanonicalString()) ?? o;
|
|
204
|
+
}
|
|
205
|
+
));
|
|
206
|
+
s.values[V] = z(r, j), s.values.xLabels = z(r, k);
|
|
207
|
+
const T = t.components.y.selectorStates.map((o) => o.selectedSource), q = T.join(", "), M = await Promise.all(T.map(
|
|
208
|
+
async (o) => {
|
|
209
|
+
var n;
|
|
210
|
+
return ((n = await A(e, o, f)) == null ? void 0 : n.toCanonicalString()) ?? o;
|
|
211
|
+
}
|
|
212
|
+
));
|
|
213
|
+
return s.values[q] = z(r, T), s.values.yLabels = z(r, M), { byColumns: s };
|
|
214
|
+
}
|
|
215
|
+
async createChartSettings(e, t) {
|
|
216
|
+
var v, i;
|
|
217
|
+
const l = (v = t.components.valueColor.selectorStates[0]) == null ? void 0 : v.selectedSource, u = (i = t.components.valueSize.selectorStates[0]) == null ? void 0 : i.selectedSource;
|
|
218
|
+
if (!l || !u)
|
|
219
|
+
throw Error("Value column is not valid");
|
|
220
|
+
const p = C(l), d = C(u);
|
|
221
|
+
if (!c(p) && !c(d))
|
|
222
|
+
throw Error("Value column is not valid");
|
|
223
|
+
const s = [p, d].filter(c).map((a) => a.toCanonicalString()), h = {
|
|
224
|
+
type: "column",
|
|
225
|
+
value: l,
|
|
226
|
+
label: await D(e, l, [])
|
|
227
|
+
}, g = {
|
|
228
|
+
type: "column",
|
|
229
|
+
value: u,
|
|
230
|
+
label: await D(e, u, [])
|
|
231
|
+
}, I = t.components.x.selectorStates.map(({ selectedSource: a }) => a).join(", "), O = t.components.y.selectorStates.map(({ selectedSource: a }) => a).join(", "), x = await Promise.all(t.components.facetBy.selectorStates.map(async (a) => {
|
|
232
|
+
var y;
|
|
233
|
+
return {
|
|
234
|
+
type: "column",
|
|
235
|
+
value: ((y = await A(e, a.selectedSource, s)) == null ? void 0 : y.toCanonicalString()) ?? a.selectedSource
|
|
236
|
+
};
|
|
237
|
+
})), f = (await Promise.all(t.components.x.selectorStates.map((a) => D(e, a.selectedSource, s)))).join(", "), B = (await Promise.all(t.components.y.selectorStates.map((a) => D(e, a.selectedSource, s)))).join(", "), F = await Promise.all(
|
|
238
|
+
t.components.tooltipContent.selectorStates.map(async (a) => {
|
|
239
|
+
var y, b;
|
|
240
|
+
const S = a.selectedSource, r = await Z(e, S, s);
|
|
241
|
+
return {
|
|
242
|
+
type: "column",
|
|
243
|
+
label: await D(e, S, s) || S,
|
|
244
|
+
value: S,
|
|
245
|
+
valueLabels: ((y = await A(e, S, s)) == null ? void 0 : y.toCanonicalString()) ?? S,
|
|
246
|
+
format: ((b = r == null ? void 0 : r.annotations) == null ? void 0 : b[J]) ?? ".0%"
|
|
247
|
+
};
|
|
248
|
+
})
|
|
249
|
+
);
|
|
250
|
+
return {
|
|
251
|
+
type: "bubble",
|
|
252
|
+
valueColor: h,
|
|
253
|
+
valueSize: g,
|
|
254
|
+
xColumn: {
|
|
255
|
+
type: "column",
|
|
256
|
+
value: I,
|
|
257
|
+
label: f,
|
|
258
|
+
valueLabels: "xLabels"
|
|
259
|
+
},
|
|
260
|
+
yColumn: {
|
|
261
|
+
type: "column",
|
|
262
|
+
value: O,
|
|
263
|
+
label: B,
|
|
264
|
+
valueLabels: "yLabels"
|
|
265
|
+
},
|
|
266
|
+
facetBy: x,
|
|
267
|
+
tooltips: {
|
|
268
|
+
show: !0,
|
|
269
|
+
content: F
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
export {
|
|
275
|
+
re as BubbleStateController,
|
|
276
|
+
se as InitialBubbleState
|
|
277
|
+
};
|
|
278
|
+
//# sourceMappingURL=bubble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bubble.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/bubble.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputStateParent,\n} from '../../common';\nimport {FORMAT} from '../../constants';\nimport {PValue} from '../../store';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n checkSourceBySpecForFilters, createLinkerMap, getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getLinkerColumnsForSource,\n} from '../../utils';\nimport {AxisId, ColumnId} from '../../spec';\nimport type {ColumnsProvider} from '../../pframe/ColumnsProvider';\n\nexport interface BubbleUIState extends InputStateParent<'bubble'> {\n type: 'bubble';\n components: {\n valueSize: ComponentStateSimple;\n valueColor: ComponentStateSimple;\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n };\n}\n\nexport const InitialBubbleState: BubbleUIState = {\n type: 'bubble',\n components: {\n valueSize: {type: 'simple', selectorStates: []},\n valueColor: {type: 'simple', selectorStates: []},\n x: {type: 'simple', selectorStates: []},\n y: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n tooltipContent: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nfunction getMultiSourceColumn(data: Awaited<ReturnType<ColumnsProvider['getTableOuterJoin']>>, selectedSources: string[]) {\n if (!selectedSources.length) {\n return [];\n }\n const selectedIds = selectedSources.map(str => columnOrAxisIdFromString(str));\n const n = Object.values(data.columnsData)[0].length;\n const result: string[] = [];\n for (let i = 0; i < n; i++) {\n const value = selectedIds\n .map((id) => {\n const key = id.toCanonicalString();\n return isColumnId(id)\n ? data.columnsData[key][i]\n : data.axesData[key][i];\n })\n .join(', ');\n result.push(value);\n }\n return result;\n}\n\nexport class BubbleStateController extends ControllerBase<BubbleUIState> {\n dataInputs = ['valueSize', 'valueColor'];\n dontAllowUnfilteredHighCardinality = true;\n constructor() {\n super({\n valueSize: new ComponentController<BubbleUIState, 'valueSize'>({\n componentName: 'valueSize',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueColor'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n }\n }),\n valueColor: new ComponentController<BubbleUIState, 'valueColor'>({\n componentName: 'valueColor',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n },\n }),\n x: new ComponentController<BubbleUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n y: new ComponentController<BubbleUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n tooltipContent: new ComponentController<BubbleUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n facetBy: new ComponentController<BubbleUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n })\n }, {\n filters: new ComponentController<BubbleUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n checkSourceBySpec: checkSourceBySpecForFilters\n }),\n tabBy: new ComponentController<BubbleUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n });\n }\n\n async getMustBeConsumedAxes(store: DataStore, state: BubbleUIState):Promise<Set<string>> {\n if (!state.components.valueColor.selectorStates.length) {\n return new Set<string>();\n }\n const sourceId = state.components.valueColor.selectorStates[0].selectedSource;\n const spec = await store.pFrameProvider.getColumnSpecById(columnOrAxisIdFromString(sourceId));\n if (!spec) {\n return new Set<string>();\n }\n return new Set(spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString()))\n }\n\n async createDataByColumns(store: DataStore, state: BubbleUIState): Promise<PlotDataAndSettings['data']> {\n const valueColorColumnIdString = state.components.valueColor.selectorStates[0]?.selectedSource;\n const valueSizeColumnIdString = state.components.valueSize.selectorStates[0]?.selectedSource;\n if (!valueColorColumnIdString || !valueSizeColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColorColumnId = columnOrAxisIdFromString(valueColorColumnIdString);\n const valueSizeColumnId = columnOrAxisIdFromString(valueSizeColumnIdString);\n if ((!valueColorColumnId || !valueSizeColumnId) || !isColumnId(valueColorColumnId) && !isColumnId(valueSizeColumnId)) {\n throw Error('Value column is not valid');\n }\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(store);\n\n const filterSelectedStates = [\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]\n // filters for column/axes data requests\n const filters = getFiltersFromStates(filterSelectedStates);\n const filterColumns = filterSelectedStates.map(s => columnOrAxisIdFromString(s.selectedSource)).filter(isColumnId);\n\n const primaryColumns = ([valueColorColumnId, valueSizeColumnId]).filter(isColumnId);\n const parentSources = primaryColumns.map((v) => v.toCanonicalString());\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n const inputs = [\n state.components.facetBy,\n state.components.x,\n state.components.y,\n state.components.tooltipContent\n ];\n const secondarySources: (ColumnId | AxisId)[] = []; // primary sources are the only value column\n const primarySourcesFixedAxes:{idx: number, value: PValue}[][] = primaryColumns.map(() => []);\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\n const data = await store.pFrameProvider.getTableOuterJoin(\n [...primaryColumns, ...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[valueColorColumnIdString] = isColumnId(valueColorColumnId)\n ? data.columnsData[valueColorColumnIdString]\n : data.axesData[valueColorColumnIdString]\n dataByColumns.values[valueSizeColumnIdString] = isColumnId(valueSizeColumnId)\n ? data.columnsData[valueSizeColumnIdString]\n : data.axesData[valueSizeColumnIdString]\n\n const xAxes = state.components.x.selectorStates.map(state => state.selectedSource);\n const xKey = xAxes.join(', ');\n const xAxesLabeled = await Promise.all(xAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id,\n ));\n dataByColumns.values[xKey] = getMultiSourceColumn(data, xAxes);\n dataByColumns.values.xLabels = getMultiSourceColumn(data, xAxesLabeled);\n\n // y column should contain yGroup axes\n const yAxes = state.components.y.selectorStates.map(state => state.selectedSource);\n const yKey = yAxes.join(', ');\n const yAxesLabeled = await Promise.all(yAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id,\n ));\n dataByColumns.values[yKey] = getMultiSourceColumn(data, yAxes);\n dataByColumns.values.yLabels = getMultiSourceColumn(data, yAxesLabeled);\n\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: BubbleUIState): Promise<Record<string, unknown>> {\n const valueColorColumnIdString = state.components.valueColor.selectorStates[0]?.selectedSource;\n const valueSizeColumnIdString = state.components.valueSize.selectorStates[0]?.selectedSource;\n if (!valueColorColumnIdString || !valueSizeColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColorColumnId = columnOrAxisIdFromString(valueColorColumnIdString);\n const valueSizeColumnId = columnOrAxisIdFromString(valueSizeColumnIdString);\n if (!isColumnId(valueColorColumnId) && !isColumnId(valueSizeColumnId)) {\n throw Error('Value column is not valid');\n }\n\n const parentSources = ([valueColorColumnId, valueSizeColumnId]).filter(isColumnId).map((v) => v.toCanonicalString());\n const valueColor = {\n type: 'column',\n value: valueColorColumnIdString,\n label: await getColumnOrAxisLabel(store, valueColorColumnIdString, []),\n };\n const valueSize = {\n type: 'column',\n value: valueSizeColumnIdString,\n label: await getColumnOrAxisLabel(store, valueSizeColumnIdString, []),\n };\n const xAxes = state.components.x.selectorStates.map(({selectedSource}) => selectedSource)\n const xKey = xAxes.join(', ');\n\n const yAxes = state.components.y.selectorStates.map(({selectedSource}) => selectedSource)\n const yKey = yAxes.join(', ');\n\n const facetBy = await Promise.all(state.components.facetBy.selectorStates.map(async selectorState => ({\n type: 'column',\n value:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n })));\n\n const xAxisTitle = (await Promise.all(state.components.x.selectorStates\n .map(state => getColumnOrAxisLabel(store, state.selectedSource, parentSources))))\n .join(', ');\n const yAxisTitle = (await Promise.all(state.components.y.selectorStates\n .map(state => getColumnOrAxisLabel(store, state.selectedSource, parentSources))))\n .join(', ');\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n return {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, source, parentSources)) || source,\n value: source,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: spec?.annotations?.[FORMAT] ?? '.0%'\n };\n })\n );\n\n return {\n type: 'bubble',\n valueColor: valueColor,\n valueSize: valueSize,\n xColumn: {\n type: 'column',\n value: xKey,\n label: xAxisTitle,\n valueLabels: 'xLabels'\n },\n yColumn: {\n type: 'column',\n value: yKey,\n label: yAxisTitle,\n valueLabels: 'yLabels'\n },\n facetBy,\n tooltips: {\n show: true,\n content: tooltipContent\n }\n };\n }\n}\n"],"names":["InitialBubbleState","getMultiSourceColumn","data","selectedSources","selectedIds","str","columnOrAxisIdFromString","n","result","i","value","id","key","isColumnId","BubbleStateController","ControllerBase","ComponentController","checkSourceBySpecForFilters","__publicField","store","state","sourceId","spec","s","AxisId","valueColorColumnIdString","_a","valueSizeColumnIdString","_b","valueColorColumnId","valueSizeColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","primaryColumns","parentSources","v","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","primarySourcesFixedAxes","secondarySourcesFixedAxes","linkerColumns","selectedSource","fixedAxes","getLinkerColumnsForSource","axisIdx","axisValue","input","labelsColumnId","getColumnOrAxisValueLabelsId","item","xAxes","xKey","xAxesLabeled","yAxes","yKey","yAxesLabeled","valueColor","getColumnOrAxisLabel","valueSize","facetBy","selectorState","xAxisTitle","yAxisTitle","tooltipContent","source","getColumnOrAxisSpec","FORMAT"],"mappings":"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","x_google_ignoreList":[0]}
|