@milaboratories/graph-maker 1.1.157 → 1.1.158
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 +74 -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,19 @@ 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
|
-
if (
|
|
44
|
-
return Math.floor(
|
|
42
|
+
function L(t, n) {
|
|
43
|
+
if (n === "Int" || n === "Long")
|
|
44
|
+
return Math.floor(t);
|
|
45
45
|
}
|
|
46
|
-
function B(
|
|
47
|
-
const { selectedSource:
|
|
46
|
+
function B(t) {
|
|
47
|
+
const { selectedSource: n, type: a, selectedFilterRange: o, selectedFilterValues: i } = t, e = S(n);
|
|
48
48
|
if (!e)
|
|
49
49
|
throw Error("Empty source selected");
|
|
50
50
|
if (a === "range") {
|
|
@@ -92,27 +92,27 @@ function B(n) {
|
|
|
92
92
|
}
|
|
93
93
|
];
|
|
94
94
|
}
|
|
95
|
-
function ee(
|
|
96
|
-
const
|
|
97
|
-
for (const a of
|
|
98
|
-
|
|
99
|
-
return
|
|
95
|
+
function ee(t) {
|
|
96
|
+
const n = [];
|
|
97
|
+
for (const a of t)
|
|
98
|
+
n.push(...B(a));
|
|
99
|
+
return n;
|
|
100
100
|
}
|
|
101
|
-
function b(
|
|
102
|
-
var
|
|
103
|
-
if ("kind" in
|
|
104
|
-
const e =
|
|
101
|
+
function b(t) {
|
|
102
|
+
var n, a;
|
|
103
|
+
if ("kind" in t && t.kind === "PColumn") {
|
|
104
|
+
const e = t.name ?? ((n = t.annotations) == null ? void 0 : n[R]), r = t.domain ?? ((a = t.annotations) == null ? void 0 : a[V]);
|
|
105
105
|
return w({ name: e, domain: r });
|
|
106
106
|
}
|
|
107
|
-
const o =
|
|
107
|
+
const o = t.name, i = t.domain;
|
|
108
108
|
return w({ name: o, domain: i });
|
|
109
109
|
}
|
|
110
|
-
async function N(
|
|
110
|
+
async function N(t, n, a) {
|
|
111
111
|
for (const o of a) {
|
|
112
112
|
const i = S(o);
|
|
113
113
|
if (y(i)) {
|
|
114
|
-
const e = await
|
|
115
|
-
(s) => g.fromAxisSpec(s).toCanonicalString() ===
|
|
114
|
+
const e = await t.pFrameProvider.getColumnSpecById(i), r = ((e == null ? void 0 : e.axesSpec) ?? []).find(
|
|
115
|
+
(s) => g.fromAxisSpec(s).toCanonicalString() === n.toCanonicalString()
|
|
116
116
|
);
|
|
117
117
|
if (r)
|
|
118
118
|
return r;
|
|
@@ -121,45 +121,45 @@ async function N(n, t, a) {
|
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
123
123
|
const T = "pl7.app/label";
|
|
124
|
-
async function D(
|
|
125
|
-
const o = S(
|
|
124
|
+
async function D(t, n, a) {
|
|
125
|
+
const o = S(n);
|
|
126
126
|
if (y(o))
|
|
127
127
|
return;
|
|
128
128
|
async function i(c) {
|
|
129
|
-
const u = await N(
|
|
129
|
+
const u = await N(t, c, a);
|
|
130
130
|
return u ? b(u) : null;
|
|
131
131
|
}
|
|
132
|
-
const e = await
|
|
132
|
+
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
133
|
return s ? new A({ name: s.columnId, type: s.spec.valueType }) : void 0;
|
|
134
134
|
}
|
|
135
|
-
async function U(
|
|
136
|
-
const o = S(
|
|
135
|
+
async function U(t, n, a) {
|
|
136
|
+
const o = S(n), i = await D(t, n, a);
|
|
137
137
|
let e;
|
|
138
|
-
return y(o) ? e = await
|
|
138
|
+
return y(o) ? e = await t.pFrameProvider.getColumnSpecById(i ?? o) : e = i ? await t.pFrameProvider.getColumnSpecById(i) : await N(t, o, a), e;
|
|
139
139
|
}
|
|
140
|
-
async function
|
|
140
|
+
async function te(t, n, a) {
|
|
141
141
|
var o;
|
|
142
|
-
const i = await U(
|
|
142
|
+
const i = await U(t, n, a);
|
|
143
143
|
if (!i)
|
|
144
144
|
return "";
|
|
145
145
|
const e = ((o = i.annotations) == null ? void 0 : o[P]) ?? i.name;
|
|
146
|
-
return
|
|
146
|
+
return t.labelsModifier(i.name, e);
|
|
147
147
|
}
|
|
148
|
-
function
|
|
149
|
-
var
|
|
150
|
-
const o = (a = (
|
|
148
|
+
function ne(t) {
|
|
149
|
+
var n, a;
|
|
150
|
+
const o = (a = (n = t.annotations) == null ? void 0 : n[_]) == null ? void 0 : a.toLowerCase();
|
|
151
151
|
return !!o && o !== "homogenous" && o !== "homogeneous";
|
|
152
152
|
}
|
|
153
|
-
function oe(
|
|
154
|
-
var
|
|
155
|
-
return !
|
|
153
|
+
function oe(t) {
|
|
154
|
+
var n, a;
|
|
155
|
+
return !t.name.includes("metadata") && ((n = t.annotations) == null ? void 0 : n[k]) !== "true" && ((a = t.annotations) == null ? void 0 : a[O]) !== "true";
|
|
156
156
|
}
|
|
157
|
-
async function ae(
|
|
157
|
+
async function ae(t, n) {
|
|
158
158
|
const a = /* @__PURE__ */ new Set(), o = [];
|
|
159
|
-
for (const i of
|
|
159
|
+
for (const i of n) {
|
|
160
160
|
const e = S(i);
|
|
161
161
|
if (y(e)) {
|
|
162
|
-
const r = await
|
|
162
|
+
const r = await t.pFrameProvider.getColumnSpecById(e);
|
|
163
163
|
if (!r)
|
|
164
164
|
continue;
|
|
165
165
|
r.axesSpec.forEach((s) => {
|
|
@@ -170,19 +170,19 @@ async function ae(n, t) {
|
|
|
170
170
|
}
|
|
171
171
|
return o;
|
|
172
172
|
}
|
|
173
|
-
async function re(
|
|
174
|
-
const
|
|
173
|
+
async function re(t) {
|
|
174
|
+
const n = await t.pFrameProvider.getColumnsFull(
|
|
175
175
|
[],
|
|
176
176
|
!1,
|
|
177
177
|
void 0,
|
|
178
178
|
void 0,
|
|
179
|
-
{ [
|
|
179
|
+
{ [M]: "true" }
|
|
180
180
|
);
|
|
181
|
-
return E.fromColumns(
|
|
181
|
+
return E.fromColumns(n);
|
|
182
182
|
}
|
|
183
|
-
async function ie(
|
|
184
|
-
var
|
|
185
|
-
const e = await
|
|
183
|
+
async function ie(t) {
|
|
184
|
+
var n, a, o, i;
|
|
185
|
+
const e = await t.pFrameProvider.getColumnsFull(
|
|
186
186
|
[],
|
|
187
187
|
!1,
|
|
188
188
|
void 0,
|
|
@@ -191,7 +191,7 @@ async function ie(n) {
|
|
|
191
191
|
[F]
|
|
192
192
|
), r = /* @__PURE__ */ new Map();
|
|
193
193
|
for (const s of e) {
|
|
194
|
-
const c = s.spec.axesSpec, u = (a = (
|
|
194
|
+
const c = s.spec.axesSpec, u = (a = (n = s.spec) == null ? void 0 : n.annotations) == null ? void 0 : a[F];
|
|
195
195
|
if (c.length !== 2 || !u)
|
|
196
196
|
continue;
|
|
197
197
|
const l = new A({ name: s.columnId, type: s.spec.valueType }).toCanonicalString();
|
|
@@ -204,21 +204,21 @@ async function ie(n) {
|
|
|
204
204
|
}
|
|
205
205
|
return r;
|
|
206
206
|
}
|
|
207
|
-
function K(
|
|
207
|
+
function K(t, n, a, o) {
|
|
208
208
|
var i;
|
|
209
|
-
const e =
|
|
209
|
+
const e = t.toCanonicalString(), r = [...new Set(o.map((l) => g.fromAxisSpec(l).toCanonicalString()))].find((l) => {
|
|
210
210
|
var f;
|
|
211
211
|
return (f = a.get(l)) == null ? void 0 : f.get(e);
|
|
212
212
|
}), s = r ? (i = a.get(r)) == null ? void 0 : i.get(e) : null;
|
|
213
213
|
if (s)
|
|
214
214
|
return [S(s.parentSource)];
|
|
215
215
|
const c = x(o), u = x(
|
|
216
|
-
|
|
216
|
+
n.getReachableByLinkersAxesFromAxes(c)
|
|
217
217
|
).find((l) => g.fromAxisSpec(l).toCanonicalString() === e);
|
|
218
|
-
return u ?
|
|
218
|
+
return u ? n.getLinkerColumnsForAxes({ from: c, to: [u], throwWhenNoLinkExists: !1 }).map((l) => new A({ name: l.columnId, type: l.spec.valueType })) : [];
|
|
219
219
|
}
|
|
220
|
-
async function Y(
|
|
221
|
-
const e = await
|
|
220
|
+
async function Y(t, n, a, o, i) {
|
|
221
|
+
const e = await n.pFrameProvider.getColumnSpecById(t);
|
|
222
222
|
if (!e)
|
|
223
223
|
return [];
|
|
224
224
|
let r = [];
|
|
@@ -227,23 +227,23 @@ async function Y(n, t, a, o, i) {
|
|
|
227
227
|
const p = g.fromAxisSpec(m).toCanonicalString();
|
|
228
228
|
if (s.has(p))
|
|
229
229
|
return !1;
|
|
230
|
-
const v = c.find((
|
|
230
|
+
const v = c.find(($) => {
|
|
231
231
|
var h;
|
|
232
|
-
return (h = o.get(
|
|
232
|
+
return (h = o.get($)) == null ? void 0 : h.get(p);
|
|
233
233
|
}), I = v ? (d = o.get(v)) == null ? void 0 : d.get(p) : null;
|
|
234
234
|
return I ? (r.push(S(I.parentSource)), !1) : !0;
|
|
235
235
|
}), l = x(i), f = x(u);
|
|
236
236
|
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
237
|
}
|
|
238
|
-
async function se(
|
|
238
|
+
async function se(t, n, a, o, i) {
|
|
239
239
|
const e = S(i);
|
|
240
|
-
return y(e) ? Y(e,
|
|
240
|
+
return y(e) ? Y(e, t, n, a, o) : K(e, n, a, o);
|
|
241
241
|
}
|
|
242
|
-
function le(
|
|
243
|
-
const i = new Set(
|
|
242
|
+
function le(t, n, a, o) {
|
|
243
|
+
const i = new Set(n.map((u) => g.fromAxisSpec(u).toCanonicalString())), e = [...i], r = x(t.axesSpec).filter(
|
|
244
244
|
// axes in data axes list are allowed, check the rest
|
|
245
245
|
(u) => !i.has(g.fromAxisSpec(u).toCanonicalString())
|
|
246
|
-
), s = x(
|
|
246
|
+
), s = x(n), c = E.getAxesRoots(r);
|
|
247
247
|
return a.getNonLinkableAxes(s, c).filter((u) => {
|
|
248
248
|
const l = g.fromAxisSpec(u).toCanonicalString();
|
|
249
249
|
return !e.some((f) => {
|
|
@@ -252,14 +252,14 @@ function le(n, t, a, o) {
|
|
|
252
252
|
});
|
|
253
253
|
});
|
|
254
254
|
}
|
|
255
|
-
function ce(
|
|
256
|
-
const a =
|
|
255
|
+
function ce(t, n) {
|
|
256
|
+
const a = n.columnsData[Object.keys(n.columnsData)[0]].length, o = new Int32Array(a).fill(0), i = t.filter(
|
|
257
257
|
(e) => e.selectedFilterRange && (e.selectedFilterRange.min !== void 0 || e.selectedFilterRange.max !== void 0) || e.selectedFilterValues && e.selectedFilterValues.length
|
|
258
258
|
);
|
|
259
259
|
for (let e = 0; e < a; e++) {
|
|
260
260
|
let r = i.length === 0;
|
|
261
261
|
for (let s = 0; s < i.length; s++) {
|
|
262
|
-
const { selectedSource: c, selectedFilterValues: u, selectedFilterRange: l, type: f } =
|
|
262
|
+
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
263
|
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
264
|
let p = !0;
|
|
265
265
|
l.min !== void 0 && (p = p && d >= l.min), l.max !== void 0 && (p = p && d <= l.max), r = r || p;
|
|
@@ -271,13 +271,13 @@ function ce(n, t) {
|
|
|
271
271
|
return o;
|
|
272
272
|
}
|
|
273
273
|
export {
|
|
274
|
-
|
|
274
|
+
ne as axisIsNonHomogenous,
|
|
275
275
|
ce as createHighlightColumn,
|
|
276
276
|
re as createLinkerMap,
|
|
277
277
|
ie as createMultipliesByMap,
|
|
278
278
|
oe as dataColumnPredicateDefault,
|
|
279
279
|
ae as getAxesSpecsFromSources,
|
|
280
|
-
|
|
280
|
+
te as getColumnOrAxisLabel,
|
|
281
281
|
U as getColumnOrAxisSpec,
|
|
282
282
|
D as getColumnOrAxisValueLabelsId,
|
|
283
283
|
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) {\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]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/graph-maker",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.158",
|
|
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.34",
|
|
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",
|