@milaboratories/graph-maker 1.1.140 → 1.1.142
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/LassoControls/index.vue.js +1 -1
- package/dist/GraphMaker/constantsCommon.d.ts +8 -0
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +94 -83
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.d.ts +3 -0
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.d.ts.map +1 -0
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js +90 -0
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -0
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue2.js +5 -0
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue2.js.map +1 -0
- package/dist/GraphMaker/forms/LayersForm/index.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/index.vue.js +45 -43
- package/dist/GraphMaker/forms/LayersForm/index.vue.js.map +1 -1
- package/dist/GraphMaker/index.vue.d.ts.map +1 -1
- package/dist/GraphMaker/index.vue.js +24 -24
- 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/composeDiscreteSettings.d.ts +16 -0
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +54 -52
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js +84 -70
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
- package/dist/GraphMaker/utils/loadDefaultSources.js +4 -3
- package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
- package/dist/_virtual/_commonjsHelpers.js +3 -5
- package/dist/_virtual/_commonjsHelpers.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +185 -164
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js +120 -103
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/ChartsGroup.js +4 -4
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedAreaElement.js +105 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedAreaElement.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedBarElement.js +66 -59
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedBarElement.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +57 -54
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedArea.js +17 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedArea.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +24 -9
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
- 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 -3426
- 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/dendro.js
ADDED
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import q from "../../_virtual/canonicalize.js";
|
|
2
|
+
import { ControllerBase as G } from "../ControllerBase.js";
|
|
3
|
+
import { ComponentController as r } from "../ComponentController.js";
|
|
4
|
+
import { columnOrAxisIdFromString as c, isColumnId as h } from "../../spec.js";
|
|
5
|
+
import { createLinkerMap as V, getFiltersFromStates as B, getAxesSpecsFromSources as $, getLinkerColumnsForSource as z, getColumnOrAxisValueLabelsId as N, getColumnOrAxisLabel as x } from "../../utils.js";
|
|
6
|
+
var k = Object.defineProperty, M = (O, t, e) => t in O ? k(O, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : O[t] = e, j = (O, t, e) => M(O, t + "", e);
|
|
7
|
+
const F = "pl7.app/dendrogram/nodeId", W = "id", K = {
|
|
8
|
+
type: "dendro",
|
|
9
|
+
components: {
|
|
10
|
+
value: { type: "simple", selectorStates: [] },
|
|
11
|
+
height: { type: "simple", selectorStates: [] },
|
|
12
|
+
labels: { type: "simple", selectorStates: [] },
|
|
13
|
+
tableContent: { type: "simple", selectorStates: [] },
|
|
14
|
+
nodeColor: { type: "simple", selectorStates: [] },
|
|
15
|
+
nodeShape: { type: "simple", selectorStates: [] },
|
|
16
|
+
nodeSize: { type: "simple", selectorStates: [] },
|
|
17
|
+
lineColor: { type: "simple", selectorStates: [] },
|
|
18
|
+
heatmapAnnotation: { type: "simple", selectorStates: [] },
|
|
19
|
+
heatmapForSequence: { type: "simple", selectorStates: [] },
|
|
20
|
+
filters: { type: "filter", selectorStates: [] },
|
|
21
|
+
tabBy: { type: "filter", selectorStates: [] },
|
|
22
|
+
facetBy: { type: "simple", selectorStates: [] },
|
|
23
|
+
heatmapAxis: { type: "simple", selectorStates: [] },
|
|
24
|
+
heatmapGroup: { type: "simple", selectorStates: [] }
|
|
25
|
+
},
|
|
26
|
+
dividedAxes: {}
|
|
27
|
+
};
|
|
28
|
+
class Q extends G {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(
|
|
31
|
+
{
|
|
32
|
+
value: new r({
|
|
33
|
+
componentName: "value",
|
|
34
|
+
allowedTypes: ["Int", "Long"],
|
|
35
|
+
annotations: { "pl7.app/dendrogram/isTopology": "true" },
|
|
36
|
+
settings: {
|
|
37
|
+
isDataComponent: !0,
|
|
38
|
+
columnsAllowed: !0,
|
|
39
|
+
required: !0,
|
|
40
|
+
dimensionConsumer: !0,
|
|
41
|
+
columnsWithExtraAxesAllowed: !1
|
|
42
|
+
}
|
|
43
|
+
}),
|
|
44
|
+
height: new r({
|
|
45
|
+
componentName: "height",
|
|
46
|
+
allowedTypes: ["Int", "Long", "Double", "Float"],
|
|
47
|
+
annotations: { "pl7.app/dendrogram/isDistance": "true" },
|
|
48
|
+
parentComponents: ["value"],
|
|
49
|
+
strictlyDependsOnParents: !0,
|
|
50
|
+
settings: {
|
|
51
|
+
columnsAllowed: !0,
|
|
52
|
+
axesAllowed: !1,
|
|
53
|
+
dimensionConsumer: !0,
|
|
54
|
+
columnsWithExtraAxesAllowed: !1
|
|
55
|
+
}
|
|
56
|
+
}),
|
|
57
|
+
labels: new r({
|
|
58
|
+
componentName: "labels",
|
|
59
|
+
allowedTypes: ["Int", "String", "Long"],
|
|
60
|
+
parentComponents: ["value"],
|
|
61
|
+
strictlyDependsOnParents: !1,
|
|
62
|
+
settings: {
|
|
63
|
+
columnsAllowed: !0,
|
|
64
|
+
axesAllowed: !1,
|
|
65
|
+
columnsWithExtraAxesAllowed: !1
|
|
66
|
+
}
|
|
67
|
+
}),
|
|
68
|
+
tableContent: new r({
|
|
69
|
+
componentName: "tableContent",
|
|
70
|
+
allowedTypes: ["Int", "String", "Long", "Double", "Float"],
|
|
71
|
+
parentComponents: ["value"],
|
|
72
|
+
strictlyDependsOnParents: !1,
|
|
73
|
+
settings: {
|
|
74
|
+
columnsAllowed: !0,
|
|
75
|
+
axesAllowed: !0,
|
|
76
|
+
multipleSelectors: !0,
|
|
77
|
+
columnsWithExtraAxesAllowed: !1
|
|
78
|
+
}
|
|
79
|
+
}),
|
|
80
|
+
nodeShape: new r({
|
|
81
|
+
componentName: "nodeShape",
|
|
82
|
+
allowedTypes: ["Int", "String", "Long"],
|
|
83
|
+
parentComponents: ["value"],
|
|
84
|
+
strictlyDependsOnParents: !1,
|
|
85
|
+
settings: {
|
|
86
|
+
columnsAllowed: !0,
|
|
87
|
+
axesAllowed: !0,
|
|
88
|
+
columnsWithExtraAxesAllowed: !1
|
|
89
|
+
}
|
|
90
|
+
}),
|
|
91
|
+
nodeSize: new r({
|
|
92
|
+
componentName: "nodeSize",
|
|
93
|
+
allowedTypes: ["Double", "Int", "String", "Long"],
|
|
94
|
+
parentComponents: ["value"],
|
|
95
|
+
strictlyDependsOnParents: !1,
|
|
96
|
+
settings: {
|
|
97
|
+
columnsAllowed: !0,
|
|
98
|
+
axesAllowed: !0,
|
|
99
|
+
columnsWithExtraAxesAllowed: !1
|
|
100
|
+
}
|
|
101
|
+
}),
|
|
102
|
+
nodeColor: new r({
|
|
103
|
+
componentName: "nodeColor",
|
|
104
|
+
allowedTypes: ["Double", "Int", "String", "Long"],
|
|
105
|
+
parentComponents: ["value"],
|
|
106
|
+
strictlyDependsOnParents: !1,
|
|
107
|
+
settings: {
|
|
108
|
+
columnsAllowed: !0,
|
|
109
|
+
axesAllowed: !0,
|
|
110
|
+
columnsWithExtraAxesAllowed: !1
|
|
111
|
+
}
|
|
112
|
+
}),
|
|
113
|
+
lineColor: new r({
|
|
114
|
+
componentName: "lineColor",
|
|
115
|
+
allowedTypes: ["Double", "Int", "String", "Long"],
|
|
116
|
+
parentComponents: ["value"],
|
|
117
|
+
strictlyDependsOnParents: !1,
|
|
118
|
+
settings: {
|
|
119
|
+
columnsAllowed: !0,
|
|
120
|
+
axesAllowed: !1,
|
|
121
|
+
columnsWithExtraAxesAllowed: !1
|
|
122
|
+
}
|
|
123
|
+
}),
|
|
124
|
+
heatmapForSequence: new r({
|
|
125
|
+
componentName: "heatmapForSequence",
|
|
126
|
+
allowedTypes: ["String"],
|
|
127
|
+
annotations: { "pl7.app/type": "sequence" },
|
|
128
|
+
parentComponents: ["value"],
|
|
129
|
+
strictlyDependsOnParents: !1,
|
|
130
|
+
settings: {
|
|
131
|
+
columnsAllowed: !0,
|
|
132
|
+
axesAllowed: !0,
|
|
133
|
+
columnsWithExtraAxesAllowed: !1
|
|
134
|
+
}
|
|
135
|
+
}),
|
|
136
|
+
heatmapAnnotation: new r({
|
|
137
|
+
componentName: "heatmapAnnotation",
|
|
138
|
+
allowedTypes: ["Double", "Int", "Long", "Float", "String"],
|
|
139
|
+
parentComponents: ["value"],
|
|
140
|
+
strictlyDependsOnParents: !1,
|
|
141
|
+
settings: {
|
|
142
|
+
isDataComponent: !0,
|
|
143
|
+
columnsAllowed: !0,
|
|
144
|
+
axesAllowed: !1,
|
|
145
|
+
columnsWithExtraAxesAllowed: !1
|
|
146
|
+
}
|
|
147
|
+
}),
|
|
148
|
+
facetBy: new r({
|
|
149
|
+
componentName: "facetBy",
|
|
150
|
+
allowedTypes: ["String", "Int", "Long"],
|
|
151
|
+
parentComponents: ["value"],
|
|
152
|
+
strictlyDependsOnParents: !0,
|
|
153
|
+
settings: {
|
|
154
|
+
dimensionConsumer: !0,
|
|
155
|
+
multipleSelectors: !0,
|
|
156
|
+
axesAllowed: !0,
|
|
157
|
+
columnsAllowed: !1,
|
|
158
|
+
columnsWithExtraAxesAllowed: !1
|
|
159
|
+
}
|
|
160
|
+
}),
|
|
161
|
+
heatmapAxis: new r({
|
|
162
|
+
componentName: "heatmapAxis",
|
|
163
|
+
allowedTypes: ["String", "Int", "Long"],
|
|
164
|
+
parentComponents: ["heatmapAnnotation"],
|
|
165
|
+
settings: {
|
|
166
|
+
dimensionConsumer: !0,
|
|
167
|
+
axesAllowed: !0,
|
|
168
|
+
columnsAllowed: !1,
|
|
169
|
+
columnsWithExtraAxesAllowed: !1
|
|
170
|
+
}
|
|
171
|
+
}),
|
|
172
|
+
heatmapGroup: new r({
|
|
173
|
+
componentName: "heatmapGroup",
|
|
174
|
+
allowedTypes: ["String", "Int", "Long"],
|
|
175
|
+
parentComponents: ["heatmapAnnotation"],
|
|
176
|
+
settings: {
|
|
177
|
+
dimensionConsumer: !0,
|
|
178
|
+
multipleSelectors: !0,
|
|
179
|
+
axesAllowed: !0,
|
|
180
|
+
columnsAllowed: !1,
|
|
181
|
+
columnsWithExtraAxesAllowed: !1
|
|
182
|
+
}
|
|
183
|
+
})
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
filters: new r({
|
|
187
|
+
componentName: "filters",
|
|
188
|
+
allowedTypes: ["String", "Int", "Long"],
|
|
189
|
+
parentComponents: ["value", "heatmapAnnotation"],
|
|
190
|
+
strictlyDependsOnParents: !1,
|
|
191
|
+
settings: {
|
|
192
|
+
dimensionConsumer: !0,
|
|
193
|
+
multipleSelectors: !0,
|
|
194
|
+
axesAllowed: !0,
|
|
195
|
+
columnsAllowed: !1,
|
|
196
|
+
columnsWithExtraAxesAllowed: !1
|
|
197
|
+
}
|
|
198
|
+
}),
|
|
199
|
+
tabBy: new r({
|
|
200
|
+
componentName: "tabBy",
|
|
201
|
+
allowedTypes: ["String", "Int", "Long"],
|
|
202
|
+
parentComponents: ["value", "heatmapAnnotation"],
|
|
203
|
+
strictlyDependsOnParents: !1,
|
|
204
|
+
settings: {
|
|
205
|
+
dimensionConsumer: !0,
|
|
206
|
+
axesAllowed: !0,
|
|
207
|
+
columnsAllowed: !1,
|
|
208
|
+
columnsWithExtraAxesAllowed: !1
|
|
209
|
+
}
|
|
210
|
+
})
|
|
211
|
+
}
|
|
212
|
+
), j(this, "ignoredOptionIdNames", [F]);
|
|
213
|
+
}
|
|
214
|
+
readyDataInputs(t) {
|
|
215
|
+
return t.components.value.selectorStates.length > 0;
|
|
216
|
+
}
|
|
217
|
+
async createTableData(t, e) {
|
|
218
|
+
var A;
|
|
219
|
+
const d = {}, S = (A = e.components.value.selectorStates[0]) == null ? void 0 : A.selectedSource, w = c(S);
|
|
220
|
+
if (!S || !h(w))
|
|
221
|
+
throw Error("Value column is not valid");
|
|
222
|
+
const b = await V(t), g = B([
|
|
223
|
+
...e.components.filters.selectorStates,
|
|
224
|
+
...e.components.tabBy.selectorStates
|
|
225
|
+
]), y = [
|
|
226
|
+
...e.components.filters.selectorStates.map((n) => c(n.selectedSource)),
|
|
227
|
+
...e.components.tabBy.selectorStates.map((n) => c(n.selectedSource))
|
|
228
|
+
].filter(h), u = [S], T = await $(t, u), D = [], i = [], p = [], f = [e.components.value], v = [
|
|
229
|
+
e.components.tableContent,
|
|
230
|
+
// next components can content data mapped on tree
|
|
231
|
+
e.components.labels,
|
|
232
|
+
e.components.nodeColor,
|
|
233
|
+
e.components.nodeSize,
|
|
234
|
+
e.components.nodeShape,
|
|
235
|
+
e.components.lineColor
|
|
236
|
+
], o = {};
|
|
237
|
+
for (const n of f)
|
|
238
|
+
for (const { selectedSource: l, fixedAxes: s } of n.selectorStates) {
|
|
239
|
+
p.push(...await z(
|
|
240
|
+
t,
|
|
241
|
+
b,
|
|
242
|
+
T,
|
|
243
|
+
l,
|
|
244
|
+
s
|
|
245
|
+
));
|
|
246
|
+
const a = await N(t, l, u) ?? c(l);
|
|
247
|
+
o[a.toCanonicalString()] = l, D.push(a);
|
|
248
|
+
}
|
|
249
|
+
for (const n of v)
|
|
250
|
+
for (const { selectedSource: l, fixedAxes: s } of n.selectorStates) {
|
|
251
|
+
p.push(...await z(
|
|
252
|
+
t,
|
|
253
|
+
b,
|
|
254
|
+
T,
|
|
255
|
+
l,
|
|
256
|
+
s
|
|
257
|
+
));
|
|
258
|
+
const a = await N(t, l, u) ?? c(l);
|
|
259
|
+
o[l] = a.toCanonicalString(), i.push(a);
|
|
260
|
+
}
|
|
261
|
+
const m = await t.pFrameProvider.getTableOuterJoin(
|
|
262
|
+
[...D, ...y, ...p],
|
|
263
|
+
i,
|
|
264
|
+
g,
|
|
265
|
+
!1
|
|
266
|
+
);
|
|
267
|
+
for (const n of [...D, ...i]) {
|
|
268
|
+
const l = n.toCanonicalString(), s = o[n.toCanonicalString()];
|
|
269
|
+
d[s] = {
|
|
270
|
+
data: h(n) ? m.columnsData[l] : m.axesData[l],
|
|
271
|
+
spec: h(n) ? m.columnSpecs[l] : m.axesSpecs[l],
|
|
272
|
+
label: await x(t, s, u)
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
const C = Object.keys(m.axesData).find(
|
|
276
|
+
(n) => {
|
|
277
|
+
var l;
|
|
278
|
+
return ((l = c(n)) == null ? void 0 : l.name) === F;
|
|
279
|
+
}
|
|
280
|
+
);
|
|
281
|
+
return C ? d[W] = {
|
|
282
|
+
data: m.axesData[C],
|
|
283
|
+
spec: { kind: "PColumn", valueType: "Int", name: "Node id" },
|
|
284
|
+
label: "Node id"
|
|
285
|
+
} : console.warn("Missed node id axis in data column"), d;
|
|
286
|
+
}
|
|
287
|
+
async createDataByColumns(t, e) {
|
|
288
|
+
var A, d;
|
|
289
|
+
const S = (A = e.components.value.selectorStates[0]) == null ? void 0 : A.selectedSource, w = (d = e.components.heatmapAnnotation.selectorStates[0]) == null ? void 0 : d.selectedSource, b = c(S), g = w ? c(w) : null;
|
|
290
|
+
if (!S || !h(b))
|
|
291
|
+
throw Error("Value column is not valid");
|
|
292
|
+
const y = {
|
|
293
|
+
type: "columns",
|
|
294
|
+
id: q(e.components) ?? "",
|
|
295
|
+
values: {}
|
|
296
|
+
}, u = [
|
|
297
|
+
...e.components.filters.selectorStates,
|
|
298
|
+
...e.components.tabBy.selectorStates
|
|
299
|
+
], T = B(u), D = u.map((s) => c(s.selectedSource)).filter(h), i = [b, g].filter(h).map((s) => s.toCanonicalString()), p = [], f = [], v = [], o = [], m = [
|
|
300
|
+
e.components.value,
|
|
301
|
+
e.components.height,
|
|
302
|
+
e.components.labels,
|
|
303
|
+
e.components.nodeColor,
|
|
304
|
+
e.components.nodeSize,
|
|
305
|
+
e.components.nodeShape,
|
|
306
|
+
e.components.lineColor,
|
|
307
|
+
e.components.heatmapAnnotation,
|
|
308
|
+
e.components.heatmapForSequence
|
|
309
|
+
], C = [
|
|
310
|
+
e.components.facetBy,
|
|
311
|
+
e.components.heatmapAxis,
|
|
312
|
+
e.components.heatmapGroup,
|
|
313
|
+
e.components.tableContent
|
|
314
|
+
];
|
|
315
|
+
for (const s of m)
|
|
316
|
+
for (const { selectedSource: a, fixedAxes: I } of s.selectorStates) {
|
|
317
|
+
p.push(c(a)), v.push(
|
|
318
|
+
(I ?? []).map(({ axisIdx: L, axisValue: P }) => ({ idx: L, value: P }))
|
|
319
|
+
);
|
|
320
|
+
const E = await N(t, a, i);
|
|
321
|
+
E && p.push(E);
|
|
322
|
+
}
|
|
323
|
+
u.forEach(({ fixedAxes: s }) => {
|
|
324
|
+
v.push(
|
|
325
|
+
(s ?? []).map(({ axisIdx: a, axisValue: I }) => ({ idx: a, value: I }))
|
|
326
|
+
);
|
|
327
|
+
});
|
|
328
|
+
for (const s of C)
|
|
329
|
+
for (const { selectedSource: a, fixedAxes: I } of s.selectorStates) {
|
|
330
|
+
f.push(c(a)), o.push(
|
|
331
|
+
(I ?? []).map(({ axisIdx: L, axisValue: P }) => ({ idx: L, value: P }))
|
|
332
|
+
);
|
|
333
|
+
const E = await N(t, a, i);
|
|
334
|
+
E && f.push(E);
|
|
335
|
+
}
|
|
336
|
+
const n = await t.pFrameProvider.getTableOuterJoin(
|
|
337
|
+
[...p, ...D],
|
|
338
|
+
f,
|
|
339
|
+
T,
|
|
340
|
+
!1,
|
|
341
|
+
v,
|
|
342
|
+
o
|
|
343
|
+
);
|
|
344
|
+
[...p, ...f].forEach((s) => {
|
|
345
|
+
const a = s.toCanonicalString(), I = h(s) ? n.columnsData[a] : n.axesData[a];
|
|
346
|
+
y.values[a] = [], y.values[a] = I;
|
|
347
|
+
});
|
|
348
|
+
const l = Object.keys(n.axesData).find(
|
|
349
|
+
(s) => {
|
|
350
|
+
var a;
|
|
351
|
+
return ((a = c(s)) == null ? void 0 : a.name) === F;
|
|
352
|
+
}
|
|
353
|
+
);
|
|
354
|
+
return l ? y.values[W] = n.axesData[l] : console.warn("Missed node id axis in data column"), { byColumns: y };
|
|
355
|
+
}
|
|
356
|
+
async createChartSettings(t, e) {
|
|
357
|
+
var A, d, S;
|
|
358
|
+
const w = (A = e.components.value.selectorStates[0]) == null ? void 0 : A.selectedSource, b = c(w);
|
|
359
|
+
if (!w || !h(b))
|
|
360
|
+
throw Error("Data column is not valid");
|
|
361
|
+
const g = [w], y = { type: "column", value: W }, u = { type: "column", value: w }, T = e.components.height.selectorStates.length ? { type: "column", value: e.components.height.selectorStates[0].selectedSource } : void 0, D = e.components.labels.selectorStates.length ? { type: "column", value: e.components.labels.selectorStates[0].selectedSource } : void 0, i = {};
|
|
362
|
+
if (e.components.nodeColor.selectorStates.length) {
|
|
363
|
+
const o = e.components.nodeColor.selectorStates[0].selectedSource;
|
|
364
|
+
i.nodeColor = {
|
|
365
|
+
columnName: {
|
|
366
|
+
type: "column",
|
|
367
|
+
value: o,
|
|
368
|
+
label: await x(t, o, g)
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
if (e.components.nodeShape.selectorStates.length) {
|
|
373
|
+
const o = e.components.nodeShape.selectorStates[0].selectedSource;
|
|
374
|
+
i.nodeShape = {
|
|
375
|
+
columnName: {
|
|
376
|
+
type: "column",
|
|
377
|
+
value: o,
|
|
378
|
+
label: await x(t, o, g)
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
if (e.components.nodeSize.selectorStates.length) {
|
|
383
|
+
const o = e.components.nodeSize.selectorStates[0].selectedSource;
|
|
384
|
+
i.nodeSize = {
|
|
385
|
+
columnName: {
|
|
386
|
+
type: "column",
|
|
387
|
+
value: o,
|
|
388
|
+
label: await x(t, o, g)
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
if (e.components.lineColor.selectorStates.length) {
|
|
393
|
+
const o = e.components.lineColor.selectorStates[0].selectedSource;
|
|
394
|
+
i.lineColor = {
|
|
395
|
+
columnName: {
|
|
396
|
+
type: "column",
|
|
397
|
+
value: o,
|
|
398
|
+
label: await x(t, o, g)
|
|
399
|
+
}
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
let p, f, v;
|
|
403
|
+
if (e.components.heatmapAnnotation.selectorStates.length && e.components.heatmapAxis.selectorStates.length) {
|
|
404
|
+
const o = e.components.heatmapAnnotation.selectorStates[0].selectedSource;
|
|
405
|
+
p = {
|
|
406
|
+
type: "column",
|
|
407
|
+
value: o,
|
|
408
|
+
label: await x(t, o, []),
|
|
409
|
+
valueLabels: (d = await N(t, o, [])) == null ? void 0 : d.toCanonicalString()
|
|
410
|
+
};
|
|
411
|
+
const m = e.components.heatmapAxis.selectorStates[0].selectedSource;
|
|
412
|
+
f = {
|
|
413
|
+
type: "column",
|
|
414
|
+
value: m,
|
|
415
|
+
label: await x(t, m, [o]),
|
|
416
|
+
valueLabels: (S = await N(t, m, [o])) == null ? void 0 : S.toCanonicalString()
|
|
417
|
+
}, v = await Promise.all(
|
|
418
|
+
e.components.heatmapGroup.selectorStates.map(async (C) => {
|
|
419
|
+
var n;
|
|
420
|
+
return {
|
|
421
|
+
type: "column",
|
|
422
|
+
value: C.selectedSource,
|
|
423
|
+
label: await x(t, C.selectedSource, [o]),
|
|
424
|
+
valueLabels: (n = await N(t, C.selectedSource, [o])) == null ? void 0 : n.toCanonicalString()
|
|
425
|
+
};
|
|
426
|
+
})
|
|
427
|
+
);
|
|
428
|
+
} else if (e.components.heatmapForSequence.selectorStates.length) {
|
|
429
|
+
const o = e.components.heatmapForSequence.selectorStates[0].selectedSource;
|
|
430
|
+
p = {
|
|
431
|
+
type: "column",
|
|
432
|
+
value: o,
|
|
433
|
+
label: await x(t, o, [])
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
return {
|
|
437
|
+
type: "dendro",
|
|
438
|
+
id: y,
|
|
439
|
+
parentId: u,
|
|
440
|
+
height: T,
|
|
441
|
+
labels: D,
|
|
442
|
+
aes: i,
|
|
443
|
+
heatmapAnnotation: p,
|
|
444
|
+
heatmapAxis: f,
|
|
445
|
+
heatmapGroup: v
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
export {
|
|
450
|
+
Q as DendroStateController,
|
|
451
|
+
K as InitialDendroState
|
|
452
|
+
};
|
|
453
|
+
//# sourceMappingURL=dendro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dendro.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/dendro.ts"],"sourcesContent":["import {AxisSpec, PColumnSpec} from '@milaboratories/pl-model-common';\nimport 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 createLinkerMap,\n getAxesSpecsFromSources,\n getColumnOrAxisLabel,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getLinkerColumnsForSource,\n} from '../../utils';\n\nconst TREE_ID_AXIS_NAME = 'pl7.app/dendrogram/treeId';\nconst NODE_ID_AXIS_NAME = 'pl7.app/dendrogram/nodeId';\nconst PATIENT_ID_AXIS_NAME = 'pl7.app/dendrogram/donorId';\n\nconst COLUMN_NODE_ID = 'id';\n\nexport interface DendroUIState extends InputStateParent<'dendro'> {\n components: {\n value: ComponentStateSimple;\n\n height: ComponentStateSimple;\n labels: ComponentStateSimple;\n\n tableContent: ComponentStateSimple;\n\n nodeColor: ComponentStateSimple;\n nodeShape: ComponentStateSimple;\n nodeSize: ComponentStateSimple;\n lineColor: ComponentStateSimple;\n\n heatmapForSequence: ComponentStateSimple;\n\n heatmapAnnotation: ComponentStateSimple;\n heatmapAxis: ComponentStateSimple;\n heatmapGroup: ComponentStateSimple;\n\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n };\n}\n\nexport const InitialDendroState: DendroUIState = {\n type: 'dendro',\n components: {\n value: {type: 'simple', selectorStates: []},\n\n height: {type: 'simple', selectorStates: []},\n labels: {type: 'simple', selectorStates: []},\n\n tableContent: {type: 'simple', selectorStates: []},\n\n nodeColor: {type: 'simple', selectorStates: []},\n nodeShape: {type: 'simple', selectorStates: []},\n nodeSize: {type: 'simple', selectorStates: []},\n lineColor: {type: 'simple', selectorStates: []},\n\n heatmapAnnotation: {type: 'simple', selectorStates: []},\n\n heatmapForSequence: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n\n heatmapAxis: {type: 'simple', selectorStates: []},\n heatmapGroup: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nexport function isDendroState(state: InputState): state is DendroUIState {\n return state.type == 'dendro';\n}\n\nexport class DendroStateController extends ControllerBase<DendroUIState> {\n readonly ignoredOptionIdNames = [NODE_ID_AXIS_NAME];\n\n constructor() {\n super(\n {\n value: new ComponentController<DendroUIState, 'value'>({\n componentName: 'value',\n allowedTypes: ['Int', 'Long'],\n annotations: {'pl7.app/dendrogram/isTopology': 'true'},\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n required: true,\n dimensionConsumer: true,\n columnsWithExtraAxesAllowed: false\n },\n }),\n height: new ComponentController<DendroUIState, 'height'>({\n componentName: 'height',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n annotations: {'pl7.app/dendrogram/isDistance': 'true'},\n parentComponents: ['value'],\n strictlyDependsOnParents: true,\n settings: {\n columnsAllowed: true,\n axesAllowed: false,\n dimensionConsumer: true,\n columnsWithExtraAxesAllowed: false\n },\n }),\n labels: new ComponentController<DendroUIState, 'labels'>({\n componentName: 'labels',\n allowedTypes: ['Int', 'String', 'Long'],\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n columnsAllowed: true,\n axesAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n tableContent: new ComponentController<DendroUIState, 'tableContent'>({\n componentName: 'tableContent',\n allowedTypes: ['Int', 'String', 'Long', 'Double', 'Float'],\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n columnsWithExtraAxesAllowed: false\n },\n }),\n nodeShape: new ComponentController<DendroUIState, 'nodeShape'>({\n componentName: 'nodeShape',\n allowedTypes: ['Int', 'String', 'Long'],\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n columnsWithExtraAxesAllowed: false\n },\n }),\n nodeSize: new ComponentController<DendroUIState, 'nodeSize'>({\n componentName: 'nodeSize',\n allowedTypes: ['Double', 'Int', 'String', 'Long'],\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n columnsWithExtraAxesAllowed: false\n },\n }),\n nodeColor: new ComponentController<DendroUIState, 'nodeColor'>({\n componentName: 'nodeColor',\n allowedTypes: ['Double', 'Int', 'String', 'Long'],\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n columnsWithExtraAxesAllowed: false\n },\n }),\n lineColor: new ComponentController<DendroUIState, 'lineColor'>({\n componentName: 'lineColor',\n allowedTypes: ['Double', 'Int', 'String', 'Long'],\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n columnsAllowed: true,\n axesAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n heatmapForSequence: new ComponentController<DendroUIState, 'heatmapForSequence'>({\n componentName: 'heatmapForSequence',\n allowedTypes: ['String'],\n annotations: {'pl7.app/type': 'sequence'},\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n columnsWithExtraAxesAllowed: false\n },\n }),\n heatmapAnnotation: new ComponentController<DendroUIState, 'heatmapAnnotation'>({\n componentName: 'heatmapAnnotation',\n allowedTypes: ['Double', 'Int', 'Long', 'Float', 'String'],\n parentComponents: ['value'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n facetBy: new ComponentController<DendroUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['value'],\n strictlyDependsOnParents: true,\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n heatmapAxis: new ComponentController<DendroUIState, 'heatmapAxis'>({\n componentName: 'heatmapAxis',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['heatmapAnnotation'],\n settings: {\n dimensionConsumer: true,\n axesAllowed: true,\n columnsAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n heatmapGroup: new ComponentController<DendroUIState, 'heatmapGroup'>({\n componentName: 'heatmapGroup',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['heatmapAnnotation'],\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n },\n {\n filters: new ComponentController<DendroUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['value', 'heatmapAnnotation'],\n strictlyDependsOnParents: false,\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n tabBy: new ComponentController<DendroUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['value', 'heatmapAnnotation'],\n strictlyDependsOnParents: false,\n settings: {\n dimensionConsumer: true,\n axesAllowed: true,\n columnsAllowed: false,\n columnsWithExtraAxesAllowed: false\n },\n }),\n }\n );\n }\n\n readyDataInputs(state: DendroUIState): boolean {\n return state.components.value.selectorStates.length > 0;\n }\n\n async createTableData(\n store: DataStore,\n state: DendroUIState\n ): Promise<\n Record<\n string,\n {\n label: string;\n spec: PColumnSpec | AxisSpec;\n data: PValue[];\n }\n >\n > {\n const result: Record<string, {label: string; spec: PColumnSpec | AxisSpec; data: PValue[]}> = {};\n\n const valueColumnIdString = state.components.value.selectorStates[0]?.selectedSource;\n const valueColumnId = columnOrAxisIdFromString(valueColumnIdString);\n if (!valueColumnIdString || !isColumnId(valueColumnId)) {\n throw Error('Value column is not valid');\n }\n\n const linkerMap = await createLinkerMap(store);\n\n // filters for column/axes data requests\n const filters = getFiltersFromStates([\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]);\n const filterColumns = [\n ...state.components.filters.selectorStates.map(s => columnOrAxisIdFromString(s.selectedSource)),\n ...state.components.tabBy.selectorStates.map(s => columnOrAxisIdFromString(s.selectedSource)),\n ].filter(isColumnId);\n\n const parentSources = [valueColumnIdString];\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n\n const primarySources: (ColumnId | AxisId)[] = [];\n const secondarySources: (ColumnId | AxisId)[] = [];\n const linkerColumns:ColumnId[] = [];\n\n const primaryInputs = [state.components.value];\n const secondaryInputs = [\n state.components.tableContent,\n // next components can content data mapped on tree\n state.components.labels,\n state.components.nodeColor,\n state.components.nodeSize,\n state.components.nodeShape,\n state.components.lineColor,\n ];\n\n const idMap: Record<string, string> = {};\n\n for (const primaryInput of primaryInputs) {\n for (const {selectedSource, fixedAxes} of primaryInput.selectorStates) {\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 const id = labelsColumnId ?? columnOrAxisIdFromString(selectedSource);\n idMap[id.toCanonicalString()] = selectedSource;\n primarySources.push(id);\n }\n }\n for (const secondaryInput of secondaryInputs) {\n for (const {selectedSource, fixedAxes} of secondaryInput.selectorStates) {\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 const id = labelsColumnId ?? columnOrAxisIdFromString(selectedSource);\n idMap[selectedSource] = id.toCanonicalString();\n secondarySources.push(id);\n }\n }\n\n // use outer join between primary columns - inner join can remove useful points in tree and annotations\n const data = await store.pFrameProvider.getTableOuterJoin(\n [...primarySources, ...filterColumns, ...linkerColumns],\n secondarySources,\n filters,\n false\n );\n\n for (const source of [...primarySources, ...secondarySources]) {\n const responseKey = source.toCanonicalString();\n const resultKey = idMap[source.toCanonicalString()];\n result[resultKey] = {\n data: isColumnId(source) ? data.columnsData[responseKey] : data.axesData[responseKey],\n spec: isColumnId(source) ? data.columnSpecs[responseKey] : data.axesSpecs[responseKey],\n label: await getColumnOrAxisLabel(store, resultKey, parentSources),\n };\n }\n\n const nodeIdAxis = Object.keys(data.axesData).find(\n axisIdStr => columnOrAxisIdFromString(axisIdStr)?.name === NODE_ID_AXIS_NAME\n );\n if (!nodeIdAxis) {\n console.warn('Missed node id axis in data column');\n } else {\n result[COLUMN_NODE_ID] = {\n data: data.axesData[nodeIdAxis],\n spec: {kind: 'PColumn', valueType: 'Int', name: 'Node id'} as PColumnSpec,\n label: 'Node id',\n };\n }\n return result;\n }\n\n async createDataByColumns(store: DataStore, state: DendroUIState): Promise<PlotDataAndSettings['data']> {\n const valueColumnIdString = state.components.value.selectorStates[0]?.selectedSource;\n const annotationColumnIdString = state.components.heatmapAnnotation.selectorStates[0]?.selectedSource;\n const valueColumnId = columnOrAxisIdFromString(valueColumnIdString);\n const annotationColumnId = annotationColumnIdString ? columnOrAxisIdFromString(annotationColumnIdString) : null;\n\n if (!valueColumnIdString || !isColumnId(valueColumnId)) {\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 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\n const parentSources = [valueColumnId, annotationColumnId]\n .filter(isColumnId)\n .map(item => item.toCanonicalString());\n\n const primarySources: (ColumnId | AxisId)[] = [];\n const secondarySources: (ColumnId | AxisId)[] = [];\n const primarySourcesFixedAxes:{idx: number, value: PValue}[][] = [];\n const secondarySourcesFixedAxes:{idx: number, value: PValue}[][] = [];\n\n const primaryInputs = [\n state.components.value,\n state.components.height,\n state.components.labels,\n state.components.nodeColor,\n state.components.nodeSize,\n state.components.nodeShape,\n state.components.lineColor,\n state.components.heatmapAnnotation,\n state.components.heatmapForSequence,\n ];\n const secondaryInputs = [\n state.components.facetBy,\n state.components.heatmapAxis,\n state.components.heatmapGroup,\n state.components.tableContent,\n ];\n for (const primaryInput of primaryInputs) {\n for (const {selectedSource, fixedAxes} of primaryInput.selectorStates) {\n primarySources.push(columnOrAxisIdFromString(selectedSource));\n primarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n primarySources.push(labelsColumnId);\n }\n }\n }\n filterSelectedStates.forEach(({fixedAxes}) => {\n primarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n });\n for (const secondaryInput of secondaryInputs) {\n for (const {selectedSource, fixedAxes} of secondaryInput.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource));\n secondarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n secondarySources.push(labelsColumnId);\n }\n }\n }\n\n // use outer join between primary columns - inner join can remove useful points in tree and annotations\n const data = await store.pFrameProvider.getTableOuterJoin(\n [...primarySources, ...filterColumns],\n secondarySources,\n filters,\n false,\n primarySourcesFixedAxes,\n secondarySourcesFixedAxes\n );\n\n [...primarySources, ...secondarySources].forEach(item => {\n const key = item.toCanonicalString();\n const columnData = isColumnId(item) ? data.columnsData[key] : data.axesData[key];\n dataByColumns.values[key] = [];\n dataByColumns.values[key] = columnData;\n });\n\n const nodeIdAxis = Object.keys(data.axesData).find(\n axisIdStr => columnOrAxisIdFromString(axisIdStr)?.name === NODE_ID_AXIS_NAME\n );\n\n if (!nodeIdAxis) {\n console.warn('Missed node id axis in data column');\n } else {\n dataByColumns.values[COLUMN_NODE_ID] = data.axesData[nodeIdAxis];\n }\n\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: DendroUIState): Promise<Record<string, unknown>> {\n const dataColumnIdString = state.components.value.selectorStates[0]?.selectedSource;\n const dataColumnId = columnOrAxisIdFromString(dataColumnIdString);\n if (!dataColumnIdString || !isColumnId(dataColumnId)) {\n throw Error('Data column is not valid');\n }\n\n const parentSourcesTree = [dataColumnIdString];\n\n const id = {type: 'column', value: COLUMN_NODE_ID};\n const parentId = {type: 'column', value: dataColumnIdString};\n const height = state.components.height.selectorStates.length\n ? {type: 'column', value: state.components.height.selectorStates[0].selectedSource}\n : undefined;\n const labels = state.components.labels.selectorStates.length\n ? {type: 'column', value: state.components.labels.selectorStates[0].selectedSource}\n : undefined;\n const aes: {\n nodeColor?: {columnName: {type: 'column'; value: string; label: string}};\n nodeShape?: {columnName: {type: 'column'; value: string; label: string}};\n nodeSize?: {columnName: {type: 'column'; value: string; label: string}};\n lineColor?: {columnName: {type: 'column'; value: string; label: string}};\n } = {};\n if (state.components.nodeColor.selectorStates.length) {\n const idString = state.components.nodeColor.selectorStates[0].selectedSource;\n aes.nodeColor = {\n columnName: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSourcesTree),\n },\n };\n }\n if (state.components.nodeShape.selectorStates.length) {\n const idString = state.components.nodeShape.selectorStates[0].selectedSource;\n aes.nodeShape = {\n columnName: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSourcesTree),\n },\n };\n }\n if (state.components.nodeSize.selectorStates.length) {\n const idString = state.components.nodeSize.selectorStates[0].selectedSource;\n aes.nodeSize = {\n columnName: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSourcesTree),\n },\n };\n }\n if (state.components.lineColor.selectorStates.length) {\n const idString = state.components.lineColor.selectorStates[0].selectedSource;\n aes.lineColor = {\n columnName: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSourcesTree),\n },\n };\n }\n\n let heatmapAnnotation;\n let heatmapAxis;\n let heatmapGroup;\n\n // heatmap with user axis, with not sequence as value\n if (\n state.components.heatmapAnnotation.selectorStates.length &&\n state.components.heatmapAxis.selectorStates.length\n ) {\n const annotationSource = state.components.heatmapAnnotation.selectorStates[0].selectedSource;\n heatmapAnnotation = {\n type: 'column',\n value: annotationSource,\n label: await getColumnOrAxisLabel(store, annotationSource, []),\n valueLabels: (await getColumnOrAxisValueLabelsId(store, annotationSource, []))?.toCanonicalString(),\n };\n const axisSource = state.components.heatmapAxis.selectorStates[0].selectedSource;\n heatmapAxis = {\n type: 'column',\n value: axisSource,\n label: await getColumnOrAxisLabel(store, axisSource, [annotationSource]),\n valueLabels: (\n await getColumnOrAxisValueLabelsId(store, axisSource, [annotationSource])\n )?.toCanonicalString(),\n };\n heatmapGroup = await Promise.all(\n state.components.heatmapGroup.selectorStates.map(async selectorState => {\n return {\n type: 'column',\n value: selectorState.selectedSource,\n label: await getColumnOrAxisLabel(store, selectorState.selectedSource, [annotationSource]),\n valueLabels: (\n await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, [annotationSource])\n )?.toCanonicalString(),\n };\n })\n );\n\n // heatmap containing sequence, as axis using order of sequence element\n } else if (state.components.heatmapForSequence.selectorStates.length) {\n const annotationSource = state.components.heatmapForSequence.selectorStates[0].selectedSource;\n heatmapAnnotation = {\n type: 'column',\n value: annotationSource,\n label: await getColumnOrAxisLabel(store, annotationSource, []),\n };\n }\n\n return {\n type: 'dendro',\n id,\n parentId,\n height,\n labels,\n aes,\n heatmapAnnotation,\n heatmapAxis,\n heatmapGroup,\n };\n }\n}\n"],"names":["NODE_ID_AXIS_NAME","COLUMN_NODE_ID","InitialDendroState","DendroStateController","ControllerBase","ComponentController","__publicField","state","store","result","valueColumnIdString","_a","valueColumnId","columnOrAxisIdFromString","isColumnId","linkerMap","createLinkerMap","filters","getFiltersFromStates","filterColumns","s","parentSources","parentAxesList","getAxesSpecsFromSources","primarySources","secondarySources","linkerColumns","primaryInputs","secondaryInputs","idMap","primaryInput","selectedSource","fixedAxes","getLinkerColumnsForSource","id","getColumnOrAxisValueLabelsId","secondaryInput","data","source","responseKey","resultKey","getColumnOrAxisLabel","nodeIdAxis","axisIdStr","annotationColumnIdString","_b","annotationColumnId","dataByColumns","canonicalize","filterSelectedStates","item","primarySourcesFixedAxes","secondarySourcesFixedAxes","axisIdx","axisValue","labelsColumnId","key","columnData","dataColumnIdString","dataColumnId","parentSourcesTree","parentId","height","labels","aes","idString","heatmapAnnotation","heatmapAxis","heatmapGroup","annotationSource","axisSource","_c","selectorState"],"mappings":"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","x_google_ignoreList":[0]}
|