@platforma-open/milaboratories.vj-usage.model 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.js CHANGED
@@ -2,48 +2,6 @@
2
2
  typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.model = {}));
3
3
  })(this, function(exports2) {
4
4
  "use strict";
5
- function getDefaultExportFromCjs(x2) {
6
- return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
7
- }
8
- var canonicalize;
9
- var hasRequiredCanonicalize;
10
- function requireCanonicalize() {
11
- if (hasRequiredCanonicalize) return canonicalize;
12
- hasRequiredCanonicalize = 1;
13
- canonicalize = function serialize(object) {
14
- if (typeof object === "number" && isNaN(object)) {
15
- throw new Error("NaN is not allowed");
16
- }
17
- if (typeof object === "number" && !isFinite(object)) {
18
- throw new Error("Infinity is not allowed");
19
- }
20
- if (object === null || typeof object !== "object") {
21
- return JSON.stringify(object);
22
- }
23
- if (object.toJSON instanceof Function) {
24
- return serialize(object.toJSON());
25
- }
26
- if (Array.isArray(object)) {
27
- const values2 = object.reduce((t, cv, ci) => {
28
- const comma = ci === 0 ? "" : ",";
29
- const value = cv === void 0 || typeof cv === "symbol" ? null : cv;
30
- return `${t}${comma}${serialize(value)}`;
31
- }, "");
32
- return `[${values2}]`;
33
- }
34
- const values = Object.keys(object).sort().reduce((t, cv) => {
35
- if (object[cv] === void 0 || typeof object[cv] === "symbol") {
36
- return t;
37
- }
38
- const comma = t.length === 0 ? "" : ",";
39
- return `${t}${comma}${serialize(cv)}:${serialize(object[cv])}`;
40
- }, "");
41
- return `{${values}}`;
42
- };
43
- return canonicalize;
44
- }
45
- var canonicalizeExports = requireCanonicalize();
46
- const _e = /* @__PURE__ */ getDefaultExportFromCjs(canonicalizeExports);
47
5
  var util;
48
6
  (function(util2) {
49
7
  util2.assertEqual = (val) => val;
@@ -95,7 +53,7 @@
95
53
  return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
96
54
  }
97
55
  util2.joinValues = joinValues;
98
- util2.jsonStringifyReplacer = (_, value) => {
56
+ util2.jsonStringifyReplacer = (_2, value) => {
99
57
  if (typeof value === "bigint") {
100
58
  return value.toString();
101
59
  }
@@ -433,7 +391,7 @@
433
391
  overrideMap,
434
392
  overrideMap === errorMap ? void 0 : errorMap
435
393
  // then global default map
436
- ].filter((x2) => !!x2)
394
+ ].filter((x) => !!x)
437
395
  });
438
396
  ctx.common.issues.push(issue);
439
397
  }
@@ -496,10 +454,10 @@
496
454
  });
497
455
  const DIRTY = (value) => ({ status: "dirty", value });
498
456
  const OK = (value) => ({ status: "valid", value });
499
- const isAborted = (x2) => x2.status === "aborted";
500
- const isDirty = (x2) => x2.status === "dirty";
501
- const isValid = (x2) => x2.status === "valid";
502
- const isAsync = (x2) => typeof Promise !== "undefined" && x2 instanceof Promise;
457
+ const isAborted = (x) => x.status === "aborted";
458
+ const isDirty = (x) => x.status === "dirty";
459
+ const isValid = (x) => x.status === "valid";
460
+ const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
503
461
  function __classPrivateFieldGet(receiver, state, kind, f2) {
504
462
  if (typeof state === "function" ? receiver !== state || true : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
505
463
  return state.get(receiver);
@@ -2829,7 +2787,7 @@
2829
2787
  if (!schema)
2830
2788
  return null;
2831
2789
  return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));
2832
- }).filter((x2) => !!x2);
2790
+ }).filter((x) => !!x);
2833
2791
  if (ctx.common.async) {
2834
2792
  return Promise.all(items).then((results) => {
2835
2793
  return ParseStatus.mergeArray(status, results);
@@ -3087,7 +3045,7 @@
3087
3045
  ctx.schemaErrorMap,
3088
3046
  getErrorMap(),
3089
3047
  errorMap
3090
- ].filter((x2) => !!x2),
3048
+ ].filter((x) => !!x),
3091
3049
  issueData: {
3092
3050
  code: ZodIssueCode.invalid_arguments,
3093
3051
  argumentsError: error
@@ -3103,7 +3061,7 @@
3103
3061
  ctx.schemaErrorMap,
3104
3062
  getErrorMap(),
3105
3063
  errorMap
3106
- ].filter((x2) => !!x2),
3064
+ ].filter((x) => !!x),
3107
3065
  issueData: {
3108
3066
  code: ZodIssueCode.invalid_return_type,
3109
3067
  returnTypeError: error
@@ -3111,31 +3069,31 @@
3111
3069
  });
3112
3070
  }
3113
3071
  const params = { errorMap: ctx.common.contextualErrorMap };
3114
- const fn = ctx.data;
3072
+ const fn2 = ctx.data;
3115
3073
  if (this._def.returns instanceof ZodPromise) {
3116
- const me = this;
3074
+ const me2 = this;
3117
3075
  return OK(async function(...args) {
3118
3076
  const error = new ZodError([]);
3119
- const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {
3077
+ const parsedArgs = await me2._def.args.parseAsync(args, params).catch((e) => {
3120
3078
  error.addIssue(makeArgsIssue(args, e));
3121
3079
  throw error;
3122
3080
  });
3123
- const result = await Reflect.apply(fn, this, parsedArgs);
3124
- const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {
3081
+ const result = await Reflect.apply(fn2, this, parsedArgs);
3082
+ const parsedReturns = await me2._def.returns._def.type.parseAsync(result, params).catch((e) => {
3125
3083
  error.addIssue(makeReturnsIssue(result, e));
3126
3084
  throw error;
3127
3085
  });
3128
3086
  return parsedReturns;
3129
3087
  });
3130
3088
  } else {
3131
- const me = this;
3089
+ const me2 = this;
3132
3090
  return OK(function(...args) {
3133
- const parsedArgs = me._def.args.safeParse(args, params);
3091
+ const parsedArgs = me2._def.args.safeParse(args, params);
3134
3092
  if (!parsedArgs.success) {
3135
3093
  throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
3136
3094
  }
3137
- const result = Reflect.apply(fn, this, parsedArgs.data);
3138
- const parsedReturns = me._def.returns.safeParse(result, params);
3095
+ const result = Reflect.apply(fn2, this, parsedArgs.data);
3096
+ const parsedReturns = me2._def.returns.safeParse(result, params);
3139
3097
  if (!parsedReturns.success) {
3140
3098
  throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
3141
3099
  }
@@ -3956,234 +3914,274 @@
3956
3914
  quotelessJson,
3957
3915
  ZodError
3958
3916
  });
3959
- var I$1 = Object.defineProperty;
3960
- var $ = (n2, t, e) => t in n2 ? I$1(n2, t, { enumerable: true, configurable: true, writable: true, value: e }) : n2[t] = e;
3961
- var m$2 = (n2, t, e) => $(n2, typeof t != "symbol" ? t + "" : t, e);
3917
+ function getDefaultExportFromCjs(x) {
3918
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
3919
+ }
3920
+ var canonicalize;
3921
+ var hasRequiredCanonicalize;
3922
+ function requireCanonicalize() {
3923
+ if (hasRequiredCanonicalize) return canonicalize;
3924
+ hasRequiredCanonicalize = 1;
3925
+ canonicalize = function serialize(object) {
3926
+ if (typeof object === "number" && isNaN(object)) {
3927
+ throw new Error("NaN is not allowed");
3928
+ }
3929
+ if (typeof object === "number" && !isFinite(object)) {
3930
+ throw new Error("Infinity is not allowed");
3931
+ }
3932
+ if (object === null || typeof object !== "object") {
3933
+ return JSON.stringify(object);
3934
+ }
3935
+ if (object.toJSON instanceof Function) {
3936
+ return serialize(object.toJSON());
3937
+ }
3938
+ if (Array.isArray(object)) {
3939
+ const values2 = object.reduce((t, cv, ci) => {
3940
+ const comma = ci === 0 ? "" : ",";
3941
+ const value = cv === void 0 || typeof cv === "symbol" ? null : cv;
3942
+ return `${t}${comma}${serialize(value)}`;
3943
+ }, "");
3944
+ return `[${values2}]`;
3945
+ }
3946
+ const values = Object.keys(object).sort().reduce((t, cv) => {
3947
+ if (object[cv] === void 0 || typeof object[cv] === "symbol") {
3948
+ return t;
3949
+ }
3950
+ const comma = t.length === 0 ? "" : ",";
3951
+ return `${t}${comma}${serialize(cv)}:${serialize(object[cv])}`;
3952
+ }, "");
3953
+ return `{${values}}`;
3954
+ };
3955
+ return canonicalize;
3956
+ }
3957
+ var canonicalizeExports = requireCanonicalize();
3958
+ const ke = /* @__PURE__ */ getDefaultExportFromCjs(canonicalizeExports);
3959
+ var B$1 = Object.defineProperty;
3960
+ var j = (n2, e, t) => e in n2 ? B$1(n2, e, { enumerable: true, configurable: true, writable: true, value: t }) : n2[e] = t;
3961
+ var l$1 = (n2, e, t) => j(n2, typeof e != "symbol" ? e + "" : e, t);
3962
+ z$1.object({
3963
+ /** Included left border. */
3964
+ from: z$1.number(),
3965
+ /** Excluded right border. */
3966
+ to: z$1.number()
3967
+ });
3962
3968
  function w(n2) {
3963
3969
  throw new Error("Unexpected object: " + n2);
3964
3970
  }
3965
- function mn(n2) {
3971
+ function En(n2) {
3966
3972
  if (!n2 || typeof n2 != "object")
3967
3973
  return false;
3968
- const t = n2;
3969
- if (!("type" in t))
3974
+ const e = n2;
3975
+ if (!("type" in e))
3970
3976
  return false;
3971
- switch (t.type) {
3977
+ switch (e.type) {
3972
3978
  case "Json":
3973
- return typeof t.keyLength == "number" && t.data !== void 0 && typeof t.data == "object";
3979
+ return typeof e.keyLength == "number" && e.data !== void 0 && typeof e.data == "object";
3974
3980
  case "JsonPartitioned":
3975
- return typeof t.partitionKeyLength == "number" && t.parts !== void 0 && typeof t.parts == "object";
3981
+ return typeof e.partitionKeyLength == "number" && e.parts !== void 0 && typeof e.parts == "object";
3976
3982
  case "BinaryPartitioned":
3977
- return typeof t.partitionKeyLength == "number" && t.parts !== void 0 && typeof t.parts == "object";
3983
+ return typeof e.partitionKeyLength == "number" && e.parts !== void 0 && typeof e.parts == "object";
3978
3984
  default:
3979
3985
  return false;
3980
3986
  }
3981
3987
  }
3982
- function yn(n2, t) {
3988
+ function Nn(n2, e) {
3983
3989
  if (n2 !== void 0)
3984
3990
  switch (n2.type) {
3985
3991
  case "Json":
3986
3992
  return n2;
3987
3993
  case "JsonPartitioned": {
3988
- const e = {};
3994
+ const t = {};
3989
3995
  for (const [r, o] of Object.entries(n2.parts))
3990
- e[r] = t(o);
3996
+ t[r] = e(o);
3991
3997
  return {
3992
3998
  ...n2,
3993
- parts: e
3999
+ parts: t
3994
4000
  };
3995
4001
  }
3996
4002
  case "BinaryPartitioned": {
3997
- const e = {};
4003
+ const t = {};
3998
4004
  for (const [r, o] of Object.entries(n2.parts))
3999
- e[r] = {
4000
- index: t(o.index),
4001
- values: t(o.values)
4005
+ t[r] = {
4006
+ index: e(o.index),
4007
+ values: e(o.values)
4002
4008
  };
4003
4009
  return {
4004
4010
  ...n2,
4005
- parts: e
4011
+ parts: t
4006
4012
  };
4007
4013
  }
4008
4014
  }
4009
4015
  }
4010
- function j(n2) {
4016
+ function K(n2) {
4011
4017
  if (!n2 || typeof n2 != "object")
4012
4018
  return false;
4013
- const t = n2;
4014
- if (!("type" in t))
4019
+ const e = n2;
4020
+ if (!("type" in e))
4015
4021
  return false;
4016
- switch (t.type) {
4022
+ switch (e.type) {
4017
4023
  case "Json":
4018
- return typeof t.keyLength == "number" && Array.isArray(t.data);
4024
+ return typeof e.keyLength == "number" && Array.isArray(e.data);
4019
4025
  case "JsonPartitioned":
4020
- return typeof t.partitionKeyLength == "number" && Array.isArray(t.parts);
4026
+ return typeof e.partitionKeyLength == "number" && Array.isArray(e.parts);
4021
4027
  case "BinaryPartitioned":
4022
- return typeof t.partitionKeyLength == "number" && Array.isArray(t.parts);
4028
+ return typeof e.partitionKeyLength == "number" && Array.isArray(e.parts);
4023
4029
  default:
4024
4030
  return false;
4025
4031
  }
4026
4032
  }
4027
- function ln(n2) {
4028
- return j(n2) ? n2.type === "JsonPartitioned" || n2.type === "BinaryPartitioned" : false;
4033
+ function Sn(n2) {
4034
+ return K(n2) ? n2.type === "JsonPartitioned" || n2.type === "BinaryPartitioned" : false;
4029
4035
  }
4030
- function hn(n2) {
4036
+ function Cn(n2) {
4031
4037
  switch (n2.type) {
4032
4038
  case "Json": {
4033
- const t = Object.entries(n2.data).map(([e, r]) => ({ key: JSON.parse(e), value: r }));
4039
+ const e = Object.entries(n2.data).map(([t, r]) => ({ key: JSON.parse(t), value: r }));
4034
4040
  return {
4035
4041
  type: "Json",
4036
4042
  keyLength: n2.keyLength,
4037
- data: t
4043
+ data: e
4038
4044
  };
4039
4045
  }
4040
4046
  case "JsonPartitioned": {
4041
- const t = Object.entries(n2.parts).map(([e, r]) => ({ key: JSON.parse(e), value: r }));
4047
+ const e = Object.entries(n2.parts).map(([t, r]) => ({ key: JSON.parse(t), value: r }));
4042
4048
  return {
4043
4049
  type: "JsonPartitioned",
4044
4050
  partitionKeyLength: n2.partitionKeyLength,
4045
- parts: t
4051
+ parts: e
4046
4052
  };
4047
4053
  }
4048
4054
  case "BinaryPartitioned": {
4049
- const t = Object.entries(n2.parts).map(([e, r]) => ({ key: JSON.parse(e), value: r }));
4055
+ const e = Object.entries(n2.parts).map(([t, r]) => ({ key: JSON.parse(t), value: r }));
4050
4056
  return {
4051
4057
  type: "BinaryPartitioned",
4052
4058
  partitionKeyLength: n2.partitionKeyLength,
4053
- parts: t
4059
+ parts: e
4054
4060
  };
4055
4061
  }
4056
4062
  }
4057
4063
  }
4058
- function gn(n2) {
4064
+ function Jn(n2) {
4059
4065
  switch (n2.type) {
4060
4066
  case "Json": {
4061
- const t = {};
4062
- for (const e of n2.data)
4063
- t[JSON.stringify(e.key)] = e.value;
4067
+ const e = {};
4068
+ for (const t of n2.data)
4069
+ e[JSON.stringify(t.key)] = t.value;
4064
4070
  return {
4065
4071
  type: "Json",
4066
4072
  keyLength: n2.keyLength,
4067
- data: t
4073
+ data: e
4068
4074
  };
4069
4075
  }
4070
4076
  case "JsonPartitioned": {
4071
- const t = {};
4072
- for (const e of n2.parts)
4073
- t[JSON.stringify(e.key)] = e.value;
4077
+ const e = {};
4078
+ for (const t of n2.parts)
4079
+ e[JSON.stringify(t.key)] = t.value;
4074
4080
  return {
4075
4081
  type: "JsonPartitioned",
4076
4082
  partitionKeyLength: n2.partitionKeyLength,
4077
- parts: t
4083
+ parts: e
4078
4084
  };
4079
4085
  }
4080
4086
  case "BinaryPartitioned": {
4081
- const t = {};
4082
- for (const e of n2.parts)
4083
- t[JSON.stringify(e.key)] = e.value;
4087
+ const e = {};
4088
+ for (const t of n2.parts)
4089
+ e[JSON.stringify(t.key)] = t.value;
4084
4090
  return {
4085
4091
  type: "BinaryPartitioned",
4086
4092
  partitionKeyLength: n2.partitionKeyLength,
4087
- parts: t
4093
+ parts: e
4088
4094
  };
4089
4095
  }
4090
4096
  }
4091
4097
  }
4092
- function En(n2) {
4093
- return {
4094
- kind: n2.kind,
4095
- valueType: n2.valueType,
4096
- name: n2.name,
4097
- domain: n2.domain,
4098
- parentAxes: n2.parentAxes,
4099
- axesId: z(n2.axesSpec)
4100
- };
4101
- }
4102
4098
  function p$1(n2) {
4103
- const { type: t, name: e, domain: r } = n2;
4104
- return { type: t, name: e, ...r && { domain: r } };
4099
+ const { type: e, name: t, domain: r } = n2, o = { type: e, name: t };
4100
+ return r && Object.entries(r).length > 0 && Object.assign(o, { domain: r }), o;
4105
4101
  }
4106
- function z(n2) {
4102
+ function J(n2) {
4107
4103
  return n2.map(p$1);
4108
4104
  }
4109
- function Jn(n2) {
4110
- return _e(p$1(n2));
4105
+ function Rn(n2) {
4106
+ return ke(p$1(n2));
4111
4107
  }
4112
- function X$1(n2, t) {
4113
- if (n2 === void 0) return t === void 0;
4114
- if (t === void 0) return true;
4115
- for (const e in t)
4116
- if (n2[e] !== t[e]) return false;
4108
+ function Y$1(n2, e) {
4109
+ if (n2 === void 0) return e === void 0;
4110
+ if (e === void 0) return true;
4111
+ for (const t in e)
4112
+ if (n2[t] !== e[t]) return false;
4117
4113
  return true;
4118
4114
  }
4119
- function G(n2, t) {
4120
- return n2.name === t.name && X$1(n2.domain, t.domain);
4115
+ function Z$1(n2, e) {
4116
+ return n2.name === e.name && Y$1(n2.domain, e.domain);
4121
4117
  }
4122
- function On(n2, t) {
4123
- return { ...n2, src: l$1(n2.src, t) };
4118
+ function Un(n2, e) {
4119
+ return { ...n2, src: h(n2.src, e) };
4124
4120
  }
4125
- function l$1(n2, t) {
4121
+ function h(n2, e) {
4126
4122
  switch (n2.type) {
4127
4123
  case "column":
4128
4124
  return {
4129
4125
  type: "column",
4130
- column: t(n2.column)
4126
+ column: e(n2.column)
4131
4127
  };
4132
4128
  case "slicedColumn":
4133
4129
  return {
4134
4130
  type: "slicedColumn",
4135
- column: t(n2.column),
4131
+ column: e(n2.column),
4136
4132
  newId: n2.newId,
4137
4133
  axisFilters: n2.axisFilters
4138
4134
  };
4135
+ case "inlineColumn":
4136
+ return n2;
4139
4137
  case "inner":
4140
4138
  case "full":
4141
4139
  return {
4142
4140
  type: n2.type,
4143
- entries: n2.entries.map((e) => l$1(e, t))
4141
+ entries: n2.entries.map((t) => h(t, e))
4144
4142
  };
4145
4143
  case "outer":
4146
4144
  return {
4147
4145
  type: "outer",
4148
- primary: l$1(n2.primary, t),
4149
- secondary: n2.secondary.map((e) => l$1(e, t))
4146
+ primary: h(n2.primary, e),
4147
+ secondary: n2.secondary.map((t) => h(t, e))
4150
4148
  };
4151
4149
  default:
4152
4150
  w(n2);
4153
4151
  }
4154
4152
  }
4155
- function Q(n2) {
4156
- return _e(n2);
4153
+ function nn(n2) {
4154
+ return ke(n2);
4157
4155
  }
4158
- function x(n2) {
4159
- return _e(p$1(n2));
4156
+ function P(n2) {
4157
+ return ke(p$1(n2));
4160
4158
  }
4161
- function A(n2, t) {
4162
- return JSON.stringify([n2, t]);
4159
+ function k(n2, e) {
4160
+ return JSON.stringify([n2, e]);
4163
4161
  }
4164
- class $n {
4162
+ class _n {
4165
4163
  /**
4166
4164
  * Creates a new anchor context from a set of anchor column specifications
4167
4165
  * @param anchors Record of anchor column specifications indexed by anchor ID
4168
4166
  */
4169
- constructor(t) {
4170
- m$2(this, "domains", /* @__PURE__ */ new Map());
4171
- m$2(this, "axes", /* @__PURE__ */ new Map());
4172
- m$2(this, "domainPacks", []);
4173
- m$2(this, "domainPackToAnchor", /* @__PURE__ */ new Map());
4174
- this.anchors = t;
4175
- const e = Object.entries(t);
4176
- e.sort((r, o) => r[0].localeCompare(o[0]));
4177
- for (const [r, o] of e) {
4167
+ constructor(e) {
4168
+ l$1(this, "domains", /* @__PURE__ */ new Map());
4169
+ l$1(this, "axes", /* @__PURE__ */ new Map());
4170
+ l$1(this, "domainPacks", []);
4171
+ l$1(this, "domainPackToAnchor", /* @__PURE__ */ new Map());
4172
+ this.anchors = e;
4173
+ const t = Object.entries(e);
4174
+ t.sort((r, o) => r[0].localeCompare(o[0]));
4175
+ for (const [r, o] of t) {
4178
4176
  for (let s2 = 0; s2 < o.axesSpec.length; s2++) {
4179
- const a = o.axesSpec[s2], i = x(a);
4177
+ const a = o.axesSpec[s2], i = P(a);
4180
4178
  this.axes.set(i, { anchor: r, idx: s2 });
4181
4179
  }
4182
4180
  if (o.domain !== void 0) {
4183
4181
  const s2 = Object.entries(o.domain);
4184
4182
  s2.sort((a, i) => a[0].localeCompare(i[0])), this.domainPackToAnchor.set(JSON.stringify(s2), r), this.domainPacks.push(s2.map(([a]) => a));
4185
4183
  for (const [a, i] of s2) {
4186
- const u2 = A(a, i);
4184
+ const u2 = k(a, i);
4187
4185
  this.domains.set(u2, r);
4188
4186
  }
4189
4187
  }
@@ -4192,20 +4190,20 @@
4192
4190
  /**
4193
4191
  * Implementation of derive method
4194
4192
  */
4195
- derive(t, e) {
4193
+ derive(e, t) {
4196
4194
  const r = {
4197
- name: t.name,
4195
+ name: e.name,
4198
4196
  axes: []
4199
4197
  };
4200
4198
  let o;
4201
- if (t.domain !== void 0)
4199
+ if (e.domain !== void 0)
4202
4200
  n:
4203
4201
  for (const a of this.domainPacks) {
4204
4202
  const i = [];
4205
4203
  for (const c2 of a) {
4206
- const d = t.domain[c2];
4207
- if (d !== void 0)
4208
- i.push([c2, d]);
4204
+ const m2 = e.domain[c2];
4205
+ if (m2 !== void 0)
4206
+ i.push([c2, m2]);
4209
4207
  else
4210
4208
  break n;
4211
4209
  }
@@ -4215,26 +4213,26 @@
4215
4213
  break;
4216
4214
  }
4217
4215
  }
4218
- for (const [a, i] of Object.entries(t.domain ?? {})) {
4216
+ for (const [a, i] of Object.entries(e.domain ?? {})) {
4219
4217
  if (o !== void 0 && o.has(a))
4220
4218
  continue;
4221
- const u2 = A(a, i), c2 = this.domains.get(u2);
4219
+ const u2 = k(a, i), c2 = this.domains.get(u2);
4222
4220
  r.domain ?? (r.domain = {}), r.domain[a] = c2 ? { anchor: c2 } : i;
4223
4221
  }
4224
- if (r.axes = t.axesSpec.map((a) => {
4225
- const i = x(a), u2 = this.axes.get(i);
4222
+ if (r.axes = e.axesSpec.map((a) => {
4223
+ const i = P(a), u2 = this.axes.get(i);
4226
4224
  return u2 === void 0 ? p$1(a) : u2;
4227
- }), !e || e.length === 0)
4225
+ }), !t || t.length === 0)
4228
4226
  return r;
4229
4227
  const s2 = [];
4230
- for (const a of e) {
4228
+ for (const a of t) {
4231
4229
  const [i, u2] = a;
4232
4230
  if (typeof i == "number") {
4233
- if (i < 0 || i >= t.axesSpec.length)
4234
- throw new Error(`Axis index ${i} is out of bounds (0-${t.axesSpec.length - 1})`);
4231
+ if (i < 0 || i >= e.axesSpec.length)
4232
+ throw new Error(`Axis index ${i} is out of bounds (0-${e.axesSpec.length - 1})`);
4235
4233
  s2.push([i, u2]);
4236
4234
  } else {
4237
- const c2 = t.axesSpec.findIndex((d) => d.name === i);
4235
+ const c2 = e.axesSpec.findIndex((m2) => m2.name === i);
4238
4236
  if (c2 === -1)
4239
4237
  throw new Error(`Axis with name "${i}" not found in the column specification`);
4240
4238
  s2.push([c2, u2]);
@@ -4251,12 +4249,12 @@
4251
4249
  * @param axisFilters Optional axis filters to apply to the column
4252
4250
  * @returns A canonicalized string representation of the anchored column identifier
4253
4251
  */
4254
- deriveS(t, e) {
4255
- return Q(this.derive(t, e));
4252
+ deriveS(e, t) {
4253
+ return nn(this.derive(e, t));
4256
4254
  }
4257
4255
  }
4258
- function Dn(n2, t, e) {
4259
- const r = { ...t }, o = (e == null ? void 0 : e.ignoreMissingDomains) ?? false;
4256
+ function Mn(n2, e, t) {
4257
+ const r = { ...e }, o = (t == null ? void 0 : t.ignoreMissingDomains) ?? false;
4260
4258
  if (r.domainAnchor !== void 0) {
4261
4259
  const s2 = n2[r.domainAnchor];
4262
4260
  if (!s2)
@@ -4282,161 +4280,185 @@
4282
4280
  }
4283
4281
  r.domain = s2;
4284
4282
  }
4285
- return r.axes && (r.axes = r.axes.map((s2) => Y$1(n2, s2))), r;
4283
+ return r.axes && (r.axes = r.axes.map((s2) => en(n2, s2))), r;
4286
4284
  }
4287
- function Y$1(n2, t) {
4288
- if (!Z$1(t))
4289
- return t;
4290
- const e = t.anchor, r = n2[e];
4285
+ function en(n2, e) {
4286
+ if (!tn(e))
4287
+ return e;
4288
+ const t = e.anchor, r = n2[t];
4291
4289
  if (!r)
4292
- throw new Error(`Anchor "${e}" not found for axis reference`);
4293
- if ("idx" in t) {
4294
- if (t.idx < 0 || t.idx >= r.axesSpec.length)
4295
- throw new Error(`Axis index ${t.idx} out of bounds for anchor "${e}"`);
4296
- return r.axesSpec[t.idx];
4297
- } else if ("name" in t) {
4298
- const o = r.axesSpec.filter((s2) => s2.name === t.name);
4290
+ throw new Error(`Anchor "${t}" not found for axis reference`);
4291
+ if ("idx" in e) {
4292
+ if (e.idx < 0 || e.idx >= r.axesSpec.length)
4293
+ throw new Error(`Axis index ${e.idx} out of bounds for anchor "${t}"`);
4294
+ return r.axesSpec[e.idx];
4295
+ } else if ("name" in e) {
4296
+ const o = r.axesSpec.filter((s2) => s2.name === e.name);
4299
4297
  if (o.length > 1)
4300
- throw new Error(`Multiple axes with name "${t.name}" found in anchor "${e}"`);
4298
+ throw new Error(`Multiple axes with name "${e.name}" found in anchor "${t}"`);
4301
4299
  if (o.length === 0)
4302
- throw new Error(`Axis with name "${t.name}" not found in anchor "${e}"`);
4300
+ throw new Error(`Axis with name "${e.name}" not found in anchor "${t}"`);
4303
4301
  return o[0];
4304
- } else if ("id" in t) {
4305
- const o = r.axesSpec.filter((s2) => G(t.id, p$1(s2)));
4302
+ } else if ("id" in e) {
4303
+ const o = r.axesSpec.filter((s2) => Z$1(e.id, p$1(s2)));
4306
4304
  if (o.length > 1)
4307
- throw new Error(`Multiple matching axes found for matcher in anchor "${e}"`);
4305
+ throw new Error(`Multiple matching axes found for matcher in anchor "${t}"`);
4308
4306
  if (o.length === 0)
4309
- throw new Error(`No matching axis found for matcher in anchor "${e}"`);
4307
+ throw new Error(`No matching axis found for matcher in anchor "${t}"`);
4310
4308
  return o[0];
4311
4309
  }
4312
4310
  throw new Error("Unsupported axis reference type");
4313
4311
  }
4314
- function Z$1(n2) {
4312
+ function tn(n2) {
4315
4313
  return typeof n2 == "object" && "anchor" in n2;
4316
4314
  }
4317
4315
  function f(n2) {
4318
4316
  return n2.kind === "PColumn";
4319
4317
  }
4320
- function q(n2) {
4318
+ function rn(n2) {
4321
4319
  return f(n2.spec);
4322
4320
  }
4323
- function jn(n2) {
4324
- if (!q(n2)) throw new Error(`not a PColumn (kind = ${n2.spec.kind})`);
4321
+ function qn(n2) {
4322
+ if (!rn(n2)) throw new Error(`not a PColumn (kind = ${n2.spec.kind})`);
4325
4323
  return n2;
4326
4324
  }
4327
- function Fn(n2, t) {
4325
+ function Wn(n2, e) {
4328
4326
  return n2 === void 0 ? void 0 : {
4329
4327
  ...n2,
4330
- data: t(n2.data)
4328
+ data: e(n2.data)
4331
4329
  };
4332
4330
  }
4333
- function Un(n2) {
4334
- const t = /* @__PURE__ */ new Map(), e = (r) => {
4331
+ function Xn(n2) {
4332
+ const e = /* @__PURE__ */ new Map(), t = (r) => {
4335
4333
  switch (r.type) {
4336
4334
  case "column":
4337
- t.set(r.column.id, r.column);
4335
+ e.set(r.column.id, r.column);
4338
4336
  return;
4339
4337
  case "slicedColumn":
4340
- t.set(r.column.id, r.column);
4338
+ e.set(r.column.id, r.column);
4339
+ return;
4340
+ case "inlineColumn":
4341
4341
  return;
4342
4342
  case "full":
4343
4343
  case "inner":
4344
- for (const o of r.entries) e(o);
4344
+ for (const o of r.entries) t(o);
4345
4345
  return;
4346
4346
  case "outer":
4347
- e(r.primary);
4348
- for (const o of r.secondary) e(o);
4347
+ t(r.primary);
4348
+ for (const o of r.secondary) t(o);
4349
4349
  return;
4350
4350
  default:
4351
4351
  w(r);
4352
4352
  }
4353
4353
  };
4354
- return e(n2), [...t.values()];
4354
+ return t(n2), [...e.values()];
4355
4355
  }
4356
- function k(n2, t) {
4357
- if (n2.name !== void 0 && n2.name !== t.name)
4356
+ function E$1(n2, e) {
4357
+ if (n2.name !== void 0 && n2.name !== e.name)
4358
4358
  return false;
4359
4359
  if (n2.type !== void 0) {
4360
4360
  if (Array.isArray(n2.type)) {
4361
- if (!n2.type.includes(t.type))
4361
+ if (!n2.type.includes(e.type))
4362
4362
  return false;
4363
- } else if (n2.type !== t.type)
4363
+ } else if (n2.type !== e.type)
4364
4364
  return false;
4365
4365
  }
4366
4366
  if (n2.domain !== void 0) {
4367
- const e = t.domain || {};
4367
+ const t = e.domain || {};
4368
4368
  for (const [r, o] of Object.entries(n2.domain))
4369
- if (e[r] !== o)
4369
+ if (t[r] !== o)
4370
4370
  return false;
4371
4371
  }
4372
4372
  return true;
4373
4373
  }
4374
- function N(n2, t) {
4375
- if (t.name !== void 0 && n2.name !== t.name || t.namePattern !== void 0 && !new RegExp(t.namePattern).test(n2.name))
4374
+ function N(n2, e) {
4375
+ if (e.name !== void 0 && n2.name !== e.name || e.namePattern !== void 0 && !new RegExp(e.namePattern).test(n2.name))
4376
4376
  return false;
4377
- if (t.type !== void 0) {
4378
- if (Array.isArray(t.type)) {
4379
- if (!t.type.includes(n2.valueType))
4377
+ if (e.type !== void 0) {
4378
+ if (Array.isArray(e.type)) {
4379
+ if (!e.type.includes(n2.valueType))
4380
4380
  return false;
4381
- } else if (t.type !== n2.valueType)
4381
+ } else if (e.type !== n2.valueType)
4382
4382
  return false;
4383
4383
  }
4384
- if (t.domain !== void 0) {
4385
- const e = n2.domain || {};
4386
- for (const [r, o] of Object.entries(t.domain))
4387
- if (e[r] !== o)
4384
+ if (e.domain !== void 0) {
4385
+ const t = n2.domain || {};
4386
+ for (const [r, o] of Object.entries(e.domain))
4387
+ if (t[r] !== o)
4388
4388
  return false;
4389
4389
  }
4390
- if (t.axes !== void 0) {
4391
- const e = n2.axesSpec.map(p$1);
4392
- if (t.partialAxesMatch) {
4393
- for (const r of t.axes)
4394
- if (!e.some((o) => k(r, o)))
4390
+ if (e.axes !== void 0) {
4391
+ const t = n2.axesSpec.map(p$1);
4392
+ if (e.partialAxesMatch) {
4393
+ for (const r of e.axes)
4394
+ if (!t.some((o) => E$1(r, o)))
4395
4395
  return false;
4396
4396
  } else {
4397
- if (e.length !== t.axes.length)
4397
+ if (t.length !== e.axes.length)
4398
4398
  return false;
4399
- for (let r = 0; r < t.axes.length; r++)
4400
- if (!k(t.axes[r], e[r]))
4399
+ for (let r = 0; r < e.axes.length; r++)
4400
+ if (!E$1(e.axes[r], t[r]))
4401
4401
  return false;
4402
4402
  }
4403
4403
  }
4404
- if (t.annotations !== void 0) {
4405
- const e = n2.annotations || {};
4406
- for (const [r, o] of Object.entries(t.annotations))
4407
- if (e[r] !== o)
4404
+ if (e.annotations !== void 0) {
4405
+ const t = n2.annotations || {};
4406
+ for (const [r, o] of Object.entries(e.annotations))
4407
+ if (t[r] !== o)
4408
4408
  return false;
4409
4409
  }
4410
- if (t.annotationPatterns !== void 0) {
4411
- const e = n2.annotations || {};
4412
- for (const [r, o] of Object.entries(t.annotationPatterns)) {
4413
- const s2 = e[r];
4410
+ if (e.annotationPatterns !== void 0) {
4411
+ const t = n2.annotations || {};
4412
+ for (const [r, o] of Object.entries(e.annotationPatterns)) {
4413
+ const s2 = t[r];
4414
4414
  if (s2 === void 0 || !new RegExp(o).test(s2))
4415
4415
  return false;
4416
4416
  }
4417
4417
  }
4418
4418
  return true;
4419
4419
  }
4420
- function Kn(n2) {
4421
- return Array.isArray(n2) ? (t) => n2.some((e) => f(t) && N(t, e)) : (t) => f(t) && N(t, n2);
4420
+ function Gn(n2) {
4421
+ return Array.isArray(n2) ? (e) => n2.some((t) => f(e) && N(e, t)) : (e) => f(e) && N(e, n2);
4422
+ }
4423
+ function Qn(n2) {
4424
+ const e = {
4425
+ kind: n2.kind,
4426
+ name: n2.name
4427
+ };
4428
+ return n2.domain !== void 0 && (e.domain = n2.domain), f(n2) && (e.axesSpec = J(n2.axesSpec)), ke(e);
4422
4429
  }
4423
4430
  z$1.object({
4424
4431
  __isRef: z$1.literal(true).describe("Crucial marker for the block dependency tree reconstruction"),
4425
4432
  blockId: z$1.string().describe("Upstream block id"),
4426
- name: z$1.string().describe("Name of the output provided to the upstream block's output context")
4433
+ name: z$1.string().describe("Name of the output provided to the upstream block's output context"),
4434
+ requireEnrichments: z$1.literal(true).optional().describe("True if current block that stores this reference in its args, may need enrichments for the references value originating from the blocks in between current and referenced block")
4427
4435
  }).describe(
4428
4436
  "Universal reference type, allowing to set block connections. It is crucial that {@link __isRef} is present and equal to true, internal logic relies on this marker to build block dependency trees."
4429
- ).strict().readonly();
4430
- function Tn(n2) {
4437
+ ).readonly();
4438
+ function ne(n2) {
4431
4439
  return typeof n2 == "object" && n2 !== null && "__isRef" in n2 && n2.__isRef === true && "blockId" in n2 && "name" in n2;
4432
4440
  }
4433
- function _n$1(n2, t) {
4434
- return n2.ok ? { ok: true, value: t(n2.value) } : n2;
4441
+ function te$1(n2, e = true) {
4442
+ if (e)
4443
+ return {
4444
+ ...n2,
4445
+ requireEnrichments: true
4446
+ };
4447
+ {
4448
+ const { requireEnrichments: t, ...r } = n2;
4449
+ return r;
4450
+ }
4435
4451
  }
4436
- const sn = 24;
4437
- z$1.string().length(sn).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/).brand("PlId");
4438
- function Xn(n2) {
4439
- return _e(n2);
4452
+ function oe$1(n2, e) {
4453
+ return n2.ok ? { ok: true, value: e(n2.value) } : n2;
4454
+ }
4455
+ const fn = 24;
4456
+ z$1.string().length(fn).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/).brand("PlId");
4457
+ function ue(n2) {
4458
+ return ke(n2);
4459
+ }
4460
+ function ce$1(n2) {
4461
+ return JSON.parse(n2);
4440
4462
  }
4441
4463
  var stringify = { exports: {} };
4442
4464
  var hasRequiredStringify;
@@ -4479,12 +4501,12 @@
4479
4501
  }), c = l.extend({
4480
4502
  cause: z$1.lazy(() => s).optional(),
4481
4503
  errors: z$1.lazy(() => s.array()).optional()
4482
- }), m$1 = z$1.object({
4504
+ }), m = z$1.object({
4483
4505
  type: z$1.literal("StandardError"),
4484
4506
  name: z$1.string(),
4485
4507
  message: z$1.string(),
4486
4508
  stack: z$1.string().optional()
4487
- }), p = m$1.extend({
4509
+ }), p = m.extend({
4488
4510
  cause: z$1.lazy(() => s).optional(),
4489
4511
  errors: z$1.lazy(() => s.array()).optional()
4490
4512
  }), s = z$1.union([p, c]);
@@ -4497,54 +4519,54 @@
4497
4519
  cause: z$1.lazy(() => n).optional(),
4498
4520
  errors: z$1.lazy(() => n.array()).optional()
4499
4521
  });
4500
- var Ue = Object.defineProperty;
4501
- var Me = (t, e, n2) => e in t ? Ue(t, e, { enumerable: true, configurable: true, writable: true, value: n2 }) : t[e] = n2;
4502
- var L = (t, e, n2) => Me(t, typeof e != "symbol" ? e + "" : e, n2);
4503
- function Z(t) {
4522
+ var qe = Object.defineProperty;
4523
+ var ze = (t, e, n2) => e in t ? qe(t, e, { enumerable: true, configurable: true, writable: true, value: n2 }) : t[e] = n2;
4524
+ var O = (t, e, n2) => ze(t, typeof e != "symbol" ? e + "" : e, n2);
4525
+ function re(t) {
4504
4526
  return { type: "Immediate", value: t };
4505
4527
  }
4506
- function it() {
4528
+ function pt() {
4507
4529
  return typeof globalThis.getPlatforma < "u" || typeof globalThis.platforma < "u";
4508
4530
  }
4509
- function Te(t) {
4531
+ function De(t) {
4510
4532
  if (t && typeof globalThis.getPlatforma == "function")
4511
4533
  return globalThis.getPlatforma(t);
4512
4534
  if (typeof globalThis.platforma < "u") return globalThis.platforma;
4513
4535
  throw new Error("Can't get platforma instance.");
4514
4536
  }
4515
- function st() {
4537
+ function ft() {
4516
4538
  if (typeof globalThis.cfgRenderCtx < "u") return globalThis.cfgRenderCtx;
4517
4539
  }
4518
- function m() {
4540
+ function y() {
4519
4541
  if (typeof globalThis.cfgRenderCtx < "u") return globalThis.cfgRenderCtx;
4520
4542
  throw new Error("Not in config rendering context");
4521
4543
  }
4522
- function Y(t, e) {
4523
- const n2 = st();
4544
+ function H(t, e) {
4545
+ const n2 = ft();
4524
4546
  if (n2 === void 0) return false;
4525
4547
  if (t in n2.callbackRegistry) throw new Error(`Callback with key ${t} already registered.`);
4526
4548
  return n2.callbackRegistry[t] = e, true;
4527
4549
  }
4528
- const ae = /* @__PURE__ */ new Map();
4529
- function ot(t, e) {
4530
- t in m().callbackRegistry || (m().callbackRegistry[t] = (n2) => {
4531
- for (const r of ae.get(t))
4550
+ const ce = /* @__PURE__ */ new Map();
4551
+ function ht(t, e) {
4552
+ t in y().callbackRegistry || (y().callbackRegistry[t] = (n2) => {
4553
+ for (const r of ce.get(t))
4532
4554
  r(n2);
4533
- }, ae.set(t, [])), ae.get(t).push(e);
4555
+ }, ce.set(t, [])), ce.get(t).push(e);
4534
4556
  }
4535
- class S {
4557
+ class _ {
4536
4558
  constructor(e, n2 = (r) => r) {
4537
- L(this, "isResolved", false);
4538
- L(this, "resolvedValue");
4539
- this.handle = e, this.postProcess = n2, ot(e, (r) => {
4559
+ O(this, "isResolved", false);
4560
+ O(this, "resolvedValue");
4561
+ this.handle = e, this.postProcess = n2, ht(e, (r) => {
4540
4562
  this.resolvedValue = n2(r), this.isResolved = true;
4541
4563
  });
4542
4564
  }
4543
4565
  map(e) {
4544
- return new S(this.handle, (n2) => e(this.postProcess(n2)));
4566
+ return new _(this.handle, (n2) => e(this.postProcess(n2)));
4545
4567
  }
4546
4568
  mapDefined(e) {
4547
- return new S(this.handle, (n2) => {
4569
+ return new _(this.handle, (n2) => {
4548
4570
  const r = this.postProcess(n2);
4549
4571
  return r ? e(r) : void 0;
4550
4572
  });
@@ -4553,10 +4575,10 @@
4553
4575
  return this.isResolved ? this.resolvedValue : { __awaited_futures__: [this.handle] };
4554
4576
  }
4555
4577
  }
4556
- function pe(t, e) {
4578
+ function he(t, e) {
4557
4579
  return t === void 0 ? void 0 : e(t);
4558
4580
  }
4559
- class I {
4581
+ class E {
4560
4582
  constructor(e, n2) {
4561
4583
  this.handle = e, this.resolvePath = n2;
4562
4584
  }
@@ -4595,47 +4617,47 @@
4595
4617
  ...this.resolvePath,
4596
4618
  ...n2.map((i) => typeof i == "string" ? i : i.field)
4597
4619
  ];
4598
- return pe(
4599
- m().resolveWithCommon(this.handle, e, ...n2),
4600
- (i) => new I(i, r)
4620
+ return he(
4621
+ y().resolveWithCommon(this.handle, e, ...n2),
4622
+ (i) => new E(i, r)
4601
4623
  );
4602
4624
  }
4603
4625
  get resourceType() {
4604
- return m().getResourceType(this.handle);
4626
+ return y().getResourceType(this.handle);
4605
4627
  }
4606
4628
  getInputsLocked() {
4607
- return m().getInputsLocked(this.handle);
4629
+ return y().getInputsLocked(this.handle);
4608
4630
  }
4609
4631
  getOutputsLocked() {
4610
- return m().getOutputsLocked(this.handle);
4632
+ return y().getOutputsLocked(this.handle);
4611
4633
  }
4612
4634
  getIsReadyOrError() {
4613
- return m().getIsReadyOrError(this.handle);
4635
+ return y().getIsReadyOrError(this.handle);
4614
4636
  }
4615
4637
  getIsFinal() {
4616
- return m().getIsFinal(this.handle);
4638
+ return y().getIsFinal(this.handle);
4617
4639
  }
4618
4640
  getError() {
4619
4641
  const e = [...this.resolvePath, "error"];
4620
- return pe(
4621
- m().getError(this.handle),
4622
- (n2) => new I(n2, e)
4642
+ return he(
4643
+ y().getError(this.handle),
4644
+ (n2) => new E(n2, e)
4623
4645
  );
4624
4646
  }
4625
4647
  listInputFields() {
4626
- return m().listInputFields(this.handle);
4648
+ return y().listInputFields(this.handle);
4627
4649
  }
4628
4650
  listOutputFields() {
4629
- return m().listOutputFields(this.handle);
4651
+ return y().listOutputFields(this.handle);
4630
4652
  }
4631
4653
  listDynamicFields() {
4632
- return m().listDynamicFields(this.handle);
4654
+ return y().listDynamicFields(this.handle);
4633
4655
  }
4634
4656
  getKeyValueBase64(e) {
4635
- return m().getKeyValueBase64(this.handle, e);
4657
+ return y().getKeyValueBase64(this.handle, e);
4636
4658
  }
4637
4659
  getKeyValueAsString(e) {
4638
- return m().getKeyValueAsString(this.handle, e);
4660
+ return y().getKeyValueAsString(this.handle, e);
4639
4661
  }
4640
4662
  getKeyValueAsJson(e) {
4641
4663
  const n2 = this.getKeyValueAsString(e);
@@ -4643,10 +4665,10 @@
4643
4665
  return JSON.parse(n2);
4644
4666
  }
4645
4667
  getDataBase64() {
4646
- return m().getDataBase64(this.handle);
4668
+ return y().getDataBase64(this.handle);
4647
4669
  }
4648
4670
  getDataAsString() {
4649
- return m().getDataAsString(this.handle);
4671
+ return y().getDataAsString(this.handle);
4650
4672
  }
4651
4673
  getDataAsJson() {
4652
4674
  const e = this.getDataAsString();
@@ -4659,7 +4681,7 @@
4659
4681
  getPColumns(e = false, n2 = "") {
4660
4682
  const r = this.parsePObjectCollection(e, n2);
4661
4683
  return r === void 0 ? void 0 : Object.entries(r).map(([, s2]) => {
4662
- if (!q(s2)) throw new Error(`not a PColumn (kind = ${s2.spec.kind})`);
4684
+ if (!rn(s2)) throw new Error(`not a PColumn (kind = ${s2.spec.kind})`);
4663
4685
  return s2;
4664
4686
  });
4665
4687
  }
@@ -4667,7 +4689,7 @@
4667
4689
  *
4668
4690
  */
4669
4691
  parsePObjectCollection(e = false, n2 = "") {
4670
- const r = m().parsePObjectCollection(
4692
+ const r = y().parsePObjectCollection(
4671
4693
  this.handle,
4672
4694
  e,
4673
4695
  n2,
@@ -4677,20 +4699,20 @@
4677
4699
  const i = {};
4678
4700
  for (const [s2, o] of Object.entries(r)) {
4679
4701
  const a = [...this.resolvePath, s2];
4680
- i[s2] = Fn(o, (l2) => new I(l2, a));
4702
+ i[s2] = Wn(o, (l2) => new E(l2, a));
4681
4703
  }
4682
4704
  return i;
4683
4705
  }
4684
- getFileContentAsBase64() {
4685
- return new S(m().getBlobContentAsBase64(this.handle));
4706
+ getFileContentAsBase64(e) {
4707
+ return new _(y().getBlobContentAsBase64(this.handle, e));
4686
4708
  }
4687
- getFileContentAsString() {
4688
- return new S(m().getBlobContentAsString(this.handle));
4709
+ getFileContentAsString(e) {
4710
+ return new _(y().getBlobContentAsString(this.handle, e));
4689
4711
  }
4690
- getFileContentAsJson() {
4691
- return new S(
4692
- m().getBlobContentAsString(this.handle)
4693
- ).mapDefined((e) => JSON.parse(e));
4712
+ getFileContentAsJson(e) {
4713
+ return new _(
4714
+ y().getBlobContentAsString(this.handle, e)
4715
+ ).mapDefined((n2) => JSON.parse(n2));
4694
4716
  }
4695
4717
  /**
4696
4718
  * @deprecated use getFileContentAsBase64
@@ -4708,7 +4730,7 @@
4708
4730
  * @returns downloaded file handle
4709
4731
  */
4710
4732
  getFileHandle() {
4711
- return new S(m().getDownloadedBlobContentHandle(this.handle));
4733
+ return new _(y().getDownloadedBlobContentHandle(this.handle));
4712
4734
  }
4713
4735
  /**
4714
4736
  * @deprecated use getFileHandle
@@ -4720,7 +4742,7 @@
4720
4742
  * @returns downloaded file handle
4721
4743
  */
4722
4744
  getRemoteFileHandle() {
4723
- return new S(m().getOnDemandBlobContentHandle(this.handle));
4745
+ return new _(y().getOnDemandBlobContentHandle(this.handle));
4724
4746
  }
4725
4747
  /**
4726
4748
  * @deprecated use getRemoteFileHandle
@@ -4732,22 +4754,22 @@
4732
4754
  * @returns the url to the extracted folder
4733
4755
  */
4734
4756
  extractArchiveAndGetURL(e) {
4735
- return new S(m().extractArchiveAndGetURL(this.handle, e));
4757
+ return new _(y().extractArchiveAndGetURL(this.handle, e));
4736
4758
  }
4737
4759
  getImportProgress() {
4738
- return new S(m().getImportProgress(this.handle));
4760
+ return new _(y().getImportProgress(this.handle));
4739
4761
  }
4740
4762
  getLastLogs(e) {
4741
- return new S(m().getLastLogs(this.handle, e));
4763
+ return new _(y().getLastLogs(this.handle, e));
4742
4764
  }
4743
4765
  getProgressLog(e) {
4744
- return new S(m().getProgressLog(this.handle, e));
4766
+ return new _(y().getProgressLog(this.handle, e));
4745
4767
  }
4746
4768
  getProgressLogWithInfo(e) {
4747
- return new S(m().getProgressLogWithInfo(this.handle, e));
4769
+ return new _(y().getProgressLogWithInfo(this.handle, e));
4748
4770
  }
4749
4771
  getLogHandle() {
4750
- return new S(m().getLogHandle(this.handle));
4772
+ return new _(y().getLogHandle(this.handle));
4751
4773
  }
4752
4774
  allFieldsResolved(e = "Input") {
4753
4775
  switch (e) {
@@ -4773,134 +4795,135 @@
4773
4795
  let l2 = (r === "Input" ? this.listInputFields() : r === "Output" ? this.listOutputFields() : this.listDynamicFields()).map(
4774
4796
  (u2) => [u2, this.resolve({ field: u2, assertFieldType: r })]
4775
4797
  );
4776
- return s2 && (l2 = l2.filter((u2) => u2[1] !== void 0)), l2.map(([u2, y]) => o(u2, y));
4798
+ return s2 && (l2 = l2.filter((u2) => u2[1] !== void 0)), l2.map(([u2, c2]) => o(u2, c2));
4777
4799
  }
4778
4800
  }
4779
- const Ee = "staging", Fe = "main";
4780
- const ut = "pl7.app/label", ct = "pl7.app/trace", pt = z$1.object({
4801
+ const Re = "staging", Fe = "main";
4802
+ const yt = "pl7.app/label", vt = "pl7.app/trace", bt = z$1.object({
4781
4803
  type: z$1.string(),
4782
4804
  importance: z$1.number().optional(),
4783
4805
  id: z$1.string().optional(),
4784
4806
  label: z$1.string()
4785
- }), dt = z$1.array(pt), ft = 1e-3, ht = "__LABEL__", Ae = "__LABEL__@1";
4786
- function Oe(t, e, n2 = {}) {
4787
- const r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), s2 = t.map((f2) => {
4788
- var q2, F;
4789
- const h = e(f2);
4790
- let d, x2, c2;
4791
- "spec" in h && typeof h.spec == "object" ? (d = h.spec, x2 = h.prefixTrace, c2 = h.suffixTrace) : d = h;
4792
- const v = (q2 = d.annotations) == null ? void 0 : q2[ut], g = (F = d.annotations) == null ? void 0 : F[ct], b = (g ? dt.safeParse(JSON.parse(g)).data : void 0) ?? [], A2 = [
4793
- ...x2 ?? [],
4794
- ...b,
4795
- ...c2 ?? []
4807
+ }), wt = z$1.array(bt), At = 1e-3, xt = "__LABEL__", Pe = "__LABEL__@1";
4808
+ function je(t, e, n2 = {}) {
4809
+ const r = /* @__PURE__ */ new Map(), i = n2.forceTraceElements !== void 0 && n2.forceTraceElements.length > 0 ? new Set(n2.forceTraceElements) : void 0, s2 = /* @__PURE__ */ new Map(), o = t.map((p2) => {
4810
+ var P2, R;
4811
+ const v = e(p2);
4812
+ let f2, m2, w2;
4813
+ "spec" in v && typeof v.spec == "object" ? (f2 = v.spec, m2 = v.prefixTrace, w2 = v.suffixTrace) : f2 = v;
4814
+ const h2 = (P2 = f2.annotations) == null ? void 0 : P2[yt], I = (R = f2.annotations) == null ? void 0 : R[vt], x = (I ? wt.safeParse(JSON.parse(I)).data : void 0) ?? [], b = [
4815
+ ...m2 ?? [],
4816
+ ...x,
4817
+ ...w2 ?? []
4796
4818
  ];
4797
- if (v) {
4798
- const _ = { label: v, type: ht, importance: -2 };
4799
- n2.addLabelAsSuffix ? A2.push(_) : A2.splice(0, 0, _);
4800
- }
4801
- const D = [], $2 = /* @__PURE__ */ new Map();
4802
- for (let _ = A2.length - 1; _ >= 0; --_) {
4803
- const { type: R } = A2[_], se = A2[_].importance ?? 0, J = ($2.get(R) ?? 0) + 1;
4804
- $2.set(R, J);
4805
- const P = `${R}@${J}`;
4806
- i.set(P, (i.get(P) ?? 0) + 1), r.set(
4807
- P,
4819
+ if (h2 !== void 0) {
4820
+ const k2 = { label: h2, type: xt, importance: -2 };
4821
+ n2.addLabelAsSuffix ? b.push(k2) : b.splice(0, 0, k2);
4822
+ }
4823
+ const A = [], L = /* @__PURE__ */ new Map();
4824
+ for (let k2 = b.length - 1; k2 >= 0; --k2) {
4825
+ const { type: W } = b[k2], V = b[k2].importance ?? 0, N2 = (L.get(W) ?? 0) + 1;
4826
+ L.set(W, N2);
4827
+ const F = `${W}@${N2}`;
4828
+ s2.set(F, (s2.get(F) ?? 0) + 1), r.set(
4829
+ F,
4808
4830
  Math.max(
4809
- r.get(P) ?? Number.NEGATIVE_INFINITY,
4810
- se - (A2.length - _) * ft
4831
+ r.get(F) ?? Number.NEGATIVE_INFINITY,
4832
+ V - (b.length - k2) * At
4811
4833
  )
4812
- ), D.push({ ...A2[_], fullType: P, occurenceIndex: J });
4834
+ ), A.push({ ...b[k2], fullType: F, occurrenceIndex: N2 });
4813
4835
  }
4814
- return D.reverse(), {
4815
- value: f2,
4816
- spec: d,
4817
- label: v,
4818
- fullTrace: D
4836
+ return A.reverse(), {
4837
+ value: p2,
4838
+ spec: f2,
4839
+ label: h2,
4840
+ fullTrace: A
4819
4841
  };
4820
- }), o = [], a = [], l2 = [...r];
4821
- l2.sort(([, f2], [, h]) => h - f2);
4822
- for (const [f2] of l2)
4823
- f2.endsWith("@1") || i.get(f2) === t.length ? o.push(f2) : a.push(f2);
4824
- const u2 = (f2) => {
4825
- const h = [];
4826
- for (let d = 0; d < s2.length; d++) {
4827
- const x2 = s2[d], c2 = x2.fullTrace.filter((b) => f2.has(b.fullType));
4828
- if (c2.length === 0)
4829
- return;
4830
- const v = c2.map((b) => b.label), g = n2.separator ?? " / ";
4831
- h.push({
4832
- label: v.join(g),
4833
- value: x2.value
4842
+ }), a = [], l2 = [], u2 = [...r];
4843
+ u2.sort(([, p2], [, v]) => v - p2);
4844
+ for (const [p2] of u2)
4845
+ p2.endsWith("@1") || s2.get(p2) === t.length ? a.push(p2) : l2.push(p2);
4846
+ const c2 = (p2, v = false) => {
4847
+ const f2 = [];
4848
+ for (let m2 = 0; m2 < o.length; m2++) {
4849
+ const w2 = o[m2], h2 = w2.fullTrace.filter((b) => p2.has(b.fullType) || i && i.has(b.type));
4850
+ if (h2.length === 0)
4851
+ if (v)
4852
+ f2.push({
4853
+ label: "Unlabeled",
4854
+ value: w2.value
4855
+ });
4856
+ else return;
4857
+ const I = h2.map((b) => b.label), x = n2.separator ?? " / ";
4858
+ f2.push({
4859
+ label: I.join(x),
4860
+ value: w2.value
4834
4861
  });
4835
4862
  }
4836
- return h;
4837
- };
4838
- if (o.length === 0) {
4839
- if (a.length !== 0) throw new Error("Assertion error.");
4840
- const f2 = u2(new Set(Ae));
4841
- if (f2 === void 0) throw new Error("Assertion error.");
4842
4863
  return f2;
4864
+ };
4865
+ if (a.length === 0) {
4866
+ if (l2.length !== 0) throw new Error("Non-empty secondary types list while main types list is empty.");
4867
+ return c2(new Set(Pe), true);
4843
4868
  }
4844
- let y = 0, w2 = 0;
4845
- for (; y < o.length; ) {
4846
- const f2 = /* @__PURE__ */ new Set();
4847
- n2.includeNativeLabel && f2.add(Ae);
4848
- for (let d = 0; d < y; ++d) f2.add(o[d]);
4849
- f2.add(o[w2]);
4850
- const h = u2(f2);
4851
- if (h !== void 0 && new Set(h.map((d) => d.label)).size === t.length) return h;
4852
- w2++, w2 >= o.length && (y++, w2 = y);
4853
- }
4854
- const p2 = u2(/* @__PURE__ */ new Set([...o, ...a]));
4855
- if (p2 === void 0) throw new Error("Assertion error.");
4856
- return p2;
4857
- }
4858
- const H = "PColumnData/", ne = H + "ResourceMap", re = H + "Partitioned/ResourceMap", B = H + "JsonPartitioned", K = H + "BinaryPartitioned", Re = H + "Partitioned/", ie = Re + "JsonPartitioned", U = Re + "BinaryPartitioned";
4859
- const fe = (t) => {
4869
+ let d = 0, g = -1;
4870
+ for (; d < a.length; ) {
4871
+ const p2 = /* @__PURE__ */ new Set();
4872
+ n2.includeNativeLabel && p2.add(Pe);
4873
+ for (let f2 = 0; f2 < d; ++f2) p2.add(a[f2]);
4874
+ g >= 0 && p2.add(a[g]);
4875
+ const v = c2(p2);
4876
+ if (v !== void 0 && new Set(v.map((f2) => f2.label)).size === t.length) return v;
4877
+ g++, g >= a.length && (d++, g = d);
4878
+ }
4879
+ return c2(/* @__PURE__ */ new Set([...a, ...l2]), true);
4880
+ }
4881
+ const Z = "PColumnData/", se = Z + "ResourceMap", oe = Z + "Partitioned/ResourceMap", q = Z + "JsonPartitioned", B = Z + "BinaryPartitioned", Ve = Z + "Partitioned/", ae = Ve + "JsonPartitioned", z = Ve + "BinaryPartitioned";
4882
+ const me = (t) => {
4860
4883
  if (t.endsWith(".index"))
4861
4884
  return { baseKey: t.substring(0, t.length - 6), type: "index" };
4862
4885
  if (t.endsWith(".values"))
4863
4886
  return { baseKey: t.substring(0, t.length - 7), type: "values" };
4864
4887
  throw new Error(`key must ends on .index/.values for binary p-column, got: ${t}`);
4865
4888
  };
4866
- function gt(t) {
4889
+ function Ct(t) {
4867
4890
  if (!t) return;
4868
4891
  const e = t.resourceType.name, n2 = t.getDataAsJson(), r = [];
4869
4892
  let i = 0;
4870
4893
  switch (e) {
4871
- case ne:
4894
+ case se:
4872
4895
  i = n2.keyLength;
4873
4896
  break;
4874
- case re:
4897
+ case oe:
4875
4898
  i = n2.partitionKeyLength + n2.keyLength;
4876
4899
  break;
4900
+ case q:
4877
4901
  case B:
4878
- case K:
4879
4902
  i = n2.partitionKeyLength;
4880
4903
  break;
4881
- case U:
4882
- case ie:
4904
+ case z:
4905
+ case ae:
4883
4906
  i = n2.superPartitionKeyLength + n2.partitionKeyLength;
4884
4907
  break;
4885
4908
  }
4886
4909
  switch (e) {
4887
- case ne:
4910
+ case se:
4911
+ case q:
4888
4912
  case B:
4889
- case K:
4890
4913
  for (let s2 of t.listInputFields()) {
4891
- e === K && (s2 = fe(s2).baseKey);
4914
+ e === B && (s2 = me(s2).baseKey);
4892
4915
  const o = [...JSON.parse(s2)];
4893
4916
  r.push(o);
4894
4917
  }
4895
4918
  break;
4896
- case re:
4897
- case U:
4898
- case ie:
4919
+ case oe:
4920
+ case z:
4921
+ case ae:
4899
4922
  for (const s2 of t.listInputFields()) {
4900
4923
  const o = [...JSON.parse(s2)], a = t.resolve({ field: s2, assertFieldType: "Input" });
4901
4924
  if (a !== void 0)
4902
4925
  for (let l2 of a.listInputFields()) {
4903
- e === U && (l2 = fe(l2).baseKey);
4926
+ e === z && (l2 = me(l2).baseKey);
4904
4927
  const u2 = [...o, ...JSON.parse(l2)];
4905
4928
  r.push(u2);
4906
4929
  }
@@ -4909,7 +4932,7 @@
4909
4932
  }
4910
4933
  return { data: r, keyLength: i };
4911
4934
  }
4912
- function mt(t) {
4935
+ function Pt(t) {
4913
4936
  if (t.type !== "JsonPartitioned" && t.type !== "BinaryPartitioned")
4914
4937
  throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${t.type}`);
4915
4938
  const { parts: e, partitionKeyLength: n2 } = t, r = [];
@@ -4928,11 +4951,11 @@
4928
4951
  }
4929
4952
  return r.map((i) => Array.from(i.values()));
4930
4953
  }
4931
- function yt(t) {
4954
+ function St(t) {
4932
4955
  if (t === void 0) return;
4933
- if (j(t))
4934
- return mt(t);
4935
- const e = gt(t);
4956
+ if (K(t))
4957
+ return Pt(t);
4958
+ const e = Ct(t);
4936
4959
  if (!e) return;
4937
4960
  const { data: n2, keyLength: r } = e, i = [];
4938
4961
  for (let s2 = 0; s2 < r; ++s2)
@@ -4945,16 +4968,16 @@
4945
4968
  }
4946
4969
  return i.map((s2) => Array.from(s2.values()));
4947
4970
  }
4948
- function he(t, e = []) {
4971
+ function ye(t, e = []) {
4949
4972
  if (t === void 0 || !t.getIsReadyOrError()) return;
4950
4973
  const n2 = t.resourceType.name, r = t.getDataAsJson();
4951
- if (e.length > 0 && (n2 === ie || n2 === U))
4974
+ if (e.length > 0 && (n2 === ae || n2 === z))
4952
4975
  throw new Error(`Unexpected nested super-partitioned resource: ${n2}`);
4953
4976
  switch (n2) {
4954
- case ne:
4955
- case re:
4977
+ case se:
4978
+ case oe:
4956
4979
  throw new Error(`Only data columns are supported, got: ${n2}`);
4957
- case B: {
4980
+ case q: {
4958
4981
  if (typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
4959
4982
  throw new Error(`Missing partitionKeyLength in metadata for ${n2}`);
4960
4983
  const i = [];
@@ -4970,12 +4993,12 @@
4970
4993
  parts: i
4971
4994
  };
4972
4995
  }
4973
- case K: {
4996
+ case B: {
4974
4997
  if (typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
4975
4998
  throw new Error(`Missing partitionKeyLength in metadata for ${n2}`);
4976
4999
  const i = [], s2 = /* @__PURE__ */ new Map();
4977
5000
  for (const o of t.listInputFields()) {
4978
- const a = fe(o), l2 = t.resolve({ field: o, assertFieldType: "Input" });
5001
+ const a = me(o), l2 = t.resolve({ field: o, assertFieldType: "Input" });
4979
5002
  if (l2 === void 0) return;
4980
5003
  let u2 = s2.get(a.baseKey);
4981
5004
  u2 || (u2 = {}, s2.set(a.baseKey, u2)), a.type === "index" ? u2.index = l2 : u2.values = l2;
@@ -4997,16 +5020,16 @@
4997
5020
  parts: i
4998
5021
  };
4999
5022
  }
5000
- case ie: {
5023
+ case ae: {
5001
5024
  if (typeof (r == null ? void 0 : r.superPartitionKeyLength) != "number" || typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
5002
5025
  throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${n2}`);
5003
5026
  const i = r.superPartitionKeyLength + r.partitionKeyLength, s2 = [];
5004
5027
  for (const o of t.listInputFields()) {
5005
5028
  const a = t.resolve({ field: o, assertFieldType: "Input" });
5006
5029
  if (a === void 0) return;
5007
- if (a.resourceType.name !== B)
5008
- throw new Error(`Expected ${B} inside ${n2}, but got ${a.resourceType.name}`);
5009
- const l2 = he(a, JSON.parse(o));
5030
+ if (a.resourceType.name !== q)
5031
+ throw new Error(`Expected ${q} inside ${n2}, but got ${a.resourceType.name}`);
5032
+ const l2 = ye(a, JSON.parse(o));
5010
5033
  if (l2 === void 0) return;
5011
5034
  if (l2.type !== "JsonPartitioned")
5012
5035
  throw new Error(`Unexpected inner result type for ${n2}: ${l2.type}`);
@@ -5018,16 +5041,16 @@
5018
5041
  parts: s2
5019
5042
  };
5020
5043
  }
5021
- case U: {
5044
+ case z: {
5022
5045
  if (typeof (r == null ? void 0 : r.superPartitionKeyLength) != "number" || typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
5023
5046
  throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${n2}`);
5024
5047
  const i = r.superPartitionKeyLength + r.partitionKeyLength, s2 = [];
5025
5048
  for (const o of t.listInputFields()) {
5026
5049
  const a = t.resolve({ field: o, assertFieldType: "Input" });
5027
5050
  if (a === void 0) return;
5028
- if (a.resourceType.name !== K)
5029
- throw new Error(`Expected ${K} inside ${n2}, but got ${a.resourceType.name}`);
5030
- const l2 = he(a, JSON.parse(o));
5051
+ if (a.resourceType.name !== B)
5052
+ throw new Error(`Expected ${B} inside ${n2}, but got ${a.resourceType.name}`);
5053
+ const l2 = ye(a, JSON.parse(o));
5031
5054
  if (l2 === void 0) return;
5032
5055
  if (l2.type !== "BinaryPartitioned")
5033
5056
  throw new Error(`Unexpected inner result type for ${n2}: ${l2.type}`);
@@ -5043,15 +5066,15 @@
5043
5066
  throw new Error(`Unknown resource type: ${n2}`);
5044
5067
  }
5045
5068
  }
5046
- function vt(t) {
5069
+ function _t(t) {
5047
5070
  if (t !== void 0) {
5048
- if (j(t)) return t;
5049
- if (mn(t)) return hn(t);
5050
- if (t instanceof I) return he(t);
5071
+ if (K(t)) return t;
5072
+ if (En(t)) return Cn(t);
5073
+ if (t instanceof E) return ye(t);
5051
5074
  throw new Error(`Unexpected input type: ${typeof t}`);
5052
5075
  }
5053
5076
  }
5054
- function bt(t, e) {
5077
+ function It(t, e) {
5055
5078
  const n2 = [...e].sort((s2, o) => o[0] - s2[0]);
5056
5079
  if (t.type === "JsonPartitioned" || t.type === "BinaryPartitioned") {
5057
5080
  const { partitionKeyLength: s2 } = t;
@@ -5111,39 +5134,45 @@
5111
5134
  }
5112
5135
  }
5113
5136
  }
5114
- class wt {
5137
+ function Lt(t) {
5138
+ if (!Array.isArray(t)) return false;
5139
+ if (t.length === 0) return true;
5140
+ const e = t[0];
5141
+ return typeof e == "object" && e !== null && "key" in e && "val" in e;
5142
+ }
5143
+ class Tt {
5115
5144
  constructor(e) {
5116
5145
  this.columns = e;
5117
5146
  }
5118
5147
  selectColumns(e) {
5119
- const n2 = typeof e == "function" ? e : Kn(e);
5148
+ const n2 = typeof e == "function" ? e : Gn(e);
5120
5149
  return this.columns.filter((r) => n2(r.spec));
5121
5150
  }
5122
5151
  }
5123
- function At(t) {
5152
+ function Et(t) {
5124
5153
  if (t)
5125
5154
  return t.map((e) => ({
5126
- type: `split:${Jn(e.axisId)}`,
5155
+ type: `split:${Rn(e.axisId)}`,
5127
5156
  label: e.label,
5128
5157
  importance: 1e6
5129
5158
  // High importance for split filters in labels
5130
5159
  }));
5131
5160
  }
5132
- function Pt(t) {
5161
+ function kt(t) {
5133
5162
  if (t)
5134
5163
  return t.map((e) => [e.axisIdx, e.value]);
5135
5164
  }
5136
- function xt(t, e) {
5165
+ function Ot(t, e) {
5137
5166
  if (!e || e.length === 0) return t;
5138
5167
  const n2 = [...e].sort((r, i) => r[0] - i[0]);
5139
- return _e({ id: t, axisFilters: n2 });
5168
+ return ke({ id: t, axisFilters: n2 });
5140
5169
  }
5141
- function Ct(t) {
5170
+ function Se(t) {
5142
5171
  if (!t || typeof t != "object") return false;
5143
5172
  const e = t, n2 = e.domain && typeof e.domain == "object" && Object.values(e.domain).some((i) => typeof i == "object" && i !== null && "anchor" in i), r = e.axes && Array.isArray(e.axes) && e.axes.some((i) => typeof i == "object" && i !== null && "anchor" in i);
5144
5173
  return !!e.domainAnchor || n2 || r;
5145
5174
  }
5146
- function St(t) {
5175
+ function Dt(t) {
5147
5176
  if (typeof t != "object" || !("axes" in t) || t.axes === void 0)
5148
5177
  return [];
5149
5178
  const e = t.axes.map((n2, r) => typeof n2 == "object" && "split" in n2 && n2.split === true ? r : -1).filter((n2) => n2 !== -1);
@@ -5151,11 +5180,11 @@
5151
5180
  throw new Error("Axis splitting is not supported when `partialAxesMatch` is defined.");
5152
5181
  return e.sort((n2, r) => n2 - r), e;
5153
5182
  }
5154
- class ge {
5183
+ class le {
5155
5184
  constructor() {
5156
- L(this, "defaultProviderStore", []);
5157
- L(this, "providers", [new wt(this.defaultProviderStore)]);
5158
- L(this, "axisLabelProviders", []);
5185
+ O(this, "defaultProviderStore", []);
5186
+ O(this, "providers", [new Tt(this.defaultProviderStore)]);
5187
+ O(this, "axisLabelProviders", []);
5159
5188
  }
5160
5189
  addColumnProvider(e) {
5161
5190
  return this.providers.push(e), this;
@@ -5177,117 +5206,135 @@
5177
5206
  }
5178
5207
  }
5179
5208
  getUniversalEntries(e, n2) {
5180
- const { anchorCtx: r, labelOps: i, dontWaitAllData: s2 = false, overrideLabelAnnotation: o = false } = n2 ?? {}, a = {
5209
+ const { anchorCtx: r, labelOps: i, dontWaitAllData: s2 = false, overrideLabelAnnotation: o = false, exclude: a } = n2 ?? {}, l2 = {
5181
5210
  ...o && (i == null ? void 0 : i.includeNativeLabel) !== false ? { includeNativeLabel: true } : {},
5182
5211
  ...i ?? {}
5183
- }, l2 = typeof e == "function" ? [e] : Array.isArray(e) ? e : [e], u2 = [];
5184
- for (const p2 of l2) {
5185
- const f$1 = Ct(p2);
5186
- let h;
5187
- if (f$1) {
5212
+ };
5213
+ let u2 = () => false;
5214
+ if (a) {
5215
+ const f2 = (Array.isArray(a) ? a : [a]).map((m2) => {
5216
+ if (Se(m2)) {
5217
+ if (!r)
5218
+ throw new Error("Anchored selectors in exclude require an AnchoredIdDeriver to be provided in options.");
5219
+ return Gn(Mn(r.anchors, m2, n2));
5220
+ } else
5221
+ return Gn(m2);
5222
+ });
5223
+ u2 = (m2) => f2.some((w2) => w2(m2));
5224
+ }
5225
+ const c2 = typeof e == "function" ? [e] : Array.isArray(e) ? e : [e], d = [], g = /* @__PURE__ */ new Set();
5226
+ for (const f$1 of c2) {
5227
+ const m2 = Se(f$1);
5228
+ let w2;
5229
+ if (m2) {
5188
5230
  if (!r)
5189
5231
  throw new Error("Anchored selectors require an AnchoredIdDeriver to be provided in options.");
5190
- h = Dn(r.anchors, p2, n2);
5232
+ w2 = Mn(r.anchors, f$1, n2);
5191
5233
  } else
5192
- h = p2;
5193
- const d = /* @__PURE__ */ new Set(), x2 = [];
5194
- for (const g of this.providers) {
5195
- const b = g.selectColumns(h);
5196
- for (const A2 of b) {
5197
- if (d.has(A2.id)) throw new Error(`Duplicate column id ${A2.id} in provider ${g.constructor.name}`);
5198
- d.add(A2.id), x2.push(A2);
5234
+ w2 = f$1;
5235
+ const h2 = /* @__PURE__ */ new Set(), I = [];
5236
+ for (const A of this.providers) {
5237
+ const L = A.selectColumns(w2);
5238
+ for (const P2 of L) {
5239
+ if (u2(P2.spec)) continue;
5240
+ if (h2.has(P2.id))
5241
+ throw new Error(`Duplicate column id ${P2.id} in provider ${A.constructor.name}`);
5242
+ const R = Qn(P2.spec);
5243
+ g.has(R) || (h2.add(P2.id), g.add(R), I.push(P2));
5199
5244
  }
5200
5245
  }
5201
- if (x2.length === 0) continue;
5202
- const c2 = St(p2), v = c2.length > 0;
5203
- for (const g of x2) {
5204
- if (!f(g.spec)) continue;
5205
- const b = g.spec;
5206
- if (v) {
5207
- const A2 = vt(g.data);
5208
- if (!A2) {
5246
+ if (I.length === 0) continue;
5247
+ const x = Dt(f$1), b = x.length > 0;
5248
+ for (const A of I) {
5249
+ if (!f(A.spec)) continue;
5250
+ const L = A.spec;
5251
+ if (b) {
5252
+ if (Lt(A.data))
5253
+ throw new Error(`Splitting is not supported for PColumns with PColumnValues data format. Column id: ${A.id}`);
5254
+ const P2 = _t(A.data);
5255
+ if (!P2) {
5209
5256
  if (s2) continue;
5210
5257
  return;
5211
5258
  }
5212
- if (!ln(A2))
5213
- throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${A2.type} for column ${g.id}`);
5214
- const D = yt(A2), $2 = c2[c2.length - 1];
5215
- if ($2 >= A2.partitionKeyLength)
5216
- throw new Error(`Not enough partition keys (${A2.partitionKeyLength}) for requested split axes (max index ${$2}) in column ${b.name}`);
5217
- const q2 = c2.map((P) => this.findLabels(p$1(b.axesSpec[P]))), F = [], _ = (P, N2) => {
5218
- if (N2 >= c2.length) {
5219
- if (F.push([...P]), F.length > 1e4)
5259
+ if (!Sn(P2))
5260
+ throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${P2.type} for column ${A.id}`);
5261
+ const R = St(P2), k2 = x[x.length - 1];
5262
+ if (k2 >= P2.partitionKeyLength)
5263
+ throw new Error(`Not enough partition keys (${P2.partitionKeyLength}) for requested split axes (max index ${k2}) in column ${L.name}`);
5264
+ const W = x.map((S) => this.findLabels(p$1(L.axesSpec[S]))), V = [], N2 = (S, G) => {
5265
+ if (G >= x.length) {
5266
+ if (V.push([...S]), V.length > 1e4)
5220
5267
  throw new Error("Too many key combinations, aborting.");
5221
5268
  return;
5222
5269
  }
5223
- const O = c2[N2];
5224
- if (O >= D.length)
5225
- throw new Error(`Axis index ${O} out of bounds for unique keys array (length ${D.length}) during split key generation for column ${g.id}`);
5226
- const k2 = D[O];
5227
- if (!k2 || k2.length === 0) {
5228
- F.length = 0;
5270
+ const $ = x[G];
5271
+ if ($ >= R.length)
5272
+ throw new Error(`Axis index ${$} out of bounds for unique keys array (length ${R.length}) during split key generation for column ${A.id}`);
5273
+ const J2 = R[$];
5274
+ if (!J2 || J2.length === 0) {
5275
+ V.length = 0;
5229
5276
  return;
5230
5277
  }
5231
- for (const z2 of k2)
5232
- P.push(z2), _(P, N2 + 1), P.pop();
5278
+ for (const ee of J2)
5279
+ S.push(ee), N2(S, G + 1), S.pop();
5233
5280
  };
5234
- if (_([], 0), F.length === 0)
5281
+ if (N2([], 0), V.length === 0)
5235
5282
  continue;
5236
- const R = [...b.axesSpec], se = c2.map((P) => P);
5237
- for (let P = c2.length - 1; P >= 0; P--)
5238
- R.splice(c2[P], 1);
5239
- const J = { ...b, axesSpec: R };
5240
- for (const P of F) {
5241
- const N2 = P.map((O, k2) => {
5242
- const z2 = se[k2], Ne = p$1(b.axesSpec[z2]), oe = q2[k2], Be = (oe == null ? void 0 : oe[O]) ?? String(O);
5243
- return { axisIdx: z2, axisId: Ne, value: O, label: Be };
5283
+ const F = [...L.axesSpec], Be = x.map((S) => S);
5284
+ for (let S = x.length - 1; S >= 0; S--)
5285
+ F.splice(x[S], 1);
5286
+ const We = { ...L, axesSpec: F };
5287
+ for (const S of V) {
5288
+ const G = S.map(($, J2) => {
5289
+ const ee = Be[J2], Ge = p$1(L.axesSpec[ee]), ue2 = W[J2], He = (ue2 == null ? void 0 : ue2[$]) ?? String($);
5290
+ return { axisIdx: ee, axisId: Ge, value: $, label: He };
5244
5291
  });
5245
- u2.push({
5292
+ d.push({
5246
5293
  type: "split",
5247
- originalColumn: g,
5248
- spec: b,
5249
- adjustedSpec: J,
5250
- dataEntries: A2,
5251
- axisFilters: N2
5294
+ originalColumn: A,
5295
+ spec: L,
5296
+ adjustedSpec: We,
5297
+ dataEntries: P2,
5298
+ axisFilters: G
5252
5299
  });
5253
5300
  }
5254
5301
  } else
5255
- u2.push({
5302
+ d.push({
5256
5303
  type: "direct",
5257
- originalColumn: g,
5258
- spec: b,
5259
- adjustedSpec: b
5304
+ originalColumn: A,
5305
+ spec: L,
5306
+ adjustedSpec: L
5260
5307
  });
5261
5308
  }
5262
5309
  }
5263
- if (u2.length === 0) return [];
5264
- const y = Oe(
5265
- u2,
5266
- (p2) => ({
5267
- spec: p2.spec,
5268
- suffixTrace: p2.type === "split" ? At(p2.axisFilters) : void 0
5310
+ if (d.length === 0) return [];
5311
+ const p2 = je(
5312
+ d,
5313
+ (f2) => ({
5314
+ spec: f2.spec,
5315
+ suffixTrace: f2.type === "split" ? Et(f2.axisFilters) : void 0
5269
5316
  }),
5270
- a
5271
- ), w2 = [];
5272
- for (const { value: p2, label: f2 } of y) {
5273
- const { originalColumn: h, spec: d } = p2, x2 = p2.type === "split" ? p2.axisFilters : void 0, c2 = Pt(x2);
5274
- let v;
5275
- r ? v = r.deriveS(d, c2) : v = xt(h.id, c2);
5276
- let g = { ...p2.adjustedSpec };
5277
- o && (g = {
5278
- ...g,
5317
+ l2
5318
+ ), v = [];
5319
+ for (const { value: f2, label: m2 } of p2) {
5320
+ const { originalColumn: w2, spec: h2 } = f2, I = f2.type === "split" ? f2.axisFilters : void 0, x = kt(I);
5321
+ let b;
5322
+ r ? b = r.deriveS(h2, x) : b = Ot(w2.id, x);
5323
+ let A = { ...f2.adjustedSpec };
5324
+ o && (A = {
5325
+ ...A,
5279
5326
  annotations: {
5280
- ...g.annotations ?? {},
5281
- "pl7.app/label": f2
5327
+ ...A.annotations ?? {},
5328
+ "pl7.app/label": m2
5282
5329
  }
5283
- }), w2.push({
5284
- id: v,
5285
- spec: g,
5286
- data: () => p2.type === "split" ? gn(bt(p2.dataEntries, c2)) : p2.originalColumn.data,
5287
- label: f2
5330
+ }), v.push({
5331
+ id: b,
5332
+ spec: A,
5333
+ data: () => f2.type === "split" ? Jn(It(f2.dataEntries, x)) : f2.originalColumn.data,
5334
+ label: m2
5288
5335
  });
5289
5336
  }
5290
- return w2;
5337
+ return v;
5291
5338
  }
5292
5339
  getColumns(e, n2) {
5293
5340
  const r = this.getUniversalEntries(e, {
@@ -5312,19 +5359,19 @@
5312
5359
  return i;
5313
5360
  }
5314
5361
  }
5315
- function le(t, e) {
5362
+ function de(t, e) {
5316
5363
  if (t === void 0) return e === void 0;
5317
5364
  if (e === void 0) return true;
5318
5365
  for (const n2 in e)
5319
5366
  if (t[n2] !== e[n2]) return false;
5320
5367
  return true;
5321
5368
  }
5322
- function Pe(t) {
5323
- return Fn(t, (e) => e instanceof I ? e.handle : mn(e) ? yn(e, (n2) => n2.handle) : e);
5369
+ function _e(t) {
5370
+ return Wn(t, (e) => e instanceof E ? e.handle : En(e) ? Nn(e, (n2) => n2.handle) : e);
5324
5371
  }
5325
- class It {
5372
+ class Rt {
5326
5373
  constructor() {
5327
- L(this, "ctx", m());
5374
+ O(this, "ctx", y());
5328
5375
  }
5329
5376
  /**
5330
5377
  * @deprecated use getOptions()
@@ -5333,27 +5380,28 @@
5333
5380
  return this.ctx.calculateOptions(e);
5334
5381
  }
5335
5382
  getOptions(e, n2) {
5336
- const r = typeof e == "function" ? e : Kn(e), i = this.getSpecs().entries.filter((s2) => r(s2.obj));
5337
- return typeof n2 == "object" || typeof n2 > "u" ? Oe(i, (s2) => s2.obj, n2 ?? {}).map(({ value: { ref: s2 }, label: o }) => ({
5338
- ref: s2,
5339
- label: o
5340
- })) : i.map((s2) => ({
5341
- ref: s2.ref,
5342
- label: n2(s2.obj, s2.ref)
5383
+ const r = typeof e == "function" ? e : Gn(e), i = this.getSpecs().entries.filter((a) => r(a.obj));
5384
+ let s2 = {}, o = false;
5385
+ return typeof n2 < "u" && (typeof n2 == "function" ? s2 = n2 : typeof n2 == "object" && ("includeNativeLabel" in n2 || "separator" in n2 || "addLabelAsSuffix" in n2 ? s2 = n2 : (n2 = n2, s2 = n2.label ?? {}, o = n2.refsWithEnrichments ?? false))), typeof s2 == "object" ? je(i, (a) => a.obj, s2 ?? {}).map(({ value: { ref: a }, label: l2 }) => ({
5386
+ ref: te$1(a, o),
5387
+ label: l2
5388
+ })) : i.map(({ ref: a, obj: l2 }) => ({
5389
+ ref: te$1(a, o),
5390
+ label: s2(l2, a)
5343
5391
  }));
5344
5392
  }
5345
5393
  resolveAnchorCtx(e) {
5346
- if (e instanceof $n) return e;
5394
+ if (e instanceof _n) return e;
5347
5395
  const n2 = {};
5348
5396
  for (const [r, i] of Object.entries(e))
5349
- if (Tn(i)) {
5397
+ if (ne(i)) {
5350
5398
  const s2 = this.getPColumnSpecByRef(i);
5351
5399
  if (!s2)
5352
5400
  return;
5353
5401
  n2[r] = s2;
5354
5402
  } else
5355
5403
  n2[r] = i;
5356
- return new $n(n2);
5404
+ return new _n(n2);
5357
5405
  }
5358
5406
  /**
5359
5407
  * Returns columns that match the provided anchors and selectors. It applies axis filters and label derivation.
@@ -5366,7 +5414,7 @@
5366
5414
  getAnchoredPColumns(e, n2, r) {
5367
5415
  const i = this.resolveAnchorCtx(e);
5368
5416
  if (i)
5369
- return new ge().addColumnProvider(this).addAxisLabelProvider(this).getColumns(n2, {
5417
+ return new le().addColumnProvider(this).addAxisLabelProvider(this).getColumns(n2, {
5370
5418
  ...r,
5371
5419
  anchorCtx: i
5372
5420
  });
@@ -5403,7 +5451,7 @@
5403
5451
  getCanonicalOptions(e, n2, r) {
5404
5452
  const i = this.resolveAnchorCtx(e);
5405
5453
  if (!i) return;
5406
- const s2 = new ge().addColumnProvider(this).addAxisLabelProvider(this).getUniversalEntries(n2, {
5454
+ const s2 = new le().addColumnProvider(this).addAxisLabelProvider(this).getUniversalEntries(n2, {
5407
5455
  ...r,
5408
5456
  anchorCtx: i
5409
5457
  });
@@ -5427,7 +5475,7 @@
5427
5475
  ref: n2.ref,
5428
5476
  obj: {
5429
5477
  ...n2.obj,
5430
- data: new I(n2.obj.data, [n2.ref.blockId, n2.ref.name])
5478
+ data: new E(n2.obj.data, [n2.ref.blockId, n2.ref.name])
5431
5479
  }
5432
5480
  }))
5433
5481
  };
@@ -5446,9 +5494,9 @@
5446
5494
  ref: n2.ref,
5447
5495
  obj: {
5448
5496
  ...n2.obj,
5449
- data: _n$1(
5497
+ data: oe$1(
5450
5498
  n2.obj.data,
5451
- (r) => new I(r, [n2.ref.blockId, n2.ref.name])
5499
+ (r) => new E(r, [n2.ref.blockId, n2.ref.name])
5452
5500
  )
5453
5501
  }
5454
5502
  }))
@@ -5475,9 +5523,9 @@
5475
5523
  )) == null ? void 0 : r.obj;
5476
5524
  const n2 = this.ctx.getDataFromResultPoolByRef(e.blockId, e.name);
5477
5525
  if (n2)
5478
- return Fn(
5526
+ return Wn(
5479
5527
  n2,
5480
- (i) => new I(i, [e.blockId, e.name])
5528
+ (i) => new E(i, [e.blockId, e.name])
5481
5529
  );
5482
5530
  }
5483
5531
  /**
@@ -5488,7 +5536,7 @@
5488
5536
  getPColumnByRef(e) {
5489
5537
  const n2 = this.getDataByRef(e);
5490
5538
  if (n2)
5491
- return jn(n2);
5539
+ return qn(n2);
5492
5540
  }
5493
5541
  /**
5494
5542
  * Returns spec associated with the ref ensuring that it is a p-column spec.
@@ -5520,10 +5568,10 @@
5520
5568
  if (!f(r.obj.spec))
5521
5569
  continue;
5522
5570
  const i = r.obj.spec;
5523
- if (e.name === i.name && e.valueType === i.valueType && e.axesSpec.length === i.axesSpec.length && le(e.domain, i.domain)) {
5571
+ if (e.name === i.name && e.valueType === i.valueType && e.axesSpec.length === i.axesSpec.length && de(e.domain, i.domain)) {
5524
5572
  for (let s2 = 0; s2 < e.axesSpec.length; ++s2) {
5525
5573
  const o = e.axesSpec[s2], a = i.axesSpec[s2];
5526
- if (o.name !== a.name || o.type !== a.type || !le(o.domain, a.domain))
5574
+ if (o.name !== a.name || o.type !== a.type || !de(o.domain, a.domain))
5527
5575
  continue e;
5528
5576
  }
5529
5577
  n2.push(r.obj);
@@ -5538,9 +5586,9 @@
5538
5586
  findLabels(e) {
5539
5587
  const n2 = this.getData();
5540
5588
  for (const r of n2.entries) {
5541
- if (!q(r.obj)) continue;
5589
+ if (!rn(r.obj)) continue;
5542
5590
  const i = r.obj.spec;
5543
- if (i.name === "pl7.app/label" && i.axesSpec.length === 1 && i.axesSpec[0].name === e.name && i.axesSpec[0].type === e.type && le(e.domain, i.axesSpec[0].domain)) {
5591
+ if (i.name === "pl7.app/label" && i.axesSpec.length === 1 && i.axesSpec[0].name === e.name && i.axesSpec[0].type === e.type && de(e.domain, i.axesSpec[0].domain)) {
5544
5592
  if (r.obj.data.resourceType.name !== "PColumnData/Json")
5545
5593
  throw Error(`Expected JSON column for labels, got: ${r.obj.data.resourceType.name}`);
5546
5594
  return Object.fromEntries(
@@ -5559,13 +5607,13 @@
5559
5607
  * @returns An array of PColumn objects matching the selectors. Data is loaded on first access.
5560
5608
  */
5561
5609
  selectColumns(e) {
5562
- const n2 = typeof e == "function" ? e : Kn(e);
5610
+ const n2 = typeof e == "function" ? e : Gn(e);
5563
5611
  return this.getSpecs().entries.filter(({ obj: i }) => f(i) ? n2(i) : false).map(({ ref: i, obj: s2 }) => {
5564
5612
  const o = s2;
5565
5613
  let a = null;
5566
5614
  const l2 = this;
5567
5615
  return {
5568
- id: _e(i),
5616
+ id: ke(i),
5569
5617
  spec: o,
5570
5618
  get data() {
5571
5619
  var u2;
@@ -5590,14 +5638,14 @@
5590
5638
  return r;
5591
5639
  }
5592
5640
  }
5593
- class X {
5641
+ class te {
5594
5642
  constructor() {
5595
- L(this, "ctx");
5596
- L(this, "args");
5597
- L(this, "uiState");
5598
- L(this, "_activeArgsCache");
5599
- L(this, "resultPool", new It());
5600
- this.ctx = m(), this.args = JSON.parse(this.ctx.args), this.uiState = this.ctx.uiState !== void 0 ? JSON.parse(this.ctx.uiState) : {};
5643
+ O(this, "ctx");
5644
+ O(this, "args");
5645
+ O(this, "uiState");
5646
+ O(this, "_activeArgsCache");
5647
+ O(this, "resultPool", new Rt());
5648
+ this.ctx = y(), this.args = JSON.parse(this.ctx.args), this.uiState = this.ctx.uiState !== void 0 ? JSON.parse(this.ctx.uiState) : {};
5601
5649
  }
5602
5650
  /**
5603
5651
  * Returns args snapshot the block was executed for (i.e. when "Run" button was pressed).
@@ -5613,13 +5661,13 @@
5613
5661
  // return this.ctx.featureFlags;
5614
5662
  // }
5615
5663
  getNamedAccessor(e) {
5616
- return pe(
5664
+ return he(
5617
5665
  this.ctx.getAccessorHandleByName(e),
5618
- (n2) => new I(n2, [e])
5666
+ (n2) => new E(n2, [e])
5619
5667
  );
5620
5668
  }
5621
5669
  get prerun() {
5622
- return this.getNamedAccessor(Ee);
5670
+ return this.getNamedAccessor(Re);
5623
5671
  }
5624
5672
  get outputs() {
5625
5673
  return this.getNamedAccessor(Fe);
@@ -5634,13 +5682,13 @@
5634
5682
  }
5635
5683
  verifyInlineAndExplicitColumnsSupport(e) {
5636
5684
  var i;
5637
- const n2 = e.some((s2) => !(s2.data instanceof I) || mn(s2.data)), r = ((i = this.ctx.featureFlags) == null ? void 0 : i.inlineColumnsSupport) === true;
5685
+ const n2 = e.some((s2) => !(s2.data instanceof E) || En(s2.data)), r = ((i = this.ctx.featureFlags) == null ? void 0 : i.inlineColumnsSupport) === true;
5638
5686
  if (n2 && !r) throw Error("Inline or explicit columns not supported");
5639
5687
  }
5640
5688
  // TODO remove all non-PColumn fields
5641
5689
  createPFrame(e) {
5642
5690
  return this.verifyInlineAndExplicitColumnsSupport(e), this.ctx.createPFrame(
5643
- e.map((n2) => Pe(n2))
5691
+ e.map((n2) => _e(n2))
5644
5692
  );
5645
5693
  }
5646
5694
  createPTable(e) {
@@ -5652,8 +5700,8 @@
5652
5700
  },
5653
5701
  filters: e.filters ?? [],
5654
5702
  sorting: e.sorting ?? []
5655
- } : n2 = e, this.verifyInlineAndExplicitColumnsSupport(Un(n2.src)), this.ctx.createPTable(
5656
- On(n2, (r) => Pe(r))
5703
+ } : n2 = e, this.verifyInlineAndExplicitColumnsSupport(Xn(n2.src)), this.ctx.createPTable(
5704
+ Un(n2, (r) => _e(r))
5657
5705
  );
5658
5706
  }
5659
5707
  /** @deprecated scheduled for removal from SDK */
@@ -5661,21 +5709,29 @@
5661
5709
  return this.ctx.getBlockLabel(e);
5662
5710
  }
5663
5711
  getCurrentUnstableMarker() {
5664
- if (!(typeof this.ctx.getCurrentUnstableMarker > "u"))
5665
- return this.ctx.getCurrentUnstableMarker();
5712
+ return this.ctx.getCurrentUnstableMarker();
5713
+ }
5714
+ logInfo(e) {
5715
+ this.ctx.logInfo(e);
5716
+ }
5717
+ logWarn(e) {
5718
+ this.ctx.logWarn(e);
5719
+ }
5720
+ logError(e) {
5721
+ this.ctx.logError(e);
5666
5722
  }
5667
5723
  }
5668
- const M = "1.29.17";
5669
- function _t(t) {
5724
+ const Y = "1.34.10";
5725
+ function Ft(t) {
5670
5726
  return t.__renderLambda === true;
5671
5727
  }
5672
- function ue(t) {
5728
+ function pe(t) {
5673
5729
  if (t !== void 0)
5674
- return _t(t) ? t.handle : t;
5730
+ return Ft(t) ? t.handle : t;
5675
5731
  }
5676
5732
  class T {
5677
- constructor(e, n2, r, i, s2, o, a) {
5678
- this._renderingMode = e, this._initialArgs = n2, this._initialUiState = r, this._outputs = i, this._inputsValid = s2, this._sections = o, this._title = a;
5733
+ constructor(e, n2, r, i, s2, o, a, l2) {
5734
+ this._renderingMode = e, this._initialArgs = n2, this._initialUiState = r, this._outputs = i, this._inputsValid = s2, this._sections = o, this._title = a, this._enrichmentTargets = l2;
5679
5735
  }
5680
5736
  static create(e = "Heavy") {
5681
5737
  return new T(
@@ -5683,15 +5739,16 @@
5683
5739
  void 0,
5684
5740
  {},
5685
5741
  {},
5686
- Z(true),
5687
- Z([]),
5742
+ re(true),
5743
+ re([]),
5744
+ void 0,
5688
5745
  void 0
5689
5746
  );
5690
5747
  }
5691
5748
  output(e, n2, r = {}) {
5692
5749
  if (typeof n2 == "function") {
5693
5750
  const i = `output#${e}`;
5694
- return Y(i, () => n2(new X())), new T(
5751
+ return H(i, () => n2(new te())), new T(
5695
5752
  this._renderingMode,
5696
5753
  this._initialArgs,
5697
5754
  this._initialUiState,
@@ -5705,7 +5762,8 @@
5705
5762
  },
5706
5763
  this._inputsValid,
5707
5764
  this._sections,
5708
- this._title
5765
+ this._title,
5766
+ this._enrichmentTargets
5709
5767
  );
5710
5768
  } else
5711
5769
  return new T(
@@ -5718,7 +5776,8 @@
5718
5776
  },
5719
5777
  this._inputsValid,
5720
5778
  this._sections,
5721
- this._title
5779
+ this._title,
5780
+ this._enrichmentTargets
5722
5781
  );
5723
5782
  }
5724
5783
  /** Shortcut for {@link output} with retentive flag set to true. */
@@ -5726,7 +5785,7 @@
5726
5785
  return this.output(e, n2, { retentive: true });
5727
5786
  }
5728
5787
  argsValid(e) {
5729
- return typeof e == "function" ? (Y("inputsValid", () => e(new X())), new T(
5788
+ return typeof e == "function" ? (H("inputsValid", () => e(new te())), new T(
5730
5789
  this._renderingMode,
5731
5790
  this._initialArgs,
5732
5791
  this._initialUiState,
@@ -5736,7 +5795,8 @@
5736
5795
  handle: "inputsValid"
5737
5796
  },
5738
5797
  this._sections,
5739
- this._title
5798
+ this._title,
5799
+ this._enrichmentTargets
5740
5800
  )) : new T(
5741
5801
  this._renderingMode,
5742
5802
  this._initialArgs,
@@ -5744,18 +5804,20 @@
5744
5804
  this._outputs,
5745
5805
  e,
5746
5806
  this._sections,
5747
- this._title
5807
+ this._title,
5808
+ this._enrichmentTargets
5748
5809
  );
5749
5810
  }
5750
5811
  sections(e) {
5751
- return Array.isArray(e) ? this.sections(Z(e)) : typeof e == "function" ? (Y("sections", () => e(new X())), new T(
5812
+ return Array.isArray(e) ? this.sections(re(e)) : typeof e == "function" ? (H("sections", () => e(new te())), new T(
5752
5813
  this._renderingMode,
5753
5814
  this._initialArgs,
5754
5815
  this._initialUiState,
5755
5816
  this._outputs,
5756
5817
  this._inputsValid,
5757
5818
  { __renderLambda: true, handle: "sections" },
5758
- this._title
5819
+ this._title,
5820
+ this._enrichmentTargets
5759
5821
  )) : new T(
5760
5822
  this._renderingMode,
5761
5823
  this._initialArgs,
@@ -5763,19 +5825,21 @@
5763
5825
  this._outputs,
5764
5826
  this._inputsValid,
5765
5827
  e,
5766
- this._title
5828
+ this._title,
5829
+ this._enrichmentTargets
5767
5830
  );
5768
5831
  }
5769
5832
  /** Sets a rendering function to derive block title, shown for the block in the left blocks-overview panel. */
5770
5833
  title(e) {
5771
- return Y("title", () => e(new X())), new T(
5834
+ return H("title", () => e(new te())), new T(
5772
5835
  this._renderingMode,
5773
5836
  this._initialArgs,
5774
5837
  this._initialUiState,
5775
5838
  this._outputs,
5776
5839
  this._inputsValid,
5777
5840
  this._sections,
5778
- { __renderLambda: true, handle: "title" }
5841
+ { __renderLambda: true, handle: "title" },
5842
+ this._enrichmentTargets
5779
5843
  );
5780
5844
  }
5781
5845
  /**
@@ -5790,7 +5854,8 @@
5790
5854
  this._outputs,
5791
5855
  this._inputsValid,
5792
5856
  this._sections,
5793
- this._title
5857
+ this._title,
5858
+ this._enrichmentTargets
5794
5859
  );
5795
5860
  }
5796
5861
  /** Sets initial args for the block, this value must be specified. */
@@ -5802,7 +5867,8 @@
5802
5867
  this._outputs,
5803
5868
  this._inputsValid,
5804
5869
  this._sections,
5805
- this._title
5870
+ this._title,
5871
+ this._enrichmentTargets
5806
5872
  );
5807
5873
  }
5808
5874
  /** Defines type and sets initial value for block UiState. */
@@ -5814,7 +5880,24 @@
5814
5880
  this._outputs,
5815
5881
  this._inputsValid,
5816
5882
  this._sections,
5817
- this._title
5883
+ this._title,
5884
+ this._enrichmentTargets
5885
+ );
5886
+ }
5887
+ /**
5888
+ * Defines how to derive list of upstream references this block is meant to enrich with its exports from block args.
5889
+ * Influences dependency graph construction.
5890
+ */
5891
+ enriches(e) {
5892
+ return H("enrichmentTargets", e), new T(
5893
+ this._renderingMode,
5894
+ this._initialArgs,
5895
+ this._initialUiState,
5896
+ this._outputs,
5897
+ this._inputsValid,
5898
+ this._sections,
5899
+ this._title,
5900
+ { __renderLambda: true, handle: "enrichmentTargets" }
5818
5901
  );
5819
5902
  }
5820
5903
  /** Renders all provided block settings into a pre-configured platforma API
@@ -5824,29 +5907,33 @@
5824
5907
  if (this._initialArgs === void 0) throw new Error("Initial arguments not set.");
5825
5908
  const e = {
5826
5909
  v3: {
5827
- sdkVersion: M,
5910
+ sdkVersion: Y,
5828
5911
  renderingMode: this._renderingMode,
5829
5912
  initialArgs: this._initialArgs,
5830
5913
  initialUiState: this._initialUiState,
5831
5914
  inputsValid: this._inputsValid,
5832
5915
  sections: this._sections,
5833
5916
  title: this._title,
5834
- outputs: this._outputs
5917
+ outputs: this._outputs,
5918
+ enrichmentTargets: this._enrichmentTargets
5835
5919
  },
5836
5920
  // fields below are added to allow previous desktop versions read generated configs
5837
- sdkVersion: M,
5921
+ sdkVersion: Y,
5838
5922
  renderingMode: this._renderingMode,
5839
5923
  initialArgs: this._initialArgs,
5840
- inputsValid: ue(this._inputsValid),
5841
- sections: ue(this._sections),
5924
+ inputsValid: pe(this._inputsValid),
5925
+ sections: pe(this._sections),
5842
5926
  outputs: Object.fromEntries(
5843
- Object.entries(this._outputs).map(([n2, r]) => [n2, ue(r)])
5927
+ Object.entries(this._outputs).map(([n2, r]) => [n2, pe(r)])
5844
5928
  )
5845
5929
  };
5846
- return it() ? Te({ sdkVersion: M }) : { config: e };
5930
+ return pt() ? De({ sdkVersion: Y }) : { config: e };
5847
5931
  }
5848
5932
  }
5849
- const Et = (t, e) => {
5933
+ function ve(t) {
5934
+ return t.axesSpec.length === 1 && t.name === "pl7.app/label";
5935
+ }
5936
+ const Vt = (t, e) => {
5850
5937
  let n2 = t.toString();
5851
5938
  return e == null || e.forEach((r) => {
5852
5939
  if (r)
@@ -5854,7 +5941,7 @@
5854
5941
  n2 += i, n2 += s2;
5855
5942
  }), n2;
5856
5943
  };
5857
- function Ft(t) {
5944
+ function $t(t) {
5858
5945
  if (!t.length)
5859
5946
  return [];
5860
5947
  let e = [[]];
@@ -5865,178 +5952,214 @@
5865
5952
  }), e = r;
5866
5953
  }), e;
5867
5954
  }
5868
- function Dt(t, e) {
5869
- const n2 = t.spec.axesSpec.map(p$1);
5870
- return e.spec.axesSpec.map(p$1).every((i) => n2.some((s2) => G(s2, i) && G(i, s2)));
5955
+ function Nt(t) {
5956
+ var e;
5957
+ return t.axesSpec.length === 2 && ((e = t.annotations) == null ? void 0 : e[Mt]) === "true";
5958
+ }
5959
+ const Jt = "pl7.app/graph/isVirtual", Ie = "pl7.app/label", Mt = "pl7.app/isLinkerColumn";
5960
+ function Ut(t) {
5961
+ var n2, r;
5962
+ const e = /* @__PURE__ */ new Map();
5963
+ for (const { spec: i } of t) {
5964
+ const s2 = i.axesSpec.map(p$1).map(ue);
5965
+ s2.forEach((o) => {
5966
+ e.has(o) || e.set(o, /* @__PURE__ */ new Set());
5967
+ });
5968
+ for (let o = 0; o < s2.length - 1; o++)
5969
+ for (let a = o + 1; a < s2.length; a++) {
5970
+ const l2 = s2[o], u2 = s2[a];
5971
+ (n2 = e.get(l2)) == null || n2.add(u2), (r = e.get(u2)) == null || r.add(l2);
5972
+ }
5973
+ }
5974
+ return e;
5871
5975
  }
5872
- function Je(t, e) {
5873
- const n2 = t.spec.axesSpec.map(p$1);
5874
- return e.spec.axesSpec.map(p$1).every((i) => n2.some((s2) => G(s2, i)));
5976
+ function Bt(t, e) {
5977
+ const n2 = Ut(t), r = [...n2.keys()].map(ce$1), i = [];
5978
+ for (const l2 of e.values()) {
5979
+ const u2 = r.find((c2) => Z$1(l2, c2));
5980
+ u2 && i.push(ue(u2));
5981
+ }
5982
+ const s2 = new Set(i), o = /* @__PURE__ */ new Map();
5983
+ let a = [...i];
5984
+ for (; a.length; ) {
5985
+ const l2 = [];
5986
+ for (const u2 of a)
5987
+ for (const c2 of n2.get(u2) ?? [])
5988
+ s2.has(c2) || (l2.push(c2), s2.add(c2), o.set(c2, ce$1(c2)));
5989
+ a = l2;
5990
+ }
5991
+ return o;
5992
+ }
5993
+ function Wt(t, e) {
5994
+ const n2 = [];
5995
+ return e.forEach((r) => {
5996
+ n2.push(...Gt(t, r));
5997
+ }), n2;
5875
5998
  }
5876
- const Ot = "pl7.app/graph/isVirtual", xe = "pl7.app/label";
5877
- function Ce(t, e) {
5878
- const n2 = t.spec.axesSpec.map(p$1), r = e.spec.axesSpec.map(p$1);
5879
- if (Dt(t, e))
5880
- return [];
5881
- if (!Je(t, e))
5882
- return [];
5883
- const o = r.map((w2) => n2.filter((p2) => G(p2, w2))), a = Ft(o), l2 = /* @__PURE__ */ new Set(), u2 = /* @__PURE__ */ new Set(), y = a.map((w2) => {
5884
- const p2 = /* @__PURE__ */ new Set();
5885
- return w2.map((f2, h) => {
5886
- const d = e.spec.axesSpec[h].domain, x2 = f2.domain;
5887
- return Object.entries(x2 ?? {}).forEach(([c2, v]) => {
5888
- if ((d == null ? void 0 : d[c2]) === void 0) {
5889
- const g = JSON.stringify([c2, v]);
5890
- p2.add(g), l2.add(g);
5999
+ function Gt(t, e) {
6000
+ const n2 = e.spec.axesSpec.map(p$1);
6001
+ if (n2.every((u2) => t.has(ue(u2))))
6002
+ return [e];
6003
+ const r = n2.map((u2) => {
6004
+ const c2 = [];
6005
+ for (const [d, g] of t)
6006
+ Z$1(g, u2) && !Z$1(u2, g) && c2.push(g);
6007
+ return c2;
6008
+ }), i = $t(r), s2 = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), a = i.map((u2) => {
6009
+ const c2 = /* @__PURE__ */ new Set();
6010
+ return u2.map((d, g) => {
6011
+ const p2 = e.spec.axesSpec[g].domain, v = d.domain;
6012
+ return Object.entries(v ?? {}).forEach(([f2, m2]) => {
6013
+ if ((p2 == null ? void 0 : p2[f2]) === void 0) {
6014
+ const w2 = JSON.stringify([f2, m2]);
6015
+ c2.add(w2), s2.add(w2);
5891
6016
  }
5892
6017
  }), {
5893
- ...f2,
5894
- annotations: e.spec.axesSpec[h].annotations
6018
+ ...d,
6019
+ annotations: e.spec.axesSpec[g].annotations
5895
6020
  };
5896
- }), p2;
6021
+ }), c2;
6022
+ });
6023
+ [...s2].forEach((u2) => {
6024
+ a.some((c2) => !c2.has(u2)) && o.add(u2);
5897
6025
  });
5898
- return [...l2].forEach((w2) => {
5899
- y.some((p2) => !p2.has(w2)) && u2.add(w2);
5900
- }), a.map((w2, p2) => {
5901
- var c2;
5902
- const f2 = Et(e.id, w2.map((v) => v.domain)), h = ((c2 = e.spec.annotations) == null ? void 0 : c2[xe]) ?? "", d = [...y[p2]].filter((v) => u2.has(v)).sort().map((v) => {
5903
- var g;
5904
- return (g = JSON.parse(v)) == null ? void 0 : g[1];
5905
- }).join(" / "), x2 = {
6026
+ const l2 = i.map((u2, c2) => {
6027
+ var f2;
6028
+ const d = Vt(e.id, u2.map((m2) => m2.domain)), g = ((f2 = e.spec.annotations) == null ? void 0 : f2[Ie]) ?? "", p2 = [...a[c2]].filter((m2) => o.has(m2)).sort().map((m2) => {
6029
+ var w2;
6030
+ return (w2 = JSON.parse(m2)) == null ? void 0 : w2[1];
6031
+ }).join(" / "), v = {
5906
6032
  ...e.spec.annotations,
5907
- [Ot]: "true"
6033
+ [Jt]: "true"
5908
6034
  };
5909
- return (h || d) && (x2[xe] = h && d ? h + " / " + d : h + d), {
5910
- id: f2,
6035
+ return (g || p2) && (v[Ie] = g && p2 ? g + " / " + p2 : g + p2), {
6036
+ id: d,
5911
6037
  spec: {
5912
6038
  ...e.spec,
5913
- axesSpec: w2.map((v, g) => ({
5914
- ...v,
5915
- annotations: e.spec.axesSpec[g].annotations
6039
+ axesSpec: u2.map((m2, w2) => ({
6040
+ ...m2,
6041
+ annotations: e.spec.axesSpec[w2].annotations
5916
6042
  })),
5917
- annotations: x2
6043
+ annotations: v
5918
6044
  },
5919
6045
  data: e.data
5920
6046
  };
5921
6047
  });
6048
+ return [e, ...l2];
5922
6049
  }
5923
- function Rt(t) {
5924
- const e = [];
5925
- for (let n2 = 0; n2 < t.length; n2++)
5926
- for (let r = n2 + 1; r < t.length; r++) {
5927
- const i = t[n2], s2 = t[r];
5928
- e.push(
5929
- ...Ce(i, s2),
5930
- ...Ce(s2, i)
5931
- );
5932
- }
5933
- return e;
5934
- }
5935
- function kt(t, e) {
5936
- const n2 = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Map();
5937
- t.forEach((s2) => {
5938
- n2.add(s2.id), r.set(Xn(En(s2.spec)), s2);
5939
- });
5940
- const i = /* @__PURE__ */ new Map();
5941
- for (const s2 of e) {
5942
- if (n2.has(s2.id)) continue;
5943
- const o = Xn(En(s2.spec));
5944
- if (!r.has(o)) {
5945
- for (const a of r.values())
5946
- if (Je(a, s2)) {
5947
- i.set(o, s2);
5948
- break;
5949
- }
5950
- }
5951
- }
5952
- return [...r.values(), ...i.values()];
5953
- }
5954
- const jt = [
5955
- "Int",
5956
- "Long",
5957
- "Float",
5958
- "Double",
5959
- "String",
5960
- "Bytes"
5961
- ];
5962
- function _n(t, e) {
5963
- if (e === void 0) return;
5964
- const n2 = t.resultPool.getData().entries.map((s2) => s2.obj).filter(q).filter((s2) => jt.includes(s2.spec.valueType)), r = kt(e, n2), i = [...r, ...Rt(r)];
5965
- if (!i.some(
5966
- (s2) => s2.data instanceof I && !s2.data.getIsReadyOrError()
6050
+ function Kn(t, e) {
6051
+ if (!e) return;
6052
+ const n2 = new le();
6053
+ n2.addColumnProvider(t.resultPool), n2.addColumns(e);
6054
+ const r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
6055
+ for (const d of e)
6056
+ for (const g of d.spec.axesSpec) {
6057
+ const p2 = p$1(g);
6058
+ r.set(ue(p2), p2), i.set(ue(p2), p2);
6059
+ }
6060
+ const s2 = n2.getColumns((d) => Nt(d)) ?? [], o = Bt(s2, r);
6061
+ for (const d of o)
6062
+ r.set(...d), i.set(...d);
6063
+ const a = (n2.getColumns((d) => d.axesSpec.some((g) => {
6064
+ const p2 = p$1(g);
6065
+ for (const v of r.values())
6066
+ if (Z$1(v, p2))
6067
+ return true;
6068
+ return false;
6069
+ }), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((d) => !ve(d.spec));
6070
+ for (const d of a)
6071
+ for (const g of d.spec.axesSpec) {
6072
+ const p2 = p$1(g);
6073
+ i.set(ue(p2), p2);
6074
+ }
6075
+ const l2 = (n2.getColumns((d) => d.axesSpec.some((g) => {
6076
+ const p2 = p$1(g);
6077
+ for (const v of i.values())
6078
+ if (Z$1(v, p2))
6079
+ return true;
6080
+ return false;
6081
+ }), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((d) => ve(d.spec)), u2 = [...a, ...l2], c2 = Wt(r, u2);
6082
+ if (!c2.some(
6083
+ (d) => d.data instanceof E && !d.data.getIsReadyOrError()
5967
6084
  ))
5968
- return t.createPFrame(i);
6085
+ return t.createPFrame(c2);
5969
6086
  }
5970
- const model = T.create().withArgs({}).withUiState({
6087
+ const model = T.create().withArgs({
6088
+ scChain: "A",
6089
+ allele: false
6090
+ }).withUiState({
5971
6091
  blockTitle: "V/J Usage",
5972
6092
  weightedFlag: true,
5973
6093
  vUsagePlotState: {
5974
6094
  title: "V Usage",
5975
- template: "heatmap",
5976
- currentTab: "settings"
6095
+ template: "heatmapClustered",
6096
+ currentTab: "settings",
6097
+ layersSettings: {
6098
+ heatmapClustered: {
6099
+ normalizationDirection: null
6100
+ }
6101
+ }
5977
6102
  },
5978
6103
  jUsagePlotState: {
5979
6104
  title: "V Usage",
5980
- template: "heatmap",
5981
- currentTab: null
6105
+ template: "heatmapClustered",
6106
+ currentTab: null,
6107
+ layersSettings: {
6108
+ heatmapClustered: {
6109
+ normalizationDirection: null
6110
+ }
6111
+ }
5982
6112
  },
5983
6113
  vjUsagePlotState: {
5984
6114
  title: "V/J Usage",
5985
- template: "heatmap",
5986
- currentTab: null
5987
- }
5988
- }).argsValid(
5989
- (ctx) => ctx.args.vGeneRef !== void 0 && ctx.args.jGeneRef !== void 0 && ctx.args.abundanceRef !== void 0
5990
- ).output("vGeneOptions", (ctx) => ctx.resultPool.getOptions(
5991
- (c2) => {
5992
- var _a;
5993
- return f(c2) && c2.valueType === "String" && (c2.name === "pl7.app/vdj/geneHit" || c2.name === "pl7.app/vdj/geneHitWithAllele") && ((_a = c2.domain) == null ? void 0 : _a["pl7.app/vdj/reference"]) === "VGene";
5994
- }
5995
- )).output("jGeneOptions", (ctx) => {
5996
- const inputRef = ctx.args.vGeneRef;
5997
- if (inputRef === void 0) return void 0;
5998
- const vGeneSpec = ctx.resultPool.getPColumnSpecByRef(inputRef);
5999
- if (vGeneSpec === void 0) return void 0;
6000
- return ctx.resultPool.getCanonicalOptions({ main: inputRef }, [
6001
- {
6002
- axes: [{ anchor: "main", idx: 0 }],
6003
- name: vGeneSpec.name,
6004
- domain: {
6005
- "pl7.app/vdj/reference": "JGene",
6006
- "pl7.app/vdj/scClonotypeChain": { anchor: "main" },
6007
- "pl7.app/vdj/scClonotypeChain/index": { anchor: "main" }
6115
+ template: "heatmapClustered",
6116
+ currentTab: null,
6117
+ layersSettings: {
6118
+ heatmapClustered: {
6119
+ normalizationDirection: null
6008
6120
  }
6009
6121
  }
6010
- ], { ignoreMissingDomains: true });
6011
- }).output("abundanceOptions", (ctx) => {
6012
- const inputRef = ctx.args.vGeneRef;
6013
- if (inputRef === void 0) return void 0;
6014
- return ctx.resultPool.getCanonicalOptions(
6015
- { main: inputRef },
6122
+ }
6123
+ }).argsValid((ctx) => ctx.args.datasetRef !== void 0).output(
6124
+ "datasetOptions",
6125
+ (ctx) => ctx.resultPool.getOptions(
6126
+ [{
6127
+ axes: [
6128
+ { name: "pl7.app/sampleId" },
6129
+ { name: "pl7.app/vdj/clonotypeKey" }
6130
+ ],
6131
+ annotations: { "pl7.app/isAnchor": "true" }
6132
+ }, {
6133
+ axes: [
6134
+ { name: "pl7.app/sampleId" },
6135
+ { name: "pl7.app/vdj/scClonotypeKey" }
6136
+ ],
6137
+ annotations: { "pl7.app/isAnchor": "true" }
6138
+ }],
6016
6139
  {
6017
- axes: [{
6018
- /* sampleId */
6019
- }, { anchor: "main", idx: 0 }],
6020
- annotations: {
6021
- "pl7.app/isAbundance": "true",
6022
- "pl7.app/abundance/normalized": "false"
6023
- }
6140
+ // suppress native label of the column (e.g. "Number of Reads") to show only the dataset label
6141
+ label: { includeNativeLabel: false }
6024
6142
  }
6025
- );
6143
+ )
6144
+ ).output("datasetSpec", (ctx) => {
6145
+ if (ctx.args.datasetRef === void 0) {
6146
+ return void 0;
6147
+ }
6148
+ return ctx.resultPool.getPColumnSpecByRef(ctx.args.datasetRef);
6026
6149
  }).output("pf", (ctx) => {
6027
6150
  var _a, _b;
6028
6151
  const pCols = (_b = (_a = ctx.outputs) == null ? void 0 : _a.resolve("pf")) == null ? void 0 : _b.getPColumns();
6029
6152
  if (pCols === void 0) {
6030
6153
  return void 0;
6031
6154
  }
6032
- return _n(ctx, pCols);
6155
+ return Kn(ctx, pCols);
6033
6156
  }).output("isRunning", (ctx) => {
6034
6157
  var _a;
6035
6158
  return ((_a = ctx.outputs) == null ? void 0 : _a.getIsReadyOrError()) === false;
6036
6159
  }).title((ctx) => {
6037
6160
  var _a;
6038
6161
  return ((_a = ctx.uiState) == null ? void 0 : _a.blockTitle) ?? "V/J Usage";
6039
- }).sections((_) => [
6162
+ }).sections((_2) => [
6040
6163
  { type: "link", href: "/", label: "V Gene Usage" },
6041
6164
  { type: "link", href: "/jUsage", label: "J Gene Usage" },
6042
6165
  { type: "link", href: "/vjUsage", label: "V/J Gene Usage" }