@milaboratories/graph-maker 1.1.140 → 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 (77) hide show
  1. package/dist/GraphMaker/index.vue.js +24 -23
  2. package/dist/GraphMaker/index.vue.js.map +1 -1
  3. package/dist/GraphMaker/store.js +9 -9
  4. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  5. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +54 -52
  6. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  7. package/dist/GraphMaker/utils/loadDefaultSources.js +4 -3
  8. package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
  9. package/dist/_virtual/_commonjsHelpers.js +3 -5
  10. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  11. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js +9 -0
  12. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/_commonjsHelpers.js.map +1 -0
  13. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js +8 -0
  14. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/canonicalize.js.map +1 -0
  15. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash.js +8 -0
  16. package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/lodash.js.map +1 -1
  17. package/dist/{_virtual/lodash.js → node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js} +1 -1
  18. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/lodash2.js.map +1 -0
  19. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify.js +3 -0
  20. package/dist/{_virtual → node_modules/@milaboratories/pf-plots/dist/_virtual}/stringify.js.map +1 -1
  21. package/dist/{_virtual/stringify.js → node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js} +1 -1
  22. package/dist/node_modules/@milaboratories/pf-plots/dist/_virtual/stringify2.js.map +1 -0
  23. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +15 -0
  24. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -0
  25. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +198 -0
  26. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -0
  27. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +342 -0
  28. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -0
  29. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +278 -0
  30. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -0
  31. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +453 -0
  32. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js.map +1 -0
  33. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +203 -0
  34. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js.map +1 -0
  35. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +432 -0
  36. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -0
  37. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +170 -0
  38. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js.map +1 -0
  39. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +315 -0
  40. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -0
  41. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +323 -0
  42. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -0
  43. package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js +11 -0
  44. package/dist/node_modules/@milaboratories/pf-plots/dist/demoStore.js.map +1 -0
  45. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +36 -3426
  46. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
  47. package/dist/node_modules/@milaboratories/{pl-error-like → pf-plots/dist/node_modules/@milaboratories/pl-error-like}/dist/index.js +1 -1
  48. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +1 -0
  49. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +979 -0
  50. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +1 -0
  51. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js +1599 -0
  52. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/index.js.map +1 -0
  53. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js +19 -0
  54. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/canonicalize/lib/canonicalize.js.map +1 -0
  55. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js +26 -0
  56. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/json-stringify-safe/stringify.js.map +1 -0
  57. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js +3678 -0
  58. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/lodash/lodash.js.map +1 -0
  59. package/dist/node_modules/{zod → @milaboratories/pf-plots/dist/node_modules/zod}/lib/index.js +1141 -1141
  60. package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/zod/lib/index.js.map +1 -0
  61. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +247 -0
  62. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -0
  63. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js +62 -0
  64. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js.map +1 -0
  65. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +286 -0
  66. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -0
  67. package/package.json +2 -2
  68. package/dist/node_modules/@milaboratories/pl-error-like/dist/index.js.map +0 -1
  69. package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js +0 -584
  70. package/dist/node_modules/@milaboratories/pl-model-common/dist/index.js.map +0 -1
  71. package/dist/node_modules/@platforma-sdk/model/dist/index.js +0 -1559
  72. package/dist/node_modules/@platforma-sdk/model/dist/index.js.map +0 -1
  73. package/dist/node_modules/json-stringify-safe/stringify.js +0 -20
  74. package/dist/node_modules/json-stringify-safe/stringify.js.map +0 -1
  75. package/dist/node_modules/lodash/lodash.js +0 -3678
  76. package/dist/node_modules/lodash/lodash.js.map +0 -1
  77. package/dist/node_modules/zod/lib/index.js.map +0 -1
@@ -0,0 +1,1599 @@
1
+ import { readAnnotation as ee, parseJson as Fe, PColumnName as we, Annotation as te, isDataInfo as oe, extractAllColumns as ke, mapPTableDef as Oe, selectorsToPredicate as V, withEnrichments as de, AnchoredIdDeriver as pe, isPlRef as De, mapValueInVOE as Re, mapPObjectData as le, ensurePColumn as $e, isPColumnSpec as H, isPColumn as Ae, resolveAnchors as fe, deriveNativeId as Ke, isPartitionedDataInfoEntries as Ne, getAxisId as ge, entriesToDataInfo as je, isDataInfoEntries as Pe, dataInfoToEntries as Je, canonicalizeAxisId as Be, mapDataInfo as Ve } from "../../../@milaboratories/pl-model-common/dist/index.js";
2
+ import { AnnotationJson as At, AxisSpec as Pt, LinkerMap as xt, PTableAbsent as St, PTableNA as It, PlIdLength as Lt, ValueType as Ct, canonicalizeAxisWithParents as Tt, canonicalizeJson as Et, ensureError as Ft, getArrayFromAxisTree as kt, getAxesId as Ot, getAxesTree as Dt, getNormalizedAxesList as Rt, mapJoinEntry as $t, matchAxis as Kt, matchAxisId as Nt, matchPColumn as jt, pTableValue as Jt, readAnnotationJson as Bt, readMetadata as Vt, readMetadataJson as Mt, readMetadataJsonOrThrow as Ut, stringifyColumnId as Wt } from "../../../@milaboratories/pl-model-common/dist/index.js";
3
+ import xe from "../../../../_virtual/canonicalize.js";
4
+ import D from "../../../zod/lib/index.js";
5
+ import { BasePlErrorLike as Ht, ErrorLike as zt, PlErrorLike as Gt, StandardErrorLike as Yt } from "../../../@milaboratories/pl-error-like/dist/index.js";
6
+ var Me = Object.defineProperty, Ue = (i, e, t) => e in i ? Me(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, x = (i, e, t) => Ue(i, typeof e != "symbol" ? e + "" : e, t);
7
+ function G(i) {
8
+ return { type: "Immediate", value: i };
9
+ }
10
+ function We() {
11
+ return typeof globalThis.getPlatforma < "u" || typeof globalThis.platforma < "u";
12
+ }
13
+ function qe(i) {
14
+ if (i && typeof globalThis.getPlatforma == "function")
15
+ return globalThis.getPlatforma(i);
16
+ if (typeof globalThis.platforma < "u") return globalThis.platforma;
17
+ throw new Error("Can't get platforma instance.");
18
+ }
19
+ function He() {
20
+ if (typeof globalThis.cfgRenderCtx < "u") return globalThis.cfgRenderCtx;
21
+ }
22
+ function c() {
23
+ if (typeof globalThis.cfgRenderCtx < "u") return globalThis.cfgRenderCtx;
24
+ throw new Error("Not in config rendering context");
25
+ }
26
+ function j(i, e) {
27
+ const t = He();
28
+ if (t === void 0) return !1;
29
+ if (i in t.callbackRegistry) throw new Error(`Callback with key ${i} already registered.`);
30
+ return t.callbackRegistry[i] = e, !0;
31
+ }
32
+ const Y = /* @__PURE__ */ new Map();
33
+ function ze(i, e) {
34
+ i in c().callbackRegistry || (c().callbackRegistry[i] = (t) => {
35
+ for (const r of Y.get(i))
36
+ r(t);
37
+ }, Y.set(i, [])), Y.get(i).push(e);
38
+ }
39
+ class A {
40
+ constructor(e, t = (r) => r) {
41
+ x(this, "isResolved", !1), x(this, "resolvedValue"), this.handle = e, this.postProcess = t, ze(e, (r) => {
42
+ this.resolvedValue = t(r), this.isResolved = !0;
43
+ });
44
+ }
45
+ map(e) {
46
+ return new A(this.handle, (t) => e(this.postProcess(t)));
47
+ }
48
+ mapDefined(e) {
49
+ return new A(this.handle, (t) => {
50
+ const r = this.postProcess(t);
51
+ return r ? e(r) : void 0;
52
+ });
53
+ }
54
+ toJSON() {
55
+ return this.isResolved ? this.resolvedValue : { __awaited_futures__: [this.handle] };
56
+ }
57
+ }
58
+ function re(i, e) {
59
+ return i === void 0 ? void 0 : e(i);
60
+ }
61
+ class L {
62
+ constructor(e, t) {
63
+ this.handle = e, this.resolvePath = t;
64
+ }
65
+ resolve(...e) {
66
+ const t = e.map(
67
+ (r) => ({
68
+ assertFieldType: "Input",
69
+ ...typeof r == "string" ? { field: r } : r
70
+ })
71
+ );
72
+ return this.resolveWithCommon({}, ...t);
73
+ }
74
+ resolveOutput(...e) {
75
+ const t = e.map(
76
+ (r) => ({
77
+ assertFieldType: "Output",
78
+ ...typeof r == "string" ? { field: r } : r
79
+ })
80
+ );
81
+ return this.resolveWithCommon({}, ...t);
82
+ }
83
+ resolveInput(...e) {
84
+ const t = e.map(
85
+ (r) => ({
86
+ assertFieldType: "Input",
87
+ ...typeof r == "string" ? { field: r } : r
88
+ })
89
+ );
90
+ return this.resolveWithCommon({}, ...t);
91
+ }
92
+ resolveAny(...e) {
93
+ return this.resolveWithCommon({}, ...e);
94
+ }
95
+ resolveWithCommon(e, ...t) {
96
+ const r = [
97
+ ...this.resolvePath,
98
+ ...t.map((s) => typeof s == "string" ? s : s.field)
99
+ ];
100
+ return re(
101
+ c().resolveWithCommon(this.handle, e, ...t),
102
+ (s) => new L(s, r)
103
+ );
104
+ }
105
+ get resourceType() {
106
+ return c().getResourceType(this.handle);
107
+ }
108
+ getInputsLocked() {
109
+ return c().getInputsLocked(this.handle);
110
+ }
111
+ getOutputsLocked() {
112
+ return c().getOutputsLocked(this.handle);
113
+ }
114
+ getIsReadyOrError() {
115
+ return c().getIsReadyOrError(this.handle);
116
+ }
117
+ getIsFinal() {
118
+ return c().getIsFinal(this.handle);
119
+ }
120
+ getError() {
121
+ const e = [...this.resolvePath, "error"];
122
+ return re(
123
+ c().getError(this.handle),
124
+ (t) => new L(t, e)
125
+ );
126
+ }
127
+ listInputFields() {
128
+ return c().listInputFields(this.handle);
129
+ }
130
+ listOutputFields() {
131
+ return c().listOutputFields(this.handle);
132
+ }
133
+ listDynamicFields() {
134
+ return c().listDynamicFields(this.handle);
135
+ }
136
+ getKeyValueBase64(e) {
137
+ return c().getKeyValueBase64(this.handle, e);
138
+ }
139
+ getKeyValueAsString(e) {
140
+ return c().getKeyValueAsString(this.handle, e);
141
+ }
142
+ getKeyValueAsJson(e) {
143
+ const t = this.getKeyValueAsString(e);
144
+ if (t == null) throw new Error("Resource has no content.");
145
+ return JSON.parse(t);
146
+ }
147
+ getDataBase64() {
148
+ return c().getDataBase64(this.handle);
149
+ }
150
+ getDataAsString() {
151
+ return c().getDataAsString(this.handle);
152
+ }
153
+ getDataAsJson() {
154
+ const e = this.getDataAsString();
155
+ if (e == null) throw new Error("Resource has no content.");
156
+ return JSON.parse(e);
157
+ }
158
+ /**
159
+ *
160
+ */
161
+ getPColumns(e = !1, t = "") {
162
+ const r = this.parsePObjectCollection(e, t);
163
+ return r === void 0 ? void 0 : Object.entries(r).map(([, s]) => {
164
+ if (!Ae(s)) throw new Error(`not a PColumn (kind = ${s.spec.kind})`);
165
+ return s;
166
+ });
167
+ }
168
+ /**
169
+ *
170
+ */
171
+ parsePObjectCollection(e = !1, t = "") {
172
+ const r = c().parsePObjectCollection(
173
+ this.handle,
174
+ e,
175
+ t,
176
+ ...this.resolvePath
177
+ );
178
+ if (r === void 0) return;
179
+ const s = {};
180
+ for (const [a, n] of Object.entries(r)) {
181
+ const o = [...this.resolvePath, a];
182
+ s[a] = le(n, (l) => new L(l, o));
183
+ }
184
+ return s;
185
+ }
186
+ getFileContentAsBase64(e) {
187
+ return new A(c().getBlobContentAsBase64(this.handle, e));
188
+ }
189
+ getFileContentAsString(e) {
190
+ return new A(c().getBlobContentAsString(this.handle, e));
191
+ }
192
+ getFileContentAsJson(e) {
193
+ return new A(
194
+ c().getBlobContentAsString(this.handle, e)
195
+ ).mapDefined((t) => JSON.parse(t));
196
+ }
197
+ /**
198
+ * @deprecated use getFileContentAsBase64
199
+ */
200
+ getBlobContentAsBase64() {
201
+ return this.getFileContentAsBase64();
202
+ }
203
+ /**
204
+ * @deprecated use getFileContentAsString
205
+ */
206
+ getBlobContentAsString() {
207
+ return this.getFileContentAsString();
208
+ }
209
+ /**
210
+ * @returns downloaded file handle
211
+ */
212
+ getFileHandle() {
213
+ return new A(c().getDownloadedBlobContentHandle(this.handle));
214
+ }
215
+ /**
216
+ * @deprecated use getFileHandle
217
+ */
218
+ getDownloadedBlobHandle() {
219
+ return this.getFileHandle();
220
+ }
221
+ /**
222
+ * @returns downloaded file handle
223
+ */
224
+ getRemoteFileHandle() {
225
+ return new A(c().getOnDemandBlobContentHandle(this.handle));
226
+ }
227
+ /**
228
+ * @deprecated use getRemoteFileHandle
229
+ */
230
+ getOnDemandBlobHandle() {
231
+ return this.getRemoteFileHandle();
232
+ }
233
+ /**
234
+ * @returns the url to the extracted folder
235
+ */
236
+ extractArchiveAndGetURL(e) {
237
+ return new A(c().extractArchiveAndGetURL(this.handle, e));
238
+ }
239
+ getImportProgress() {
240
+ return new A(c().getImportProgress(this.handle));
241
+ }
242
+ getLastLogs(e) {
243
+ return new A(c().getLastLogs(this.handle, e));
244
+ }
245
+ getProgressLog(e) {
246
+ return new A(c().getProgressLog(this.handle, e));
247
+ }
248
+ getProgressLogWithInfo(e) {
249
+ return new A(c().getProgressLogWithInfo(this.handle, e));
250
+ }
251
+ getLogHandle() {
252
+ return new A(c().getLogHandle(this.handle));
253
+ }
254
+ allFieldsResolved(e = "Input") {
255
+ switch (e) {
256
+ case "Input":
257
+ return this.getInputsLocked() && this.listInputFields().every(
258
+ (t) => this.resolve({ field: t, assertFieldType: "Input" }) !== void 0
259
+ );
260
+ case "Output":
261
+ return this.getOutputsLocked() && this.listOutputFields().every(
262
+ (t) => this.resolve({ field: t, assertFieldType: "Output" }) !== void 0
263
+ );
264
+ }
265
+ }
266
+ mapFields(e, t) {
267
+ const { fieldType: r, requireLocked: s, skipUnresolved: a } = {
268
+ fieldType: "Input",
269
+ requireLocked: !0,
270
+ skipUnresolved: !1,
271
+ ...t
272
+ }, n = e;
273
+ if (s && (r === "Input" && !this.getInputsLocked() || r === "Output" && !this.getOutputsLocked()))
274
+ return;
275
+ let o = (r === "Input" ? this.listInputFields() : r === "Output" ? this.listOutputFields() : this.listDynamicFields()).map(
276
+ (l) => [l, this.resolve({ field: l, assertFieldType: r })]
277
+ );
278
+ return a && (o = o.filter((l) => l[1] !== void 0)), o.map(([l, g]) => n(l, g));
279
+ }
280
+ }
281
+ const Ge = "staging", Ye = "main", Qe = D.object({
282
+ type: D.string(),
283
+ importance: D.number().optional(),
284
+ id: D.string().optional(),
285
+ label: D.string()
286
+ }), Xe = D.array(Qe), Ze = 1e-3, et = "__LABEL__", me = "__LABEL__@1";
287
+ function Se(i, e, t = {}) {
288
+ const r = /* @__PURE__ */ new Map(), s = t.forceTraceElements !== void 0 && t.forceTraceElements.length > 0 ? new Set(t.forceTraceElements) : void 0, a = /* @__PURE__ */ new Map(), n = i.map((p) => {
289
+ const m = e(p);
290
+ let u, y, _;
291
+ "spec" in m && typeof m.spec == "object" ? (u = m.spec, y = m.prefixTrace, _ = m.suffixTrace) : u = m;
292
+ const S = ee(u, te.Label), C = ee(u, te.Trace), v = (C ? Xe.safeParse(Fe(C)).data : void 0) ?? [], f = [
293
+ ...y ?? [],
294
+ ...v,
295
+ ..._ ?? []
296
+ ];
297
+ if (S !== void 0) {
298
+ const h = { label: S, type: et, importance: -2 };
299
+ t.addLabelAsSuffix ? f.push(h) : f.splice(0, 0, h);
300
+ }
301
+ const d = [], P = /* @__PURE__ */ new Map();
302
+ for (let h = f.length - 1; h >= 0; --h) {
303
+ const { type: T } = f[h], U = f[h].importance ?? 0, K = (P.get(T) ?? 0) + 1;
304
+ P.set(T, K);
305
+ const I = `${T}@${K}`;
306
+ a.set(I, (a.get(I) ?? 0) + 1), r.set(
307
+ I,
308
+ Math.max(
309
+ r.get(I) ?? Number.NEGATIVE_INFINITY,
310
+ U - (f.length - h) * Ze
311
+ )
312
+ ), d.push({ ...f[h], fullType: I, occurrenceIndex: K });
313
+ }
314
+ return d.reverse(), {
315
+ value: p,
316
+ spec: u,
317
+ label: S,
318
+ fullTrace: d
319
+ };
320
+ }), o = [], l = [], g = [...r];
321
+ g.sort(([, p], [, m]) => m - p);
322
+ for (const [p] of g)
323
+ p.endsWith("@1") || a.get(p) === i.length ? o.push(p) : l.push(p);
324
+ const $ = (p, m = !1) => {
325
+ const u = [];
326
+ for (let y = 0; y < n.length; y++) {
327
+ const _ = n[y], S = _.fullTrace.filter((f) => p.has(f.fullType) || s && s.has(f.type));
328
+ if (S.length === 0)
329
+ if (m)
330
+ u.push({
331
+ label: "Unlabeled",
332
+ value: _.value
333
+ });
334
+ else return;
335
+ const C = S.map((f) => f.label), v = t.separator ?? " / ";
336
+ u.push({
337
+ label: C.join(v),
338
+ value: _.value
339
+ });
340
+ }
341
+ return u;
342
+ };
343
+ if (o.length === 0) {
344
+ if (l.length !== 0) throw new Error("Non-empty secondary types list while main types list is empty.");
345
+ return $(new Set(me), !0);
346
+ }
347
+ let E = 0, F = -1;
348
+ for (; E < o.length; ) {
349
+ const p = /* @__PURE__ */ new Set();
350
+ t.includeNativeLabel && p.add(me);
351
+ for (let u = 0; u < E; ++u) p.add(o[u]);
352
+ F >= 0 && p.add(o[F]);
353
+ const m = $(p);
354
+ if (m !== void 0 && new Set(m.map((u) => u.label)).size === i.length) return m;
355
+ F++, F >= o.length && (E++, F = E);
356
+ }
357
+ return $(/* @__PURE__ */ new Set([...o, ...l]), !0);
358
+ }
359
+ const M = "PColumnData/", ie = M + "ResourceMap", se = M + "Partitioned/ResourceMap", J = M + "JsonPartitioned", R = M + "BinaryPartitioned", Ie = M + "Partitioned/", z = Ie + "JsonPartitioned", B = Ie + "BinaryPartitioned", ne = (i) => {
360
+ if (i.endsWith(".index"))
361
+ return { baseKey: i.substring(0, i.length - 6), type: "index" };
362
+ if (i.endsWith(".values"))
363
+ return { baseKey: i.substring(0, i.length - 7), type: "values" };
364
+ throw new Error(`key must ends on .index/.values for binary p-column, got: ${i}`);
365
+ };
366
+ function tt(i) {
367
+ if (!i) return;
368
+ const e = i.resourceType.name, t = i.getDataAsJson(), r = [];
369
+ let s = 0;
370
+ switch (e) {
371
+ case ie:
372
+ s = t.keyLength;
373
+ break;
374
+ case se:
375
+ s = t.partitionKeyLength + t.keyLength;
376
+ break;
377
+ case J:
378
+ case R:
379
+ s = t.partitionKeyLength;
380
+ break;
381
+ case B:
382
+ case z:
383
+ s = t.superPartitionKeyLength + t.partitionKeyLength;
384
+ break;
385
+ }
386
+ switch (e) {
387
+ case ie:
388
+ case J:
389
+ case R:
390
+ for (let a of i.listInputFields()) {
391
+ e === R && (a = ne(a).baseKey);
392
+ const n = [...JSON.parse(a)];
393
+ r.push(n);
394
+ }
395
+ break;
396
+ case se:
397
+ case B:
398
+ case z:
399
+ for (const a of i.listInputFields()) {
400
+ const n = [...JSON.parse(a)], o = i.resolve({ field: a, assertFieldType: "Input" });
401
+ if (o !== void 0)
402
+ for (let l of o.listInputFields()) {
403
+ e === B && (l = ne(l).baseKey);
404
+ const g = [...n, ...JSON.parse(l)];
405
+ r.push(g);
406
+ }
407
+ }
408
+ break;
409
+ }
410
+ return { data: r, keyLength: s };
411
+ }
412
+ function rt(i) {
413
+ if (i.type !== "JsonPartitioned" && i.type !== "BinaryPartitioned")
414
+ throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${i.type}`);
415
+ const { parts: e, partitionKeyLength: t } = i, r = [];
416
+ for (let s = 0; s < t; ++s)
417
+ r.push(/* @__PURE__ */ new Set());
418
+ for (const s of e) {
419
+ const a = s.key;
420
+ if (a.length !== t)
421
+ throw new Error(
422
+ `Key length (${a.length}) does not match partition length (${t}) for key: ${JSON.stringify(
423
+ a
424
+ )}`
425
+ );
426
+ for (let n = 0; n < t; ++n)
427
+ r[n].add(a[n]);
428
+ }
429
+ return r.map((s) => Array.from(s.values()));
430
+ }
431
+ function it(i) {
432
+ if (i === void 0) return;
433
+ if (Pe(i))
434
+ return rt(i);
435
+ const e = tt(i);
436
+ if (!e) return;
437
+ const { data: t, keyLength: r } = e, s = [];
438
+ for (let a = 0; a < r; ++a)
439
+ s.push(/* @__PURE__ */ new Set());
440
+ for (const a of t) {
441
+ if (a.length !== r)
442
+ throw new Error("key length does not match partition length");
443
+ for (let n = 0; n < r; ++n)
444
+ s[n].add(a[n]);
445
+ }
446
+ return s.map((a) => Array.from(a.values()));
447
+ }
448
+ function ae(i, e = []) {
449
+ if (i === void 0 || !i.getIsReadyOrError()) return;
450
+ const t = i.resourceType.name, r = i.getDataAsJson();
451
+ if (e.length > 0 && (t === z || t === B))
452
+ throw new Error(`Unexpected nested super-partitioned resource: ${t}`);
453
+ switch (t) {
454
+ case ie:
455
+ case se:
456
+ throw new Error(`Only data columns are supported, got: ${t}`);
457
+ case J: {
458
+ if (typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
459
+ throw new Error(`Missing partitionKeyLength in metadata for ${t}`);
460
+ const s = [];
461
+ for (const a of i.listInputFields()) {
462
+ const n = i.resolve({ field: a, assertFieldType: "Input" });
463
+ if (n === void 0) return;
464
+ const o = [...e, ...JSON.parse(a)];
465
+ s.push({ key: o, value: n });
466
+ }
467
+ return {
468
+ type: "JsonPartitioned",
469
+ partitionKeyLength: r.partitionKeyLength,
470
+ parts: s
471
+ };
472
+ }
473
+ case R: {
474
+ if (typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
475
+ throw new Error(`Missing partitionKeyLength in metadata for ${t}`);
476
+ const s = [], a = /* @__PURE__ */ new Map();
477
+ for (const n of i.listInputFields()) {
478
+ const o = ne(n), l = i.resolve({ field: n, assertFieldType: "Input" });
479
+ if (l === void 0) return;
480
+ let g = a.get(o.baseKey);
481
+ g || (g = {}, a.set(o.baseKey, g)), o.type === "index" ? g.index = l : g.values = l;
482
+ }
483
+ for (const [n, o] of a.entries()) {
484
+ if (!o.index || !o.values) return;
485
+ const l = [...e, ...JSON.parse(n)];
486
+ s.push({
487
+ key: l,
488
+ value: {
489
+ index: o.index,
490
+ values: o.values
491
+ }
492
+ });
493
+ }
494
+ return {
495
+ type: "BinaryPartitioned",
496
+ partitionKeyLength: r.partitionKeyLength,
497
+ parts: s
498
+ };
499
+ }
500
+ case z: {
501
+ if (typeof (r == null ? void 0 : r.superPartitionKeyLength) != "number" || typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
502
+ throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${t}`);
503
+ const s = r.superPartitionKeyLength + r.partitionKeyLength, a = [];
504
+ for (const n of i.listInputFields()) {
505
+ const o = i.resolve({ field: n, assertFieldType: "Input" });
506
+ if (o === void 0) return;
507
+ if (o.resourceType.name !== J)
508
+ throw new Error(`Expected ${J} inside ${t}, but got ${o.resourceType.name}`);
509
+ const l = ae(o, JSON.parse(n));
510
+ if (l === void 0) return;
511
+ if (l.type !== "JsonPartitioned")
512
+ throw new Error(`Unexpected inner result type for ${t}: ${l.type}`);
513
+ a.push(...l.parts);
514
+ }
515
+ return {
516
+ type: "JsonPartitioned",
517
+ partitionKeyLength: s,
518
+ parts: a
519
+ };
520
+ }
521
+ case B: {
522
+ if (typeof (r == null ? void 0 : r.superPartitionKeyLength) != "number" || typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
523
+ throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${t}`);
524
+ const s = r.superPartitionKeyLength + r.partitionKeyLength, a = [];
525
+ for (const n of i.listInputFields()) {
526
+ const o = i.resolve({ field: n, assertFieldType: "Input" });
527
+ if (o === void 0) return;
528
+ if (o.resourceType.name !== R)
529
+ throw new Error(`Expected ${R} inside ${t}, but got ${o.resourceType.name}`);
530
+ const l = ae(o, JSON.parse(n));
531
+ if (l === void 0) return;
532
+ if (l.type !== "BinaryPartitioned")
533
+ throw new Error(`Unexpected inner result type for ${t}: ${l.type}`);
534
+ a.push(...l.parts);
535
+ }
536
+ return {
537
+ type: "BinaryPartitioned",
538
+ partitionKeyLength: s,
539
+ parts: a
540
+ };
541
+ }
542
+ default:
543
+ throw new Error(`Unknown resource type: ${t}`);
544
+ }
545
+ }
546
+ function st(i) {
547
+ if (i !== void 0) {
548
+ if (Pe(i)) return i;
549
+ if (oe(i)) return Je(i);
550
+ if (i instanceof L) return ae(i);
551
+ throw new Error(`Unexpected input type: ${typeof i}`);
552
+ }
553
+ }
554
+ function nt(i, e) {
555
+ const t = [...e].sort((n, o) => o[0] - n[0]), { type: r } = i;
556
+ switch (r) {
557
+ case "Json": {
558
+ const { keyLength: n } = i;
559
+ for (const [o] of e)
560
+ if (o >= n)
561
+ throw new Error(`Can't filter on non-data axis ${o}. Must be >= ${n}`);
562
+ break;
563
+ }
564
+ case "JsonPartitioned":
565
+ case "BinaryPartitioned":
566
+ case "ParquetPartitioned": {
567
+ const { partitionKeyLength: n } = i;
568
+ for (const [o] of e)
569
+ if (o >= n)
570
+ throw new Error(`Can't filter on non-partitioned axis ${o}. Must be >= ${n}`);
571
+ break;
572
+ }
573
+ default:
574
+ throw new Error(`Unsupported data info type: ${r}`);
575
+ }
576
+ const s = (n) => {
577
+ for (const [o, l] of t)
578
+ if (n[o] !== l)
579
+ return !1;
580
+ return !0;
581
+ }, a = (n) => {
582
+ const o = [...n];
583
+ for (const [l] of t)
584
+ o.splice(l, 1);
585
+ return o;
586
+ };
587
+ switch (i.type) {
588
+ case "Json":
589
+ return {
590
+ type: "Json",
591
+ keyLength: i.keyLength - e.length,
592
+ data: i.data.filter((n) => s(n.key)).map((n) => ({
593
+ key: a(n.key),
594
+ value: n.value
595
+ }))
596
+ };
597
+ case "JsonPartitioned":
598
+ return {
599
+ type: "JsonPartitioned",
600
+ partitionKeyLength: i.partitionKeyLength - e.length,
601
+ parts: i.parts.filter((n) => s(n.key)).map((n) => ({
602
+ key: a(n.key),
603
+ value: n.value
604
+ }))
605
+ };
606
+ case "BinaryPartitioned":
607
+ return {
608
+ type: "BinaryPartitioned",
609
+ partitionKeyLength: i.partitionKeyLength - e.length,
610
+ parts: i.parts.filter((n) => s(n.key)).map((n) => ({
611
+ key: a(n.key),
612
+ value: n.value
613
+ }))
614
+ };
615
+ case "ParquetPartitioned":
616
+ return {
617
+ type: "ParquetPartitioned",
618
+ partitionKeyLength: i.partitionKeyLength - e.length,
619
+ parts: i.parts.filter((n) => s(n.key)).map((n) => ({
620
+ key: a(n.key),
621
+ value: n.value
622
+ }))
623
+ };
624
+ }
625
+ }
626
+ function at(i) {
627
+ if (!Array.isArray(i)) return !1;
628
+ if (i.length === 0) return !0;
629
+ const e = i[0];
630
+ return typeof e == "object" && e !== null && "key" in e && "val" in e;
631
+ }
632
+ class ot {
633
+ constructor(e) {
634
+ this.columns = e;
635
+ }
636
+ selectColumns(e) {
637
+ const t = typeof e == "function" ? e : V(e);
638
+ return this.columns.filter((r) => t(r.spec));
639
+ }
640
+ }
641
+ function lt(i) {
642
+ if (i)
643
+ return i.map((e) => ({
644
+ type: `split:${Be(e.axisId)}`,
645
+ label: e.label,
646
+ importance: 1e6
647
+ // High importance for split filters in labels
648
+ }));
649
+ }
650
+ function ut(i) {
651
+ if (i)
652
+ return i.map((e) => [e.axisIdx, e.value]);
653
+ }
654
+ function ct(i, e) {
655
+ if (!e || e.length === 0) return i;
656
+ const t = [...e].sort((r, s) => r[0] - s[0]);
657
+ return xe({ id: i, axisFilters: t });
658
+ }
659
+ function ye(i) {
660
+ if (!i || typeof i != "object") return !1;
661
+ const e = i, t = e.domain && typeof e.domain == "object" && Object.values(e.domain).some((s) => typeof s == "object" && s !== null && "anchor" in s), r = e.axes && Array.isArray(e.axes) && e.axes.some((s) => typeof s == "object" && s !== null && "anchor" in s);
662
+ return !!e.domainAnchor || t || r;
663
+ }
664
+ function ht(i) {
665
+ if (typeof i != "object" || !("axes" in i) || i.axes === void 0)
666
+ return [];
667
+ const e = i.axes.map((t, r) => typeof t == "object" && "split" in t && t.split === !0 ? r : -1).filter((t) => t !== -1);
668
+ if (e.length > 0 && i.partialAxesMatch !== void 0)
669
+ throw new Error("Axis splitting is not supported when `partialAxesMatch` is defined.");
670
+ return e.sort((t, r) => t - r), e;
671
+ }
672
+ class ve {
673
+ constructor() {
674
+ x(this, "defaultProviderStore", []), x(this, "providers", [new ot(this.defaultProviderStore)]), x(this, "axisLabelProviders", []);
675
+ }
676
+ addColumnProvider(e) {
677
+ return this.providers.push(e), this;
678
+ }
679
+ addAxisLabelProvider(e) {
680
+ return this.axisLabelProviders.push(e), this;
681
+ }
682
+ addColumns(e) {
683
+ return this.defaultProviderStore.push(...e), this;
684
+ }
685
+ addColumn(e) {
686
+ return this.defaultProviderStore.push(e), this;
687
+ }
688
+ /** Fetches labels for a given axis from the registered providers */
689
+ findLabels(e) {
690
+ for (const t of this.axisLabelProviders) {
691
+ const r = t.findLabels(e);
692
+ if (r) return r;
693
+ }
694
+ }
695
+ getUniversalEntries(e, t) {
696
+ const { anchorCtx: r, labelOps: s, dontWaitAllData: a = !1, overrideLabelAnnotation: n = !1, exclude: o } = t ?? {}, l = {
697
+ ...n && (s == null ? void 0 : s.includeNativeLabel) !== !1 ? { includeNativeLabel: !0 } : {},
698
+ ...s ?? {}
699
+ };
700
+ let g = () => !1;
701
+ if (o) {
702
+ const u = (Array.isArray(o) ? o : [o]).map((y) => {
703
+ if (ye(y)) {
704
+ if (!r)
705
+ throw new Error("Anchored selectors in exclude require an AnchoredIdDeriver to be provided in options.");
706
+ return V(fe(r.anchors, y, t));
707
+ } else
708
+ return V(y);
709
+ });
710
+ g = (y) => u.some((_) => _(y));
711
+ }
712
+ const $ = typeof e == "function" ? [e] : Array.isArray(e) ? e : [e], E = [], F = /* @__PURE__ */ new Set();
713
+ for (const u of $) {
714
+ const y = ye(u);
715
+ let _;
716
+ if (y) {
717
+ if (!r)
718
+ throw new Error("Anchored selectors require an AnchoredIdDeriver to be provided in options.");
719
+ _ = fe(r.anchors, u, t);
720
+ } else
721
+ _ = u;
722
+ const S = /* @__PURE__ */ new Set(), C = [];
723
+ for (const d of this.providers) {
724
+ const P = d.selectColumns(_);
725
+ for (const h of P) {
726
+ if (g(h.spec)) continue;
727
+ if (S.has(h.id))
728
+ throw new Error(`Duplicate column id ${h.id} in provider ${d.constructor.name}`);
729
+ const T = Ke(h.spec);
730
+ F.has(T) || (S.add(h.id), F.add(T), C.push(h));
731
+ }
732
+ }
733
+ if (C.length === 0) continue;
734
+ const v = ht(u), f = v.length > 0;
735
+ for (const d of C) {
736
+ if (!H(d.spec)) continue;
737
+ const P = d.spec;
738
+ if (f) {
739
+ if (at(d.data))
740
+ throw new Error(`Splitting is not supported for PColumns with PColumnValues data format. Column id: ${d.id}`);
741
+ const h = st(d.data);
742
+ if (!h) {
743
+ if (a) continue;
744
+ return;
745
+ }
746
+ if (!Ne(h))
747
+ throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${h.type} for column ${d.id}`);
748
+ const T = it(h), U = v[v.length - 1];
749
+ if (U >= h.partitionKeyLength)
750
+ throw new Error(`Not enough partition keys (${h.partitionKeyLength}) for requested split axes (max index ${U}) in column ${P.name}`);
751
+ const K = v.map((w) => this.findLabels(ge(P.axesSpec[w]))), I = [], ue = (w, N) => {
752
+ if (N >= v.length) {
753
+ if (I.push([...w]), I.length > 1e4)
754
+ throw new Error("Too many key combinations, aborting.");
755
+ return;
756
+ }
757
+ const k = v[N];
758
+ if (k >= T.length)
759
+ throw new Error(`Axis index ${k} out of bounds for unique keys array (length ${T.length}) during split key generation for column ${d.id}`);
760
+ const O = T[k];
761
+ if (!O || O.length === 0) {
762
+ I.length = 0;
763
+ return;
764
+ }
765
+ for (const W of O)
766
+ w.push(W), ue(w, N + 1), w.pop();
767
+ };
768
+ if (ue([], 0), I.length === 0)
769
+ continue;
770
+ const ce = [...P.axesSpec], Le = v.map((w) => w);
771
+ for (let w = v.length - 1; w >= 0; w--)
772
+ ce.splice(v[w], 1);
773
+ const Ce = { ...P, axesSpec: ce };
774
+ for (const w of I) {
775
+ const N = w.map((k, O) => {
776
+ const W = Le[O], Te = ge(P.axesSpec[W]), he = K[O], Ee = (he == null ? void 0 : he[k]) ?? String(k);
777
+ return { axisIdx: W, axisId: Te, value: k, label: Ee };
778
+ });
779
+ E.push({
780
+ type: "split",
781
+ originalColumn: d,
782
+ spec: P,
783
+ adjustedSpec: Ce,
784
+ dataEntries: h,
785
+ axisFilters: N
786
+ });
787
+ }
788
+ } else
789
+ E.push({
790
+ type: "direct",
791
+ originalColumn: d,
792
+ spec: P,
793
+ adjustedSpec: P
794
+ });
795
+ }
796
+ }
797
+ if (E.length === 0) return [];
798
+ const p = Se(
799
+ E,
800
+ (u) => ({
801
+ spec: u.spec,
802
+ suffixTrace: u.type === "split" ? lt(u.axisFilters) : void 0
803
+ }),
804
+ l
805
+ ), m = [];
806
+ for (const { value: u, label: y } of p) {
807
+ const { originalColumn: _, spec: S } = u, C = u.type === "split" ? u.axisFilters : void 0, v = ut(C);
808
+ let f;
809
+ r ? f = r.deriveS(S, v) : f = ct(_.id, v);
810
+ let d = { ...u.adjustedSpec };
811
+ n && (d = {
812
+ ...d,
813
+ annotations: {
814
+ ...d.annotations ?? {},
815
+ [te.Label]: y
816
+ }
817
+ }), m.push({
818
+ id: f,
819
+ spec: d,
820
+ data: () => u.type === "split" ? je(nt(u.dataEntries, v)) : u.originalColumn.data,
821
+ label: y
822
+ });
823
+ }
824
+ return m;
825
+ }
826
+ getColumns(e, t) {
827
+ const r = this.getUniversalEntries(e, {
828
+ overrideLabelAnnotation: !0,
829
+ // default for getColumns
830
+ ...t ?? {}
831
+ });
832
+ if (!r) return;
833
+ const s = [];
834
+ for (const a of r) {
835
+ const n = a.data();
836
+ if (!n) {
837
+ if (t != null && t.dontWaitAllData) continue;
838
+ return;
839
+ }
840
+ s.push({
841
+ id: a.id,
842
+ spec: a.spec,
843
+ data: n
844
+ });
845
+ }
846
+ return s;
847
+ }
848
+ }
849
+ function be(i) {
850
+ const e = (s) => s.operator !== "InSet" ? s : {
851
+ operator: "Or",
852
+ operands: s.references.map((a) => ({
853
+ operator: "Equal",
854
+ reference: a
855
+ }))
856
+ }, t = (s, a) => {
857
+ switch (s.operator) {
858
+ case "And":
859
+ return {
860
+ ...s,
861
+ operands: s.operands.map((n) => t(n, a))
862
+ };
863
+ case "Or":
864
+ return {
865
+ ...s,
866
+ operands: s.operands.map((n) => t(n, a))
867
+ };
868
+ case "Not":
869
+ return {
870
+ ...s,
871
+ operand: t(s.operand, a)
872
+ };
873
+ default:
874
+ return a(s);
875
+ }
876
+ }, r = (s, a) => ({
877
+ ...s,
878
+ predicate: t(s.predicate, a)
879
+ });
880
+ return i.map((s) => r(s, e));
881
+ }
882
+ function Q(i, e) {
883
+ if (i === void 0) return e === void 0;
884
+ if (e === void 0) return !0;
885
+ for (const t in e)
886
+ if (i[t] !== e[t]) return !1;
887
+ return !0;
888
+ }
889
+ function _e(i) {
890
+ return le(i, (e) => e instanceof L ? e.handle : oe(e) ? Ve(e, (t) => t.handle) : e);
891
+ }
892
+ class dt {
893
+ constructor() {
894
+ x(this, "ctx", c());
895
+ }
896
+ /**
897
+ * @deprecated use getOptions()
898
+ */
899
+ calculateOptions(e) {
900
+ return this.ctx.calculateOptions(e);
901
+ }
902
+ getOptions(e, t) {
903
+ const r = typeof e == "function" ? e : V(e), s = this.getSpecs().entries.filter((o) => r(o.obj));
904
+ let a = {}, n = !1;
905
+ return typeof t < "u" && (typeof t == "function" ? a = t : typeof t == "object" && ("includeNativeLabel" in t || "separator" in t || "addLabelAsSuffix" in t ? a = t : (t = t, a = t.label ?? {}, n = t.refsWithEnrichments ?? !1))), typeof a == "object" ? Se(s, (o) => o.obj, a ?? {}).map(({ value: { ref: o }, label: l }) => ({
906
+ ref: de(o, n),
907
+ label: l
908
+ })) : s.map(({ ref: o, obj: l }) => ({
909
+ ref: de(o, n),
910
+ label: a(l, o)
911
+ }));
912
+ }
913
+ resolveAnchorCtx(e) {
914
+ if (e instanceof pe) return e;
915
+ const t = {};
916
+ for (const [r, s] of Object.entries(e))
917
+ if (De(s)) {
918
+ const a = this.getPColumnSpecByRef(s);
919
+ if (!a)
920
+ return;
921
+ t[r] = a;
922
+ } else
923
+ t[r] = s;
924
+ return new pe(t);
925
+ }
926
+ /**
927
+ * Returns columns that match the provided anchors and selectors. It applies axis filters and label derivation.
928
+ *
929
+ * @param anchorsOrCtx - Anchor context for column selection (same as in getCanonicalOptions)
930
+ * @param predicateOrSelectors - Predicate or selectors for filtering columns (same as in getCanonicalOptions)
931
+ * @param opts - Optional configuration for label generation and data waiting
932
+ * @returns A PFrameHandle for the created PFrame, or undefined if any required data is missing
933
+ */
934
+ getAnchoredPColumns(e, t, r) {
935
+ const s = this.resolveAnchorCtx(e);
936
+ if (s)
937
+ return new ve().addColumnProvider(this).addAxisLabelProvider(this).getColumns(t, {
938
+ ...r,
939
+ anchorCtx: s
940
+ });
941
+ }
942
+ /**
943
+ * Calculates anchored identifier options for columns matching a given predicate and returns their
944
+ * canonicalized representations.
945
+ *
946
+ * This function filters column specifications from the result pool that match the provided predicate,
947
+ * creates a standardized AnchorCtx from the provided anchors, and generates a list of label-value
948
+ * pairs for UI components (like dropdowns).
949
+ *
950
+ * @param anchorsOrCtx - Either:
951
+ * - An existing AnchorCtx instance
952
+ * - A record mapping anchor IDs to PColumnSpec objects
953
+ * - A record mapping anchor IDs to PlRef objects (which will be resolved to PColumnSpec)
954
+ * @param predicateOrSelectors - Either:
955
+ * - A predicate function that takes a PColumnSpec and returns a boolean.
956
+ * Only specs that return true will be included.
957
+ * - An APColumnSelector object for declarative filtering, which will be
958
+ * resolved against the provided anchors and matched using matchPColumn.
959
+ * - An array of APColumnSelector objects - columns matching ANY selector
960
+ * in the array will be included (OR operation).
961
+ * @param opts - Optional configuration for label generation:
962
+ * - labelOps: Optional configuration for label generation:
963
+ * - includeNativeLabel: Whether to include native column labels
964
+ * - separator: String to use between label parts (defaults to " / ")
965
+ * - addLabelAsSuffix: Whether to add labels as suffix instead of prefix
966
+ * - dontWaitAllData: Whether to skip columns that don't have all data (if not set, will return undefined,
967
+ * if at least one column that requires splitting is missing data)
968
+ * @returns An array of objects with `label` (display text) and `value` (anchored ID string) properties,
969
+ * or undefined if any PlRef resolution fails.
970
+ */
971
+ getCanonicalOptions(e, t, r) {
972
+ const s = this.resolveAnchorCtx(e);
973
+ if (!s) return;
974
+ const a = new ve().addColumnProvider(this).addAxisLabelProvider(this).getUniversalEntries(t, {
975
+ ...r,
976
+ anchorCtx: s
977
+ });
978
+ if (a)
979
+ return a.map((n) => ({
980
+ value: n.id,
981
+ label: n.label
982
+ }));
983
+ }
984
+ /**
985
+ * @deprecated use getData()
986
+ */
987
+ getDataFromResultPool() {
988
+ return this.getData();
989
+ }
990
+ getData() {
991
+ const e = this.ctx.getDataFromResultPool();
992
+ return {
993
+ isComplete: e.isComplete,
994
+ entries: e.entries.map((t) => ({
995
+ ref: t.ref,
996
+ obj: {
997
+ ...t.obj,
998
+ data: new L(t.obj.data, [t.ref.blockId, t.ref.name])
999
+ }
1000
+ }))
1001
+ };
1002
+ }
1003
+ /**
1004
+ * @deprecated use getDataWithErrors()
1005
+ */
1006
+ getDataWithErrorsFromResultPool() {
1007
+ return this.getDataWithErrors();
1008
+ }
1009
+ getDataWithErrors() {
1010
+ const e = this.ctx.getDataWithErrorsFromResultPool();
1011
+ return {
1012
+ isComplete: e.isComplete,
1013
+ entries: e.entries.map((t) => ({
1014
+ ref: t.ref,
1015
+ obj: {
1016
+ ...t.obj,
1017
+ data: Re(
1018
+ t.obj.data,
1019
+ (r) => new L(r, [t.ref.blockId, t.ref.name])
1020
+ )
1021
+ }
1022
+ }))
1023
+ };
1024
+ }
1025
+ /**
1026
+ * @deprecated use getSpecs()
1027
+ */
1028
+ getSpecsFromResultPool() {
1029
+ return this.getSpecs();
1030
+ }
1031
+ getSpecs() {
1032
+ return this.ctx.getSpecsFromResultPool();
1033
+ }
1034
+ /**
1035
+ * @param ref a Ref
1036
+ * @returns data associated with the ref
1037
+ */
1038
+ getDataByRef(e) {
1039
+ var t;
1040
+ if (typeof this.ctx.getDataFromResultPoolByRef > "u")
1041
+ return (t = this.getData().entries.find(
1042
+ (s) => s.ref.blockId === e.blockId && s.ref.name === e.name
1043
+ )) == null ? void 0 : t.obj;
1044
+ const r = this.ctx.getDataFromResultPoolByRef(e.blockId, e.name);
1045
+ if (r)
1046
+ return le(
1047
+ r,
1048
+ (s) => new L(s, [e.blockId, e.name])
1049
+ );
1050
+ }
1051
+ /**
1052
+ * Returns data associated with the ref ensuring that it is a p-column.
1053
+ * @param ref a Ref
1054
+ * @returns p-column associated with the ref
1055
+ */
1056
+ getPColumnByRef(e) {
1057
+ const t = this.getDataByRef(e);
1058
+ if (t)
1059
+ return $e(t);
1060
+ }
1061
+ /**
1062
+ * Returns spec associated with the ref ensuring that it is a p-column spec.
1063
+ * @param ref a Ref
1064
+ * @returns p-column spec associated with the ref
1065
+ */
1066
+ getPColumnSpecByRef(e) {
1067
+ const t = this.getSpecByRef(e);
1068
+ if (t) {
1069
+ if (!H(t)) throw new Error(`not a PColumn spec (kind = ${t.kind})`);
1070
+ return t;
1071
+ }
1072
+ }
1073
+ /**
1074
+ * @param ref a Ref
1075
+ * @returns object spec associated with the ref
1076
+ */
1077
+ getSpecByRef(e) {
1078
+ return this.ctx.getSpecFromResultPoolByRef(e.blockId, e.name);
1079
+ }
1080
+ /**
1081
+ * @param spec object specification
1082
+ * @returns array of data objects with compatible specs
1083
+ * @deprecated delete this method after Jan 1, 2025
1084
+ */
1085
+ findDataWithCompatibleSpec(e) {
1086
+ const t = [];
1087
+ e: for (const r of this.getData().entries) {
1088
+ if (!H(r.obj.spec))
1089
+ continue;
1090
+ const s = r.obj.spec;
1091
+ if (e.name === s.name && e.valueType === s.valueType && e.axesSpec.length === s.axesSpec.length && Q(e.domain, s.domain)) {
1092
+ for (let a = 0; a < e.axesSpec.length; ++a) {
1093
+ const n = e.axesSpec[a], o = s.axesSpec[a];
1094
+ if (n.name !== o.name || n.type !== o.type || !Q(n.domain, o.domain))
1095
+ continue e;
1096
+ }
1097
+ t.push(r.obj);
1098
+ }
1099
+ }
1100
+ return t;
1101
+ }
1102
+ /**
1103
+ * Find labels data for a given axis id. It will search for a label column and return its data as a map.
1104
+ * @returns a map of axis value => label
1105
+ */
1106
+ findLabels(e) {
1107
+ const t = this.getData();
1108
+ for (const r of t.entries) {
1109
+ if (!Ae(r.obj)) continue;
1110
+ const s = r.obj.spec;
1111
+ if (s.name === we.Label && s.axesSpec.length === 1 && s.axesSpec[0].name === e.name && s.axesSpec[0].type === e.type && Q(e.domain, s.axesSpec[0].domain)) {
1112
+ if (r.obj.data.resourceType.name !== "PColumnData/Json")
1113
+ throw Error(`Expected JSON column for labels, got: ${r.obj.data.resourceType.name}`);
1114
+ return Object.fromEntries(
1115
+ Object.entries(
1116
+ r.obj.data.getDataAsJson().data
1117
+ ).map((a) => [JSON.parse(a[0])[0], a[1]])
1118
+ );
1119
+ }
1120
+ }
1121
+ }
1122
+ /**
1123
+ * Selects columns based on the provided selectors, returning PColumn objects
1124
+ * with lazily loaded data.
1125
+ *
1126
+ * @param selectors - A predicate function, a single selector, or an array of selectors.
1127
+ * @returns An array of PColumn objects matching the selectors. Data is loaded on first access.
1128
+ */
1129
+ selectColumns(e) {
1130
+ const t = typeof e == "function" ? e : V(e);
1131
+ return this.getSpecs().entries.filter(({ obj: r }) => H(r) ? t(r) : !1).map(({ ref: r, obj: s }) => {
1132
+ const a = s;
1133
+ let n = null;
1134
+ const o = this;
1135
+ return {
1136
+ id: xe(r),
1137
+ spec: a,
1138
+ get data() {
1139
+ var l;
1140
+ return n !== null || (n = (l = o.getPColumnByRef(r)) == null ? void 0 : l.data), n;
1141
+ }
1142
+ };
1143
+ });
1144
+ }
1145
+ /**
1146
+ * Find labels data for a given axis id of a p-column.
1147
+ * @returns a map of axis value => label
1148
+ */
1149
+ findLabelsForColumnAxis(e, t) {
1150
+ const r = this.findLabels(e.axesSpec[t]);
1151
+ if (!r) return;
1152
+ const s = ee(e, `pl7.app/axisKeys/${t}`);
1153
+ if (s !== void 0) {
1154
+ const a = JSON.parse(s);
1155
+ return Object.fromEntries(a.map((n) => [n, r[n] ?? "Unlabelled"]));
1156
+ } else
1157
+ return r;
1158
+ }
1159
+ }
1160
+ class q {
1161
+ constructor() {
1162
+ x(this, "ctx"), x(this, "_argsCache"), x(this, "_uiStateCache"), x(this, "_activeArgsCache"), x(this, "resultPool", new dt()), this.ctx = c();
1163
+ }
1164
+ get args() {
1165
+ if (this._argsCache === void 0) {
1166
+ const e = this.ctx.args, t = typeof e == "function" ? e() : e;
1167
+ this._argsCache = { v: JSON.parse(t) };
1168
+ }
1169
+ return this._argsCache.v;
1170
+ }
1171
+ get uiState() {
1172
+ if (this._uiStateCache === void 0) {
1173
+ const e = this.ctx.uiState, t = typeof e == "function" ? e() : e;
1174
+ this._uiStateCache = { v: t ? JSON.parse(t) : {} };
1175
+ }
1176
+ return this._uiStateCache.v;
1177
+ }
1178
+ /**
1179
+ * Returns args snapshot the block was executed for (i.e. when "Run" button was pressed).
1180
+ * Returns undefined, if block was never executed or stopped mid-way execution, so that the result was cleared.
1181
+ * */
1182
+ get activeArgs() {
1183
+ if (this._activeArgsCache === void 0) {
1184
+ const e = this.ctx.activeArgs, t = typeof e == "function" ? e() : e;
1185
+ this._activeArgsCache = {
1186
+ v: t ? JSON.parse(t) : void 0
1187
+ };
1188
+ }
1189
+ return this._activeArgsCache.v;
1190
+ }
1191
+ // /** Can be used to determine features provided by the desktop instance. */
1192
+ // public get featureFlags() {
1193
+ // return this.ctx.featureFlags;
1194
+ // }
1195
+ getNamedAccessor(e) {
1196
+ return re(
1197
+ this.ctx.getAccessorHandleByName(e),
1198
+ (t) => new L(t, [e])
1199
+ );
1200
+ }
1201
+ get prerun() {
1202
+ return this.getNamedAccessor(Ge);
1203
+ }
1204
+ get outputs() {
1205
+ return this.getNamedAccessor(Ye);
1206
+ }
1207
+ /**
1208
+ * Find labels data for a given axis id. It will search for a label column and return its data as a map.
1209
+ * @returns a map of axis value => label
1210
+ * @deprecated Use resultPool.findLabels instead
1211
+ */
1212
+ findLabels(e) {
1213
+ return this.resultPool.findLabels(e);
1214
+ }
1215
+ verifyInlineAndExplicitColumnsSupport(e) {
1216
+ var t;
1217
+ const r = e.some((a) => !(a.data instanceof L) || oe(a.data)), s = ((t = this.ctx.featureFlags) == null ? void 0 : t.inlineColumnsSupport) === !0;
1218
+ if (r && !s) throw Error("Inline or explicit columns not supported");
1219
+ }
1220
+ patchPTableDef(e) {
1221
+ var t, r;
1222
+ return (t = this.ctx.featureFlags) != null && t.pTablePartitionFiltersSupport || (e = {
1223
+ ...e,
1224
+ partitionFilters: [],
1225
+ filters: [...e.partitionFilters, ...e.filters]
1226
+ }), (r = this.ctx.featureFlags) != null && r.pFrameInSetFilterSupport || (e = {
1227
+ ...e,
1228
+ partitionFilters: be(e.partitionFilters),
1229
+ filters: be(e.filters)
1230
+ }), e;
1231
+ }
1232
+ // TODO remove all non-PColumn fields
1233
+ createPFrame(e) {
1234
+ return this.verifyInlineAndExplicitColumnsSupport(e), this.ctx.createPFrame(
1235
+ e.map((t) => _e(t))
1236
+ );
1237
+ }
1238
+ createPTable(e) {
1239
+ let t;
1240
+ return "columns" in e ? t = this.patchPTableDef({
1241
+ src: {
1242
+ type: "full",
1243
+ entries: e.columns.map((r) => ({ type: "column", column: r }))
1244
+ },
1245
+ partitionFilters: e.filters ?? [],
1246
+ filters: [],
1247
+ sorting: e.sorting ?? []
1248
+ }) : t = this.patchPTableDef(e), this.verifyInlineAndExplicitColumnsSupport(ke(t.src)), this.ctx.createPTable(
1249
+ Oe(t, (r) => _e(r))
1250
+ );
1251
+ }
1252
+ /** @deprecated scheduled for removal from SDK */
1253
+ getBlockLabel(e) {
1254
+ return this.ctx.getBlockLabel(e);
1255
+ }
1256
+ getCurrentUnstableMarker() {
1257
+ return this.ctx.getCurrentUnstableMarker();
1258
+ }
1259
+ logInfo(e) {
1260
+ this.ctx.logInfo(e);
1261
+ }
1262
+ logWarn(e) {
1263
+ this.ctx.logWarn(e);
1264
+ }
1265
+ logError(e) {
1266
+ this.ctx.logError(e);
1267
+ }
1268
+ }
1269
+ const pt = "1.42.16", X = pt;
1270
+ function ft(i) {
1271
+ return i.__renderLambda === !0;
1272
+ }
1273
+ function Z(i) {
1274
+ if (i !== void 0)
1275
+ return ft(i) ? i.handle : i;
1276
+ }
1277
+ const gt = class b {
1278
+ constructor(e, t, r, s, a, n, o, l, g) {
1279
+ this._renderingMode = e, this._initialArgs = t, this._initialUiState = r, this._outputs = s, this._inputsValid = a, this._sections = n, this._title = o, this._enrichmentTargets = l, this._featureFlags = g;
1280
+ }
1281
+ static create(e = "Heavy") {
1282
+ return new b(
1283
+ e,
1284
+ void 0,
1285
+ {},
1286
+ {},
1287
+ G(!0),
1288
+ G([]),
1289
+ void 0,
1290
+ void 0,
1291
+ { ...b.INITIAL_BLOCK_FEATURE_FLAGS }
1292
+ );
1293
+ }
1294
+ output(e, t, r = {}) {
1295
+ if (typeof t == "function") {
1296
+ const s = `output#${e}`;
1297
+ return j(s, () => t(new q())), new b(
1298
+ this._renderingMode,
1299
+ this._initialArgs,
1300
+ this._initialUiState,
1301
+ {
1302
+ ...this._outputs,
1303
+ [e]: {
1304
+ __renderLambda: !0,
1305
+ handle: s,
1306
+ ...r
1307
+ }
1308
+ },
1309
+ this._inputsValid,
1310
+ this._sections,
1311
+ this._title,
1312
+ this._enrichmentTargets,
1313
+ this._featureFlags
1314
+ );
1315
+ } else
1316
+ return new b(
1317
+ this._renderingMode,
1318
+ this._initialArgs,
1319
+ this._initialUiState,
1320
+ {
1321
+ ...this._outputs,
1322
+ [e]: t
1323
+ },
1324
+ this._inputsValid,
1325
+ this._sections,
1326
+ this._title,
1327
+ this._enrichmentTargets,
1328
+ this._featureFlags
1329
+ );
1330
+ }
1331
+ /** Shortcut for {@link output} with retentive flag set to true. */
1332
+ retentiveOutput(e, t) {
1333
+ return this.output(e, t, { retentive: !0 });
1334
+ }
1335
+ argsValid(e) {
1336
+ return typeof e == "function" ? (j("inputsValid", () => e(new q())), new b(
1337
+ this._renderingMode,
1338
+ this._initialArgs,
1339
+ this._initialUiState,
1340
+ this._outputs,
1341
+ {
1342
+ __renderLambda: !0,
1343
+ handle: "inputsValid"
1344
+ },
1345
+ this._sections,
1346
+ this._title,
1347
+ this._enrichmentTargets,
1348
+ this._featureFlags
1349
+ )) : new b(
1350
+ this._renderingMode,
1351
+ this._initialArgs,
1352
+ this._initialUiState,
1353
+ this._outputs,
1354
+ e,
1355
+ this._sections,
1356
+ this._title,
1357
+ this._enrichmentTargets,
1358
+ this._featureFlags
1359
+ );
1360
+ }
1361
+ sections(e) {
1362
+ return Array.isArray(e) ? this.sections(G(e)) : typeof e == "function" ? (j("sections", () => e(new q())), new b(
1363
+ this._renderingMode,
1364
+ this._initialArgs,
1365
+ this._initialUiState,
1366
+ this._outputs,
1367
+ this._inputsValid,
1368
+ { __renderLambda: !0, handle: "sections" },
1369
+ this._title,
1370
+ this._enrichmentTargets,
1371
+ this._featureFlags
1372
+ )) : new b(
1373
+ this._renderingMode,
1374
+ this._initialArgs,
1375
+ this._initialUiState,
1376
+ this._outputs,
1377
+ this._inputsValid,
1378
+ e,
1379
+ this._title,
1380
+ this._enrichmentTargets,
1381
+ this._featureFlags
1382
+ );
1383
+ }
1384
+ /** Sets a rendering function to derive block title, shown for the block in the left blocks-overview panel. */
1385
+ title(e) {
1386
+ return j("title", () => e(new q())), new b(
1387
+ this._renderingMode,
1388
+ this._initialArgs,
1389
+ this._initialUiState,
1390
+ this._outputs,
1391
+ this._inputsValid,
1392
+ this._sections,
1393
+ { __renderLambda: !0, handle: "title" },
1394
+ this._enrichmentTargets,
1395
+ this._featureFlags
1396
+ );
1397
+ }
1398
+ /**
1399
+ * Sets initial args for the block, this value must be specified.
1400
+ * @deprecated use {@link withArgs}
1401
+ * */
1402
+ initialArgs(e) {
1403
+ return new b(
1404
+ this._renderingMode,
1405
+ e,
1406
+ this._initialUiState,
1407
+ this._outputs,
1408
+ this._inputsValid,
1409
+ this._sections,
1410
+ this._title,
1411
+ this._enrichmentTargets,
1412
+ this._featureFlags
1413
+ );
1414
+ }
1415
+ /** Sets initial args for the block, this value must be specified. */
1416
+ withArgs(e) {
1417
+ return new b(
1418
+ this._renderingMode,
1419
+ e,
1420
+ this._initialUiState,
1421
+ this._outputs,
1422
+ this._inputsValid,
1423
+ this._sections,
1424
+ this._title,
1425
+ this._enrichmentTargets,
1426
+ this._featureFlags
1427
+ );
1428
+ }
1429
+ /** Defines type and sets initial value for block UiState. */
1430
+ withUiState(e) {
1431
+ return new b(
1432
+ this._renderingMode,
1433
+ this._initialArgs,
1434
+ e,
1435
+ this._outputs,
1436
+ this._inputsValid,
1437
+ this._sections,
1438
+ this._title,
1439
+ this._enrichmentTargets,
1440
+ this._featureFlags
1441
+ );
1442
+ }
1443
+ /** Sets or overrides feature flags for the block. */
1444
+ withFeatureFlags(e) {
1445
+ return new b(
1446
+ this._renderingMode,
1447
+ this._initialArgs,
1448
+ this._initialUiState,
1449
+ this._outputs,
1450
+ this._inputsValid,
1451
+ this._sections,
1452
+ this._title,
1453
+ this._enrichmentTargets,
1454
+ { ...this._featureFlags, ...e }
1455
+ );
1456
+ }
1457
+ /**
1458
+ * Defines how to derive list of upstream references this block is meant to enrich with its exports from block args.
1459
+ * Influences dependency graph construction.
1460
+ */
1461
+ enriches(e) {
1462
+ return j("enrichmentTargets", e), new b(
1463
+ this._renderingMode,
1464
+ this._initialArgs,
1465
+ this._initialUiState,
1466
+ this._outputs,
1467
+ this._inputsValid,
1468
+ this._sections,
1469
+ this._title,
1470
+ { __renderLambda: !0, handle: "enrichmentTargets" },
1471
+ this._featureFlags
1472
+ );
1473
+ }
1474
+ /** Renders all provided block settings into a pre-configured platforma API
1475
+ * instance, that can be used in frontend to interact with block state, and
1476
+ * other features provided by the platforma to the block. */
1477
+ done(e) {
1478
+ const t = e ?? 1;
1479
+ return this.withFeatureFlags({
1480
+ ...this._featureFlags,
1481
+ requiresUIAPIVersion: t
1482
+ })._done(t);
1483
+ }
1484
+ _done(e) {
1485
+ if (this._initialArgs === void 0) throw new Error("Initial arguments not set.");
1486
+ const t = {
1487
+ v3: {
1488
+ sdkVersion: X,
1489
+ renderingMode: this._renderingMode,
1490
+ initialArgs: this._initialArgs,
1491
+ initialUiState: this._initialUiState,
1492
+ inputsValid: this._inputsValid,
1493
+ sections: this._sections,
1494
+ title: this._title,
1495
+ outputs: this._outputs,
1496
+ enrichmentTargets: this._enrichmentTargets,
1497
+ featureFlags: this._featureFlags
1498
+ },
1499
+ // fields below are added to allow previous desktop versions read generated configs
1500
+ sdkVersion: X,
1501
+ renderingMode: this._renderingMode,
1502
+ initialArgs: this._initialArgs,
1503
+ inputsValid: Z(this._inputsValid),
1504
+ sections: Z(this._sections),
1505
+ outputs: Object.fromEntries(
1506
+ Object.entries(this._outputs).map(([r, s]) => [r, Z(s)])
1507
+ )
1508
+ };
1509
+ return globalThis.platformaApiVersion = e, We() ? qe({ sdkVersion: X, apiVersion: platformaApiVersion }) : { config: t };
1510
+ }
1511
+ };
1512
+ x(gt, "INITIAL_BLOCK_FEATURE_FLAGS", {
1513
+ supportsLazyState: !0,
1514
+ requiresUIAPIVersion: 1,
1515
+ requiresModelAPIVersion: 1
1516
+ });
1517
+ function bt(i) {
1518
+ return i.axesSpec.length === 1 && i.name === we.Label;
1519
+ }
1520
+ export {
1521
+ pe as AnchoredIdDeriver,
1522
+ te as Annotation,
1523
+ At as AnnotationJson,
1524
+ Pt as AxisSpec,
1525
+ Ht as BasePlErrorLike,
1526
+ zt as ErrorLike,
1527
+ A as FutureRef,
1528
+ xt as LinkerMap,
1529
+ ve as PColumnCollection,
1530
+ we as PColumnName,
1531
+ St as PTableAbsent,
1532
+ It as PTableNA,
1533
+ Gt as PlErrorLike,
1534
+ Lt as PlIdLength,
1535
+ R as RT_BINARY_PARTITIONED,
1536
+ B as RT_BINARY_SUPER_PARTITIONED,
1537
+ J as RT_JSON_PARTITIONED,
1538
+ z as RT_JSON_SUPER_PARTITIONED,
1539
+ ie as RT_RESOURCE_MAP,
1540
+ se as RT_RESOURCE_MAP_PARTITIONED,
1541
+ q as RenderCtx,
1542
+ dt as ResultPool,
1543
+ Yt as StandardErrorLike,
1544
+ Xe as Trace,
1545
+ Qe as TraceEntry,
1546
+ L as TreeNodeAccessor,
1547
+ Ct as ValueType,
1548
+ Be as canonicalizeAxisId,
1549
+ Tt as canonicalizeAxisWithParents,
1550
+ Et as canonicalizeJson,
1551
+ st as convertOrParsePColumnData,
1552
+ Je as dataInfoToEntries,
1553
+ Se as deriveLabels,
1554
+ Ke as deriveNativeId,
1555
+ Z as downgradeCfgOrLambda,
1556
+ Ft as ensureError,
1557
+ $e as ensurePColumn,
1558
+ je as entriesToDataInfo,
1559
+ ke as extractAllColumns,
1560
+ nt as filterDataInfoEntries,
1561
+ kt as getArrayFromAxisTree,
1562
+ Ot as getAxesId,
1563
+ Dt as getAxesTree,
1564
+ ge as getAxisId,
1565
+ G as getImmediate,
1566
+ Rt as getNormalizedAxesList,
1567
+ tt as getPartitionKeysList,
1568
+ it as getUniquePartitionKeys,
1569
+ re as ifDef,
1570
+ ft as isConfigLambda,
1571
+ oe as isDataInfo,
1572
+ Pe as isDataInfoEntries,
1573
+ bt as isLabelColumn,
1574
+ Ae as isPColumn,
1575
+ H as isPColumnSpec,
1576
+ Ne as isPartitionedDataInfoEntries,
1577
+ De as isPlRef,
1578
+ Ve as mapDataInfo,
1579
+ $t as mapJoinEntry,
1580
+ le as mapPObjectData,
1581
+ Oe as mapPTableDef,
1582
+ Re as mapValueInVOE,
1583
+ Kt as matchAxis,
1584
+ Nt as matchAxisId,
1585
+ jt as matchPColumn,
1586
+ Jt as pTableValue,
1587
+ Fe as parseJson,
1588
+ ae as parsePColumnData,
1589
+ ee as readAnnotation,
1590
+ Bt as readAnnotationJson,
1591
+ Vt as readMetadata,
1592
+ Mt as readMetadataJson,
1593
+ Ut as readMetadataJsonOrThrow,
1594
+ fe as resolveAnchors,
1595
+ V as selectorsToPredicate,
1596
+ Wt as stringifyColumnId,
1597
+ de as withEnrichments
1598
+ };
1599
+ //# sourceMappingURL=index.js.map