@milaboratories/graph-maker 1.1.139 → 1.1.141

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.
Files changed (152) hide show
  1. package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
  2. package/dist/GraphMaker/components/Chart.vue.js +1 -0
  3. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  4. package/dist/GraphMaker/dataBindAes.d.ts +5 -5
  5. package/dist/GraphMaker/dataBindAes.d.ts.map +1 -1
  6. package/dist/GraphMaker/dataBindAes.js +52 -49
  7. package/dist/GraphMaker/dataBindAes.js.map +1 -1
  8. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js +14 -14
  9. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js.map +1 -1
  10. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  11. package/dist/GraphMaker/index.vue.js +115 -113
  12. package/dist/GraphMaker/index.vue.js.map +1 -1
  13. package/dist/GraphMaker/store.js +9 -9
  14. package/dist/GraphMaker/types.d.ts +1 -1
  15. package/dist/GraphMaker/types.d.ts.map +1 -1
  16. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +3 -3
  17. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts +4 -8
  18. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts.map +1 -1
  19. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  20. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +2 -2
  21. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +5 -5
  22. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  23. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +7 -7
  24. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +9 -9
  25. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  26. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +20 -16
  27. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  28. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +65 -69
  29. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  30. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +20 -16
  31. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  32. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +20 -19
  33. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  34. package/dist/GraphMaker/utils/loadDefaultSources.js +4 -3
  35. package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
  36. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  37. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +57 -54
  38. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
  39. package/dist/_virtual/_commonjsHelpers.js +3 -5
  40. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  41. package/dist/lib.js +1 -1
  42. package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js +5 -5
  43. package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js.map +1 -1
  44. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +8 -5
  45. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js.map +1 -1
  46. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +22 -22
  47. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  48. package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js +4 -22
  49. package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js.map +1 -1
  50. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +53 -53
  51. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
  52. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +6 -6
  53. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +45 -45
  54. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  55. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +71 -70
  56. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  57. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +117 -112
  58. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  59. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +14 -14
  60. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +6 -6
  61. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  62. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +36 -36
  63. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
  64. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +24 -24
  65. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  66. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +23 -26
  67. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
  68. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +13 -10
  69. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +67 -73
  71. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
  72. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +44 -39
  73. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js +18 -0
  75. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js.map +1 -0
  76. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +14 -14
  77. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  78. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +68 -64
  79. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
  80. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +23 -17
  81. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
  82. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +23 -17
  83. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
  84. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js +7 -0
  85. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js.map +1 -0
  86. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js +9 -0
  87. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js.map +1 -0
  88. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js +8 -0
  89. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js.map +1 -0
  90. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash.js +8 -0
  91. package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/lodash.js.map +1 -1
  92. package/dist/{_virtual/lodash.js → node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js} +1 -1
  93. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js.map +1 -0
  94. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify.js +3 -0
  95. package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/stringify.js.map +1 -1
  96. package/dist/{_virtual/stringify.js → node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js} +1 -1
  97. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js.map +1 -0
  98. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +15 -0
  99. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -0
  100. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +198 -0
  101. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -0
  102. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +342 -0
  103. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -0
  104. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +278 -0
  105. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -0
  106. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +453 -0
  107. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js.map +1 -0
  108. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +203 -0
  109. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js.map +1 -0
  110. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +432 -0
  111. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -0
  112. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +170 -0
  113. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js.map +1 -0
  114. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +315 -0
  115. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -0
  116. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +323 -0
  117. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -0
  118. package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js +11 -0
  119. package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js.map +1 -0
  120. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +36 -3420
  121. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
  122. package/dist/node_modules/@milaboratories/{pl-error-like → pf-plots/dist/node_modules/@milaboratories/pl-error-like}/dist/index.js +1 -1
  123. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +1 -0
  124. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +979 -0
  125. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +1 -0
  126. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js +1599 -0
  127. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js.map +1 -0
  128. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js +19 -0
  129. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js.map +1 -0
  130. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js +26 -0
  131. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js.map +1 -0
  132. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js +3678 -0
  133. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js.map +1 -0
  134. package/dist/node_modules/{zod → @milaboratories/pf-plots/dist/node_modules/zod}/lib/index.js +1141 -1141
  135. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/zod/lib/index.js.map +1 -0
  136. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +247 -0
  137. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -0
  138. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js +62 -0
  139. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js.map +1 -0
  140. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +286 -0
  141. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -0
  142. package/package.json +3 -3
  143. package/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +0 -1
  144. package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +0 -584
  145. package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +0 -1
  146. package/dist/node_modules/@platforma-sdk/model/dist/index.js +0 -1559
  147. package/dist/node_modules/@platforma-sdk/model/dist/index.js.map +0 -1
  148. package/dist/node_modules/json-stringify-safe/stringify.js +0 -20
  149. package/dist/node_modules/json-stringify-safe/stringify.js.map +0 -1
  150. package/dist/node_modules/lodash/lodash.js +0 -3678
  151. package/dist/node_modules/lodash/lodash.js.map +0 -1
  152. package/dist/node_modules/zod/lib/index.js.map +0 -1
@@ -0,0 +1,247 @@
1
+ import { AxisId as w, isColumnId as v, ColumnId as C } from "../spec.js";
2
+ import S from "../_virtual/lodash.js";
3
+ import { pTableValue as F } from "../node_modules/@milaboratories/pl-model-common/dist/index.js";
4
+ 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
+ const I = 1e6;
6
+ function x(y, e) {
7
+ if (y === "String")
8
+ return e.data;
9
+ const t = new Array(e.data.length);
10
+ for (let a = 0; a < e.data.length; a++)
11
+ t[a] = F(e, a, { absent: null, na: null });
12
+ return t;
13
+ }
14
+ class V {
15
+ constructor(e, t) {
16
+ D(this, "pframeHandle"), D(this, "pframeDriver"), this.pframeHandle = e, this.pframeDriver = t;
17
+ }
18
+ async isColumnExisted(e) {
19
+ return !!await this.getColumnSpecById(e);
20
+ }
21
+ async getSingleColumnData(e, t = []) {
22
+ if (!await this.isColumnExisted(e))
23
+ return {
24
+ axesData: {},
25
+ data: []
26
+ };
27
+ try {
28
+ const a = Date.now(), s = await this.pframeDriver.calculateTableData(this.pframeHandle, {
29
+ src: {
30
+ type: "column",
31
+ column: e.name
32
+ },
33
+ filters: t,
34
+ sorting: []
35
+ }), r = s.filter((i) => i.spec.type === "axis"), o = s.filter((i) => i.spec.type === "column");
36
+ return {
37
+ axesData: r.reduce((i, m) => {
38
+ const c = w.fromAxisSpec(m.spec.spec);
39
+ return i[c.toCanonicalString()] = x(c.type, m.data), i;
40
+ }, {}),
41
+ data: o.length ? x(e.type, o[0].data) : []
42
+ };
43
+ } catch (a) {
44
+ throw console.error("PFrame: calculateTableData error"), a;
45
+ }
46
+ }
47
+ async getColumnUniqueValues(e, t = I, a = []) {
48
+ if (!await this.isColumnExisted(e))
49
+ return { values: [], overflow: !1 };
50
+ const s = {
51
+ columnId: e.name,
52
+ filters: a,
53
+ limit: t
54
+ };
55
+ try {
56
+ const r = Date.now(), o = await this.pframeDriver.getUniqueValues(this.pframeHandle, s);
57
+ let i = !1;
58
+ return o.overflow && (i = !0, console.warn(`More than ${t} values for ${e.name} column`)), {
59
+ values: Array.from(o.values.data).map(String),
60
+ overflow: i
61
+ };
62
+ } catch (r) {
63
+ throw console.error("PFrame: getUniqueValues for column error"), r;
64
+ }
65
+ }
66
+ async getAxisUniqueValues(e, t, a = I, s = []) {
67
+ const r = t.filter(v), o = await Promise.all(r.map((c) => this.getColumnSpecById(c))), i = e.toCanonicalString(), m = r.filter((c, l) => {
68
+ const p = o[l];
69
+ return p !== null && p.axesSpec.some((u) => w.fromAxisSpec(u).toCanonicalString() === i);
70
+ });
71
+ if (m.length === 0)
72
+ return { values: [], overflow: !1 };
73
+ try {
74
+ const c = Date.now(), l = await Promise.all(
75
+ m.map(
76
+ (u) => this.pframeDriver.getUniqueValues(this.pframeHandle, {
77
+ columnId: u.name,
78
+ axis: e.toPFrameId(),
79
+ filters: s,
80
+ limit: a
81
+ })
82
+ )
83
+ );
84
+ let p = !1;
85
+ return l.forEach((u, f) => {
86
+ u.overflow && (p = !0, console.warn(`More than ${a} values for ${m[f].name} column`));
87
+ }), {
88
+ values: S.uniq(
89
+ S.flatten(l.map((u) => Array.from(u.values.data).map(String)))
90
+ ),
91
+ overflow: p
92
+ };
93
+ } catch (c) {
94
+ return console.error("PFrame: getUniqueValues for axis error", c), { values: [], overflow: !1 };
95
+ }
96
+ }
97
+ async getTableOuterJoin(e, t, a = [], s = !0, r = [], o = []) {
98
+ const i = e.filter(v), m = t.filter(v), c = {
99
+ src: {
100
+ type: "outer",
101
+ primary: {
102
+ type: s ? "inner" : "full",
103
+ entries: i.map((l, p) => {
104
+ var u;
105
+ const f = (u = r[p]) == null ? void 0 : u.map((n) => ({
106
+ type: "constant",
107
+ axisIndex: n.idx,
108
+ constant: n.value
109
+ })).filter((n) => n.constant !== void 0);
110
+ return f != null && f.length ? {
111
+ type: "slicedColumn",
112
+ newId: l.name,
113
+ column: l.name,
114
+ axisFilters: f
115
+ } : {
116
+ type: "column",
117
+ column: l.name
118
+ };
119
+ })
120
+ },
121
+ secondary: m.map((l, p) => {
122
+ var u;
123
+ const f = (u = o[p]) == null ? void 0 : u.map((n) => ({
124
+ type: "constant",
125
+ axisIndex: n.idx,
126
+ constant: n.value
127
+ })).filter((n) => n.constant !== void 0);
128
+ return f != null && f.length ? {
129
+ type: "slicedColumn",
130
+ newId: l.name,
131
+ column: l.name,
132
+ axisFilters: f
133
+ } : {
134
+ type: "column",
135
+ column: l.name
136
+ };
137
+ })
138
+ },
139
+ filters: a,
140
+ sorting: []
141
+ };
142
+ try {
143
+ const l = Date.now(), p = await this.pframeDriver.calculateTableData(this.pframeHandle, c), u = p.filter((n) => n.spec.type === "axis"), f = p.filter((n) => n.spec.type === "column");
144
+ return {
145
+ axesData: u.reduce((n, d) => {
146
+ const h = w.fromAxisSpec(d.spec.spec);
147
+ return n[h.toCanonicalString()] = x(h.type, d.data), n;
148
+ }, {}),
149
+ columnsData: f.reduce((n, d) => {
150
+ const h = d.spec.spec, g = new C({
151
+ name: d.spec.id,
152
+ type: h.valueType
153
+ });
154
+ return n[g.toCanonicalString()] = x(g.type, d.data), n;
155
+ }, {}),
156
+ columnSpecs: f.reduce((n, d) => {
157
+ const h = d.spec.spec, g = new C({
158
+ name: d.spec.id,
159
+ type: h.valueType
160
+ });
161
+ return n[g.toCanonicalString()] = h, n;
162
+ }, {}),
163
+ axesSpecs: u.reduce((n, d) => {
164
+ const h = d.spec.spec, g = w.fromAxisSpec(h);
165
+ return n[g.toCanonicalString()] = h, n;
166
+ }, {})
167
+ };
168
+ } catch (l) {
169
+ throw console.error("PFrame: table outer join error"), console.info("error with request: ", c), l;
170
+ }
171
+ }
172
+ async getColumnSpecById(e) {
173
+ try {
174
+ const t = Date.now();
175
+ return await this.pframeDriver.getColumnSpec(this.pframeHandle, e.name) ?? null;
176
+ } catch {
177
+ return console.error("PFrame: get single column error"), null;
178
+ }
179
+ }
180
+ async getColumnAxesIds(e) {
181
+ var t;
182
+ return ((t = await this.getColumnSpecById(e)) == null ? void 0 : t.axesSpec.map((a) => w.fromAxisSpec(a))) ?? [];
183
+ }
184
+ async getRequestColumnsFromSelectedSources(e) {
185
+ var t;
186
+ const a = [];
187
+ for (const s of e)
188
+ if (v(s)) {
189
+ const r = ((t = await this.getColumnSpecById(s)) == null ? void 0 : t.axesSpec) ?? [];
190
+ a.push(...r.map((o) => w.fromAxisSpec(o).toPFrameId()));
191
+ }
192
+ return a;
193
+ }
194
+ async getColumnsList() {
195
+ return this.pframeDriver.listColumns(this.pframeHandle);
196
+ }
197
+ async getColumnsFull(e, t, a, s, r) {
198
+ try {
199
+ const o = {
200
+ columnFilter: {
201
+ type: a,
202
+ name: s,
203
+ annotationValue: r
204
+ },
205
+ compatibleWith: await this.getRequestColumnsFromSelectedSources(e),
206
+ strictlyCompatible: t
207
+ // should be true if we want to get meta and false if X/Y
208
+ }, i = Date.now(), m = await this.pframeDriver.findColumns(this.pframeHandle, o), c = [];
209
+ return m.hits.forEach((l) => {
210
+ c.push(l);
211
+ }), c;
212
+ } catch (o) {
213
+ throw console.error("PFrame: findColumns error"), o;
214
+ }
215
+ }
216
+ async getColumns(e, t, a, s, r) {
217
+ return (await this.getColumnsFull(e, t, a, s, r)).map(
218
+ (o) => new C({
219
+ name: o.columnId,
220
+ type: o.spec.valueType
221
+ })
222
+ );
223
+ }
224
+ async findColumnBy(e, t, a, s) {
225
+ try {
226
+ const r = {
227
+ columnFilter: {
228
+ name: [e],
229
+ ...t ? { type: [t] } : {},
230
+ ...a ? { annotationValue: a } : {},
231
+ ...s ? { domainValue: s } : {}
232
+ },
233
+ compatibleWith: [],
234
+ strictlyCompatible: !1
235
+ }, o = Date.now(), i = await this.pframeDriver.findColumns(this.pframeHandle, r), m = [];
236
+ return i.hits.forEach(({ columnId: c, spec: l }) => {
237
+ m.push(new C({ name: c, type: l.valueType }));
238
+ }), 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 (r) {
240
+ throw console.error("PFrame: findColumns error"), r;
241
+ }
242
+ }
243
+ }
244
+ export {
245
+ V as ColumnsProvider
246
+ };
247
+ //# sourceMappingURL=ColumnsProvider.js.map
@@ -0,0 +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]}
@@ -0,0 +1,62 @@
1
+ import s from "./_virtual/canonicalize.js";
2
+ var m = Object.defineProperty, u = (n, t, r) => t in n ? m(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r, e = (n, t, r) => u(n, typeof t != "symbol" ? t + "" : t, r);
3
+ class i {
4
+ constructor({ type: t, name: r, domain: a }) {
5
+ e(this, "kind", "axis"), e(this, "type"), e(this, "name"), e(this, "domain"), this.type = t, this.name = r, this.domain = { ...a };
6
+ }
7
+ toCanonicalString() {
8
+ return s(this);
9
+ }
10
+ static fromAxisSpec(t) {
11
+ return new i({ name: t.name, type: t.type, domain: t.domain });
12
+ }
13
+ static fromAxesSpec(t) {
14
+ return t.map((r) => i.fromAxisSpec(r));
15
+ }
16
+ copy() {
17
+ return new i({ type: this.type, name: this.name, domain: this.domain });
18
+ }
19
+ toPFrameId() {
20
+ return {
21
+ type: this.type,
22
+ name: this.name,
23
+ domain: this.domain
24
+ };
25
+ }
26
+ static fromPojo(t) {
27
+ return new i(t);
28
+ }
29
+ }
30
+ class o {
31
+ constructor({ name: t, type: r }) {
32
+ e(this, "kind", "column"), e(this, "name"), e(this, "type"), this.name = t, this.type = r;
33
+ }
34
+ toCanonicalString() {
35
+ return s(this);
36
+ }
37
+ static fromPojo(t) {
38
+ return new o(t);
39
+ }
40
+ }
41
+ function d(n) {
42
+ return n !== null && n.kind === "column";
43
+ }
44
+ function h(n) {
45
+ return n !== null && n.kind === "axis";
46
+ }
47
+ function p(n) {
48
+ const t = JSON.parse(n);
49
+ if (t.kind === "column")
50
+ return o.fromPojo(t);
51
+ if (t.kind === "axis")
52
+ return i.fromPojo(t);
53
+ throw Error("wrong column or axis object");
54
+ }
55
+ export {
56
+ i as AxisId,
57
+ o as ColumnId,
58
+ p as columnOrAxisIdFromString,
59
+ h as isAxisId,
60
+ d as isColumnId
61
+ };
62
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sources":["../../../../../node_modules/@milaboratories/pf-plots/src/spec.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport type {\n AxisSpec,\n AxisId as PFrameAxisId,\n ValueType,\n} from '@milaboratories/pl-model-common';\n\ninterface ToCanonicalString {\n toCanonicalString(): ColumnOrAxisIdString;\n}\n\ninterface AxisIdProps {\n type: ValueType;\n name: string;\n domain?: Record<string, string>;\n}\n\ninterface AxisIdPojo {\n kind: 'axis';\n type: ValueType;\n name: string;\n domain?: Record<string, string>;\n}\n\nexport class AxisId implements ToCanonicalString {\n kind = 'axis';\n type: ValueType;\n name: string;\n domain?: Record<string, string>;\n\n constructor({type, name, domain}: AxisIdProps) {\n this.type = type;\n this.name = name;\n this.domain = {...domain};\n }\n\n toCanonicalString(): ColumnOrAxisIdString {\n return canonicalize(this)!;\n }\n\n static fromAxisSpec(axisSpec: AxisSpec) {\n return new AxisId({name: axisSpec.name, type: axisSpec.type, domain: axisSpec.domain});\n }\n\n static fromAxesSpec(axesSpec: AxisSpec[]): AxisId[] {\n return axesSpec.map(axis => AxisId.fromAxisSpec(axis));\n }\n\n copy(): AxisId {\n return new AxisId({type: this.type, name: this.name, domain: this.domain});\n }\n\n toPFrameId():PFrameAxisId {\n return {\n type: this.type,\n name: this.name,\n domain: this.domain\n };\n }\n\n static fromPojo(values: AxisIdPojo) {\n return new AxisId(values);\n }\n}\n\ninterface ColumnIdProps {\n name: string;\n type: ValueType;\n}\n\ninterface ColumnIdPojo {\n kind: 'column';\n name: string;\n type: ValueType;\n}\n\nexport class ColumnId implements ToCanonicalString {\n kind = 'column';\n name: string;\n type: ValueType;\n\n constructor({name, type}: ColumnIdProps) {\n this.name = name;\n this.type = type;\n }\n\n toCanonicalString(): ColumnOrAxisIdString {\n return canonicalize(this)!;\n }\n\n static fromPojo(pojo: ColumnIdPojo) {\n return new ColumnId(pojo);\n }\n}\n\nexport function isColumnId(id: ColumnId | AxisId | null): id is ColumnId {\n return id !== null && id.kind === 'column';\n}\n\nexport function isAxisId(id: ColumnId | AxisId | null): id is AxisId {\n return id !== null && id.kind === 'axis';\n}\n\nexport type ColumnOrAxisIdString = string;\n\nexport function columnOrAxisIdFromString(str: ColumnOrAxisIdString) {\n const pojo: ColumnIdPojo | AxisIdPojo = JSON.parse(str);\n if (pojo.kind === 'column') {\n return ColumnId.fromPojo(pojo);\n }\n if (pojo.kind === 'axis') {\n return AxisId.fromPojo(pojo);\n }\n throw Error('wrong column or axis object');\n}\n"],"names":["AxisId","type","name","domain","__publicField","canonicalize","axisSpec","axesSpec","axis","values","ColumnId","pojo","isColumnId","id","isAxisId","columnOrAxisIdFromString","str"],"mappings":";;AAwBO,MAAMA,EAAoC;AAAA,EAM7C,YAAY,EAAC,MAAAC,GAAM,MAAAC,GAAM,QAAAC,KAAsB;AAL/CC,IAAAA,EAAA,MAAA,QAAO,MAAA,GACPA,EAAA,MAAA,MAAA,GACAA,EAAA,MAAA,MAAA,GACAA,EAAA,MAAA,QAAA,GAGI,KAAK,OAAOH,GACZ,KAAK,OAAOC,GACP,KAAA,SAAS,EAAC,GAAGC,EAAAA;AAAAA,EAAM;AAAA,EAG5B,oBAA0C;AACtC,WAAOE,EAAa,IAAI;AAAA,EAAA;AAAA,EAG5B,OAAO,aAAaC,GAAoB;AACpC,WAAO,IAAIN,EAAO,EAAC,MAAMM,EAAS,MAAM,MAAMA,EAAS,MAAM,QAAQA,EAAS,OAAA,CAAO;AAAA,EAAA;AAAA,EAGzF,OAAO,aAAaC,GAAgC;AAChD,WAAOA,EAAS,IAAI,CAAAC,MAAQR,EAAO,aAAaQ,CAAI,CAAC;AAAA,EAAA;AAAA,EAGzD,OAAe;AACX,WAAO,IAAIR,EAAO,EAAC,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,QAAQ,KAAK,OAAA,CAAO;AAAA,EAAA;AAAA,EAG7E,aAA0B;AACf,WAAA;AAAA,MACH,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,IAAA;AAAA,EACjB;AAAA,EAGJ,OAAO,SAASS,GAAoB;AACzB,WAAA,IAAIT,EAAOS,CAAM;AAAA,EAAA;AAEhC;AAaO,MAAMC,EAAsC;AAAA,EAK/C,YAAY,EAAC,MAAAR,GAAM,MAAAD,EAAAA,GAAsB;AAJzCG,IAAAA,EAAA,MAAA,QAAO,QAAA,GACPA,EAAA,MAAA,MAAA,GACAA,EAAA,MAAA,MAAA,GAGI,KAAK,OAAOF,GACZ,KAAK,OAAOD;AAAAA,EAAA;AAAA,EAGhB,oBAA0C;AACtC,WAAOI,EAAa,IAAI;AAAA,EAAA;AAAA,EAG5B,OAAO,SAASM,GAAoB;AACzB,WAAA,IAAID,EAASC,CAAI;AAAA,EAAA;AAEhC;AAEO,SAASC,EAAWC,GAA8C;AAC9D,SAAAA,MAAO,QAAQA,EAAG,SAAS;AACtC;AAEO,SAASC,EAASD,GAA4C;AAC1D,SAAAA,MAAO,QAAQA,EAAG,SAAS;AACtC;AAIO,SAASE,EAAyBC,GAA2B;AAC1D,QAAAL,IAAkC,KAAK,MAAMK,CAAG;AAClD,MAAAL,EAAK,SAAS;AACP,WAAAD,EAAS,SAASC,CAAI;AAE7B,MAAAA,EAAK,SAAS;AACP,WAAAX,EAAO,SAASW,CAAI;AAE/B,QAAM,MAAM,6BAA6B;AAC7C;","x_google_ignoreList":[0]}
@@ -0,0 +1,286 @@
1
+ import { LinkerMap as L, getNormalizedAxesList as F } from "./node_modules/@milaboratories/pl-model-common/dist/index.js";
2
+ import { columnOrAxisIdFromString as f, isColumnId as S, AxisId as p, ColumnId as T, isAxisId as C } from "./spec.js";
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";
4
+ import w from "./_virtual/canonicalize.js";
5
+ async function Q(e, n, a, o, i, t, r = !0, c) {
6
+ var l, d, y, g;
7
+ const u = f(n);
8
+ if (S(u)) {
9
+ const s = await e.pFrameProvider.getColumnSpecById(u);
10
+ if (!s)
11
+ return;
12
+ const v = G(
13
+ s,
14
+ i,
15
+ t,
16
+ c
17
+ ).map((m) => p.fromAxisSpec(m).toCanonicalString()), N = new Set(v), P = s.axesSpec.map((m) => p.fromAxisSpec(m).toCanonicalString()), b = {};
18
+ r && P.forEach((m, x) => {
19
+ N.has(m) && (b[m] = x);
20
+ });
21
+ const _ = {
22
+ kind: "column",
23
+ name: s.name,
24
+ label: a ?? await h(e, n, []),
25
+ type: s.valueType,
26
+ spec: s,
27
+ annotations: s.annotations,
28
+ isSubsetFilter: ((l = s.annotations) == null ? void 0 : l[I]) === "true",
29
+ isDiscreteFilter: s.valueType === "String" || ((d = s.annotations) == null ? void 0 : d[A]) === "true",
30
+ axesToBeFixed: v,
31
+ axesToBeFixedIndexes: b
32
+ };
33
+ o.set(u.toCanonicalString(), _);
34
+ for (const m of s.axesSpec) {
35
+ const x = p.fromAxisSpec(m).toCanonicalString();
36
+ if (o.has(x))
37
+ continue;
38
+ const k = z(m), D = {
39
+ kind: "axis",
40
+ name: m.name,
41
+ label: await h(e, x, [n]),
42
+ type: m.type,
43
+ mustBeConsumed: k,
44
+ dividable: !1,
45
+ spec: m,
46
+ annotations: m.annotations,
47
+ isSubsetFilter: ((y = m.annotations) == null ? void 0 : y[I]) === "true",
48
+ isDiscreteFilter: m.type === "String" || ((g = m.annotations) == null ? void 0 : g[A]) === "true",
49
+ parentSources: [n]
50
+ };
51
+ o.set(x, D);
52
+ }
53
+ }
54
+ }
55
+ function Z(e) {
56
+ const n = f(e), { name: a, type: o } = n;
57
+ return S(n) ? {
58
+ kind: "column",
59
+ name: "",
60
+ label: " ",
61
+ type: n.type,
62
+ spec: { axesSpec: [], kind: "PColumn", valueType: n.type, name: a },
63
+ annotations: void 0,
64
+ isSubsetFilter: !1,
65
+ isDiscreteFilter: n.type === "String",
66
+ axesToBeFixed: [],
67
+ axesToBeFixedIndexes: {}
68
+ } : {
69
+ kind: "axis",
70
+ name: "",
71
+ label: " ",
72
+ type: o,
73
+ spec: { type: o, name: a },
74
+ mustBeConsumed: !1,
75
+ dividable: !1,
76
+ annotations: void 0,
77
+ isSubsetFilter: !1,
78
+ isDiscreteFilter: o === "String",
79
+ parentSources: []
80
+ };
81
+ }
82
+ function ee(e) {
83
+ return {
84
+ type: e.type,
85
+ components: { ...e.components },
86
+ dividedAxes: { ...e.dividedAxes }
87
+ };
88
+ }
89
+ function K(e) {
90
+ const { selectedSource: n, type: a, selectedFilterRange: o, selectedFilterValue: i } = e, t = f(n);
91
+ if (!t)
92
+ throw Error("Empty source selected");
93
+ if (a === "range") {
94
+ const r = [];
95
+ return (o == null ? void 0 : o.max) !== void 0 && r.push({
96
+ type: "bySingleColumnV2",
97
+ column: C(t) ? { type: "axis", id: t.toPFrameId() } : { type: "column", id: t.name },
98
+ predicate: {
99
+ operator: "LessOrEqual",
100
+ reference: o.max
101
+ }
102
+ }), (o == null ? void 0 : o.min) !== void 0 && r.push({
103
+ type: "bySingleColumnV2",
104
+ column: C(t) ? { type: "axis", id: t.toPFrameId() } : { type: "column", id: t.name },
105
+ predicate: {
106
+ operator: "GreaterOrEqual",
107
+ reference: o == null ? void 0 : o.min
108
+ }
109
+ }), r;
110
+ } else if (a === "subset")
111
+ return [
112
+ {
113
+ type: "bySingleColumnV2",
114
+ column: C(t) ? { type: "axis", id: t.toPFrameId() } : { type: "column", id: t.name },
115
+ predicate: {
116
+ operator: "Not",
117
+ operand: { operator: "IsNA" }
118
+ }
119
+ }
120
+ ];
121
+ return typeof i > "u" ? [] : [
122
+ {
123
+ type: "bySingleColumnV2",
124
+ column: C(t) ? { type: "axis", id: t.toPFrameId() } : {
125
+ type: "column",
126
+ id: t.name
127
+ },
128
+ predicate: {
129
+ operator: "Equal",
130
+ reference: t.type === "String" ? String(i) : Number(i)
131
+ }
132
+ }
133
+ ];
134
+ }
135
+ function ne(e) {
136
+ const n = [];
137
+ for (const a of e)
138
+ n.push(...K(a));
139
+ return n;
140
+ }
141
+ function E(e) {
142
+ var n, a;
143
+ 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[$]);
145
+ return w({ name: t, domain: r });
146
+ }
147
+ const o = e.name, i = e.domain;
148
+ return w({ name: o, domain: i });
149
+ }
150
+ async function B(e, n, a) {
151
+ for (const o of a) {
152
+ const i = f(o);
153
+ if (S(i)) {
154
+ const t = await e.pFrameProvider.getColumnSpecById(i), r = ((t == null ? void 0 : t.axesSpec) ?? []).find(
155
+ (c) => p.fromAxisSpec(c).toCanonicalString() === n.toCanonicalString()
156
+ );
157
+ if (r)
158
+ return r;
159
+ }
160
+ }
161
+ return null;
162
+ }
163
+ const Y = "pl7.app/label";
164
+ async function q(e, n, a) {
165
+ const o = f(n);
166
+ if (S(o))
167
+ return;
168
+ async function i(l) {
169
+ const d = await B(e, l, a);
170
+ return d ? E(d) : null;
171
+ }
172
+ 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
+ return c ? new T({ name: c.columnId, type: c.spec.valueType }) : void 0;
174
+ }
175
+ async function j(e, n, a) {
176
+ const o = f(n), i = await q(e, n, a);
177
+ let t;
178
+ return S(o) ? t = await e.pFrameProvider.getColumnSpecById(i ?? o) : t = i ? await e.pFrameProvider.getColumnSpecById(i) : await B(e, o, a), t;
179
+ }
180
+ async function h(e, n, a) {
181
+ var o;
182
+ const i = await j(e, n, a);
183
+ if (!i)
184
+ return "";
185
+ const t = ((o = i.annotations) == null ? void 0 : o[O]) ?? i.name;
186
+ return e.labelsModifier(i.name, t);
187
+ }
188
+ function z(e) {
189
+ var n, a;
190
+ const o = (a = (n = e.annotations) == null ? void 0 : n[U]) == null ? void 0 : a.toLowerCase();
191
+ return !!o && o !== "homogenous" && o !== "homogeneous";
192
+ }
193
+ function te(e) {
194
+ var n, a;
195
+ return ((n = e.annotations) == null ? void 0 : n[I]) === "true" || ((a = e.annotations) == null || a[A]), !0;
196
+ }
197
+ function oe(e) {
198
+ var n, a;
199
+ return !e.name.includes("metadata") && ((n = e.annotations) == null ? void 0 : n[R]) !== "true" && ((a = e.annotations) == null ? void 0 : a[I]) !== "true";
200
+ }
201
+ async function ae(e, n) {
202
+ const a = /* @__PURE__ */ new Set(), o = [];
203
+ for (const i of n) {
204
+ const t = f(i);
205
+ if (S(t)) {
206
+ const r = await e.pFrameProvider.getColumnSpecById(t);
207
+ if (!r)
208
+ continue;
209
+ r.axesSpec.forEach((c) => {
210
+ const l = p.fromAxisSpec(c).toCanonicalString();
211
+ a.has(l) || (a.add(l), o.push(c));
212
+ });
213
+ }
214
+ }
215
+ return o;
216
+ }
217
+ async function ie(e) {
218
+ const n = await e.pFrameProvider.getColumnsFull(
219
+ [],
220
+ !1,
221
+ void 0,
222
+ void 0,
223
+ { [M]: "true" }
224
+ );
225
+ return L.fromColumns(n);
226
+ }
227
+ async function re(e, n, a, o, i) {
228
+ const t = f(o);
229
+ if (!S(t))
230
+ return [];
231
+ const r = await e.pFrameProvider.getColumnSpecById(t);
232
+ if (!r)
233
+ return [];
234
+ const c = r.axesSpec.filter(
235
+ (u) => {
236
+ const s = p.fromAxisSpec(u).toCanonicalString();
237
+ return !(i != null && i.some((v) => v.axisSource === s));
238
+ }
239
+ ), l = new Set(a.map((u) => p.fromAxisSpec(u).toCanonicalString())), d = c.filter((u) => {
240
+ const s = p.fromAxisSpec(u).toCanonicalString();
241
+ return !l.has(s);
242
+ }), y = F(a), g = F(d);
243
+ return n.getLinkerColumnsForAxes({ from: y, to: g }).map((u) => new T({ name: u.columnId, type: u.spec.valueType }));
244
+ }
245
+ function G(e, n, a, o) {
246
+ const i = new Set(n.map((l) => p.fromAxisSpec(l).toCanonicalString())), t = F(e.axesSpec).filter(
247
+ (l) => !i.has(p.fromAxisSpec(l).toCanonicalString())
248
+ ), r = F(n), c = L.getAxesRoots(t);
249
+ return o.getNonLinkableAxes(r, c);
250
+ }
251
+ function se(e, n) {
252
+ const a = n.columnsData[Object.keys(n.columnsData)[0]].length, o = new Int32Array(a).fill(0);
253
+ for (let i = 0; i < a; i++) {
254
+ let t = !1;
255
+ for (let r = 0; r < e.length; r++) {
256
+ const { selectedSource: c, selectedFilterValue: l, selectedFilterRange: d, type: y } = e[r], g = f(c), u = (S(g) ? n.columnsData[c] : n.axesData[c])[i];
257
+ if (l !== void 0 && (t = t || u === l), d !== void 0 && (d.min !== void 0 || d.max !== void 0) && typeof u == "number") {
258
+ let s = !0;
259
+ d.min !== void 0 && (s = s && u >= d.min), d.max !== void 0 && (s = s && u <= d.max), t = t || s;
260
+ }
261
+ y === "subset" && (t = t || u != null);
262
+ }
263
+ t && (o[i] = 1);
264
+ }
265
+ return o;
266
+ }
267
+ export {
268
+ Q as addSourceInfoToMap,
269
+ z as axisMustBeConsumed,
270
+ te as checkSourceBySpecForFilters,
271
+ se as createHighlightColumn,
272
+ ie as createLinkerMap,
273
+ oe as dataColumnPredicateDefault,
274
+ ae as getAxesSpecsFromSources,
275
+ h as getColumnOrAxisLabel,
276
+ j as getColumnOrAxisSpec,
277
+ q as getColumnOrAxisValueLabelsId,
278
+ Z as getDefaultInfo,
279
+ K as getFilterFromState,
280
+ ne as getFiltersFromStates,
281
+ E as getGlobalId,
282
+ re as getLinkerColumnsForSource,
283
+ G as getNotAllowedAxes,
284
+ ee as getStateCopy
285
+ };
286
+ //# sourceMappingURL=utils.js.map