@milaboratories/graph-maker 1.1.143 → 1.1.145
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/index.vue.d.ts.map +1 -1
- package/dist/GraphMaker/index.vue.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +64 -64
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js +31 -31
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +39 -32
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +68 -62
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +5 -5
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +8 -8
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +3 -3
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +6 -6
- package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +12 -9
- package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-error-like/dist/{index.js → error_like_shape.js} +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-error-like/dist/error_like_shape.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js +8 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_types.js +63 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_types.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js +152 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js +189 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/errors.js +18 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/errors.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/json.js +12 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/json.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/plid.js +7 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/plid.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/ref.js +8 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/ref.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/components/PlDataTable.js +13 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/components/PlDataTable.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js +89 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +50 -45
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +54 -50
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -1
- package/package.json +4 -4
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +0 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +0 -979
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +0 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js +0 -1599
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js.map +0 -1
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { SUBSET_FILTER_KEY as I, DISCRETE_FILTER_KEY as A, IS_LINKER_COLUMN as M, COLUMN_LABEL_KEY as O, IS_VIRTUAL_COLUMN as R, AXIS_NATURE_KEY as U, COLUMN_NAME_KEY as V, COLUMN_DOMAIN_KEY as $ } from "./constants.js";
|
|
1
|
+
import "./node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js";
|
|
2
|
+
import { getNormalizedAxesList as F } from "./node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js";
|
|
4
3
|
import w from "./_virtual/canonicalize.js";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { LinkerMap as L } from "./node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js";
|
|
5
|
+
import "./node_modules/@milaboratories/pl-model-common/dist/plid.js";
|
|
6
|
+
import "./node_modules/@milaboratories/pl-model-common/dist/ref.js";
|
|
7
|
+
import { columnOrAxisIdFromString as f, isColumnId as S, AxisId as d, ColumnId as T, isAxisId as C } from "./spec.js";
|
|
8
|
+
import { SUBSET_FILTER_KEY as I, DISCRETE_FILTER_KEY as A, IS_LINKER_COLUMN as M, COLUMN_LABEL_KEY as O, IS_VIRTUAL_COLUMN as $, AXIS_NATURE_KEY as R, COLUMN_NAME_KEY as V, COLUMN_DOMAIN_KEY as U } from "./constants.js";
|
|
9
|
+
async function te(e, n, a, o, i, t, r = !0, c) {
|
|
10
|
+
var l, p, y, g;
|
|
7
11
|
const u = f(n);
|
|
8
12
|
if (S(u)) {
|
|
9
13
|
const s = await e.pFrameProvider.getColumnSpecById(u);
|
|
@@ -14,11 +18,11 @@ async function Q(e, n, a, o, i, t, r = !0, c) {
|
|
|
14
18
|
i,
|
|
15
19
|
t,
|
|
16
20
|
c
|
|
17
|
-
).map((m) =>
|
|
21
|
+
).map((m) => d.fromAxisSpec(m).toCanonicalString()), B = new Set(v), P = s.axesSpec.map((m) => d.fromAxisSpec(m).toCanonicalString()), b = {};
|
|
18
22
|
r && P.forEach((m, x) => {
|
|
19
|
-
|
|
23
|
+
B.has(m) && (b[m] = x);
|
|
20
24
|
});
|
|
21
|
-
const
|
|
25
|
+
const k = {
|
|
22
26
|
kind: "column",
|
|
23
27
|
name: s.name,
|
|
24
28
|
label: a ?? await h(e, n, []),
|
|
@@ -26,21 +30,21 @@ async function Q(e, n, a, o, i, t, r = !0, c) {
|
|
|
26
30
|
spec: s,
|
|
27
31
|
annotations: s.annotations,
|
|
28
32
|
isSubsetFilter: ((l = s.annotations) == null ? void 0 : l[I]) === "true",
|
|
29
|
-
isDiscreteFilter: s.valueType === "String" || ((
|
|
33
|
+
isDiscreteFilter: s.valueType === "String" || ((p = s.annotations) == null ? void 0 : p[A]) === "true",
|
|
30
34
|
axesToBeFixed: v,
|
|
31
35
|
axesToBeFixedIndexes: b
|
|
32
36
|
};
|
|
33
|
-
o.set(u.toCanonicalString(),
|
|
37
|
+
o.set(u.toCanonicalString(), k);
|
|
34
38
|
for (const m of s.axesSpec) {
|
|
35
|
-
const x =
|
|
39
|
+
const x = d.fromAxisSpec(m).toCanonicalString();
|
|
36
40
|
if (o.has(x))
|
|
37
41
|
continue;
|
|
38
|
-
const
|
|
42
|
+
const N = z(m), D = {
|
|
39
43
|
kind: "axis",
|
|
40
44
|
name: m.name,
|
|
41
45
|
label: await h(e, x, [n]),
|
|
42
46
|
type: m.type,
|
|
43
|
-
mustBeConsumed:
|
|
47
|
+
mustBeConsumed: N,
|
|
44
48
|
dividable: !1,
|
|
45
49
|
spec: m,
|
|
46
50
|
annotations: m.annotations,
|
|
@@ -52,7 +56,7 @@ async function Q(e, n, a, o, i, t, r = !0, c) {
|
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
|
-
function
|
|
59
|
+
function oe(e) {
|
|
56
60
|
const n = f(e), { name: a, type: o } = n;
|
|
57
61
|
return S(n) ? {
|
|
58
62
|
kind: "column",
|
|
@@ -79,7 +83,7 @@ function Z(e) {
|
|
|
79
83
|
parentSources: []
|
|
80
84
|
};
|
|
81
85
|
}
|
|
82
|
-
function
|
|
86
|
+
function ae(e) {
|
|
83
87
|
return {
|
|
84
88
|
type: e.type,
|
|
85
89
|
components: { ...e.components },
|
|
@@ -132,7 +136,7 @@ function K(e) {
|
|
|
132
136
|
}
|
|
133
137
|
];
|
|
134
138
|
}
|
|
135
|
-
function
|
|
139
|
+
function ie(e) {
|
|
136
140
|
const n = [];
|
|
137
141
|
for (const a of e)
|
|
138
142
|
n.push(...K(a));
|
|
@@ -141,18 +145,18 @@ function ne(e) {
|
|
|
141
145
|
function E(e) {
|
|
142
146
|
var n, a;
|
|
143
147
|
if ("kind" in e && e.kind === "PColumn") {
|
|
144
|
-
const t = e.name ?? ((n = e.annotations) == null ? void 0 : n[V]), r = e.domain ?? ((a = e.annotations) == null ? void 0 : a[
|
|
148
|
+
const t = e.name ?? ((n = e.annotations) == null ? void 0 : n[V]), r = e.domain ?? ((a = e.annotations) == null ? void 0 : a[U]);
|
|
145
149
|
return w({ name: t, domain: r });
|
|
146
150
|
}
|
|
147
151
|
const o = e.name, i = e.domain;
|
|
148
152
|
return w({ name: o, domain: i });
|
|
149
153
|
}
|
|
150
|
-
async function
|
|
154
|
+
async function _(e, n, a) {
|
|
151
155
|
for (const o of a) {
|
|
152
156
|
const i = f(o);
|
|
153
157
|
if (S(i)) {
|
|
154
158
|
const t = await e.pFrameProvider.getColumnSpecById(i), r = ((t == null ? void 0 : t.axesSpec) ?? []).find(
|
|
155
|
-
(c) =>
|
|
159
|
+
(c) => d.fromAxisSpec(c).toCanonicalString() === n.toCanonicalString()
|
|
156
160
|
);
|
|
157
161
|
if (r)
|
|
158
162
|
return r;
|
|
@@ -166,8 +170,8 @@ async function q(e, n, a) {
|
|
|
166
170
|
if (S(o))
|
|
167
171
|
return;
|
|
168
172
|
async function i(l) {
|
|
169
|
-
const
|
|
170
|
-
return
|
|
173
|
+
const p = await _(e, l, a);
|
|
174
|
+
return p ? E(p) : null;
|
|
171
175
|
}
|
|
172
176
|
const t = await e.pFrameProvider.getColumnsFull([], !1, void 0, [Y]), r = await i(o), c = t.find(({ spec: l }) => l && l.axesSpec.length === 1 && E(l.axesSpec[0]) === r);
|
|
173
177
|
return c ? new T({ name: c.columnId, type: c.spec.valueType }) : void 0;
|
|
@@ -175,7 +179,7 @@ async function q(e, n, a) {
|
|
|
175
179
|
async function j(e, n, a) {
|
|
176
180
|
const o = f(n), i = await q(e, n, a);
|
|
177
181
|
let t;
|
|
178
|
-
return S(o) ? t = await e.pFrameProvider.getColumnSpecById(i ?? o) : t = i ? await e.pFrameProvider.getColumnSpecById(i) : await
|
|
182
|
+
return S(o) ? t = await e.pFrameProvider.getColumnSpecById(i ?? o) : t = i ? await e.pFrameProvider.getColumnSpecById(i) : await _(e, o, a), t;
|
|
179
183
|
}
|
|
180
184
|
async function h(e, n, a) {
|
|
181
185
|
var o;
|
|
@@ -187,18 +191,18 @@ async function h(e, n, a) {
|
|
|
187
191
|
}
|
|
188
192
|
function z(e) {
|
|
189
193
|
var n, a;
|
|
190
|
-
const o = (a = (n = e.annotations) == null ? void 0 : n[
|
|
194
|
+
const o = (a = (n = e.annotations) == null ? void 0 : n[R]) == null ? void 0 : a.toLowerCase();
|
|
191
195
|
return !!o && o !== "homogenous" && o !== "homogeneous";
|
|
192
196
|
}
|
|
193
|
-
function
|
|
197
|
+
function re(e) {
|
|
194
198
|
var n, a;
|
|
195
199
|
return ((n = e.annotations) == null ? void 0 : n[I]) === "true" || ((a = e.annotations) == null || a[A]), !0;
|
|
196
200
|
}
|
|
197
|
-
function
|
|
201
|
+
function se(e) {
|
|
198
202
|
var n, a;
|
|
199
|
-
return !e.name.includes("metadata") && ((n = e.annotations) == null ? void 0 : n[
|
|
203
|
+
return !e.name.includes("metadata") && ((n = e.annotations) == null ? void 0 : n[$]) !== "true" && ((a = e.annotations) == null ? void 0 : a[I]) !== "true";
|
|
200
204
|
}
|
|
201
|
-
async function
|
|
205
|
+
async function le(e, n) {
|
|
202
206
|
const a = /* @__PURE__ */ new Set(), o = [];
|
|
203
207
|
for (const i of n) {
|
|
204
208
|
const t = f(i);
|
|
@@ -207,14 +211,14 @@ async function ae(e, n) {
|
|
|
207
211
|
if (!r)
|
|
208
212
|
continue;
|
|
209
213
|
r.axesSpec.forEach((c) => {
|
|
210
|
-
const l =
|
|
214
|
+
const l = d.fromAxisSpec(c).toCanonicalString();
|
|
211
215
|
a.has(l) || (a.add(l), o.push(c));
|
|
212
216
|
});
|
|
213
217
|
}
|
|
214
218
|
}
|
|
215
219
|
return o;
|
|
216
220
|
}
|
|
217
|
-
async function
|
|
221
|
+
async function ce(e) {
|
|
218
222
|
const n = await e.pFrameProvider.getColumnsFull(
|
|
219
223
|
[],
|
|
220
224
|
!1,
|
|
@@ -224,7 +228,7 @@ async function ie(e) {
|
|
|
224
228
|
);
|
|
225
229
|
return L.fromColumns(n);
|
|
226
230
|
}
|
|
227
|
-
async function
|
|
231
|
+
async function ue(e, n, a, o, i) {
|
|
228
232
|
const t = f(o);
|
|
229
233
|
if (!S(t))
|
|
230
234
|
return [];
|
|
@@ -233,30 +237,30 @@ async function re(e, n, a, o, i) {
|
|
|
233
237
|
return [];
|
|
234
238
|
const c = r.axesSpec.filter(
|
|
235
239
|
(u) => {
|
|
236
|
-
const s =
|
|
240
|
+
const s = d.fromAxisSpec(u).toCanonicalString();
|
|
237
241
|
return !(i != null && i.some((v) => v.axisSource === s));
|
|
238
242
|
}
|
|
239
|
-
), l = new Set(a.map((u) =>
|
|
240
|
-
const s =
|
|
243
|
+
), l = new Set(a.map((u) => d.fromAxisSpec(u).toCanonicalString())), p = c.filter((u) => {
|
|
244
|
+
const s = d.fromAxisSpec(u).toCanonicalString();
|
|
241
245
|
return !l.has(s);
|
|
242
|
-
}), y = F(a), g = F(
|
|
246
|
+
}), y = F(a), g = F(p);
|
|
243
247
|
return n.getLinkerColumnsForAxes({ from: y, to: g }).map((u) => new T({ name: u.columnId, type: u.spec.valueType }));
|
|
244
248
|
}
|
|
245
249
|
function G(e, n, a, o) {
|
|
246
|
-
const i = new Set(n.map((l) =>
|
|
247
|
-
(l) => !i.has(
|
|
250
|
+
const i = new Set(n.map((l) => d.fromAxisSpec(l).toCanonicalString())), t = F(e.axesSpec).filter(
|
|
251
|
+
(l) => !i.has(d.fromAxisSpec(l).toCanonicalString())
|
|
248
252
|
), r = F(n), c = L.getAxesRoots(t);
|
|
249
253
|
return o.getNonLinkableAxes(r, c);
|
|
250
254
|
}
|
|
251
|
-
function
|
|
255
|
+
function me(e, n) {
|
|
252
256
|
const a = n.columnsData[Object.keys(n.columnsData)[0]].length, o = new Int32Array(a).fill(0);
|
|
253
257
|
for (let i = 0; i < a; i++) {
|
|
254
258
|
let t = !1;
|
|
255
259
|
for (let r = 0; r < e.length; r++) {
|
|
256
|
-
const { selectedSource: c, selectedFilterValue: l, selectedFilterRange:
|
|
257
|
-
if (l !== void 0 && (t = t || u === l),
|
|
260
|
+
const { selectedSource: c, selectedFilterValue: l, selectedFilterRange: p, type: y } = e[r], g = f(c), u = (S(g) ? n.columnsData[c] : n.axesData[c])[i];
|
|
261
|
+
if (l !== void 0 && (t = t || u === l), p !== void 0 && (p.min !== void 0 || p.max !== void 0) && typeof u == "number") {
|
|
258
262
|
let s = !0;
|
|
259
|
-
|
|
263
|
+
p.min !== void 0 && (s = s && u >= p.min), p.max !== void 0 && (s = s && u <= p.max), t = t || s;
|
|
260
264
|
}
|
|
261
265
|
y === "subset" && (t = t || u != null);
|
|
262
266
|
}
|
|
@@ -265,22 +269,22 @@ function se(e, n) {
|
|
|
265
269
|
return o;
|
|
266
270
|
}
|
|
267
271
|
export {
|
|
268
|
-
|
|
272
|
+
te as addSourceInfoToMap,
|
|
269
273
|
z as axisMustBeConsumed,
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
274
|
+
re as checkSourceBySpecForFilters,
|
|
275
|
+
me as createHighlightColumn,
|
|
276
|
+
ce as createLinkerMap,
|
|
277
|
+
se as dataColumnPredicateDefault,
|
|
278
|
+
le as getAxesSpecsFromSources,
|
|
275
279
|
h as getColumnOrAxisLabel,
|
|
276
280
|
j as getColumnOrAxisSpec,
|
|
277
281
|
q as getColumnOrAxisValueLabelsId,
|
|
278
|
-
|
|
282
|
+
oe as getDefaultInfo,
|
|
279
283
|
K as getFilterFromState,
|
|
280
|
-
|
|
284
|
+
ie as getFiltersFromStates,
|
|
281
285
|
E as getGlobalId,
|
|
282
|
-
|
|
286
|
+
ue as getLinkerColumnsForSource,
|
|
283
287
|
G as getNotAllowedAxes,
|
|
284
|
-
|
|
288
|
+
ae as getStateCopy
|
|
285
289
|
};
|
|
286
290
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../node_modules/@milaboratories/pf-plots/src/utils.ts"],"sourcesContent":["import {getNormalizedAxesList, LinkerMap, SingleValuePredicateV2} from '@milaboratories/pl-model-common';\nimport {SelectorState} from './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, DISCRETE_FILTER_KEY, IS_LINKER_COLUMN,\n IS_VIRTUAL_COLUMN,\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 async function addSourceInfoToMap( // by column id / axis id, without qualifications\n store: DataStore,\n selectedIdStr: ColumnOrAxisIdString,\n label: string | undefined,\n dataMap: Map<string, ColumnData | AxisData>,\n dataAxesList: AxisSpec[],\n dataAxes: Set<ColumnOrAxisIdString>,\n fixedAxesAllowed = true,\n linkerMap: LinkerMap\n) {\n const sourceId = columnOrAxisIdFromString(selectedIdStr);\n if (isColumnId(sourceId)) {\n const columnSpec = await store.pFrameProvider.getColumnSpecById(sourceId);\n if (!columnSpec) {\n return;\n }\n const extraAxesIds = getNotAllowedAxes(\n columnSpec,\n dataAxesList,\n dataAxes,\n linkerMap\n ).map((axisSpec) => AxisId.fromAxisSpec(axisSpec).toCanonicalString());\n\n const extraAxesSet = new Set(extraAxesIds);\n const axesIds = columnSpec.axesSpec.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString());\n const extraAxesIndexes: Record<string, number> = {};\n if (fixedAxesAllowed) {\n axesIds.forEach((id, idx) => {\n if (extraAxesSet.has(id)) {\n extraAxesIndexes[id] = idx;\n }\n });\n }\n const columnInfo: ColumnData = {\n kind: 'column',\n name: columnSpec.name,\n label: label ?? (await getColumnOrAxisLabel(store, selectedIdStr, [])),\n type: columnSpec.valueType,\n spec: columnSpec,\n annotations: columnSpec.annotations,\n isSubsetFilter: columnSpec.annotations?.[SUBSET_FILTER_KEY] === 'true',\n isDiscreteFilter: columnSpec.valueType === 'String' || columnSpec.annotations?.[DISCRETE_FILTER_KEY] === 'true',\n axesToBeFixed: extraAxesIds,\n axesToBeFixedIndexes: extraAxesIndexes,\n };\n dataMap.set(sourceId.toCanonicalString(), columnInfo);\n for (const axisSpec of columnSpec.axesSpec) {\n const axisId = AxisId.fromAxisSpec(axisSpec);\n const axisIdStr = axisId.toCanonicalString();\n if (dataMap.has(axisIdStr)) {\n continue;\n }\n const mustBeConsumed = axisMustBeConsumed(axisSpec);\n const axisInfo: AxisData = {\n kind: 'axis',\n name: axisSpec.name,\n label: await getColumnOrAxisLabel(store, axisIdStr, [selectedIdStr]),\n type: axisSpec.type,\n mustBeConsumed,\n dividable: false,\n spec: axisSpec,\n annotations: axisSpec.annotations,\n isSubsetFilter: axisSpec.annotations?.[SUBSET_FILTER_KEY] === 'true',\n isDiscreteFilter: axisSpec.type === 'String' || axisSpec.annotations?.[DISCRETE_FILTER_KEY] === 'true',\n parentSources: [selectedIdStr],\n };\n dataMap.set(axisIdStr, axisInfo);\n }\n }\n}\n\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 axesToBeFixed: [],\n axesToBeFixedIndexes: {}\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 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\nexport function getFilterFromState(state: SelectorStateFilter): PTableRecordSingleValueFilterV2[] {\n const {selectedSource, type, selectedFilterRange, selectedFilterValue} = 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: selectedFilterRange.max\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: selectedFilterRange?.min as number,\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 selectedFilterValue === 'undefined') {\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: 'Equal',\n reference:\n id.type === 'String'\n ? String(selectedFilterValue)\n : (Number(selectedFilterValue) as string | number),\n } as SingleValuePredicateV2,\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 axisMustBeConsumed(spec: AxisSpec) {\n const axisNature = spec.annotations?.[AXIS_NATURE_KEY]?.toLowerCase();\n return Boolean(axisNature) && axisNature !== 'homogenous' && axisNature !== 'homogeneous';\n}\n\nexport function checkSourceBySpecForFilters(spec: PColumnSpec | AxisSpec) {\n //const type = 'kind' in spec && spec.kind === 'PColumn' ? spec.valueType : spec.type;\n if (spec.annotations?.[SUBSET_FILTER_KEY] === 'true') {\n return true;\n }\n if (spec.annotations?.[DISCRETE_FILTER_KEY] === 'true') {\n return true;\n }\n //return type === 'Double' || type === 'Float' || type === 'Int' || type === 'Long'\n return true;\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 return LinkerMap.fromColumns(allLinkerColumns);\n}\n\nexport async function getLinkerColumnsForSource(\n store: DataStore,\n linkerMap: LinkerMap,\n dataInputAxes: AxisSpec[],\n secondarySource: ColumnOrAxisIdString,\n fixedAxesOfSecondaryColumn: SelectorState['fixedAxes']\n):Promise<ColumnId[]> {\n const columnOrAxisId = columnOrAxisIdFromString(secondarySource);\n if (!isColumnId(columnOrAxisId)) {\n return [];\n }\n const secondaryColumnSpec = await store.pFrameProvider.getColumnSpecById(columnOrAxisId);\n if (!secondaryColumnSpec) {\n return [];\n }\n const allColumnAxesWithoutFixed = secondaryColumnSpec.axesSpec.filter(\n (axisSpec) => {\n const axisId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n return !fixedAxesOfSecondaryColumn?.some(el => el.axisSource === axisId);\n });\n\n const dataInputAxesSet = new Set(dataInputAxes.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString()));\n const rightPartAxes = allColumnAxesWithoutFixed.filter((axisSpec) => { // right part from column minus 'fixedAxes'\n const axisId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n return !dataInputAxesSet.has(axisId);\n });\n\n const from = getNormalizedAxesList(dataInputAxes);\n const to = getNormalizedAxesList(rightPartAxes);\n\n return linkerMap.getLinkerColumnsForAxes({from,to}).map(v => new ColumnId({name: v.columnId, type: v.spec.valueType}));\n}\n\nexport function getNotAllowedAxes(\n columnSpec: PColumnSpec,\n dataInputAxesList: AxisSpec[], // axes from data-input\n someset: Set<unknown>, \n linkerMap: LinkerMap, // composite linkers, without chains\n): AxisSpec[] {\n const dataInputAxesSet = new Set(dataInputAxesList.map((v) => AxisId.fromAxisSpec(v).toCanonicalString()))\n const allColumnAxes = getNormalizedAxesList(columnSpec.axesSpec);\n // remove from the column axes - axes from data inputs\n const rightPartAxes = allColumnAxes.filter(\n (axisSpec:AxisSpec) => !dataInputAxesSet.has(AxisId.fromAxisSpec(axisSpec).toCanonicalString())\n );\n\n const sourceAxes = getNormalizedAxesList(dataInputAxesList);\n const targetAxes = LinkerMap.getAxesRoots(rightPartAxes);\n\n return linkerMap.getNonLinkableAxes(sourceAxes, targetAxes);\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 for (let rowIdx = 0; rowIdx < dataLength; rowIdx++) {\n let res = false;\n for (let i = 0; i < highlightSelectedStates.length; i++) {\n const {selectedSource, selectedFilterValue, selectedFilterRange, type} = highlightSelectedStates[i];\n const sourceId = columnOrAxisIdFromString(selectedSource);\n const value = (isColumnId(sourceId) ? data.columnsData[selectedSource] : data.axesData[selectedSource])[rowIdx];\n if (selectedFilterValue !== undefined) {\n res = res || value === selectedFilterValue;\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":["addSourceInfoToMap","store","selectedIdStr","label","dataMap","dataAxesList","dataAxes","fixedAxesAllowed","linkerMap","sourceId","columnOrAxisIdFromString","isColumnId","columnSpec","extraAxesIds","getNotAllowedAxes","axisSpec","AxisId","extraAxesSet","axesIds","extraAxesIndexes","id","idx","columnInfo","getColumnOrAxisLabel","_a","SUBSET_FILTER_KEY","_b","DISCRETE_FILTER_KEY","axisIdStr","mustBeConsumed","axisMustBeConsumed","axisInfo","_c","_d","getDefaultInfo","sourceIdStr","item","name","type","getStateCopy","state","getFilterFromState","selectedSource","selectedFilterRange","selectedFilterValue","rangeFilters","isAxisId","getFiltersFromStates","states","result","getGlobalId","spec","COLUMN_NAME_KEY","domain","COLUMN_DOMAIN_KEY","canonicalize","getAxisSpecFromParents","axisId","parentSources","parentSource","parentId","s","LABEL_COLUMN_NAME","getColumnOrAxisValueLabelsId","getAxisGlobalId","labelColumns","sourceGlobalId","labelColumn","ColumnId","getColumnOrAxisSpec","selectedId","labelsColumn","COLUMN_LABEL_KEY","axisNature","AXIS_NATURE_KEY","checkSourceBySpecForFilters","dataColumnPredicateDefault","IS_VIRTUAL_COLUMN","getAxesSpecsFromSources","idStrs","set","idStr","createLinkerMap","allLinkerColumns","IS_LINKER_COLUMN","LinkerMap","getLinkerColumnsForSource","dataInputAxes","secondarySource","fixedAxesOfSecondaryColumn","columnOrAxisId","secondaryColumnSpec","allColumnAxesWithoutFixed","el","dataInputAxesSet","rightPartAxes","from","getNormalizedAxesList","to","v","dataInputAxesList","someset","sourceAxes","targetAxes","createHighlightColumn","highlightSelectedStates","data","dataLength","highlightColumn","rowIdx","res","i","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} from '@milaboratories/pl-model-common';\nimport {SelectorState} from './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, DISCRETE_FILTER_KEY, IS_LINKER_COLUMN,\n IS_VIRTUAL_COLUMN,\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 async function addSourceInfoToMap( // by column id / axis id, without qualifications\n store: DataStore,\n selectedIdStr: ColumnOrAxisIdString,\n label: string | undefined,\n dataMap: Map<string, ColumnData | AxisData>,\n dataAxesList: AxisSpec[],\n dataAxes: Set<ColumnOrAxisIdString>,\n fixedAxesAllowed = true,\n linkerMap: LinkerMap\n) {\n const sourceId = columnOrAxisIdFromString(selectedIdStr);\n if (isColumnId(sourceId)) {\n const columnSpec = await store.pFrameProvider.getColumnSpecById(sourceId);\n if (!columnSpec) {\n return;\n }\n const extraAxesIds = getNotAllowedAxes(\n columnSpec,\n dataAxesList,\n dataAxes,\n linkerMap\n ).map((axisSpec) => AxisId.fromAxisSpec(axisSpec).toCanonicalString());\n\n const extraAxesSet = new Set(extraAxesIds);\n const axesIds = columnSpec.axesSpec.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString());\n const extraAxesIndexes: Record<string, number> = {};\n if (fixedAxesAllowed) {\n axesIds.forEach((id, idx) => {\n if (extraAxesSet.has(id)) {\n extraAxesIndexes[id] = idx;\n }\n });\n }\n const columnInfo: ColumnData = {\n kind: 'column',\n name: columnSpec.name,\n label: label ?? (await getColumnOrAxisLabel(store, selectedIdStr, [])),\n type: columnSpec.valueType,\n spec: columnSpec,\n annotations: columnSpec.annotations,\n isSubsetFilter: columnSpec.annotations?.[SUBSET_FILTER_KEY] === 'true',\n isDiscreteFilter: columnSpec.valueType === 'String' || columnSpec.annotations?.[DISCRETE_FILTER_KEY] === 'true',\n axesToBeFixed: extraAxesIds,\n axesToBeFixedIndexes: extraAxesIndexes,\n };\n dataMap.set(sourceId.toCanonicalString(), columnInfo);\n for (const axisSpec of columnSpec.axesSpec) {\n const axisId = AxisId.fromAxisSpec(axisSpec);\n const axisIdStr = axisId.toCanonicalString();\n if (dataMap.has(axisIdStr)) {\n continue;\n }\n const mustBeConsumed = axisMustBeConsumed(axisSpec);\n const axisInfo: AxisData = {\n kind: 'axis',\n name: axisSpec.name,\n label: await getColumnOrAxisLabel(store, axisIdStr, [selectedIdStr]),\n type: axisSpec.type,\n mustBeConsumed,\n dividable: false,\n spec: axisSpec,\n annotations: axisSpec.annotations,\n isSubsetFilter: axisSpec.annotations?.[SUBSET_FILTER_KEY] === 'true',\n isDiscreteFilter: axisSpec.type === 'String' || axisSpec.annotations?.[DISCRETE_FILTER_KEY] === 'true',\n parentSources: [selectedIdStr],\n };\n dataMap.set(axisIdStr, axisInfo);\n }\n }\n}\n\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 axesToBeFixed: [],\n axesToBeFixedIndexes: {}\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 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\nexport function getFilterFromState(state: SelectorStateFilter): PTableRecordSingleValueFilterV2[] {\n const {selectedSource, type, selectedFilterRange, selectedFilterValue} = 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: selectedFilterRange.max\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: selectedFilterRange?.min as number,\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 selectedFilterValue === 'undefined') {\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: 'Equal',\n reference:\n id.type === 'String'\n ? String(selectedFilterValue)\n : (Number(selectedFilterValue) as string | number),\n } as SingleValuePredicateV2,\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 axisMustBeConsumed(spec: AxisSpec) {\n const axisNature = spec.annotations?.[AXIS_NATURE_KEY]?.toLowerCase();\n return Boolean(axisNature) && axisNature !== 'homogenous' && axisNature !== 'homogeneous';\n}\n\nexport function checkSourceBySpecForFilters(spec: PColumnSpec | AxisSpec) {\n //const type = 'kind' in spec && spec.kind === 'PColumn' ? spec.valueType : spec.type;\n if (spec.annotations?.[SUBSET_FILTER_KEY] === 'true') {\n return true;\n }\n if (spec.annotations?.[DISCRETE_FILTER_KEY] === 'true') {\n return true;\n }\n //return type === 'Double' || type === 'Float' || type === 'Int' || type === 'Long'\n return true;\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 return LinkerMap.fromColumns(allLinkerColumns);\n}\n\nexport async function getLinkerColumnsForSource(\n store: DataStore,\n linkerMap: LinkerMap,\n dataInputAxes: AxisSpec[],\n secondarySource: ColumnOrAxisIdString,\n fixedAxesOfSecondaryColumn: SelectorState['fixedAxes']\n):Promise<ColumnId[]> {\n const columnOrAxisId = columnOrAxisIdFromString(secondarySource);\n if (!isColumnId(columnOrAxisId)) {\n return [];\n }\n const secondaryColumnSpec = await store.pFrameProvider.getColumnSpecById(columnOrAxisId);\n if (!secondaryColumnSpec) {\n return [];\n }\n const allColumnAxesWithoutFixed = secondaryColumnSpec.axesSpec.filter(\n (axisSpec) => {\n const axisId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n return !fixedAxesOfSecondaryColumn?.some(el => el.axisSource === axisId);\n });\n\n const dataInputAxesSet = new Set(dataInputAxes.map(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString()));\n const rightPartAxes = allColumnAxesWithoutFixed.filter((axisSpec) => { // right part from column minus 'fixedAxes'\n const axisId = AxisId.fromAxisSpec(axisSpec).toCanonicalString();\n return !dataInputAxesSet.has(axisId);\n });\n\n const from = getNormalizedAxesList(dataInputAxes);\n const to = getNormalizedAxesList(rightPartAxes);\n\n return linkerMap.getLinkerColumnsForAxes({from,to}).map(v => new ColumnId({name: v.columnId, type: v.spec.valueType}));\n}\n\nexport function getNotAllowedAxes(\n columnSpec: PColumnSpec,\n dataInputAxesList: AxisSpec[], // axes from data-input\n someset: Set<unknown>, \n linkerMap: LinkerMap, // composite linkers, without chains\n): AxisSpec[] {\n const dataInputAxesSet = new Set(dataInputAxesList.map((v) => AxisId.fromAxisSpec(v).toCanonicalString()))\n const allColumnAxes = getNormalizedAxesList(columnSpec.axesSpec);\n // remove from the column axes - axes from data inputs\n const rightPartAxes = allColumnAxes.filter(\n (axisSpec:AxisSpec) => !dataInputAxesSet.has(AxisId.fromAxisSpec(axisSpec).toCanonicalString())\n );\n\n const sourceAxes = getNormalizedAxesList(dataInputAxesList);\n const targetAxes = LinkerMap.getAxesRoots(rightPartAxes);\n\n return linkerMap.getNonLinkableAxes(sourceAxes, targetAxes);\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 for (let rowIdx = 0; rowIdx < dataLength; rowIdx++) {\n let res = false;\n for (let i = 0; i < highlightSelectedStates.length; i++) {\n const {selectedSource, selectedFilterValue, selectedFilterRange, type} = highlightSelectedStates[i];\n const sourceId = columnOrAxisIdFromString(selectedSource);\n const value = (isColumnId(sourceId) ? data.columnsData[selectedSource] : data.axesData[selectedSource])[rowIdx];\n if (selectedFilterValue !== undefined) {\n res = res || value === selectedFilterValue;\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":["addSourceInfoToMap","store","selectedIdStr","label","dataMap","dataAxesList","dataAxes","fixedAxesAllowed","linkerMap","sourceId","columnOrAxisIdFromString","isColumnId","columnSpec","extraAxesIds","getNotAllowedAxes","axisSpec","AxisId","extraAxesSet","axesIds","extraAxesIndexes","id","idx","columnInfo","getColumnOrAxisLabel","_a","SUBSET_FILTER_KEY","_b","DISCRETE_FILTER_KEY","axisIdStr","mustBeConsumed","axisMustBeConsumed","axisInfo","_c","_d","getDefaultInfo","sourceIdStr","item","name","type","getStateCopy","state","getFilterFromState","selectedSource","selectedFilterRange","selectedFilterValue","rangeFilters","isAxisId","getFiltersFromStates","states","result","getGlobalId","spec","COLUMN_NAME_KEY","domain","COLUMN_DOMAIN_KEY","canonicalize","getAxisSpecFromParents","axisId","parentSources","parentSource","parentId","s","LABEL_COLUMN_NAME","getColumnOrAxisValueLabelsId","getAxisGlobalId","labelColumns","sourceGlobalId","labelColumn","ColumnId","getColumnOrAxisSpec","selectedId","labelsColumn","COLUMN_LABEL_KEY","axisNature","AXIS_NATURE_KEY","checkSourceBySpecForFilters","dataColumnPredicateDefault","IS_VIRTUAL_COLUMN","getAxesSpecsFromSources","idStrs","set","idStr","createLinkerMap","allLinkerColumns","IS_LINKER_COLUMN","LinkerMap","getLinkerColumnsForSource","dataInputAxes","secondarySource","fixedAxesOfSecondaryColumn","columnOrAxisId","secondaryColumnSpec","allColumnAxesWithoutFixed","el","dataInputAxesSet","rightPartAxes","from","getNormalizedAxesList","to","v","dataInputAxesList","someset","sourceAxes","targetAxes","createHighlightColumn","highlightSelectedStates","data","dataLength","highlightColumn","rowIdx","res","i","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.145",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/lib.js",
|
|
6
6
|
"types": "dist/lib.d.ts",
|
|
@@ -37,9 +37,9 @@
|
|
|
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.
|
|
42
|
-
"@platforma-sdk/model": "^1.
|
|
40
|
+
"@milaboratories/miplots4": "^1.0.136",
|
|
41
|
+
"@milaboratories/pf-plots": "^1.1.30",
|
|
42
|
+
"@platforma-sdk/model": "^1.42.21",
|
|
43
43
|
"@platforma-sdk/ui-vue": "^1.39.16",
|
|
44
44
|
"@types/d3-hierarchy": "^3.1.7",
|
|
45
45
|
"@types/d3-scale": "^4.0.8",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../../../../node_modules/@milaboratories/pf-plots/node_modules/@milaboratories/pl-error-like/src/error_like_shape.ts"],"sourcesContent":["import stringify from 'json-stringify-safe';\nimport { z } from 'zod';\n\n// We want to define StandardErrorLike and PlErrorLike, it's a way to define recursive types in zod.\n// https://zod.dev/?id=recursive-types\n// We need zod to parse error strings into these objects for keeping new UI and old blocks compatible.\n\nexport const BasePlErrorLike = z.object({\n type: z.literal('PlError'),\n name: z.string(),\n message: z.string(),\n /** The message with all details needed for SDK developers. */\n fullMessage: z.string().optional(),\n stack: z.string().optional(),\n});\n\n/** Known Pl backend and ML errors. */\nexport type PlErrorLike = z.infer<typeof BasePlErrorLike> & {\n cause?: ErrorLike;\n errors?: ErrorLike[];\n};\n\nexport const PlErrorLike: z.ZodType<PlErrorLike> = BasePlErrorLike.extend({\n cause: z.lazy(() => ErrorLike).optional(),\n errors: z.lazy(() => ErrorLike.array()).optional(),\n});\n\nconst BaseStandardErrorLike = z.object({\n type: z.literal('StandardError'),\n name: z.string(),\n message: z.string(),\n stack: z.string().optional(),\n});\n\n/** Others unknown errors that could be thrown by the client. */\nexport type StandardErrorLike = z.infer<typeof BaseStandardErrorLike> & {\n cause?: ErrorLike;\n errors?: ErrorLike[];\n};\n\nexport const StandardErrorLike: z.ZodType<StandardErrorLike> = BaseStandardErrorLike.extend({\n cause: z.lazy(() => ErrorLike).optional(),\n errors: z.lazy(() => ErrorLike.array()).optional(),\n});\n\nexport const ErrorLike = z.union([StandardErrorLike, PlErrorLike]);\nexport type ErrorLike = z.infer<typeof ErrorLike>;\n\n/** Converts everything into ErrorLike. */\nexport function ensureErrorLike(error: unknown): ErrorLike {\n const result = ErrorShape.safeParse(error);\n\n if (result.success) {\n const err = result.data;\n\n if (err.name === 'PlQuickJSError'\n || err.name === 'PlErrorReport'\n || err.name === 'PlInternalError'\n || err.name === 'PlTengoError'\n || err.name === 'PlRunnerError'\n || err.name === 'PlMonetizationError') {\n return {\n type: 'PlError',\n name: err.name,\n message: err.message,\n fullMessage: err.fullMessage ?? undefined,\n stack: err.stack ?? undefined,\n cause: err.cause ? ensureErrorLike(err.cause) : undefined,\n errors: err.errors ? err.errors.map(ensureErrorLike) : undefined,\n };\n }\n\n return {\n type: 'StandardError',\n name: err.name,\n message: err.message,\n stack: err.stack ?? undefined,\n cause: err.cause ? ensureErrorLike(err.cause) : undefined,\n errors: err.errors ? err.errors.map(ensureErrorLike) : undefined,\n };\n }\n\n return {\n type: 'StandardError',\n name: 'Error',\n // Stringify without circular dependencies.\n // Maps (and sets?) will be converted to empty json objects,\n // if this is a problem, we should change the library,\n // but the new library must work in all QuickJS, UI and Node.js like this one.\n message: stringify(error),\n };\n}\n\n/** Tries to parse strings into ErrorLike. It's needed for keeping old blocks compatible with new UI. */\nexport function parseErrorLikeSafe(err: string): {\n success: true;\n data: ErrorLike;\n} | {\n success: false;\n error: Error;\n} {\n try {\n return ErrorLike.safeParse(JSON.parse(err));\n } catch (e) {\n return { success: false, error: new Error(`parseErrorLikeSafe: could not parse JSON: ${err}, ${String(e)}`) };\n }\n}\n\n// We want to define ErrorShape schema just to parse it above, it's a way to define recursive types in zod.\n// https://zod.dev/?id=recursive-types\n\nconst baseErrorShape = z.object({\n name: z.string(),\n message: z.string(),\n fullMessage: z.string().optional(),\n stack: z.string().optional(),\n});\n\ntype ErrorShape = z.infer<typeof baseErrorShape> & {\n cause?: ErrorShape;\n errors?: ErrorShape[];\n};\n\nconst ErrorShape: z.ZodType<ErrorShape> = baseErrorShape.extend({\n cause: z.lazy(() => ErrorShape).optional(),\n errors: z.lazy(() => ErrorShape.array()).optional(),\n});\n"],"names":["BasePlErrorLike","z","PlErrorLike","ErrorLike","BaseStandardErrorLike","StandardErrorLike","baseErrorShape","ErrorShape"],"mappings":";;AAOaA,MAAAA,IAAkBC,EAAE,OAAO;AAAA,EACtC,MAAMA,EAAE,QAAQ,SAAS;AAAA,EACzB,MAAMA,EAAE,OAAA;AAAA,EACR,SAASA,EAAE,OAAA;AAAA;AAAA,EAEX,aAAaA,EAAE,OAAA,EAAS,SAAA;AAAA,EACxB,OAAOA,EAAE,OAAA,EAAS,SAAA;AACpB,CAAC,GAQYC,IAAsCF,EAAgB,OAAO;AAAA,EACxE,OAAOC,EAAE,KAAK,MAAME,CAAS,EAAE,SAAA;AAAA,EAC/B,QAAQF,EAAE,KAAK,MAAME,EAAU,MAAA,CAAO,EAAE,SAAA;AAC1C,CAAC,GAEKC,IAAwBH,EAAE,OAAO;AAAA,EACrC,MAAMA,EAAE,QAAQ,eAAe;AAAA,EAC/B,MAAMA,EAAE,OAAA;AAAA,EACR,SAASA,EAAE,OAAA;AAAA,EACX,OAAOA,EAAE,OAAA,EAAS,SAAA;AACpB,CAAC,GAQYI,IAAkDD,EAAsB,OAAO;AAAA,EAC1F,OAAOH,EAAE,KAAK,MAAME,CAAS,EAAE,SAAA;AAAA,EAC/B,QAAQF,EAAE,KAAK,MAAME,EAAU,MAAA,CAAO,EAAE,SAAA;AAC1C,CAAC,GAEYA,IAAYF,EAAE,MAAM,CAACI,GAAmBH,CAAW,CAAC,GAkE3DI,IAAiBL,EAAE,OAAO;AAAA,EAC9B,MAAMA,EAAE,OAAA;AAAA,EACR,SAASA,EAAE,OAAA;AAAA,EACX,aAAaA,EAAE,OAAA,EAAS,SAAA;AAAA,EACxB,OAAOA,EAAE,OAAA,EAAS,SAAA;AACpB,CAAC,GAOKM,IAAoCD,EAAe,OAAO;AAAA,EAC9D,OAAOL,EAAE,KAAK,MAAMM,CAAU,EAAE,SAAA;AAAA,EAChC,QAAQN,EAAE,KAAK,MAAMM,EAAW,MAAA,CAAO,EAAE,SAAA;AAC3C,CAAC;","x_google_ignoreList":[0]}
|