@milaboratories/graph-maker 1.1.142 → 1.1.144
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GraphMaker/components/ReorderForm.vue.d.ts +15 -0
- package/dist/GraphMaker/components/ReorderForm.vue.d.ts.map +1 -0
- package/dist/GraphMaker/components/ReorderForm.vue.js +43 -0
- package/dist/GraphMaker/components/ReorderForm.vue.js.map +1 -0
- package/dist/GraphMaker/components/ReorderForm.vue2.js +5 -0
- package/dist/GraphMaker/components/ReorderForm.vue2.js.map +1 -0
- package/dist/GraphMaker/constantsCommon.d.ts +15 -0
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +11 -8
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +305 -172
- package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
- package/dist/GraphMaker/index.vue.d.ts.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/composeBubbleSettings.d.ts +3 -3
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +9 -9
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +5 -11
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +3 -3
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +31 -5
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +56 -53
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +1 -7
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +13 -13
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts +6 -4
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js +42 -13
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +48 -44
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/{discrete/components → common}/BandAxis.js +3 -3
- package/dist/node_modules/@milaboratories/miplots4/dist/common/BandAxis.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/common/ContinuousGrid.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +197 -270
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +9 -9
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Grid.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +11 -11
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-scale/src/band.js +44 -34
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-scale/src/band.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +272 -195
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +23 -23
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +54 -50
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxis.js +32 -28
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxis.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +29 -26
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +44 -41
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Grid.js +31 -27
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Grid.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +29 -18
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +71 -57
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/isNumericScale.js +11 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/isNumericScale.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +10 -10
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +6 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +35 -25
- package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +3 -3
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +37 -37
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +6 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +7 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/createMultilineDiscreteLabels.js +32 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/createMultilineDiscreteLabels.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetRowsColumns.js +18 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetRowsColumns.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/measureMultilineDiscreteLabels.js +63 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/measureMultilineDiscreteLabels.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/{discrete/utils → utils}/splitTextByWidth.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/splitTextByWidth.js.map +1 -0
- 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 +8 -8
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
- 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/miplots4/dist/discrete/components/BandAxis.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Axis.js +0 -59
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Axis.js.map +0 -1
- 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,6 +1,11 @@
|
|
|
1
|
-
import { AxisId as
|
|
1
|
+
import { AxisId as v, isColumnId as w, ColumnId as C } from "../spec.js";
|
|
2
2
|
import S from "../_virtual/lodash.js";
|
|
3
|
-
import
|
|
3
|
+
import "../node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js";
|
|
4
|
+
import { pTableValue as F } from "../node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_types.js";
|
|
5
|
+
import "../node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js";
|
|
6
|
+
import "../_virtual/canonicalize.js";
|
|
7
|
+
import "../node_modules/@milaboratories/pl-model-common/dist/plid.js";
|
|
8
|
+
import "../node_modules/@milaboratories/pl-model-common/dist/ref.js";
|
|
4
9
|
var b = Object.defineProperty, P = (y, e, t) => e in y ? b(y, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : y[e] = t, D = (y, e, t) => P(y, typeof e != "symbol" ? e + "" : e, t);
|
|
5
10
|
const I = 1e6;
|
|
6
11
|
function x(y, e) {
|
|
@@ -11,7 +16,7 @@ function x(y, e) {
|
|
|
11
16
|
t[a] = F(e, a, { absent: null, na: null });
|
|
12
17
|
return t;
|
|
13
18
|
}
|
|
14
|
-
class
|
|
19
|
+
class U {
|
|
15
20
|
constructor(e, t) {
|
|
16
21
|
D(this, "pframeHandle"), D(this, "pframeDriver"), this.pframeHandle = e, this.pframeDriver = t;
|
|
17
22
|
}
|
|
@@ -32,10 +37,10 @@ class V {
|
|
|
32
37
|
},
|
|
33
38
|
filters: t,
|
|
34
39
|
sorting: []
|
|
35
|
-
}),
|
|
40
|
+
}), n = s.filter((i) => i.spec.type === "axis"), o = s.filter((i) => i.spec.type === "column");
|
|
36
41
|
return {
|
|
37
|
-
axesData:
|
|
38
|
-
const c =
|
|
42
|
+
axesData: n.reduce((i, m) => {
|
|
43
|
+
const c = v.fromAxisSpec(m.spec.spec);
|
|
39
44
|
return i[c.toCanonicalString()] = x(c.type, m.data), i;
|
|
40
45
|
}, {}),
|
|
41
46
|
data: o.length ? x(e.type, o[0].data) : []
|
|
@@ -53,20 +58,20 @@ class V {
|
|
|
53
58
|
limit: t
|
|
54
59
|
};
|
|
55
60
|
try {
|
|
56
|
-
const
|
|
61
|
+
const n = Date.now(), o = await this.pframeDriver.getUniqueValues(this.pframeHandle, s);
|
|
57
62
|
let i = !1;
|
|
58
63
|
return o.overflow && (i = !0, console.warn(`More than ${t} values for ${e.name} column`)), {
|
|
59
64
|
values: Array.from(o.values.data).map(String),
|
|
60
65
|
overflow: i
|
|
61
66
|
};
|
|
62
|
-
} catch (
|
|
63
|
-
throw console.error("PFrame: getUniqueValues for column error"),
|
|
67
|
+
} catch (n) {
|
|
68
|
+
throw console.error("PFrame: getUniqueValues for column error"), n;
|
|
64
69
|
}
|
|
65
70
|
}
|
|
66
71
|
async getAxisUniqueValues(e, t, a = I, s = []) {
|
|
67
|
-
const
|
|
72
|
+
const n = t.filter(w), o = await Promise.all(n.map((c) => this.getColumnSpecById(c))), i = e.toCanonicalString(), m = n.filter((c, l) => {
|
|
68
73
|
const p = o[l];
|
|
69
|
-
return p !== null && p.axesSpec.some((u) =>
|
|
74
|
+
return p !== null && p.axesSpec.some((u) => v.fromAxisSpec(u).toCanonicalString() === i);
|
|
70
75
|
});
|
|
71
76
|
if (m.length === 0)
|
|
72
77
|
return { values: [], overflow: !1 };
|
|
@@ -94,19 +99,19 @@ class V {
|
|
|
94
99
|
return console.error("PFrame: getUniqueValues for axis error", c), { values: [], overflow: !1 };
|
|
95
100
|
}
|
|
96
101
|
}
|
|
97
|
-
async getTableOuterJoin(e, t, a = [], s = !0,
|
|
98
|
-
const i = e.filter(
|
|
102
|
+
async getTableOuterJoin(e, t, a = [], s = !0, n = [], o = []) {
|
|
103
|
+
const i = e.filter(w), m = t.filter(w), c = {
|
|
99
104
|
src: {
|
|
100
105
|
type: "outer",
|
|
101
106
|
primary: {
|
|
102
107
|
type: s ? "inner" : "full",
|
|
103
108
|
entries: i.map((l, p) => {
|
|
104
109
|
var u;
|
|
105
|
-
const f = (u =
|
|
110
|
+
const f = (u = n[p]) == null ? void 0 : u.map((r) => ({
|
|
106
111
|
type: "constant",
|
|
107
|
-
axisIndex:
|
|
108
|
-
constant:
|
|
109
|
-
})).filter((
|
|
112
|
+
axisIndex: r.idx,
|
|
113
|
+
constant: r.value
|
|
114
|
+
})).filter((r) => r.constant !== void 0);
|
|
110
115
|
return f != null && f.length ? {
|
|
111
116
|
type: "slicedColumn",
|
|
112
117
|
newId: l.name,
|
|
@@ -120,11 +125,11 @@ class V {
|
|
|
120
125
|
},
|
|
121
126
|
secondary: m.map((l, p) => {
|
|
122
127
|
var u;
|
|
123
|
-
const f = (u = o[p]) == null ? void 0 : u.map((
|
|
128
|
+
const f = (u = o[p]) == null ? void 0 : u.map((r) => ({
|
|
124
129
|
type: "constant",
|
|
125
|
-
axisIndex:
|
|
126
|
-
constant:
|
|
127
|
-
})).filter((
|
|
130
|
+
axisIndex: r.idx,
|
|
131
|
+
constant: r.value
|
|
132
|
+
})).filter((r) => r.constant !== void 0);
|
|
128
133
|
return f != null && f.length ? {
|
|
129
134
|
type: "slicedColumn",
|
|
130
135
|
newId: l.name,
|
|
@@ -140,29 +145,29 @@ class V {
|
|
|
140
145
|
sorting: []
|
|
141
146
|
};
|
|
142
147
|
try {
|
|
143
|
-
const l = Date.now(), p = await this.pframeDriver.calculateTableData(this.pframeHandle, c), u = p.filter((
|
|
148
|
+
const l = Date.now(), p = await this.pframeDriver.calculateTableData(this.pframeHandle, c), u = p.filter((r) => r.spec.type === "axis"), f = p.filter((r) => r.spec.type === "column");
|
|
144
149
|
return {
|
|
145
|
-
axesData: u.reduce((
|
|
146
|
-
const h =
|
|
147
|
-
return
|
|
150
|
+
axesData: u.reduce((r, d) => {
|
|
151
|
+
const h = v.fromAxisSpec(d.spec.spec);
|
|
152
|
+
return r[h.toCanonicalString()] = x(h.type, d.data), r;
|
|
148
153
|
}, {}),
|
|
149
|
-
columnsData: f.reduce((
|
|
154
|
+
columnsData: f.reduce((r, d) => {
|
|
150
155
|
const h = d.spec.spec, g = new C({
|
|
151
156
|
name: d.spec.id,
|
|
152
157
|
type: h.valueType
|
|
153
158
|
});
|
|
154
|
-
return
|
|
159
|
+
return r[g.toCanonicalString()] = x(g.type, d.data), r;
|
|
155
160
|
}, {}),
|
|
156
|
-
columnSpecs: f.reduce((
|
|
161
|
+
columnSpecs: f.reduce((r, d) => {
|
|
157
162
|
const h = d.spec.spec, g = new C({
|
|
158
163
|
name: d.spec.id,
|
|
159
164
|
type: h.valueType
|
|
160
165
|
});
|
|
161
|
-
return
|
|
166
|
+
return r[g.toCanonicalString()] = h, r;
|
|
162
167
|
}, {}),
|
|
163
|
-
axesSpecs: u.reduce((
|
|
164
|
-
const h = d.spec.spec, g =
|
|
165
|
-
return
|
|
168
|
+
axesSpecs: u.reduce((r, d) => {
|
|
169
|
+
const h = d.spec.spec, g = v.fromAxisSpec(h);
|
|
170
|
+
return r[g.toCanonicalString()] = h, r;
|
|
166
171
|
}, {})
|
|
167
172
|
};
|
|
168
173
|
} catch (l) {
|
|
@@ -179,28 +184,28 @@ class V {
|
|
|
179
184
|
}
|
|
180
185
|
async getColumnAxesIds(e) {
|
|
181
186
|
var t;
|
|
182
|
-
return ((t = await this.getColumnSpecById(e)) == null ? void 0 : t.axesSpec.map((a) =>
|
|
187
|
+
return ((t = await this.getColumnSpecById(e)) == null ? void 0 : t.axesSpec.map((a) => v.fromAxisSpec(a))) ?? [];
|
|
183
188
|
}
|
|
184
189
|
async getRequestColumnsFromSelectedSources(e) {
|
|
185
190
|
var t;
|
|
186
191
|
const a = [];
|
|
187
192
|
for (const s of e)
|
|
188
|
-
if (
|
|
189
|
-
const
|
|
190
|
-
a.push(...
|
|
193
|
+
if (w(s)) {
|
|
194
|
+
const n = ((t = await this.getColumnSpecById(s)) == null ? void 0 : t.axesSpec) ?? [];
|
|
195
|
+
a.push(...n.map((o) => v.fromAxisSpec(o).toPFrameId()));
|
|
191
196
|
}
|
|
192
197
|
return a;
|
|
193
198
|
}
|
|
194
199
|
async getColumnsList() {
|
|
195
200
|
return this.pframeDriver.listColumns(this.pframeHandle);
|
|
196
201
|
}
|
|
197
|
-
async getColumnsFull(e, t, a, s,
|
|
202
|
+
async getColumnsFull(e, t, a, s, n) {
|
|
198
203
|
try {
|
|
199
204
|
const o = {
|
|
200
205
|
columnFilter: {
|
|
201
206
|
type: a,
|
|
202
207
|
name: s,
|
|
203
|
-
annotationValue:
|
|
208
|
+
annotationValue: n
|
|
204
209
|
},
|
|
205
210
|
compatibleWith: await this.getRequestColumnsFromSelectedSources(e),
|
|
206
211
|
strictlyCompatible: t
|
|
@@ -213,8 +218,8 @@ class V {
|
|
|
213
218
|
throw console.error("PFrame: findColumns error"), o;
|
|
214
219
|
}
|
|
215
220
|
}
|
|
216
|
-
async getColumns(e, t, a, s,
|
|
217
|
-
return (await this.getColumnsFull(e, t, a, s,
|
|
221
|
+
async getColumns(e, t, a, s, n) {
|
|
222
|
+
return (await this.getColumnsFull(e, t, a, s, n)).map(
|
|
218
223
|
(o) => new C({
|
|
219
224
|
name: o.columnId,
|
|
220
225
|
type: o.spec.valueType
|
|
@@ -223,7 +228,7 @@ class V {
|
|
|
223
228
|
}
|
|
224
229
|
async findColumnBy(e, t, a, s) {
|
|
225
230
|
try {
|
|
226
|
-
const
|
|
231
|
+
const n = {
|
|
227
232
|
columnFilter: {
|
|
228
233
|
name: [e],
|
|
229
234
|
...t ? { type: [t] } : {},
|
|
@@ -232,16 +237,16 @@ class V {
|
|
|
232
237
|
},
|
|
233
238
|
compatibleWith: [],
|
|
234
239
|
strictlyCompatible: !1
|
|
235
|
-
}, o = Date.now(), i = await this.pframeDriver.findColumns(this.pframeHandle,
|
|
240
|
+
}, o = Date.now(), i = await this.pframeDriver.findColumns(this.pframeHandle, n), m = [];
|
|
236
241
|
return i.hits.forEach(({ columnId: c, spec: l }) => {
|
|
237
242
|
m.push(new C({ name: c, type: l.valueType }));
|
|
238
243
|
}), m.length > 1 && console.warn(`More than 1 column found for ${e}}`), m.length === 0 ? (console.warn(`No columns found for ${e}}`), null) : m[0];
|
|
239
|
-
} catch (
|
|
240
|
-
throw console.error("PFrame: findColumns error"),
|
|
244
|
+
} catch (n) {
|
|
245
|
+
throw console.error("PFrame: findColumns error"), n;
|
|
241
246
|
}
|
|
242
247
|
}
|
|
243
248
|
}
|
|
244
249
|
export {
|
|
245
|
-
|
|
250
|
+
U as ColumnsProvider
|
|
246
251
|
};
|
|
247
252
|
//# sourceMappingURL=ColumnsProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnsProvider.js","sources":["../../../../../../node_modules/@milaboratories/pf-plots/src/pframe/ColumnsProvider.ts"],"sourcesContent":["import {AxisId, ColumnId, isColumnId} from '../spec';\nimport type {PValue} from '../store';\nimport lodash from 'lodash';\nimport type {\n AxisSpec,\n CalculateTableDataRequest,\n FindColumnsRequest,\n FindColumnsResponse,\n PColumnSpec,\n AxisId as PFrameAxisId,\n PFrameDriver,\n PFrameHandle,\n PObjectId,\n PTableRecordSingleValueFilterV2,\n PTableVector,\n UniqueValuesRequest,\n ValueType,\n FullPTableColumnData,\n PColumnIdAndSpec,\n} from '@milaboratories/pl-model-common';\nimport {pTableValue} from '@milaboratories/pl-model-common';\n\nexport type TableOuterJoinResult = {\n axesData: Record<string, PValue[]>;\n columnsData: Record<string, PValue[]>;\n columnSpecs: Record<string, PColumnSpec>;\n axesSpecs: Record<string, AxisSpec>;\n}\nconst UNIQUE_VALUES_LIMIT = 1000000;\n\nfunction convertColumnData(type: ValueType, response: PTableVector): PValue[] {\n if (type === 'String') {\n return response.data as PValue[];\n }\n const res:PValue[] = new Array(response.data.length);\n for (let i = 0; i < response.data.length; i++) {\n res[i] = pTableValue(response, i, {absent: null, na: null}) as PValue;\n }\n return res;\n}\n\nconst debug = false;\nconst LONG_REQUEST = 100;\n\nif (debug) {\n console.log('debug!');\n}\n\nexport class ColumnsProvider {\n pframeHandle: PFrameHandle;\n pframeDriver: PFrameDriver;\n\n constructor(pframeHandle: PFrameHandle, pframeDriver: PFrameDriver) {\n this.pframeHandle = pframeHandle;\n this.pframeDriver = pframeDriver;\n }\n\n async isColumnExisted(id: ColumnId) {\n const spec = await this.getColumnSpecById(id);\n return spec ? true : false;\n }\n\n async getSingleColumnData(id: ColumnId, filters: PTableRecordSingleValueFilterV2[] = []) {\n if (!(await this.isColumnExisted(id))) {\n return {\n axesData: {},\n data: [],\n };\n }\n try {\n const start = Date.now();\n const response: FullPTableColumnData[] = await this.pframeDriver.calculateTableData(this.pframeHandle, {\n src: {\n type: 'column',\n column: id.name as PObjectId,\n },\n filters,\n sorting: [],\n } as CalculateTableDataRequest<PObjectId>);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getSingleColumnData', time);\n }\n const axes = response.filter(item => item.spec.type === 'axis');\n const columns = response.filter(item => item.spec.type === 'column');\n return {\n axesData: axes.reduce((res: Record<string, PValue[]>, item) => {\n const id = AxisId.fromAxisSpec(item.spec.spec as AxisSpec);\n res[id.toCanonicalString()] = convertColumnData(id.type, item.data);\n return res;\n }, {}),\n data: columns.length ? convertColumnData(id.type, columns[0].data) : [],\n };\n } catch (err) {\n console.error('PFrame: calculateTableData error');\n throw err;\n }\n }\n\n async getColumnUniqueValues(\n id: ColumnId,\n limit = UNIQUE_VALUES_LIMIT,\n filters: PTableRecordSingleValueFilterV2[] = []\n ) {\n if (!(await this.isColumnExisted(id))) {\n return {values: [], overflow: false};\n }\n const request: UniqueValuesRequest = {\n columnId: id.name as PObjectId,\n filters,\n limit,\n };\n try {\n const start = Date.now();\n const response = await this.pframeDriver.getUniqueValues(this.pframeHandle, request);\n let overflow = false;\n if (response.overflow) {\n overflow = true;\n console.warn(`More than ${limit} values for ${id.name} column`);\n }\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST)\n console.log('getColumnUniqueValues', time, id.type, `${response.values.data.length} items`);\n }\n return {\n values: Array.from(response.values.data as ArrayLike<unknown>).map(String),\n overflow\n };\n } catch (err) {\n console.error('PFrame: getUniqueValues for column error');\n throw err;\n }\n }\n\n async getAxisUniqueValues(\n axisId: AxisId,\n parents: ColumnId[],\n limit = UNIQUE_VALUES_LIMIT,\n filters: PTableRecordSingleValueFilterV2[] = []\n ) {\n const columnParents = parents.filter(isColumnId);\n\n const specs: (PColumnSpec | null)[] = await Promise.all(columnParents.map(c => this.getColumnSpecById(c)));\n const axisIdStr = axisId.toCanonicalString();\n // realParents - parent columns that has axisId in its spec\n const realParents = columnParents.filter((c, idx) => {\n const columnSpec = specs[idx];\n return (\n columnSpec !== null &&\n columnSpec.axesSpec.some(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString() === axisIdStr)\n );\n });\n if (realParents.length === 0) {\n return {values: [], overflow: false};\n }\n try {\n const start = Date.now();\n const responses = await Promise.all(\n realParents.map(p =>\n this.pframeDriver.getUniqueValues(this.pframeHandle, {\n columnId: p.name as PObjectId,\n axis: axisId.toPFrameId(),\n filters,\n limit,\n })\n )\n );\n let overflow = false;\n responses.forEach((response, idx) => {\n if (response.overflow) {\n overflow = true;\n console.warn(`More than ${limit} values for ${realParents[idx].name} column`);\n }\n })\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getAxisUniqueValues', time);\n }\n return {\n values: lodash.uniq(\n lodash.flatten(responses.map(r => {\n return Array.from(r.values.data as ArrayLike<unknown>).map(String);\n })) as string[]\n ),\n overflow\n };\n } catch (err) {\n console.error('PFrame: getUniqueValues for axis error', err);\n return {values: [], overflow: false};\n }\n }\n\n async getTableOuterJoin(\n primaryIds: (ColumnId | AxisId)[],\n secondaryIds: (ColumnId | AxisId)[],\n filters: PTableRecordSingleValueFilterV2[] = [],\n primaryInnerJoin = true,\n primarySourcesFixedAxes:{idx:number, value:PValue}[][] = [],\n secondarySourcesFixedAxes:{idx:number, value:PValue}[][] = []\n ): Promise<TableOuterJoinResult> {\n const primaryColumns = primaryIds.filter(isColumnId);\n const secondaryColumns = secondaryIds.filter(isColumnId);\n const request = {\n src: {\n type: 'outer',\n primary: {\n type: primaryInnerJoin ? 'inner' : 'full',\n entries: primaryColumns.map((item, idx) => {\n const axisFilters = primarySourcesFixedAxes[idx]?.map(v => ({\n type: 'constant',\n axisIndex: v.idx,\n constant: v.value\n })).filter((v) => v.constant !== undefined);\n return axisFilters?.length\n ? {\n type: 'slicedColumn',\n newId: item.name,\n column: item.name as PObjectId,\n axisFilters\n } : {\n type: 'column',\n column: item.name as PObjectId,\n }\n })\n },\n secondary: secondaryColumns.map((item, idx) => {\n const axisFilters = secondarySourcesFixedAxes[idx]?.map(v => ({\n type: 'constant',\n axisIndex: v.idx,\n constant: v.value\n })).filter((v) => v.constant !== undefined);\n return axisFilters?.length\n ? {\n type: 'slicedColumn',\n newId: item.name,\n column: item.name as PObjectId,\n axisFilters\n } : {\n type: 'column',\n column: item.name as PObjectId,\n }\n }),\n },\n filters,\n sorting: [],\n } as CalculateTableDataRequest<PObjectId>;\n try {\n const start = Date.now();\n const response = await this.pframeDriver.calculateTableData(this.pframeHandle, request);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getTableOuterJoin', time);\n }\n\n const axes = response.filter(item => item.spec.type === 'axis');\n const columns = response.filter(item => item.spec.type === 'column');\n if (debug) {\n console.log('getTableOuterJoin', `${response[0].data.data.length} items`);\n }\n\n return {\n axesData: axes.reduce((res: Record<string, PValue[]>, item) => {\n const id = AxisId.fromAxisSpec(item.spec.spec as AxisSpec);\n res[id.toCanonicalString()] = convertColumnData(id.type, item.data);\n return res;\n }, {}),\n columnsData: columns.reduce((res: Record<string, PValue[]>, item) => {\n const spec = item.spec.spec as PColumnSpec;\n const id = new ColumnId({\n name: item.spec.id as PObjectId,\n type: spec.valueType,\n });\n res[id.toCanonicalString()] = convertColumnData(id.type, item.data);\n return res;\n }, {}),\n columnSpecs: columns.reduce((res: Record<string, PColumnSpec>, item) => {\n const spec = item.spec.spec as PColumnSpec;\n const id = new ColumnId({\n name: item.spec.id as PObjectId,\n type: spec.valueType,\n });\n res[id.toCanonicalString()] = spec;\n return res;\n }, {}),\n axesSpecs: axes.reduce((res: Record<string, AxisSpec>, item) => {\n const spec = item.spec.spec as AxisSpec;\n const id = AxisId.fromAxisSpec(spec);\n res[id.toCanonicalString()] = spec;\n return res;\n }, {}),\n };\n } catch (err) {\n console.error('PFrame: table outer join error');\n console.info('error with request: ', request);\n throw err;\n }\n }\n\n async getColumnSpecById(id: ColumnId): Promise<PColumnSpec | null> {\n try {\n const start = Date.now();\n const response = await this.pframeDriver.getColumnSpec(this.pframeHandle, id.name as PObjectId);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getColumnSpecById', time, response);\n }\n return response ?? null;\n } catch (err) {\n console.error('PFrame: get single column error');\n return null;\n }\n }\n\n async getColumnAxesIds(id: ColumnId): Promise<AxisId[]> {\n return (await this.getColumnSpecById(id))?.axesSpec.map(axisSpec => AxisId.fromAxisSpec(axisSpec)) ?? [];\n }\n\n async getRequestColumnsFromSelectedSources(sources: (ColumnId | AxisId)[]): Promise<PFrameAxisId[]> {\n const result: PFrameAxisId[] = [];\n //NB: we don't need to add axes in request because axes are already in columns\n for (const item of sources) {\n if (isColumnId(item)) {\n const axesSpec = (await this.getColumnSpecById(item))?.axesSpec ?? [];\n result.push(...axesSpec.map(spec => AxisId.fromAxisSpec(spec).toPFrameId()));\n }\n }\n return result;\n }\n\n async getColumnsList() {\n return this.pframeDriver.listColumns(this.pframeHandle);\n }\n\n async getColumnsFull(\n selectedSources: (ColumnId | AxisId)[],\n strictlyCompatible: boolean,\n types?: ValueType[],\n names?: string[],\n annotations?: FindColumnsRequest['columnFilter']['annotationValue'],\n ): Promise<PColumnIdAndSpec[]> {\n try {\n const request: FindColumnsRequest = {\n columnFilter: {\n type: types,\n name: names,\n annotationValue: annotations,\n },\n compatibleWith: await this.getRequestColumnsFromSelectedSources(selectedSources),\n strictlyCompatible, // should be true if we want to get meta and false if X/Y\n };\n const start = Date.now();\n const response: FindColumnsResponse = await this.pframeDriver.findColumns(this.pframeHandle, request);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getColumnsFull', time);\n }\n const result: PColumnIdAndSpec[] = [];\n response.hits.forEach(item => {\n // ***\n // consider mapping variants in qualifications\n // ***\n\n result.push(item);\n });\n return result;\n } catch (err) {\n console.error('PFrame: findColumns error');\n throw err;\n }\n }\n\n async getColumns(\n selectedSources: (ColumnId | AxisId)[],\n strictlyCompatible: boolean,\n types?: ValueType[],\n names?: string[],\n annotations?: FindColumnsRequest['columnFilter']['annotationValue'],\n ): Promise<ColumnId[]> {\n return (await this.getColumnsFull(selectedSources, strictlyCompatible, types, names, annotations)).map(\n item =>\n new ColumnId({\n name: item.columnId,\n type: item.spec.valueType,\n })\n );\n }\n\n async findColumnBy(\n name: string,\n type?: ValueType,\n annotationValue?: FindColumnsRequest['columnFilter']['annotationValue'],\n domainValue?: FindColumnsRequest['columnFilter']['domainValue']\n ): Promise<ColumnId | null> {\n try {\n const request: FindColumnsRequest = {\n columnFilter: {\n name: [name],\n ...(type ? {type: [type]} : {}),\n ...(annotationValue ? {annotationValue} : {}),\n ...(domainValue ? {domainValue} : {}),\n },\n compatibleWith: [] as AxisId[],\n strictlyCompatible: false,\n };\n const start = Date.now();\n const response: FindColumnsResponse = await this.pframeDriver.findColumns(this.pframeHandle, request);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('findColumnBy', time);\n }\n const result: ColumnId[] = [];\n response.hits.forEach(({columnId, spec}) => {\n // ***\n // consider mapping variants in qualifications\n // ***\n\n result.push(new ColumnId({name: columnId, type: spec.valueType}));\n });\n if (result.length > 1) {\n console.warn(`More than 1 column found for ${name}}`);\n }\n if (result.length === 0) {\n console.warn(`No columns found for ${name}}`);\n return null;\n }\n return result[0];\n } catch (err) {\n console.error('PFrame: findColumns error');\n throw err;\n }\n }\n}\n"],"names":["UNIQUE_VALUES_LIMIT","convertColumnData","type","response","res","i","pTableValue","ColumnsProvider","pframeHandle","pframeDriver","__publicField","id","filters","start","axes","u","item","columns","AxisId","err","limit","request","overflow","axisId","parents","columnParents","isColumnId","specs","c","axisIdStr","realParents","idx","columnSpec","axisSpec","responses","p","lodash","r","primaryIds","secondaryIds","primaryInnerJoin","primarySourcesFixedAxes","secondarySourcesFixedAxes","primaryColumns","secondaryColumns","axisFilters","_a","v","spec","ColumnId","sources","result","axesSpec","selectedSources","strictlyCompatible","types","names","annotations","name","annotationValue","domainValue","columnId"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"ColumnsProvider.js","sources":["../../../../../../node_modules/@milaboratories/pf-plots/src/pframe/ColumnsProvider.ts"],"sourcesContent":["import {AxisId, ColumnId, isColumnId} from '../spec';\nimport type {PValue} from '../store';\nimport lodash from 'lodash';\nimport type {\n AxisSpec,\n CalculateTableDataRequest,\n FindColumnsRequest,\n FindColumnsResponse,\n PColumnSpec,\n AxisId as PFrameAxisId,\n PFrameDriver,\n PFrameHandle,\n PObjectId,\n PTableRecordSingleValueFilterV2,\n PTableVector,\n UniqueValuesRequest,\n ValueType,\n FullPTableColumnData,\n PColumnIdAndSpec,\n} from '@milaboratories/pl-model-common';\nimport {pTableValue} from '@milaboratories/pl-model-common';\n\nexport type TableOuterJoinResult = {\n axesData: Record<string, PValue[]>;\n columnsData: Record<string, PValue[]>;\n columnSpecs: Record<string, PColumnSpec>;\n axesSpecs: Record<string, AxisSpec>;\n}\nconst UNIQUE_VALUES_LIMIT = 1000000;\n\nfunction convertColumnData(type: ValueType, response: PTableVector): PValue[] {\n if (type === 'String') {\n return response.data as PValue[];\n }\n const res:PValue[] = new Array(response.data.length);\n for (let i = 0; i < response.data.length; i++) {\n res[i] = pTableValue(response, i, {absent: null, na: null}) as PValue;\n }\n return res;\n}\n\nconst debug = false;\nconst LONG_REQUEST = 100;\n\nif (debug) {\n console.log('debug!');\n}\n\nexport class ColumnsProvider {\n pframeHandle: PFrameHandle;\n pframeDriver: PFrameDriver;\n\n constructor(pframeHandle: PFrameHandle, pframeDriver: PFrameDriver) {\n this.pframeHandle = pframeHandle;\n this.pframeDriver = pframeDriver;\n }\n\n async isColumnExisted(id: ColumnId) {\n const spec = await this.getColumnSpecById(id);\n return spec ? true : false;\n }\n\n async getSingleColumnData(id: ColumnId, filters: PTableRecordSingleValueFilterV2[] = []) {\n if (!(await this.isColumnExisted(id))) {\n return {\n axesData: {},\n data: [],\n };\n }\n try {\n const start = Date.now();\n const response: FullPTableColumnData[] = await this.pframeDriver.calculateTableData(this.pframeHandle, {\n src: {\n type: 'column',\n column: id.name as PObjectId,\n },\n filters,\n sorting: [],\n } as CalculateTableDataRequest<PObjectId>);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getSingleColumnData', time);\n }\n const axes = response.filter(item => item.spec.type === 'axis');\n const columns = response.filter(item => item.spec.type === 'column');\n return {\n axesData: axes.reduce((res: Record<string, PValue[]>, item) => {\n const id = AxisId.fromAxisSpec(item.spec.spec as AxisSpec);\n res[id.toCanonicalString()] = convertColumnData(id.type, item.data);\n return res;\n }, {}),\n data: columns.length ? convertColumnData(id.type, columns[0].data) : [],\n };\n } catch (err) {\n console.error('PFrame: calculateTableData error');\n throw err;\n }\n }\n\n async getColumnUniqueValues(\n id: ColumnId,\n limit = UNIQUE_VALUES_LIMIT,\n filters: PTableRecordSingleValueFilterV2[] = []\n ) {\n if (!(await this.isColumnExisted(id))) {\n return {values: [], overflow: false};\n }\n const request: UniqueValuesRequest = {\n columnId: id.name as PObjectId,\n filters,\n limit,\n };\n try {\n const start = Date.now();\n const response = await this.pframeDriver.getUniqueValues(this.pframeHandle, request);\n let overflow = false;\n if (response.overflow) {\n overflow = true;\n console.warn(`More than ${limit} values for ${id.name} column`);\n }\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST)\n console.log('getColumnUniqueValues', time, id.type, `${response.values.data.length} items`);\n }\n return {\n values: Array.from(response.values.data as ArrayLike<unknown>).map(String),\n overflow\n };\n } catch (err) {\n console.error('PFrame: getUniqueValues for column error');\n throw err;\n }\n }\n\n async getAxisUniqueValues(\n axisId: AxisId,\n parents: ColumnId[],\n limit = UNIQUE_VALUES_LIMIT,\n filters: PTableRecordSingleValueFilterV2[] = []\n ) {\n const columnParents = parents.filter(isColumnId);\n\n const specs: (PColumnSpec | null)[] = await Promise.all(columnParents.map(c => this.getColumnSpecById(c)));\n const axisIdStr = axisId.toCanonicalString();\n // realParents - parent columns that has axisId in its spec\n const realParents = columnParents.filter((c, idx) => {\n const columnSpec = specs[idx];\n return (\n columnSpec !== null &&\n columnSpec.axesSpec.some(axisSpec => AxisId.fromAxisSpec(axisSpec).toCanonicalString() === axisIdStr)\n );\n });\n if (realParents.length === 0) {\n return {values: [], overflow: false};\n }\n try {\n const start = Date.now();\n const responses = await Promise.all(\n realParents.map(p =>\n this.pframeDriver.getUniqueValues(this.pframeHandle, {\n columnId: p.name as PObjectId,\n axis: axisId.toPFrameId(),\n filters,\n limit,\n })\n )\n );\n let overflow = false;\n responses.forEach((response, idx) => {\n if (response.overflow) {\n overflow = true;\n console.warn(`More than ${limit} values for ${realParents[idx].name} column`);\n }\n })\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getAxisUniqueValues', time);\n }\n return {\n values: lodash.uniq(\n lodash.flatten(responses.map(r => {\n return Array.from(r.values.data as ArrayLike<unknown>).map(String);\n })) as string[]\n ),\n overflow\n };\n } catch (err) {\n console.error('PFrame: getUniqueValues for axis error', err);\n return {values: [], overflow: false};\n }\n }\n\n async getTableOuterJoin(\n primaryIds: (ColumnId | AxisId)[],\n secondaryIds: (ColumnId | AxisId)[],\n filters: PTableRecordSingleValueFilterV2[] = [],\n primaryInnerJoin = true,\n primarySourcesFixedAxes:{idx:number, value:PValue}[][] = [],\n secondarySourcesFixedAxes:{idx:number, value:PValue}[][] = []\n ): Promise<TableOuterJoinResult> {\n const primaryColumns = primaryIds.filter(isColumnId);\n const secondaryColumns = secondaryIds.filter(isColumnId);\n const request = {\n src: {\n type: 'outer',\n primary: {\n type: primaryInnerJoin ? 'inner' : 'full',\n entries: primaryColumns.map((item, idx) => {\n const axisFilters = primarySourcesFixedAxes[idx]?.map(v => ({\n type: 'constant',\n axisIndex: v.idx,\n constant: v.value\n })).filter((v) => v.constant !== undefined);\n return axisFilters?.length\n ? {\n type: 'slicedColumn',\n newId: item.name,\n column: item.name as PObjectId,\n axisFilters\n } : {\n type: 'column',\n column: item.name as PObjectId,\n }\n })\n },\n secondary: secondaryColumns.map((item, idx) => {\n const axisFilters = secondarySourcesFixedAxes[idx]?.map(v => ({\n type: 'constant',\n axisIndex: v.idx,\n constant: v.value\n })).filter((v) => v.constant !== undefined);\n return axisFilters?.length\n ? {\n type: 'slicedColumn',\n newId: item.name,\n column: item.name as PObjectId,\n axisFilters\n } : {\n type: 'column',\n column: item.name as PObjectId,\n }\n }),\n },\n filters,\n sorting: [],\n } as CalculateTableDataRequest<PObjectId>;\n try {\n const start = Date.now();\n const response = await this.pframeDriver.calculateTableData(this.pframeHandle, request);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getTableOuterJoin', time);\n }\n\n const axes = response.filter(item => item.spec.type === 'axis');\n const columns = response.filter(item => item.spec.type === 'column');\n if (debug) {\n console.log('getTableOuterJoin', `${response[0].data.data.length} items`);\n }\n\n return {\n axesData: axes.reduce((res: Record<string, PValue[]>, item) => {\n const id = AxisId.fromAxisSpec(item.spec.spec as AxisSpec);\n res[id.toCanonicalString()] = convertColumnData(id.type, item.data);\n return res;\n }, {}),\n columnsData: columns.reduce((res: Record<string, PValue[]>, item) => {\n const spec = item.spec.spec as PColumnSpec;\n const id = new ColumnId({\n name: item.spec.id as PObjectId,\n type: spec.valueType,\n });\n res[id.toCanonicalString()] = convertColumnData(id.type, item.data);\n return res;\n }, {}),\n columnSpecs: columns.reduce((res: Record<string, PColumnSpec>, item) => {\n const spec = item.spec.spec as PColumnSpec;\n const id = new ColumnId({\n name: item.spec.id as PObjectId,\n type: spec.valueType,\n });\n res[id.toCanonicalString()] = spec;\n return res;\n }, {}),\n axesSpecs: axes.reduce((res: Record<string, AxisSpec>, item) => {\n const spec = item.spec.spec as AxisSpec;\n const id = AxisId.fromAxisSpec(spec);\n res[id.toCanonicalString()] = spec;\n return res;\n }, {}),\n };\n } catch (err) {\n console.error('PFrame: table outer join error');\n console.info('error with request: ', request);\n throw err;\n }\n }\n\n async getColumnSpecById(id: ColumnId): Promise<PColumnSpec | null> {\n try {\n const start = Date.now();\n const response = await this.pframeDriver.getColumnSpec(this.pframeHandle, id.name as PObjectId);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getColumnSpecById', time, response);\n }\n return response ?? null;\n } catch (err) {\n console.error('PFrame: get single column error');\n return null;\n }\n }\n\n async getColumnAxesIds(id: ColumnId): Promise<AxisId[]> {\n return (await this.getColumnSpecById(id))?.axesSpec.map(axisSpec => AxisId.fromAxisSpec(axisSpec)) ?? [];\n }\n\n async getRequestColumnsFromSelectedSources(sources: (ColumnId | AxisId)[]): Promise<PFrameAxisId[]> {\n const result: PFrameAxisId[] = [];\n //NB: we don't need to add axes in request because axes are already in columns\n for (const item of sources) {\n if (isColumnId(item)) {\n const axesSpec = (await this.getColumnSpecById(item))?.axesSpec ?? [];\n result.push(...axesSpec.map(spec => AxisId.fromAxisSpec(spec).toPFrameId()));\n }\n }\n return result;\n }\n\n async getColumnsList() {\n return this.pframeDriver.listColumns(this.pframeHandle);\n }\n\n async getColumnsFull(\n selectedSources: (ColumnId | AxisId)[],\n strictlyCompatible: boolean,\n types?: ValueType[],\n names?: string[],\n annotations?: FindColumnsRequest['columnFilter']['annotationValue'],\n ): Promise<PColumnIdAndSpec[]> {\n try {\n const request: FindColumnsRequest = {\n columnFilter: {\n type: types,\n name: names,\n annotationValue: annotations,\n },\n compatibleWith: await this.getRequestColumnsFromSelectedSources(selectedSources),\n strictlyCompatible, // should be true if we want to get meta and false if X/Y\n };\n const start = Date.now();\n const response: FindColumnsResponse = await this.pframeDriver.findColumns(this.pframeHandle, request);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('getColumnsFull', time);\n }\n const result: PColumnIdAndSpec[] = [];\n response.hits.forEach(item => {\n // ***\n // consider mapping variants in qualifications\n // ***\n\n result.push(item);\n });\n return result;\n } catch (err) {\n console.error('PFrame: findColumns error');\n throw err;\n }\n }\n\n async getColumns(\n selectedSources: (ColumnId | AxisId)[],\n strictlyCompatible: boolean,\n types?: ValueType[],\n names?: string[],\n annotations?: FindColumnsRequest['columnFilter']['annotationValue'],\n ): Promise<ColumnId[]> {\n return (await this.getColumnsFull(selectedSources, strictlyCompatible, types, names, annotations)).map(\n item =>\n new ColumnId({\n name: item.columnId,\n type: item.spec.valueType,\n })\n );\n }\n\n async findColumnBy(\n name: string,\n type?: ValueType,\n annotationValue?: FindColumnsRequest['columnFilter']['annotationValue'],\n domainValue?: FindColumnsRequest['columnFilter']['domainValue']\n ): Promise<ColumnId | null> {\n try {\n const request: FindColumnsRequest = {\n columnFilter: {\n name: [name],\n ...(type ? {type: [type]} : {}),\n ...(annotationValue ? {annotationValue} : {}),\n ...(domainValue ? {domainValue} : {}),\n },\n compatibleWith: [] as AxisId[],\n strictlyCompatible: false,\n };\n const start = Date.now();\n const response: FindColumnsResponse = await this.pframeDriver.findColumns(this.pframeHandle, request);\n if (debug) {\n const time = Date.now() - start;\n if (time > LONG_REQUEST) console.log('findColumnBy', time);\n }\n const result: ColumnId[] = [];\n response.hits.forEach(({columnId, spec}) => {\n // ***\n // consider mapping variants in qualifications\n // ***\n\n result.push(new ColumnId({name: columnId, type: spec.valueType}));\n });\n if (result.length > 1) {\n console.warn(`More than 1 column found for ${name}}`);\n }\n if (result.length === 0) {\n console.warn(`No columns found for ${name}}`);\n return null;\n }\n return result[0];\n } catch (err) {\n console.error('PFrame: findColumns error');\n throw err;\n }\n }\n}\n"],"names":["UNIQUE_VALUES_LIMIT","convertColumnData","type","response","res","i","pTableValue","ColumnsProvider","pframeHandle","pframeDriver","__publicField","id","filters","start","axes","u","item","columns","AxisId","err","limit","request","overflow","axisId","parents","columnParents","isColumnId","specs","c","axisIdStr","realParents","idx","columnSpec","axisSpec","responses","p","lodash","r","primaryIds","secondaryIds","primaryInnerJoin","primarySourcesFixedAxes","secondarySourcesFixedAxes","primaryColumns","secondaryColumns","axisFilters","_a","v","n","spec","ColumnId","sources","result","axesSpec","selectedSources","strictlyCompatible","types","names","annotations","name","annotationValue","domainValue","columnId"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -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
|