@milaboratories/graph-maker 1.1.157 → 1.1.159
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/constantsCommon.d.ts +1 -0
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +17 -16
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +104 -93
- package/dist/GraphMaker/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
- package/dist/GraphMaker/index.vue.js +33 -33
- package/dist/GraphMaker/index.vue.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +1 -0
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js +11 -11
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +136 -135
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js +2 -2
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +115 -107
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsCanvas.js +99 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsCanvas.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsSvg.js +57 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsSvg.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/index.js +43 -43
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js +85 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Captions/AxisCaptions.js +5 -5
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Captions/GroupCaptions.js +16 -16
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +191 -197
- 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 +29 -27
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js +38 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js +44 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/constants.js +16 -15
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/constants.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +63 -66
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +64 -62
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateChartSideElementSizes.js +9 -9
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/ChartsGroup.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +5 -4
- package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +10 -8
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +21 -21
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +19 -19
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +8 -8
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +9 -9
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +7 -7
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js +2 -2
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js +59 -57
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/components/PlDataTable.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js +13 -13
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +137 -133
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +73 -74
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -5,18 +5,18 @@ import { LinkerMap as E } from "./node_modules/@milaboratories/pl-model-common/d
|
|
|
5
5
|
import "./node_modules/@milaboratories/pl-model-common/dist/plid.js";
|
|
6
6
|
import "./node_modules/@milaboratories/pl-model-common/dist/ref.js";
|
|
7
7
|
import { ColumnId as A, AxisId as g, columnOrAxisIdFromString as S, isColumnId as y, isAxisId as C } from "./spec.js";
|
|
8
|
-
import { IS_LINKER_COLUMN as
|
|
9
|
-
function X(
|
|
10
|
-
const
|
|
11
|
-
return y(
|
|
8
|
+
import { IS_LINKER_COLUMN as M, MULTIPLIES_BY as F, COLUMN_LABEL_KEY as P, IS_VIRTUAL_COLUMN as k, SUBSET_FILTER_KEY as O, AXIS_NATURE_KEY as _, COLUMN_NAME_KEY as R, COLUMN_DOMAIN_KEY as V } from "./constants.js";
|
|
9
|
+
function X(t) {
|
|
10
|
+
const n = S(t), { name: a, type: o } = n;
|
|
11
|
+
return y(n) ? {
|
|
12
12
|
kind: "column",
|
|
13
13
|
name: "",
|
|
14
14
|
label: " ",
|
|
15
|
-
type:
|
|
16
|
-
spec: { axesSpec: [], kind: "PColumn", valueType:
|
|
15
|
+
type: n.type,
|
|
16
|
+
spec: { axesSpec: [], kind: "PColumn", valueType: n.type, name: a },
|
|
17
17
|
annotations: void 0,
|
|
18
18
|
isSubsetFilter: !1,
|
|
19
|
-
isDiscreteFilter:
|
|
19
|
+
isDiscreteFilter: n.type === "String"
|
|
20
20
|
} : {
|
|
21
21
|
kind: "axis",
|
|
22
22
|
name: "",
|
|
@@ -32,19 +32,18 @@ function X(n) {
|
|
|
32
32
|
parentSources: []
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
function Z(
|
|
35
|
+
function Z(t) {
|
|
36
36
|
return {
|
|
37
|
-
type:
|
|
38
|
-
components: { ...
|
|
39
|
-
dividedAxes: { ...
|
|
37
|
+
type: t.type,
|
|
38
|
+
components: { ...t.components },
|
|
39
|
+
dividedAxes: { ...t.dividedAxes }
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
function L(
|
|
43
|
-
|
|
44
|
-
return Math.floor(n);
|
|
42
|
+
function L(t, n) {
|
|
43
|
+
return n === "Int" || n === "Long" ? Math.floor(t) : t;
|
|
45
44
|
}
|
|
46
|
-
function B(
|
|
47
|
-
const { selectedSource:
|
|
45
|
+
function B(t) {
|
|
46
|
+
const { selectedSource: n, type: a, selectedFilterRange: o, selectedFilterValues: i } = t, e = S(n);
|
|
48
47
|
if (!e)
|
|
49
48
|
throw Error("Empty source selected");
|
|
50
49
|
if (a === "range") {
|
|
@@ -92,27 +91,27 @@ function B(n) {
|
|
|
92
91
|
}
|
|
93
92
|
];
|
|
94
93
|
}
|
|
95
|
-
function ee(
|
|
96
|
-
const
|
|
97
|
-
for (const a of
|
|
98
|
-
|
|
99
|
-
return
|
|
94
|
+
function ee(t) {
|
|
95
|
+
const n = [];
|
|
96
|
+
for (const a of t)
|
|
97
|
+
n.push(...B(a));
|
|
98
|
+
return n;
|
|
100
99
|
}
|
|
101
|
-
function b(
|
|
102
|
-
var
|
|
103
|
-
if ("kind" in
|
|
104
|
-
const e =
|
|
100
|
+
function b(t) {
|
|
101
|
+
var n, a;
|
|
102
|
+
if ("kind" in t && t.kind === "PColumn") {
|
|
103
|
+
const e = t.name ?? ((n = t.annotations) == null ? void 0 : n[R]), r = t.domain ?? ((a = t.annotations) == null ? void 0 : a[V]);
|
|
105
104
|
return w({ name: e, domain: r });
|
|
106
105
|
}
|
|
107
|
-
const o =
|
|
106
|
+
const o = t.name, i = t.domain;
|
|
108
107
|
return w({ name: o, domain: i });
|
|
109
108
|
}
|
|
110
|
-
async function N(
|
|
109
|
+
async function N(t, n, a) {
|
|
111
110
|
for (const o of a) {
|
|
112
111
|
const i = S(o);
|
|
113
112
|
if (y(i)) {
|
|
114
|
-
const e = await
|
|
115
|
-
(s) => g.fromAxisSpec(s).toCanonicalString() ===
|
|
113
|
+
const e = await t.pFrameProvider.getColumnSpecById(i), r = ((e == null ? void 0 : e.axesSpec) ?? []).find(
|
|
114
|
+
(s) => g.fromAxisSpec(s).toCanonicalString() === n.toCanonicalString()
|
|
116
115
|
);
|
|
117
116
|
if (r)
|
|
118
117
|
return r;
|
|
@@ -121,45 +120,45 @@ async function N(n, t, a) {
|
|
|
121
120
|
return null;
|
|
122
121
|
}
|
|
123
122
|
const T = "pl7.app/label";
|
|
124
|
-
async function D(
|
|
125
|
-
const o = S(
|
|
123
|
+
async function D(t, n, a) {
|
|
124
|
+
const o = S(n);
|
|
126
125
|
if (y(o))
|
|
127
126
|
return;
|
|
128
127
|
async function i(c) {
|
|
129
|
-
const u = await N(
|
|
128
|
+
const u = await N(t, c, a);
|
|
130
129
|
return u ? b(u) : null;
|
|
131
130
|
}
|
|
132
|
-
const e = await
|
|
131
|
+
const e = await t.pFrameProvider.getColumnsFull([], !1, void 0, [T]), r = await i(o), s = e.find(({ spec: c }) => c && c.axesSpec.length === 1 && b(c.axesSpec[0]) === r);
|
|
133
132
|
return s ? new A({ name: s.columnId, type: s.spec.valueType }) : void 0;
|
|
134
133
|
}
|
|
135
|
-
async function U(
|
|
136
|
-
const o = S(
|
|
134
|
+
async function U(t, n, a) {
|
|
135
|
+
const o = S(n), i = await D(t, n, a);
|
|
137
136
|
let e;
|
|
138
|
-
return y(o) ? e = await
|
|
137
|
+
return y(o) ? e = await t.pFrameProvider.getColumnSpecById(i ?? o) : e = i ? await t.pFrameProvider.getColumnSpecById(i) : await N(t, o, a), e;
|
|
139
138
|
}
|
|
140
|
-
async function
|
|
139
|
+
async function te(t, n, a) {
|
|
141
140
|
var o;
|
|
142
|
-
const i = await U(
|
|
141
|
+
const i = await U(t, n, a);
|
|
143
142
|
if (!i)
|
|
144
143
|
return "";
|
|
145
144
|
const e = ((o = i.annotations) == null ? void 0 : o[P]) ?? i.name;
|
|
146
|
-
return
|
|
145
|
+
return t.labelsModifier(i.name, e);
|
|
147
146
|
}
|
|
148
|
-
function
|
|
149
|
-
var
|
|
150
|
-
const o = (a = (
|
|
147
|
+
function ne(t) {
|
|
148
|
+
var n, a;
|
|
149
|
+
const o = (a = (n = t.annotations) == null ? void 0 : n[_]) == null ? void 0 : a.toLowerCase();
|
|
151
150
|
return !!o && o !== "homogenous" && o !== "homogeneous";
|
|
152
151
|
}
|
|
153
|
-
function oe(
|
|
154
|
-
var
|
|
155
|
-
return !
|
|
152
|
+
function oe(t) {
|
|
153
|
+
var n, a;
|
|
154
|
+
return !t.name.includes("metadata") && ((n = t.annotations) == null ? void 0 : n[k]) !== "true" && ((a = t.annotations) == null ? void 0 : a[O]) !== "true";
|
|
156
155
|
}
|
|
157
|
-
async function ae(
|
|
156
|
+
async function ae(t, n) {
|
|
158
157
|
const a = /* @__PURE__ */ new Set(), o = [];
|
|
159
|
-
for (const i of
|
|
158
|
+
for (const i of n) {
|
|
160
159
|
const e = S(i);
|
|
161
160
|
if (y(e)) {
|
|
162
|
-
const r = await
|
|
161
|
+
const r = await t.pFrameProvider.getColumnSpecById(e);
|
|
163
162
|
if (!r)
|
|
164
163
|
continue;
|
|
165
164
|
r.axesSpec.forEach((s) => {
|
|
@@ -170,19 +169,19 @@ async function ae(n, t) {
|
|
|
170
169
|
}
|
|
171
170
|
return o;
|
|
172
171
|
}
|
|
173
|
-
async function re(
|
|
174
|
-
const
|
|
172
|
+
async function re(t) {
|
|
173
|
+
const n = await t.pFrameProvider.getColumnsFull(
|
|
175
174
|
[],
|
|
176
175
|
!1,
|
|
177
176
|
void 0,
|
|
178
177
|
void 0,
|
|
179
|
-
{ [
|
|
178
|
+
{ [M]: "true" }
|
|
180
179
|
);
|
|
181
|
-
return E.fromColumns(
|
|
180
|
+
return E.fromColumns(n);
|
|
182
181
|
}
|
|
183
|
-
async function ie(
|
|
184
|
-
var
|
|
185
|
-
const e = await
|
|
182
|
+
async function ie(t) {
|
|
183
|
+
var n, a, o, i;
|
|
184
|
+
const e = await t.pFrameProvider.getColumnsFull(
|
|
186
185
|
[],
|
|
187
186
|
!1,
|
|
188
187
|
void 0,
|
|
@@ -191,7 +190,7 @@ async function ie(n) {
|
|
|
191
190
|
[F]
|
|
192
191
|
), r = /* @__PURE__ */ new Map();
|
|
193
192
|
for (const s of e) {
|
|
194
|
-
const c = s.spec.axesSpec, u = (a = (
|
|
193
|
+
const c = s.spec.axesSpec, u = (a = (n = s.spec) == null ? void 0 : n.annotations) == null ? void 0 : a[F];
|
|
195
194
|
if (c.length !== 2 || !u)
|
|
196
195
|
continue;
|
|
197
196
|
const l = new A({ name: s.columnId, type: s.spec.valueType }).toCanonicalString();
|
|
@@ -204,21 +203,21 @@ async function ie(n) {
|
|
|
204
203
|
}
|
|
205
204
|
return r;
|
|
206
205
|
}
|
|
207
|
-
function K(
|
|
206
|
+
function K(t, n, a, o) {
|
|
208
207
|
var i;
|
|
209
|
-
const e =
|
|
208
|
+
const e = t.toCanonicalString(), r = [...new Set(o.map((l) => g.fromAxisSpec(l).toCanonicalString()))].find((l) => {
|
|
210
209
|
var f;
|
|
211
210
|
return (f = a.get(l)) == null ? void 0 : f.get(e);
|
|
212
211
|
}), s = r ? (i = a.get(r)) == null ? void 0 : i.get(e) : null;
|
|
213
212
|
if (s)
|
|
214
213
|
return [S(s.parentSource)];
|
|
215
214
|
const c = x(o), u = x(
|
|
216
|
-
|
|
215
|
+
n.getReachableByLinkersAxesFromAxes(c)
|
|
217
216
|
).find((l) => g.fromAxisSpec(l).toCanonicalString() === e);
|
|
218
|
-
return u ?
|
|
217
|
+
return u ? n.getLinkerColumnsForAxes({ from: c, to: [u], throwWhenNoLinkExists: !1 }).map((l) => new A({ name: l.columnId, type: l.spec.valueType })) : [];
|
|
219
218
|
}
|
|
220
|
-
async function Y(
|
|
221
|
-
const e = await
|
|
219
|
+
async function Y(t, n, a, o, i) {
|
|
220
|
+
const e = await n.pFrameProvider.getColumnSpecById(t);
|
|
222
221
|
if (!e)
|
|
223
222
|
return [];
|
|
224
223
|
let r = [];
|
|
@@ -227,23 +226,23 @@ async function Y(n, t, a, o, i) {
|
|
|
227
226
|
const p = g.fromAxisSpec(m).toCanonicalString();
|
|
228
227
|
if (s.has(p))
|
|
229
228
|
return !1;
|
|
230
|
-
const v = c.find((
|
|
229
|
+
const v = c.find(($) => {
|
|
231
230
|
var h;
|
|
232
|
-
return (h = o.get(
|
|
231
|
+
return (h = o.get($)) == null ? void 0 : h.get(p);
|
|
233
232
|
}), I = v ? (d = o.get(v)) == null ? void 0 : d.get(p) : null;
|
|
234
233
|
return I ? (r.push(S(I.parentSource)), !1) : !0;
|
|
235
234
|
}), l = x(i), f = x(u);
|
|
236
235
|
return r = r.concat(a.getLinkerColumnsForAxes({ from: l, to: f, throwWhenNoLinkExists: !1 }).map((m) => new A({ name: m.columnId, type: m.spec.valueType }))), r;
|
|
237
236
|
}
|
|
238
|
-
async function se(
|
|
237
|
+
async function se(t, n, a, o, i) {
|
|
239
238
|
const e = S(i);
|
|
240
|
-
return y(e) ? Y(e,
|
|
239
|
+
return y(e) ? Y(e, t, n, a, o) : K(e, n, a, o);
|
|
241
240
|
}
|
|
242
|
-
function le(
|
|
243
|
-
const i = new Set(
|
|
241
|
+
function le(t, n, a, o) {
|
|
242
|
+
const i = new Set(n.map((u) => g.fromAxisSpec(u).toCanonicalString())), e = [...i], r = x(t.axesSpec).filter(
|
|
244
243
|
// axes in data axes list are allowed, check the rest
|
|
245
244
|
(u) => !i.has(g.fromAxisSpec(u).toCanonicalString())
|
|
246
|
-
), s = x(
|
|
245
|
+
), s = x(n), c = E.getAxesRoots(r);
|
|
247
246
|
return a.getNonLinkableAxes(s, c).filter((u) => {
|
|
248
247
|
const l = g.fromAxisSpec(u).toCanonicalString();
|
|
249
248
|
return !e.some((f) => {
|
|
@@ -252,14 +251,14 @@ function le(n, t, a, o) {
|
|
|
252
251
|
});
|
|
253
252
|
});
|
|
254
253
|
}
|
|
255
|
-
function ce(
|
|
256
|
-
const a =
|
|
254
|
+
function ce(t, n) {
|
|
255
|
+
const a = n.columnsData[Object.keys(n.columnsData)[0]].length, o = new Int32Array(a).fill(0), i = t.filter(
|
|
257
256
|
(e) => e.selectedFilterRange && (e.selectedFilterRange.min !== void 0 || e.selectedFilterRange.max !== void 0) || e.selectedFilterValues && e.selectedFilterValues.length
|
|
258
257
|
);
|
|
259
258
|
for (let e = 0; e < a; e++) {
|
|
260
259
|
let r = i.length === 0;
|
|
261
260
|
for (let s = 0; s < i.length; s++) {
|
|
262
|
-
const { selectedSource: c, selectedFilterValues: u, selectedFilterRange: l, type: f } =
|
|
261
|
+
const { selectedSource: c, selectedFilterValues: u, selectedFilterRange: l, type: f } = t[s], m = S(c), d = (y(m) ? n.columnsData[c] : n.axesData[c])[e];
|
|
263
262
|
if (u !== void 0 && u.length && (r = r || u.includes(String(d))), l !== void 0 && (l.min !== void 0 || l.max !== void 0) && typeof d == "number") {
|
|
264
263
|
let p = !0;
|
|
265
264
|
l.min !== void 0 && (p = p && d >= l.min), l.max !== void 0 && (p = p && d <= l.max), r = r || p;
|
|
@@ -271,13 +270,13 @@ function ce(n, t) {
|
|
|
271
270
|
return o;
|
|
272
271
|
}
|
|
273
272
|
export {
|
|
274
|
-
|
|
273
|
+
ne as axisIsNonHomogenous,
|
|
275
274
|
ce as createHighlightColumn,
|
|
276
275
|
re as createLinkerMap,
|
|
277
276
|
ie as createMultipliesByMap,
|
|
278
277
|
oe as dataColumnPredicateDefault,
|
|
279
278
|
ae as getAxesSpecsFromSources,
|
|
280
|
-
|
|
279
|
+
te as getColumnOrAxisLabel,
|
|
281
280
|
U as getColumnOrAxisSpec,
|
|
282
281
|
D as getColumnOrAxisValueLabelsId,
|
|
283
282
|
X as getDefaultInfo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../node_modules/@milaboratories/pf-plots/src/utils.ts"],"sourcesContent":["import { getNormalizedAxesList, LinkerMap, SingleValuePredicateV2, ValueType } from '@milaboratories/pl-model-common';\nimport { TableOuterJoinResult } from './pframe/ColumnsProvider';\nimport type { DataStore, PValue } from './store';\nimport type { ColumnOrAxisIdString } from './spec';\nimport { isAxisId } from './spec';\nimport { AxisId, ColumnId, columnOrAxisIdFromString, isColumnId } from './spec';\nimport type { AxisData, ColumnData, InputState, SelectorStateFilter } from './common';\nimport {\n AXIS_NATURE_KEY,\n COLUMN_DOMAIN_KEY,\n COLUMN_LABEL_KEY,\n COLUMN_NAME_KEY, IS_LINKER_COLUMN,\n IS_VIRTUAL_COLUMN,\n MULTIPLIES_BY,\n SUBSET_FILTER_KEY,\n} from './constants';\nimport {\n AxisSpec,\n type PColumnSpec,\n type PObjectId,\n type PTableRecordSingleValueFilterV2,\n} from '@milaboratories/pl-model-common';\nimport canonicalize from 'canonicalize';\nimport { DemoDataStore } from './demoStore';\n\nexport type OptionsInfo = Map<ColumnOrAxisIdString, ColumnData | AxisData>;\nexport function getDefaultInfo(sourceIdStr: ColumnOrAxisIdString): ColumnData | AxisData {\n const item = columnOrAxisIdFromString(sourceIdStr);\n const { name, type } = item;\n if (isColumnId(item)) {\n return {\n kind: 'column',\n name: '',\n label: ' ',\n type: item.type,\n spec: { axesSpec: [], kind: 'PColumn', valueType: item.type, name },\n annotations: undefined,\n isSubsetFilter: false,\n isDiscreteFilter: item.type === 'String'\n };\n }\n return {\n kind: 'axis',\n name: '',\n label: ' ',\n type: type,\n spec: { type, name },\n mustBeConsumed: false,\n dividable: false,\n annotations: undefined,\n isSubsetFilter: false,\n isDiscreteFilter: type === 'String',\n isNonHomogenous: false,\n parentSources: [],\n };\n}\n\nexport function getStateCopy<State extends InputState>(state: State): State {\n return {\n type: state.type,\n components: { ...state.components },\n dividedAxes: { ...state.dividedAxes },\n } as State;\n}\n\nfunction normalizeFilterReference(v: number, valueType: ValueType) {\n if (valueType === 'Int' || valueType === 'Long') {\n return Math.floor(v);\n }\n return\n}\nexport function getFilterFromState(state: SelectorStateFilter): PTableRecordSingleValueFilterV2[] {\n const { selectedSource, type, selectedFilterRange, selectedFilterValues } = state;\n const id = columnOrAxisIdFromString(selectedSource);\n if (!id) {\n throw Error('Empty source selected');\n }\n if (type === 'range') {\n const rangeFilters = [];\n if (selectedFilterRange?.max !== undefined) {\n rangeFilters.push({\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : { type: 'column' as const, id: id.name as PObjectId },\n predicate: {\n operator: 'LessOrEqual',\n reference: normalizeFilterReference(selectedFilterRange.max, id.type)\n } as SingleValuePredicateV2,\n })\n }\n if (selectedFilterRange?.min !== undefined) {\n rangeFilters.push({\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : { type: 'column' as const, id: id.name as PObjectId },\n predicate: {\n operator: 'GreaterOrEqual',\n reference: normalizeFilterReference(selectedFilterRange.min, id.type)\n } as SingleValuePredicateV2,\n })\n }\n return rangeFilters;\n } else if (type === 'subset') {\n return [\n {\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : { type: 'column' as const, id: id.name as PObjectId },\n predicate: {\n operator: 'Not',\n operand: { operator: 'IsNA' }\n } as SingleValuePredicateV2,\n },\n ]\n }\n if (typeof selectedFilterValues === 'undefined' || !selectedFilterValues.length) {\n return [];\n }\n return [\n {\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : {\n type: 'column' as const,\n id: id.name as PObjectId,\n },\n predicate: {\n operator: 'Or',\n operands: selectedFilterValues.map((v) => {\n const reference = id.type === 'String'\n ? String(v)\n : (Number(v) as string | number);\n return {\n operator: 'Equal',\n reference\n } as SingleValuePredicateV2\n })\n }\n },\n ];\n}\n\nexport function getFiltersFromStates(states: SelectorStateFilter[]): PTableRecordSingleValueFilterV2[] {\n const result: PTableRecordSingleValueFilterV2[] = [];\n for (const state of states) {\n result.push(...getFilterFromState(state));\n }\n return result;\n}\n\nexport function getGlobalId(spec: PColumnSpec): string;\nexport function getGlobalId(spec: AxisSpec): string;\nexport function getGlobalId(spec: AxisSpec | PColumnSpec): string {\n if ('kind' in spec && spec.kind === 'PColumn') {\n const name = spec.name ?? spec.annotations?.[COLUMN_NAME_KEY];\n const domain = spec.domain ?? spec.annotations?.[COLUMN_DOMAIN_KEY];\n return canonicalize({ name, domain })!;\n }\n const name = spec.name;\n const domain = spec.domain;\n return canonicalize({ name, domain })!;\n}\n\nasync function getAxisSpecFromParents(store: DataStore, axisId: AxisId, parentSources: ColumnOrAxisIdString[]) {\n for (const parentSource of parentSources) {\n const parentId = columnOrAxisIdFromString(parentSource);\n if (isColumnId(parentId)) {\n const columnSpec = await store.pFrameProvider.getColumnSpecById(parentId);\n const spec = (columnSpec?.axesSpec ?? []).find(\n s => AxisId.fromAxisSpec(s).toCanonicalString() === axisId.toCanonicalString(),\n );\n if (spec) {\n return spec;\n }\n }\n }\n return null;\n}\n\nconst LABEL_COLUMN_NAME = 'pl7.app/label';\n\nexport async function getColumnOrAxisValueLabelsId(\n store: DataStore,\n selectedSource: ColumnOrAxisIdString,\n parentSources: ColumnOrAxisIdString[],\n): Promise<ColumnId | undefined> {\n const id = columnOrAxisIdFromString(selectedSource);\n if (isColumnId(id)) {\n return undefined;\n }\n async function getAxisGlobalId(axisId: AxisId) {\n const spec = await getAxisSpecFromParents(store, axisId, parentSources);\n return spec ? getGlobalId(spec) : null;\n }\n const labelColumns = await store.pFrameProvider.getColumnsFull([], false, undefined, [LABEL_COLUMN_NAME]);\n const sourceGlobalId = await getAxisGlobalId(id);\n const labelColumn = labelColumns.find(({ spec }) => {\n return spec && spec.axesSpec.length === 1 && getGlobalId(spec.axesSpec[0]) === sourceGlobalId;\n });\n return labelColumn ? new ColumnId({ name: labelColumn.columnId, type: labelColumn.spec.valueType }) : undefined;\n}\n\nexport async function getColumnOrAxisSpec(\n store: DataStore,\n selectedSource: ColumnOrAxisIdString,\n parentSources: ColumnOrAxisIdString[],\n) {\n const selectedId = columnOrAxisIdFromString(selectedSource);\n const labelsColumn = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n\n let spec: AxisSpec | PColumnSpec | null;\n if (isColumnId(selectedId)) {\n spec = await store.pFrameProvider.getColumnSpecById(labelsColumn ?? selectedId);\n } else {\n spec = labelsColumn\n ? await store.pFrameProvider.getColumnSpecById(labelsColumn)\n : await getAxisSpecFromParents(store, selectedId, parentSources);\n }\n return spec;\n}\n\nexport async function getColumnOrAxisLabel(\n store: DataStore,\n selectedSource: ColumnOrAxisIdString,\n parentSources: ColumnOrAxisIdString[],\n) {\n const spec = await getColumnOrAxisSpec(store, selectedSource, parentSources);\n if (!spec) {\n return '';\n }\n const label = spec.annotations?.[COLUMN_LABEL_KEY] ?? spec.name;\n return store.labelsModifier(spec.name, label);\n}\n\nexport function axisIsNonHomogenous(spec: AxisSpec) {\n const axisNature = spec.annotations?.[AXIS_NATURE_KEY]?.toLowerCase();\n return Boolean(axisNature) && axisNature !== 'homogenous' && axisNature !== 'homogeneous';\n}\n\nexport function dataColumnPredicateDefault(spec: PColumnSpec) {\n return !spec.name.includes('metadata') && !(spec.annotations?.[IS_VIRTUAL_COLUMN] === 'true') && !(spec.annotations?.[SUBSET_FILTER_KEY] === 'true');\n}\n\nexport async function getAxesSpecsFromSources(store: DataStore, idStrs: ColumnOrAxisIdString[]): Promise<AxisSpec[]> {\n const set = new Set<ColumnOrAxisIdString>();\n const result: AxisSpec[] = [];\n for (const idStr of idStrs) {\n const id = columnOrAxisIdFromString(idStr);\n if (isColumnId(id)) {\n const spec = await store.pFrameProvider.getColumnSpecById(id);\n if (!spec) {\n continue;\n }\n spec.axesSpec.forEach(axisSpec => {\n const id = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n if (!set.has(id)) {\n set.add(id);\n result.push(axisSpec);\n }\n })\n }\n }\n return result;\n}\n\nexport async function createLinkerMap(store: DemoDataStore) {\n const allLinkerColumns = await store.pFrameProvider.getColumnsFull(\n [], false, undefined, undefined,\n { [IS_LINKER_COLUMN]: 'true' },\n );\n\n return LinkerMap.fromColumns(allLinkerColumns);\n}\n\nexport type MultipliesByMap = Map<ColumnOrAxisIdString, Map<ColumnOrAxisIdString, { parentSource: ColumnOrAxisIdString, spec: AxisSpec }>>;\nexport async function createMultipliesByMap(store: DemoDataStore): Promise<MultipliesByMap> {\n const allMultiplyingColumns = await store.pFrameProvider.getColumnsFull(\n [], false, undefined, undefined, undefined, [MULTIPLIES_BY]\n );\n\n const result: MultipliesByMap = new Map();\n\n for (const multiplyingColumn of allMultiplyingColumns) {\n const axes = multiplyingColumn.spec.axesSpec;\n const annotationData = multiplyingColumn.spec?.annotations?.[MULTIPLIES_BY];\n if (axes.length !== 2 || !annotationData) {\n continue;\n }\n const columnIdStr = new ColumnId({ name: multiplyingColumn.columnId, type: multiplyingColumn.spec.valueType }).toCanonicalString();\n try {\n const [multipliesBy] = JSON.parse(annotationData);\n const [axis1, axis2] = axes;\n const id1 = AxisId.fromAxisSpec(axis1).toCanonicalString();\n const id2 = AxisId.fromAxisSpec(axis2).toCanonicalString();\n if (axis1.name === multipliesBy) {\n if (!result.get(id2)) {\n result.set(id2, new Map());\n }\n result.get(id2)!.set(id1, { parentSource: columnIdStr, spec: axis1 })\n } else if (axis2.name === multipliesBy) {\n if (!result.get(id1)) {\n result.set(id1, new Map());\n }\n result.get(id1)!.set(id2, { parentSource: columnIdStr, spec: axis2 });\n }\n } catch (e) {\n console.error(`Wrong format for annotation ${MULTIPLIES_BY}: ${multiplyingColumn.spec?.annotations?.[MULTIPLIES_BY]}`);\n }\n }\n return result;\n}\n\nfunction getLinkerColumnsForAxis(\n secondaryAxisId: AxisId,\n linkerMap: LinkerMap,\n multipliesByMap: MultipliesByMap,\n dataInputAxes: AxisSpec[],\n) {\n const axisIdStr = secondaryAxisId.toCanonicalString();\n const dataInputAxesSet = new Set(dataInputAxes.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString()));\n const dataInputAxesIds = [...dataInputAxesSet];\n\n // check multipliesBy columns\n const dataAxesIdWithLink = dataInputAxesIds.find((dataInputId) => multipliesByMap.get(dataInputId)?.get(axisIdStr));\n const linkerEl = dataAxesIdWithLink ? multipliesByMap.get(dataAxesIdWithLink)?.get(axisIdStr) : null;\n if (linkerEl) {\n // we need only 1 multipliesBy column to link single axis\n return [columnOrAxisIdFromString(linkerEl.parentSource)];\n }\n\n const normalizedDataAxes = getNormalizedAxesList(dataInputAxes);\n // else check regular linkers\n const axesAvailableWithLinkers = getNormalizedAxesList(\n linkerMap.getReachableByLinkersAxesFromAxes(normalizedDataAxes)\n );\n const axisSpec = axesAvailableWithLinkers.find((spec) => AxisId.fromAxisSpec(spec).toCanonicalString() === axisIdStr);\n\n if (!axisSpec) {\n return [];\n }\n return linkerMap.getLinkerColumnsForAxes({ from: normalizedDataAxes, to: [axisSpec], throwWhenNoLinkExists: false }).map(v => new ColumnId({ name: v.columnId, type: v.spec.valueType }));\n}\nasync function getLinkerColumnsForColumn(\n secondaryColumnId: ColumnId,\n store: DataStore,\n linkerMap: LinkerMap,\n multipliesByMap: MultipliesByMap,\n dataInputAxes: AxisSpec[],\n) {\n const secondaryColumnSpec = await store.pFrameProvider.getColumnSpecById(secondaryColumnId);\n if (!secondaryColumnSpec) {\n return [];\n }\n let linkers: ColumnId[] = [];\n const dataInputAxesSet = new Set(dataInputAxes.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString()));\n const dataInputAxesIds = [...dataInputAxesSet];\n const rightPartAxes = secondaryColumnSpec.axesSpec.filter((axisSpec) => { // right part from column minus 'fixedAxes'\n const axisId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n if (dataInputAxesSet.has(axisId)) {\n return false;\n }\n const dataAxesIdWithLink = dataInputAxesIds.find((dataInputId) => multipliesByMap.get(dataInputId)?.get(axisId));\n const linkerEl = dataAxesIdWithLink ? multipliesByMap.get(dataAxesIdWithLink)?.get(axisId) : null;\n if (linkerEl) {\n linkers.push(columnOrAxisIdFromString(linkerEl.parentSource));\n return false;\n }\n return true;\n });\n\n const from = getNormalizedAxesList(dataInputAxes);\n const to = getNormalizedAxesList(rightPartAxes);\n\n linkers = linkers.concat(linkerMap.getLinkerColumnsForAxes({ from, to, throwWhenNoLinkExists: false }).map(v => new ColumnId({ name: v.columnId, type: v.spec.valueType })));\n return linkers;\n}\nexport async function getLinkerColumnsForSource(\n store: DataStore,\n linkerMap: LinkerMap,\n multipliesByMap: MultipliesByMap,\n dataInputAxes: AxisSpec[],\n secondarySource: ColumnOrAxisIdString,\n): Promise<ColumnId[]> {\n const columnOrAxisId = columnOrAxisIdFromString(secondarySource);\n return isColumnId(columnOrAxisId)\n ? getLinkerColumnsForColumn(columnOrAxisId, store, linkerMap, multipliesByMap, dataInputAxes)\n : getLinkerColumnsForAxis(columnOrAxisId, linkerMap, multipliesByMap, dataInputAxes);\n}\n\nexport function getNotAllowedAxes(\n columnSpec: PColumnSpec,\n dataInputAxesList: AxisSpec[], // axes from data-input\n linkerMap: LinkerMap, // composite linkers, without chains\n multipliesByMap: MultipliesByMap,\n): AxisSpec[] {\n const dataInputAxesSet = new Set(dataInputAxesList.map((v) => AxisId.fromAxisSpec(v).toCanonicalString()))\n const dataInputAxesIds = [...dataInputAxesSet];\n\n // check non-linkable axes only from this column\n const allColumnAxes = getNormalizedAxesList(columnSpec.axesSpec);\n // remove from the column axes - axes from data inputs\n const rightPartAxes = allColumnAxes.filter( // axes in data axes list are allowed, check the rest\n (axisSpec: AxisSpec) => !dataInputAxesSet.has(AxisId.fromAxisSpec(axisSpec).toCanonicalString())\n );\n\n const sourceAxes = getNormalizedAxesList(dataInputAxesList);\n const targetAxes = LinkerMap.getAxesRoots(rightPartAxes);\n\n const nonLinkableByLinkerMap = linkerMap.getNonLinkableAxes(sourceAxes, targetAxes); // rest probably reduced\n const filtered = nonLinkableByLinkerMap.filter((axisSpec) => {\n const freeId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n return !dataInputAxesIds.some((id) => multipliesByMap.get(id)?.get(freeId) !== undefined);\n });\n return filtered;\n}\n\nexport function createHighlightColumn(highlightSelectedStates: SelectorStateFilter[], data: TableOuterJoinResult) {\n const dataLength = data.columnsData[Object.keys(data.columnsData)[0]].length;\n const highlightColumn = new Int32Array(dataLength).fill(0);\n const notEmptyHighlightStates = highlightSelectedStates.filter(s =>\n s.selectedFilterRange && (s.selectedFilterRange.min !== undefined || s.selectedFilterRange.max !== undefined) ||\n s.selectedFilterValues && s.selectedFilterValues.length\n )\n for (let rowIdx = 0; rowIdx < dataLength; rowIdx++) {\n let res = notEmptyHighlightStates.length === 0; // fill with 1 if nothing selected in highlighting filters\n for (let i = 0; i < notEmptyHighlightStates.length; i++) {\n const { selectedSource, selectedFilterValues, selectedFilterRange, type } = highlightSelectedStates[i];\n const sourceId = columnOrAxisIdFromString(selectedSource);\n const value = (isColumnId(sourceId) ? data.columnsData[selectedSource] : data.axesData[selectedSource])[rowIdx];\n if (selectedFilterValues !== undefined && selectedFilterValues.length) {\n res = res || selectedFilterValues.includes(String(value));\n }\n if (selectedFilterRange !== undefined && (selectedFilterRange.min !== undefined || selectedFilterRange.max !== undefined) && typeof value === 'number') {\n let rangeResult = true;\n if (selectedFilterRange.min !== undefined) {\n rangeResult = rangeResult && value >= selectedFilterRange.min;\n }\n if (selectedFilterRange.max !== undefined) {\n rangeResult = rangeResult && value <= selectedFilterRange.max;\n }\n res = res || rangeResult;\n }\n if (type === 'subset') {\n res = res || (value !== null && value !== undefined);\n }\n }\n if (res) {\n highlightColumn[rowIdx] = 1;\n }\n }\n return highlightColumn as unknown as PValue[];\n}\n"],"names":["getDefaultInfo","sourceIdStr","item","columnOrAxisIdFromString","name","type","isColumnId","getStateCopy","state","normalizeFilterReference","v","valueType","getFilterFromState","selectedSource","selectedFilterRange","selectedFilterValues","id","rangeFilters","isAxisId","getFiltersFromStates","states","result","getGlobalId","spec","_a","COLUMN_NAME_KEY","domain","_b","COLUMN_DOMAIN_KEY","canonicalize","getAxisSpecFromParents","store","axisId","parentSources","parentSource","parentId","columnSpec","AxisId","LABEL_COLUMN_NAME","getColumnOrAxisValueLabelsId","getAxisGlobalId","labelColumns","sourceGlobalId","labelColumn","ColumnId","getColumnOrAxisSpec","selectedId","labelsColumn","getColumnOrAxisLabel","label","COLUMN_LABEL_KEY","axisIsNonHomogenous","axisNature","AXIS_NATURE_KEY","dataColumnPredicateDefault","IS_VIRTUAL_COLUMN","SUBSET_FILTER_KEY","getAxesSpecsFromSources","idStrs","set","idStr","axisSpec","createLinkerMap","allLinkerColumns","IS_LINKER_COLUMN","LinkerMap","createMultipliesByMap","allMultiplyingColumns","MULTIPLIES_BY","multiplyingColumn","axes","annotationData","columnIdStr","multipliesBy","axis1","axis2","id1","id2","_d","_c","getLinkerColumnsForAxis","secondaryAxisId","linkerMap","multipliesByMap","dataInputAxes","axisIdStr","dataAxesIdWithLink","dataInputId","linkerEl","normalizedDataAxes","getNormalizedAxesList","getLinkerColumnsForColumn","secondaryColumnId","secondaryColumnSpec","linkers","dataInputAxesSet","dataInputAxesIds","rightPartAxes","from","to","u","getLinkerColumnsForSource","secondarySource","columnOrAxisId","getNotAllowedAxes","dataInputAxesList","sourceAxes","targetAxes","freeId","createHighlightColumn","highlightSelectedStates","data","dataLength","highlightColumn","notEmptyHighlightStates","s","rowIdx","res","i","sourceId","value","rangeResult"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../node_modules/@milaboratories/pf-plots/src/utils.ts"],"sourcesContent":["import { getNormalizedAxesList, LinkerMap, SingleValuePredicateV2, ValueType } from '@milaboratories/pl-model-common';\nimport { TableOuterJoinResult } from './pframe/ColumnsProvider';\nimport type { DataStore, PValue } from './store';\nimport type { ColumnOrAxisIdString } from './spec';\nimport { isAxisId } from './spec';\nimport { AxisId, ColumnId, columnOrAxisIdFromString, isColumnId } from './spec';\nimport type { AxisData, ColumnData, InputState, SelectorStateFilter } from './common';\nimport {\n AXIS_NATURE_KEY,\n COLUMN_DOMAIN_KEY,\n COLUMN_LABEL_KEY,\n COLUMN_NAME_KEY, IS_LINKER_COLUMN,\n IS_VIRTUAL_COLUMN,\n MULTIPLIES_BY,\n SUBSET_FILTER_KEY,\n} from './constants';\nimport {\n AxisSpec,\n type PColumnSpec,\n type PObjectId,\n type PTableRecordSingleValueFilterV2,\n} from '@milaboratories/pl-model-common';\nimport canonicalize from 'canonicalize';\nimport { DemoDataStore } from './demoStore';\n\nexport type OptionsInfo = Map<ColumnOrAxisIdString, ColumnData | AxisData>;\nexport function getDefaultInfo(sourceIdStr: ColumnOrAxisIdString): ColumnData | AxisData {\n const item = columnOrAxisIdFromString(sourceIdStr);\n const { name, type } = item;\n if (isColumnId(item)) {\n return {\n kind: 'column',\n name: '',\n label: ' ',\n type: item.type,\n spec: { axesSpec: [], kind: 'PColumn', valueType: item.type, name },\n annotations: undefined,\n isSubsetFilter: false,\n isDiscreteFilter: item.type === 'String'\n };\n }\n return {\n kind: 'axis',\n name: '',\n label: ' ',\n type: type,\n spec: { type, name },\n mustBeConsumed: false,\n dividable: false,\n annotations: undefined,\n isSubsetFilter: false,\n isDiscreteFilter: type === 'String',\n isNonHomogenous: false,\n parentSources: [],\n };\n}\n\nexport function getStateCopy<State extends InputState>(state: State): State {\n return {\n type: state.type,\n components: { ...state.components },\n dividedAxes: { ...state.dividedAxes },\n } as State;\n}\n\nfunction normalizeFilterReference(v: number, valueType: ValueType): number {\n if (valueType === 'Int' || valueType === 'Long') {\n return Math.floor(v);\n }\n return v;\n}\nexport function getFilterFromState(state: SelectorStateFilter): PTableRecordSingleValueFilterV2[] {\n const { selectedSource, type, selectedFilterRange, selectedFilterValues } = state;\n const id = columnOrAxisIdFromString(selectedSource);\n if (!id) {\n throw Error('Empty source selected');\n }\n if (type === 'range') {\n const rangeFilters: PTableRecordSingleValueFilterV2[] = [];\n if (selectedFilterRange?.max !== undefined) {\n rangeFilters.push({\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : { type: 'column' as const, id: id.name as PObjectId },\n predicate: {\n operator: 'LessOrEqual',\n reference: normalizeFilterReference(selectedFilterRange.max, id.type)\n },\n })\n }\n if (selectedFilterRange?.min !== undefined) {\n rangeFilters.push({\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : { type: 'column' as const, id: id.name as PObjectId },\n predicate: {\n operator: 'GreaterOrEqual',\n reference: normalizeFilterReference(selectedFilterRange.min, id.type)\n },\n })\n }\n return rangeFilters;\n } else if (type === 'subset') {\n return [\n {\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : { type: 'column' as const, id: id.name as PObjectId },\n predicate: {\n operator: 'Not',\n operand: { operator: 'IsNA' }\n },\n },\n ]\n }\n if (typeof selectedFilterValues === 'undefined' || !selectedFilterValues.length) {\n return [];\n }\n return [\n {\n type: 'bySingleColumnV2' as const,\n column: isAxisId(id) ? { type: 'axis' as const, id: id.toPFrameId() } : {\n type: 'column' as const,\n id: id.name as PObjectId,\n },\n predicate: {\n operator: 'Or',\n operands: selectedFilterValues.map((v) => {\n const reference = id.type === 'String'\n ? String(v)\n : (Number(v) as string | number);\n return {\n operator: 'Equal',\n reference\n }\n })\n }\n },\n ];\n}\n\nexport function getFiltersFromStates(states: SelectorStateFilter[]): PTableRecordSingleValueFilterV2[] {\n const result: PTableRecordSingleValueFilterV2[] = [];\n for (const state of states) {\n result.push(...getFilterFromState(state));\n }\n return result;\n}\n\nexport function getGlobalId(spec: PColumnSpec): string;\nexport function getGlobalId(spec: AxisSpec): string;\nexport function getGlobalId(spec: AxisSpec | PColumnSpec): string {\n if ('kind' in spec && spec.kind === 'PColumn') {\n const name = spec.name ?? spec.annotations?.[COLUMN_NAME_KEY];\n const domain = spec.domain ?? spec.annotations?.[COLUMN_DOMAIN_KEY];\n return canonicalize({ name, domain })!;\n }\n const name = spec.name;\n const domain = spec.domain;\n return canonicalize({ name, domain })!;\n}\n\nasync function getAxisSpecFromParents(store: DataStore, axisId: AxisId, parentSources: ColumnOrAxisIdString[]) {\n for (const parentSource of parentSources) {\n const parentId = columnOrAxisIdFromString(parentSource);\n if (isColumnId(parentId)) {\n const columnSpec = await store.pFrameProvider.getColumnSpecById(parentId);\n const spec = (columnSpec?.axesSpec ?? []).find(\n s => AxisId.fromAxisSpec(s).toCanonicalString() === axisId.toCanonicalString(),\n );\n if (spec) {\n return spec;\n }\n }\n }\n return null;\n}\n\nconst LABEL_COLUMN_NAME = 'pl7.app/label';\n\nexport async function getColumnOrAxisValueLabelsId(\n store: DataStore,\n selectedSource: ColumnOrAxisIdString,\n parentSources: ColumnOrAxisIdString[],\n): Promise<ColumnId | undefined> {\n const id = columnOrAxisIdFromString(selectedSource);\n if (isColumnId(id)) {\n return undefined;\n }\n async function getAxisGlobalId(axisId: AxisId) {\n const spec = await getAxisSpecFromParents(store, axisId, parentSources);\n return spec ? getGlobalId(spec) : null;\n }\n const labelColumns = await store.pFrameProvider.getColumnsFull([], false, undefined, [LABEL_COLUMN_NAME]);\n const sourceGlobalId = await getAxisGlobalId(id);\n const labelColumn = labelColumns.find(({ spec }) => {\n return spec && spec.axesSpec.length === 1 && getGlobalId(spec.axesSpec[0]) === sourceGlobalId;\n });\n return labelColumn ? new ColumnId({ name: labelColumn.columnId, type: labelColumn.spec.valueType }) : undefined;\n}\n\nexport async function getColumnOrAxisSpec(\n store: DataStore,\n selectedSource: ColumnOrAxisIdString,\n parentSources: ColumnOrAxisIdString[],\n) {\n const selectedId = columnOrAxisIdFromString(selectedSource);\n const labelsColumn = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n\n let spec: AxisSpec | PColumnSpec | null;\n if (isColumnId(selectedId)) {\n spec = await store.pFrameProvider.getColumnSpecById(labelsColumn ?? selectedId);\n } else {\n spec = labelsColumn\n ? await store.pFrameProvider.getColumnSpecById(labelsColumn)\n : await getAxisSpecFromParents(store, selectedId, parentSources);\n }\n return spec;\n}\n\nexport async function getColumnOrAxisLabel(\n store: DataStore,\n selectedSource: ColumnOrAxisIdString,\n parentSources: ColumnOrAxisIdString[],\n) {\n const spec = await getColumnOrAxisSpec(store, selectedSource, parentSources);\n if (!spec) {\n return '';\n }\n const label = spec.annotations?.[COLUMN_LABEL_KEY] ?? spec.name;\n return store.labelsModifier(spec.name, label);\n}\n\nexport function axisIsNonHomogenous(spec: AxisSpec) {\n const axisNature = spec.annotations?.[AXIS_NATURE_KEY]?.toLowerCase();\n return Boolean(axisNature) && axisNature !== 'homogenous' && axisNature !== 'homogeneous';\n}\n\nexport function dataColumnPredicateDefault(spec: PColumnSpec) {\n return !spec.name.includes('metadata') && !(spec.annotations?.[IS_VIRTUAL_COLUMN] === 'true') && !(spec.annotations?.[SUBSET_FILTER_KEY] === 'true');\n}\n\nexport async function getAxesSpecsFromSources(store: DataStore, idStrs: ColumnOrAxisIdString[]): Promise<AxisSpec[]> {\n const set = new Set<ColumnOrAxisIdString>();\n const result: AxisSpec[] = [];\n for (const idStr of idStrs) {\n const id = columnOrAxisIdFromString(idStr);\n if (isColumnId(id)) {\n const spec = await store.pFrameProvider.getColumnSpecById(id);\n if (!spec) {\n continue;\n }\n spec.axesSpec.forEach(axisSpec => {\n const id = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n if (!set.has(id)) {\n set.add(id);\n result.push(axisSpec);\n }\n })\n }\n }\n return result;\n}\n\nexport async function createLinkerMap(store: DemoDataStore) {\n const allLinkerColumns = await store.pFrameProvider.getColumnsFull(\n [], false, undefined, undefined,\n { [IS_LINKER_COLUMN]: 'true' },\n );\n\n return LinkerMap.fromColumns(allLinkerColumns);\n}\n\nexport type MultipliesByMap = Map<ColumnOrAxisIdString, Map<ColumnOrAxisIdString, { parentSource: ColumnOrAxisIdString, spec: AxisSpec }>>;\nexport async function createMultipliesByMap(store: DemoDataStore): Promise<MultipliesByMap> {\n const allMultiplyingColumns = await store.pFrameProvider.getColumnsFull(\n [], false, undefined, undefined, undefined, [MULTIPLIES_BY]\n );\n\n const result: MultipliesByMap = new Map();\n\n for (const multiplyingColumn of allMultiplyingColumns) {\n const axes = multiplyingColumn.spec.axesSpec;\n const annotationData = multiplyingColumn.spec?.annotations?.[MULTIPLIES_BY];\n if (axes.length !== 2 || !annotationData) {\n continue;\n }\n const columnIdStr = new ColumnId({ name: multiplyingColumn.columnId, type: multiplyingColumn.spec.valueType }).toCanonicalString();\n try {\n const [multipliesBy] = JSON.parse(annotationData);\n const [axis1, axis2] = axes;\n const id1 = AxisId.fromAxisSpec(axis1).toCanonicalString();\n const id2 = AxisId.fromAxisSpec(axis2).toCanonicalString();\n if (axis1.name === multipliesBy) {\n if (!result.get(id2)) {\n result.set(id2, new Map());\n }\n result.get(id2)!.set(id1, { parentSource: columnIdStr, spec: axis1 })\n } else if (axis2.name === multipliesBy) {\n if (!result.get(id1)) {\n result.set(id1, new Map());\n }\n result.get(id1)!.set(id2, { parentSource: columnIdStr, spec: axis2 });\n }\n } catch (e) {\n console.error(`Wrong format for annotation ${MULTIPLIES_BY}: ${multiplyingColumn.spec?.annotations?.[MULTIPLIES_BY]}`);\n }\n }\n return result;\n}\n\nfunction getLinkerColumnsForAxis(\n secondaryAxisId: AxisId,\n linkerMap: LinkerMap,\n multipliesByMap: MultipliesByMap,\n dataInputAxes: AxisSpec[],\n) {\n const axisIdStr = secondaryAxisId.toCanonicalString();\n const dataInputAxesSet = new Set(dataInputAxes.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString()));\n const dataInputAxesIds = [...dataInputAxesSet];\n\n // check multipliesBy columns\n const dataAxesIdWithLink = dataInputAxesIds.find((dataInputId) => multipliesByMap.get(dataInputId)?.get(axisIdStr));\n const linkerEl = dataAxesIdWithLink ? multipliesByMap.get(dataAxesIdWithLink)?.get(axisIdStr) : null;\n if (linkerEl) {\n // we need only 1 multipliesBy column to link single axis\n return [columnOrAxisIdFromString(linkerEl.parentSource)];\n }\n\n const normalizedDataAxes = getNormalizedAxesList(dataInputAxes);\n // else check regular linkers\n const axesAvailableWithLinkers = getNormalizedAxesList(\n linkerMap.getReachableByLinkersAxesFromAxes(normalizedDataAxes)\n );\n const axisSpec = axesAvailableWithLinkers.find((spec) => AxisId.fromAxisSpec(spec).toCanonicalString() === axisIdStr);\n\n if (!axisSpec) {\n return [];\n }\n return linkerMap.getLinkerColumnsForAxes({ from: normalizedDataAxes, to: [axisSpec], throwWhenNoLinkExists: false }).map(v => new ColumnId({ name: v.columnId, type: v.spec.valueType }));\n}\nasync function getLinkerColumnsForColumn(\n secondaryColumnId: ColumnId,\n store: DataStore,\n linkerMap: LinkerMap,\n multipliesByMap: MultipliesByMap,\n dataInputAxes: AxisSpec[],\n) {\n const secondaryColumnSpec = await store.pFrameProvider.getColumnSpecById(secondaryColumnId);\n if (!secondaryColumnSpec) {\n return [];\n }\n let linkers: ColumnId[] = [];\n const dataInputAxesSet = new Set(dataInputAxes.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString()));\n const dataInputAxesIds = [...dataInputAxesSet];\n const rightPartAxes = secondaryColumnSpec.axesSpec.filter((axisSpec) => { // right part from column minus 'fixedAxes'\n const axisId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n if (dataInputAxesSet.has(axisId)) {\n return false;\n }\n const dataAxesIdWithLink = dataInputAxesIds.find((dataInputId) => multipliesByMap.get(dataInputId)?.get(axisId));\n const linkerEl = dataAxesIdWithLink ? multipliesByMap.get(dataAxesIdWithLink)?.get(axisId) : null;\n if (linkerEl) {\n linkers.push(columnOrAxisIdFromString(linkerEl.parentSource));\n return false;\n }\n return true;\n });\n\n const from = getNormalizedAxesList(dataInputAxes);\n const to = getNormalizedAxesList(rightPartAxes);\n\n linkers = linkers.concat(linkerMap.getLinkerColumnsForAxes({ from, to, throwWhenNoLinkExists: false }).map(v => new ColumnId({ name: v.columnId, type: v.spec.valueType })));\n return linkers;\n}\nexport async function getLinkerColumnsForSource(\n store: DataStore,\n linkerMap: LinkerMap,\n multipliesByMap: MultipliesByMap,\n dataInputAxes: AxisSpec[],\n secondarySource: ColumnOrAxisIdString,\n): Promise<ColumnId[]> {\n const columnOrAxisId = columnOrAxisIdFromString(secondarySource);\n return isColumnId(columnOrAxisId)\n ? getLinkerColumnsForColumn(columnOrAxisId, store, linkerMap, multipliesByMap, dataInputAxes)\n : getLinkerColumnsForAxis(columnOrAxisId, linkerMap, multipliesByMap, dataInputAxes);\n}\n\nexport function getNotAllowedAxes(\n columnSpec: PColumnSpec,\n dataInputAxesList: AxisSpec[], // axes from data-input\n linkerMap: LinkerMap, // composite linkers, without chains\n multipliesByMap: MultipliesByMap,\n): AxisSpec[] {\n const dataInputAxesSet = new Set(dataInputAxesList.map((v) => AxisId.fromAxisSpec(v).toCanonicalString()))\n const dataInputAxesIds = [...dataInputAxesSet];\n\n // check non-linkable axes only from this column\n const allColumnAxes = getNormalizedAxesList(columnSpec.axesSpec);\n // remove from the column axes - axes from data inputs\n const rightPartAxes = allColumnAxes.filter( // axes in data axes list are allowed, check the rest\n (axisSpec: AxisSpec) => !dataInputAxesSet.has(AxisId.fromAxisSpec(axisSpec).toCanonicalString())\n );\n\n const sourceAxes = getNormalizedAxesList(dataInputAxesList);\n const targetAxes = LinkerMap.getAxesRoots(rightPartAxes);\n\n const nonLinkableByLinkerMap = linkerMap.getNonLinkableAxes(sourceAxes, targetAxes); // rest probably reduced\n const filtered = nonLinkableByLinkerMap.filter((axisSpec) => {\n const freeId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n return !dataInputAxesIds.some((id) => multipliesByMap.get(id)?.get(freeId) !== undefined);\n });\n return filtered;\n}\n\nexport function createHighlightColumn(highlightSelectedStates: SelectorStateFilter[], data: TableOuterJoinResult) {\n const dataLength = data.columnsData[Object.keys(data.columnsData)[0]].length;\n const highlightColumn = new Int32Array(dataLength).fill(0);\n const notEmptyHighlightStates = highlightSelectedStates.filter(s =>\n s.selectedFilterRange && (s.selectedFilterRange.min !== undefined || s.selectedFilterRange.max !== undefined) ||\n s.selectedFilterValues && s.selectedFilterValues.length\n )\n for (let rowIdx = 0; rowIdx < dataLength; rowIdx++) {\n let res = notEmptyHighlightStates.length === 0; // fill with 1 if nothing selected in highlighting filters\n for (let i = 0; i < notEmptyHighlightStates.length; i++) {\n const { selectedSource, selectedFilterValues, selectedFilterRange, type } = highlightSelectedStates[i];\n const sourceId = columnOrAxisIdFromString(selectedSource);\n const value = (isColumnId(sourceId) ? data.columnsData[selectedSource] : data.axesData[selectedSource])[rowIdx];\n if (selectedFilterValues !== undefined && selectedFilterValues.length) {\n res = res || selectedFilterValues.includes(String(value));\n }\n if (selectedFilterRange !== undefined && (selectedFilterRange.min !== undefined || selectedFilterRange.max !== undefined) && typeof value === 'number') {\n let rangeResult = true;\n if (selectedFilterRange.min !== undefined) {\n rangeResult = rangeResult && value >= selectedFilterRange.min;\n }\n if (selectedFilterRange.max !== undefined) {\n rangeResult = rangeResult && value <= selectedFilterRange.max;\n }\n res = res || rangeResult;\n }\n if (type === 'subset') {\n res = res || (value !== null && value !== undefined);\n }\n }\n if (res) {\n highlightColumn[rowIdx] = 1;\n }\n }\n return highlightColumn as unknown as PValue[];\n}\n"],"names":["getDefaultInfo","sourceIdStr","item","columnOrAxisIdFromString","name","type","isColumnId","getStateCopy","state","normalizeFilterReference","v","valueType","getFilterFromState","selectedSource","selectedFilterRange","selectedFilterValues","id","rangeFilters","isAxisId","getFiltersFromStates","states","result","getGlobalId","spec","_a","COLUMN_NAME_KEY","domain","_b","COLUMN_DOMAIN_KEY","canonicalize","getAxisSpecFromParents","store","axisId","parentSources","parentSource","parentId","columnSpec","AxisId","LABEL_COLUMN_NAME","getColumnOrAxisValueLabelsId","getAxisGlobalId","labelColumns","sourceGlobalId","labelColumn","ColumnId","getColumnOrAxisSpec","selectedId","labelsColumn","getColumnOrAxisLabel","label","COLUMN_LABEL_KEY","axisIsNonHomogenous","axisNature","AXIS_NATURE_KEY","dataColumnPredicateDefault","IS_VIRTUAL_COLUMN","SUBSET_FILTER_KEY","getAxesSpecsFromSources","idStrs","set","idStr","axisSpec","createLinkerMap","allLinkerColumns","IS_LINKER_COLUMN","LinkerMap","createMultipliesByMap","allMultiplyingColumns","MULTIPLIES_BY","multiplyingColumn","axes","annotationData","columnIdStr","multipliesBy","axis1","axis2","id1","id2","_d","_c","getLinkerColumnsForAxis","secondaryAxisId","linkerMap","multipliesByMap","dataInputAxes","axisIdStr","dataAxesIdWithLink","dataInputId","linkerEl","normalizedDataAxes","getNormalizedAxesList","getLinkerColumnsForColumn","secondaryColumnId","secondaryColumnSpec","linkers","dataInputAxesSet","dataInputAxesIds","rightPartAxes","from","to","u","getLinkerColumnsForSource","secondarySource","columnOrAxisId","getNotAllowedAxes","dataInputAxesList","sourceAxes","targetAxes","freeId","createHighlightColumn","highlightSelectedStates","data","dataLength","highlightColumn","notEmptyHighlightStates","s","rowIdx","res","i","sourceId","value","rangeResult"],"mappings":"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","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/graph-maker",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.159",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/lib.js",
|
|
6
6
|
"types": "dist/lib.d.ts",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@ag-grid-community/core": "^32.3.3",
|
|
39
39
|
"@milaboratories/helpers": "^1.6.15",
|
|
40
|
-
"@milaboratories/miplots4": "^1.0.
|
|
41
|
-
"@milaboratories/pf-plots": "^1.1.
|
|
40
|
+
"@milaboratories/miplots4": "^1.0.146",
|
|
41
|
+
"@milaboratories/pf-plots": "^1.1.35",
|
|
42
42
|
"@platforma-sdk/model": "^1.42.36",
|
|
43
43
|
"@platforma-sdk/ui-vue": "^1.42.36",
|
|
44
44
|
"@types/d3-hierarchy": "^3.1.7",
|