@milaboratories/milaboratories.ui-examples.model 1.2.22 → 1.2.23

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
@@ -20,10 +20,10 @@
20
20
  return obj;
21
21
  };
22
22
  util2.getValidEnumValues = (obj) => {
23
- const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number");
23
+ const validKeys = util2.objectKeys(obj).filter((k2) => typeof obj[obj[k2]] !== "number");
24
24
  const filtered = {};
25
- for (const k of validKeys) {
26
- filtered[k] = obj[k];
25
+ for (const k2 of validKeys) {
26
+ filtered[k2] = obj[k2];
27
27
  }
28
28
  return util2.objectValues(filtered);
29
29
  };
@@ -53,7 +53,7 @@
53
53
  return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
54
54
  }
55
55
  util2.joinValues = joinValues;
56
- util2.jsonStringifyReplacer = (_2, value) => {
56
+ util2.jsonStringifyReplacer = (_, value) => {
57
57
  if (typeof value === "bigint") {
58
58
  return value.toString();
59
59
  }
@@ -458,11 +458,11 @@
458
458
  const isDirty = (x2) => x2.status === "dirty";
459
459
  const isValid = (x2) => x2.status === "valid";
460
460
  const isAsync = (x2) => typeof Promise !== "undefined" && x2 instanceof Promise;
461
- function __classPrivateFieldGet(receiver, state, kind, f) {
461
+ function __classPrivateFieldGet(receiver, state, kind, f2) {
462
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");
463
463
  return state.get(receiver);
464
464
  }
465
- function __classPrivateFieldSet(receiver, state, value, kind, f) {
465
+ function __classPrivateFieldSet(receiver, state, value, kind, f2) {
466
466
  if (typeof state === "function" ? receiver !== state || true : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
467
467
  return state.set(receiver, value), value;
468
468
  }
@@ -3069,7 +3069,7 @@
3069
3069
  });
3070
3070
  }
3071
3071
  const params = { errorMap: ctx.common.contextualErrorMap };
3072
- const fn2 = ctx.data;
3072
+ const fn = ctx.data;
3073
3073
  if (this._def.returns instanceof ZodPromise) {
3074
3074
  const me2 = this;
3075
3075
  return OK(async function(...args) {
@@ -3078,7 +3078,7 @@
3078
3078
  error.addIssue(makeArgsIssue(args, e));
3079
3079
  throw error;
3080
3080
  });
3081
- const result = await Reflect.apply(fn2, this, parsedArgs);
3081
+ const result = await Reflect.apply(fn, this, parsedArgs);
3082
3082
  const parsedReturns = await me2._def.returns._def.type.parseAsync(result, params).catch((e) => {
3083
3083
  error.addIssue(makeReturnsIssue(result, e));
3084
3084
  throw error;
@@ -3092,7 +3092,7 @@
3092
3092
  if (!parsedArgs.success) {
3093
3093
  throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
3094
3094
  }
3095
- const result = Reflect.apply(fn2, this, parsedArgs.data);
3095
+ const result = Reflect.apply(fn, this, parsedArgs.data);
3096
3096
  const parsedReturns = me2._def.returns.safeParse(result, params);
3097
3097
  if (!parsedReturns.success) {
3098
3098
  throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
@@ -3955,17 +3955,17 @@
3955
3955
  return canonicalize;
3956
3956
  }
3957
3957
  var canonicalizeExports = requireCanonicalize();
3958
- const Be$1 = /* @__PURE__ */ getDefaultExportFromCjs(canonicalizeExports);
3959
- var V$1 = Object.defineProperty;
3960
- var T = (e, n2, r) => n2 in e ? V$1(e, n2, { enumerable: true, configurable: true, writable: true, value: r }) : e[n2] = r;
3961
- var d = (e, n2, r) => T(e, typeof n2 != "symbol" ? n2 + "" : n2, r);
3958
+ const $e = /* @__PURE__ */ getDefaultExportFromCjs(canonicalizeExports);
3959
+ var T = Object.defineProperty;
3960
+ var I = (e, n2, r) => n2 in e ? T(e, n2, { enumerable: true, configurable: true, writable: true, value: r }) : e[n2] = r;
3961
+ var f = (e, n2, r) => I(e, typeof n2 != "symbol" ? n2 + "" : n2, r);
3962
3962
  z$1.object({
3963
3963
  /** Included left border. */
3964
3964
  from: z$1.number(),
3965
3965
  /** Excluded right border. */
3966
3966
  to: z$1.number()
3967
3967
  });
3968
- function g(e) {
3968
+ function b$1(e) {
3969
3969
  throw new Error("Unexpected object: " + e);
3970
3970
  }
3971
3971
  function Se$1(e) {
@@ -3978,8 +3978,8 @@
3978
3978
  case "Json":
3979
3979
  return typeof n2.keyLength == "number" && n2.data !== void 0 && typeof n2.data == "object";
3980
3980
  case "JsonPartitioned":
3981
- return typeof n2.partitionKeyLength == "number" && n2.parts !== void 0 && typeof n2.parts == "object";
3982
3981
  case "BinaryPartitioned":
3982
+ case "ParquetPartitioned":
3983
3983
  return typeof n2.partitionKeyLength == "number" && n2.parts !== void 0 && typeof n2.parts == "object";
3984
3984
  default:
3985
3985
  return false;
@@ -3992,8 +3992,8 @@
3992
3992
  return e;
3993
3993
  case "JsonPartitioned": {
3994
3994
  const r = {};
3995
- for (const [t, o] of Object.entries(e.parts))
3996
- r[t] = n2(o);
3995
+ for (const [t, i] of Object.entries(e.parts))
3996
+ r[t] = n2(i);
3997
3997
  return {
3998
3998
  ...e,
3999
3999
  parts: r
@@ -4001,19 +4001,28 @@
4001
4001
  }
4002
4002
  case "BinaryPartitioned": {
4003
4003
  const r = {};
4004
- for (const [t, o] of Object.entries(e.parts))
4004
+ for (const [t, i] of Object.entries(e.parts))
4005
4005
  r[t] = {
4006
- index: n2(o.index),
4007
- values: n2(o.values)
4006
+ index: n2(i.index),
4007
+ values: n2(i.values)
4008
4008
  };
4009
4009
  return {
4010
4010
  ...e,
4011
4011
  parts: r
4012
4012
  };
4013
4013
  }
4014
+ case "ParquetPartitioned": {
4015
+ const r = {};
4016
+ for (const [t, i] of Object.entries(e.parts))
4017
+ r[t] = n2(i);
4018
+ return {
4019
+ ...e,
4020
+ parts: r
4021
+ };
4022
+ }
4014
4023
  }
4015
4024
  }
4016
- function _(e) {
4025
+ function M(e) {
4017
4026
  if (!e || typeof e != "object")
4018
4027
  return false;
4019
4028
  const n2 = e;
@@ -4023,93 +4032,107 @@
4023
4032
  case "Json":
4024
4033
  return typeof n2.keyLength == "number" && Array.isArray(n2.data);
4025
4034
  case "JsonPartitioned":
4026
- return typeof n2.partitionKeyLength == "number" && Array.isArray(n2.parts);
4027
4035
  case "BinaryPartitioned":
4036
+ case "ParquetPartitioned":
4028
4037
  return typeof n2.partitionKeyLength == "number" && Array.isArray(n2.parts);
4029
4038
  default:
4030
4039
  return false;
4031
4040
  }
4032
4041
  }
4033
- function Fe(e) {
4034
- return _(e) ? e.type === "JsonPartitioned" || e.type === "BinaryPartitioned" : false;
4042
+ function Ce$1(e) {
4043
+ if (!M(e)) return false;
4044
+ switch (e.type) {
4045
+ case "JsonPartitioned":
4046
+ case "BinaryPartitioned":
4047
+ case "ParquetPartitioned":
4048
+ return true;
4049
+ default:
4050
+ return false;
4051
+ }
4035
4052
  }
4036
- function je(e) {
4053
+ function Fe(e) {
4037
4054
  switch (e.type) {
4038
- case "Json": {
4039
- const n2 = Object.entries(e.data).map(([r, t]) => ({ key: JSON.parse(r), value: t }));
4055
+ case "Json":
4040
4056
  return {
4041
4057
  type: "Json",
4042
4058
  keyLength: e.keyLength,
4043
- data: n2
4059
+ data: Object.entries(e.data).map(([n2, r]) => ({ key: JSON.parse(n2), value: r }))
4044
4060
  };
4045
- }
4046
- case "JsonPartitioned": {
4047
- const n2 = Object.entries(e.parts).map(([r, t]) => ({ key: JSON.parse(r), value: t }));
4061
+ case "JsonPartitioned":
4048
4062
  return {
4049
4063
  type: "JsonPartitioned",
4050
4064
  partitionKeyLength: e.partitionKeyLength,
4051
- parts: n2
4065
+ parts: Object.entries(e.parts).map(([n2, r]) => ({ key: JSON.parse(n2), value: r }))
4052
4066
  };
4053
- }
4054
- case "BinaryPartitioned": {
4055
- const n2 = Object.entries(e.parts).map(([r, t]) => ({ key: JSON.parse(r), value: t }));
4067
+ case "BinaryPartitioned":
4056
4068
  return {
4057
4069
  type: "BinaryPartitioned",
4058
4070
  partitionKeyLength: e.partitionKeyLength,
4059
- parts: n2
4071
+ parts: Object.entries(e.parts).map(([n2, r]) => ({ key: JSON.parse(n2), value: r }))
4060
4072
  };
4061
- }
4073
+ case "ParquetPartitioned":
4074
+ return {
4075
+ type: "ParquetPartitioned",
4076
+ partitionKeyLength: e.partitionKeyLength,
4077
+ parts: Object.entries(e.parts).map(([n2, r]) => ({ key: JSON.parse(n2), value: r }))
4078
+ };
4079
+ default:
4080
+ b$1(e);
4062
4081
  }
4063
4082
  }
4064
- function Ie(e) {
4083
+ function Je$1(e) {
4065
4084
  switch (e.type) {
4066
- case "Json": {
4067
- const n2 = {};
4068
- for (const r of e.data)
4069
- n2[JSON.stringify(r.key)] = r.value;
4085
+ case "Json":
4070
4086
  return {
4071
4087
  type: "Json",
4072
4088
  keyLength: e.keyLength,
4073
- data: n2
4089
+ data: Object.fromEntries(
4090
+ e.data.map(({ key: n2, value: r }) => [JSON.stringify(n2), r])
4091
+ )
4074
4092
  };
4075
- }
4076
- case "JsonPartitioned": {
4077
- const n2 = {};
4078
- for (const r of e.parts)
4079
- n2[JSON.stringify(r.key)] = r.value;
4093
+ case "JsonPartitioned":
4080
4094
  return {
4081
4095
  type: "JsonPartitioned",
4082
4096
  partitionKeyLength: e.partitionKeyLength,
4083
- parts: n2
4097
+ parts: Object.fromEntries(
4098
+ e.parts.map(({ key: n2, value: r }) => [JSON.stringify(n2), r])
4099
+ )
4084
4100
  };
4085
- }
4086
- case "BinaryPartitioned": {
4087
- const n2 = {};
4088
- for (const r of e.parts)
4089
- n2[JSON.stringify(r.key)] = r.value;
4101
+ case "BinaryPartitioned":
4090
4102
  return {
4091
4103
  type: "BinaryPartitioned",
4092
4104
  partitionKeyLength: e.partitionKeyLength,
4093
- parts: n2
4105
+ parts: Object.fromEntries(
4106
+ e.parts.map(({ key: n2, value: r }) => [JSON.stringify(n2), r])
4107
+ )
4094
4108
  };
4095
- }
4109
+ case "ParquetPartitioned":
4110
+ return {
4111
+ type: "ParquetPartitioned",
4112
+ partitionKeyLength: e.partitionKeyLength,
4113
+ parts: Object.fromEntries(
4114
+ e.parts.map(({ key: n2, value: r }) => [JSON.stringify(n2), r])
4115
+ )
4116
+ };
4117
+ default:
4118
+ b$1(e);
4096
4119
  }
4097
4120
  }
4098
- function Ve$1(e) {
4121
+ function Te$1(e) {
4099
4122
  return {
4100
4123
  columnId: e.id,
4101
4124
  spec: e.spec
4102
4125
  };
4103
4126
  }
4104
4127
  function h(e) {
4105
- const { type: n2, name: r, domain: t } = e, o = { type: n2, name: r };
4106
- return t && Object.entries(t).length > 0 && Object.assign(o, { domain: t }), o;
4128
+ const { type: n2, name: r, domain: t } = e, i = { type: n2, name: r };
4129
+ return t && Object.entries(t).length > 0 && Object.assign(i, { domain: t }), i;
4107
4130
  }
4108
- function I(e) {
4131
+ function J(e) {
4109
4132
  return e.map(h);
4110
4133
  }
4111
- function Te$1(e) {
4112
- return Be$1(h(e));
4134
+ function Ie(e) {
4135
+ return $e(h(e));
4113
4136
  }
4114
4137
  function G$1(e, n2) {
4115
4138
  if (e === void 0) return n2 === void 0;
@@ -4122,9 +4145,9 @@
4122
4145
  return e.name === n2.name && G$1(e.domain, n2.domain);
4123
4146
  }
4124
4147
  function Be(e, n2) {
4125
- return { ...e, src: b$1(e.src, n2) };
4148
+ return { ...e, src: v(e.src, n2) };
4126
4149
  }
4127
- function b$1(e, n2) {
4150
+ function v(e, n2) {
4128
4151
  switch (e.type) {
4129
4152
  case "column":
4130
4153
  return {
@@ -4144,50 +4167,50 @@
4144
4167
  case "full":
4145
4168
  return {
4146
4169
  type: e.type,
4147
- entries: e.entries.map((r) => b$1(r, n2))
4170
+ entries: e.entries.map((r) => v(r, n2))
4148
4171
  };
4149
4172
  case "outer":
4150
4173
  return {
4151
4174
  type: "outer",
4152
- primary: b$1(e.primary, n2),
4153
- secondary: e.secondary.map((r) => b$1(r, n2))
4175
+ primary: v(e.primary, n2),
4176
+ secondary: e.secondary.map((r) => v(r, n2))
4154
4177
  };
4155
4178
  default:
4156
- g(e);
4179
+ b$1(e);
4157
4180
  }
4158
4181
  }
4159
4182
  function Q$1(e) {
4160
- return Be$1(e);
4183
+ return $e(e);
4161
4184
  }
4162
- function A(e) {
4163
- return Be$1(h(e));
4185
+ function k(e) {
4186
+ return $e(h(e));
4164
4187
  }
4165
- function x(e, n2) {
4188
+ function A$1(e, n2) {
4166
4189
  return JSON.stringify([e, n2]);
4167
4190
  }
4168
- class Me {
4191
+ class Ke {
4169
4192
  /**
4170
4193
  * Creates a new anchor context from a set of anchor column specifications
4171
4194
  * @param anchors Record of anchor column specifications indexed by anchor ID
4172
4195
  */
4173
4196
  constructor(n2) {
4174
- d(this, "domains", /* @__PURE__ */ new Map());
4175
- d(this, "axes", /* @__PURE__ */ new Map());
4176
- d(this, "domainPacks", []);
4177
- d(this, "domainPackToAnchor", /* @__PURE__ */ new Map());
4197
+ f(this, "domains", /* @__PURE__ */ new Map());
4198
+ f(this, "axes", /* @__PURE__ */ new Map());
4199
+ f(this, "domainPacks", []);
4200
+ f(this, "domainPackToAnchor", /* @__PURE__ */ new Map());
4178
4201
  this.anchors = n2;
4179
4202
  const r = Object.entries(n2);
4180
- r.sort((t, o) => t[0].localeCompare(o[0]));
4181
- for (const [t, o] of r) {
4182
- for (let i = 0; i < o.axesSpec.length; i++) {
4183
- const s2 = o.axesSpec[i], a = A(s2);
4184
- this.axes.set(a, { anchor: t, idx: i });
4203
+ r.sort((t, i) => t[0].localeCompare(i[0]));
4204
+ for (const [t, i] of r) {
4205
+ for (let o = 0; o < i.axesSpec.length; o++) {
4206
+ const s2 = i.axesSpec[o], a = k(s2);
4207
+ this.axes.set(a, { anchor: t, idx: o });
4185
4208
  }
4186
- if (o.domain !== void 0) {
4187
- const i = Object.entries(o.domain);
4188
- i.sort((s2, a) => s2[0].localeCompare(a[0])), this.domainPackToAnchor.set(JSON.stringify(i), t), this.domainPacks.push(i.map(([s2]) => s2));
4189
- for (const [s2, a] of i) {
4190
- const u2 = x(s2, a);
4209
+ if (i.domain !== void 0) {
4210
+ const o = Object.entries(i.domain);
4211
+ o.sort((s2, a) => s2[0].localeCompare(a[0])), this.domainPackToAnchor.set(JSON.stringify(o), t), this.domainPacks.push(o.map(([s2]) => s2));
4212
+ for (const [s2, a] of o) {
4213
+ const u2 = A$1(s2, a);
4191
4214
  this.domains.set(u2, t);
4192
4215
  }
4193
4216
  }
@@ -4201,52 +4224,52 @@
4201
4224
  name: n2.name,
4202
4225
  axes: []
4203
4226
  };
4204
- let o;
4227
+ let i;
4205
4228
  if (n2.domain !== void 0)
4206
4229
  e:
4207
4230
  for (const s2 of this.domainPacks) {
4208
4231
  const a = [];
4209
4232
  for (const c2 of s2) {
4210
- const f = n2.domain[c2];
4211
- if (f !== void 0)
4212
- a.push([c2, f]);
4233
+ const d = n2.domain[c2];
4234
+ if (d !== void 0)
4235
+ a.push([c2, d]);
4213
4236
  else
4214
4237
  break e;
4215
4238
  }
4216
4239
  const u2 = this.domainPackToAnchor.get(JSON.stringify(a));
4217
4240
  if (u2 !== void 0) {
4218
- t.domainAnchor = u2, o = new Set(s2);
4241
+ t.domainAnchor = u2, i = new Set(s2);
4219
4242
  break;
4220
4243
  }
4221
4244
  }
4222
4245
  for (const [s2, a] of Object.entries(n2.domain ?? {})) {
4223
- if (o !== void 0 && o.has(s2))
4246
+ if (i !== void 0 && i.has(s2))
4224
4247
  continue;
4225
- const u2 = x(s2, a), c2 = this.domains.get(u2);
4248
+ const u2 = A$1(s2, a), c2 = this.domains.get(u2);
4226
4249
  t.domain ?? (t.domain = {}), t.domain[s2] = c2 ? { anchor: c2 } : a;
4227
4250
  }
4228
4251
  if (t.axes = n2.axesSpec.map((s2) => {
4229
- const a = A(s2), u2 = this.axes.get(a);
4252
+ const a = k(s2), u2 = this.axes.get(a);
4230
4253
  return u2 === void 0 ? h(s2) : u2;
4231
4254
  }), !r || r.length === 0)
4232
4255
  return t;
4233
- const i = [];
4256
+ const o = [];
4234
4257
  for (const s2 of r) {
4235
4258
  const [a, u2] = s2;
4236
4259
  if (typeof a == "number") {
4237
4260
  if (a < 0 || a >= n2.axesSpec.length)
4238
4261
  throw new Error(`Axis index ${a} is out of bounds (0-${n2.axesSpec.length - 1})`);
4239
- i.push([a, u2]);
4262
+ o.push([a, u2]);
4240
4263
  } else {
4241
- const c2 = n2.axesSpec.findIndex((f) => f.name === a);
4264
+ const c2 = n2.axesSpec.findIndex((d) => d.name === a);
4242
4265
  if (c2 === -1)
4243
4266
  throw new Error(`Axis with name "${a}" not found in the column specification`);
4244
- i.push([c2, u2]);
4267
+ o.push([c2, u2]);
4245
4268
  }
4246
4269
  }
4247
- return i.sort((s2, a) => s2[0] - a[0]), {
4270
+ return o.sort((s2, a) => s2[0] - a[0]), {
4248
4271
  source: t,
4249
- axisFilters: i
4272
+ axisFilters: o
4250
4273
  };
4251
4274
  }
4252
4275
  /**
@@ -4259,34 +4282,34 @@
4259
4282
  return Q$1(this.derive(n2, r));
4260
4283
  }
4261
4284
  }
4262
- function _e(e, n2, r) {
4263
- const t = { ...n2 }, o = (r == null ? void 0 : r.ignoreMissingDomains) ?? false;
4285
+ function Me(e, n2, r) {
4286
+ const t = { ...n2 }, i = (r == null ? void 0 : r.ignoreMissingDomains) ?? false;
4264
4287
  if (t.domainAnchor !== void 0) {
4265
- const i = e[t.domainAnchor];
4266
- if (!i)
4288
+ const o = e[t.domainAnchor];
4289
+ if (!o)
4267
4290
  throw new Error(`Anchor "${t.domainAnchor}" not found`);
4268
- const s2 = i.domain || {};
4291
+ const s2 = o.domain || {};
4269
4292
  t.domain = { ...s2, ...t.domain }, delete t.domainAnchor;
4270
4293
  }
4271
4294
  if (t.domain) {
4272
- const i = {};
4295
+ const o = {};
4273
4296
  for (const [s2, a] of Object.entries(t.domain))
4274
4297
  if (typeof a == "string")
4275
- i[s2] = a;
4298
+ o[s2] = a;
4276
4299
  else {
4277
4300
  const u2 = e[a.anchor];
4278
4301
  if (!u2)
4279
4302
  throw new Error(`Anchor "${a.anchor}" not found for domain key "${s2}"`);
4280
4303
  if (!u2.domain || u2.domain[s2] === void 0) {
4281
- if (!o)
4304
+ if (!i)
4282
4305
  throw new Error(`Domain key "${s2}" not found in anchor "${a.anchor}"`);
4283
4306
  continue;
4284
4307
  }
4285
- i[s2] = u2.domain[s2];
4308
+ o[s2] = u2.domain[s2];
4286
4309
  }
4287
- t.domain = i;
4310
+ t.domain = o;
4288
4311
  }
4289
- return t.axes && (t.axes = t.axes.map((i) => Y(e, i))), t;
4312
+ return t.axes && (t.axes = t.axes.map((o) => Y(e, o))), t;
4290
4313
  }
4291
4314
  function Y(e, n2) {
4292
4315
  if (!Z(n2))
@@ -4299,19 +4322,19 @@
4299
4322
  throw new Error(`Axis index ${n2.idx} out of bounds for anchor "${r}"`);
4300
4323
  return t.axesSpec[n2.idx];
4301
4324
  } else if ("name" in n2) {
4302
- const o = t.axesSpec.filter((i) => i.name === n2.name);
4303
- if (o.length > 1)
4325
+ const i = t.axesSpec.filter((o) => o.name === n2.name);
4326
+ if (i.length > 1)
4304
4327
  throw new Error(`Multiple axes with name "${n2.name}" found in anchor "${r}"`);
4305
- if (o.length === 0)
4328
+ if (i.length === 0)
4306
4329
  throw new Error(`Axis with name "${n2.name}" not found in anchor "${r}"`);
4307
- return o[0];
4330
+ return i[0];
4308
4331
  } else if ("id" in n2) {
4309
- const o = t.axesSpec.filter((i) => X$1(n2.id, h(i)));
4310
- if (o.length > 1)
4332
+ const i = t.axesSpec.filter((o) => X$1(n2.id, h(o)));
4333
+ if (i.length > 1)
4311
4334
  throw new Error(`Multiple matching axes found for matcher in anchor "${r}"`);
4312
- if (o.length === 0)
4335
+ if (i.length === 0)
4313
4336
  throw new Error(`No matching axis found for matcher in anchor "${r}"`);
4314
- return o[0];
4337
+ return i[0];
4315
4338
  }
4316
4339
  throw new Error("Unsupported axis reference type");
4317
4340
  }
@@ -4347,19 +4370,19 @@
4347
4370
  return;
4348
4371
  case "full":
4349
4372
  case "inner":
4350
- for (const o of t.entries) r(o);
4373
+ for (const i of t.entries) r(i);
4351
4374
  return;
4352
4375
  case "outer":
4353
4376
  r(t.primary);
4354
- for (const o of t.secondary) r(o);
4377
+ for (const i of t.secondary) r(i);
4355
4378
  return;
4356
4379
  default:
4357
- g(t);
4380
+ b$1(t);
4358
4381
  }
4359
4382
  };
4360
4383
  return r(e), [...n2.values()];
4361
4384
  }
4362
- function P(e, n2) {
4385
+ function x(e, n2) {
4363
4386
  if (e.name !== void 0 && e.name !== n2.name)
4364
4387
  return false;
4365
4388
  if (e.type !== void 0) {
@@ -4371,8 +4394,8 @@
4371
4394
  }
4372
4395
  if (e.domain !== void 0) {
4373
4396
  const r = n2.domain || {};
4374
- for (const [t, o] of Object.entries(e.domain))
4375
- if (r[t] !== o)
4397
+ for (const [t, i] of Object.entries(e.domain))
4398
+ if (r[t] !== i)
4376
4399
  return false;
4377
4400
  }
4378
4401
  return true;
@@ -4389,35 +4412,35 @@
4389
4412
  }
4390
4413
  if (n2.domain !== void 0) {
4391
4414
  const r = e.domain || {};
4392
- for (const [t, o] of Object.entries(n2.domain))
4393
- if (r[t] !== o)
4415
+ for (const [t, i] of Object.entries(n2.domain))
4416
+ if (r[t] !== i)
4394
4417
  return false;
4395
4418
  }
4396
4419
  if (n2.axes !== void 0) {
4397
4420
  const r = e.axesSpec.map(h);
4398
4421
  if (n2.partialAxesMatch) {
4399
4422
  for (const t of n2.axes)
4400
- if (!r.some((o) => P(t, o)))
4423
+ if (!r.some((i) => x(t, i)))
4401
4424
  return false;
4402
4425
  } else {
4403
4426
  if (r.length !== n2.axes.length)
4404
4427
  return false;
4405
4428
  for (let t = 0; t < n2.axes.length; t++)
4406
- if (!P(n2.axes[t], r[t]))
4429
+ if (!x(n2.axes[t], r[t]))
4407
4430
  return false;
4408
4431
  }
4409
4432
  }
4410
4433
  if (n2.annotations !== void 0) {
4411
4434
  const r = e.annotations || {};
4412
- for (const [t, o] of Object.entries(n2.annotations))
4413
- if (r[t] !== o)
4435
+ for (const [t, i] of Object.entries(n2.annotations))
4436
+ if (r[t] !== i)
4414
4437
  return false;
4415
4438
  }
4416
4439
  if (n2.annotationPatterns !== void 0) {
4417
4440
  const r = e.annotations || {};
4418
- for (const [t, o] of Object.entries(n2.annotationPatterns)) {
4419
- const i = r[t];
4420
- if (i === void 0 || !new RegExp(o).test(i))
4441
+ for (const [t, i] of Object.entries(n2.annotationPatterns)) {
4442
+ const o = r[t];
4443
+ if (o === void 0 || !new RegExp(i).test(o))
4421
4444
  return false;
4422
4445
  }
4423
4446
  }
@@ -4431,7 +4454,7 @@
4431
4454
  kind: e.kind,
4432
4455
  name: e.name
4433
4456
  };
4434
- return e.domain !== void 0 && (n2.domain = e.domain), l$1(e) && (n2.axesSpec = I(e.axesSpec)), Be$1(n2);
4457
+ return e.domain !== void 0 && (n2.domain = e.domain), l$1(e) && (n2.axesSpec = J(e.axesSpec)), $e(n2);
4435
4458
  }
4436
4459
  z$1.object({
4437
4460
  __isRef: z$1.literal(true).describe("Crucial marker for the block dependency tree reconstruction"),
@@ -4460,8 +4483,8 @@
4460
4483
  }
4461
4484
  const ae = 24;
4462
4485
  z$1.string().length(ae).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/).brand("PlId");
4463
- function fn(e) {
4464
- return Be$1(e);
4486
+ function dn(e) {
4487
+ return $e(e);
4465
4488
  }
4466
4489
  var stringify = { exports: {} };
4467
4490
  var hasRequiredStringify;
@@ -4531,13 +4554,13 @@
4531
4554
  function Pt() {
4532
4555
  return typeof globalThis.getPlatforma < "u" || typeof globalThis.platforma < "u";
4533
4556
  }
4534
- function $e(t) {
4557
+ function Je(t) {
4535
4558
  if (t && typeof globalThis.getPlatforma == "function")
4536
4559
  return globalThis.getPlatforma(t);
4537
4560
  if (typeof globalThis.platforma < "u") return globalThis.platforma;
4538
4561
  throw new Error("Can't get platforma instance.");
4539
4562
  }
4540
- function At() {
4563
+ function wt() {
4541
4564
  if (typeof globalThis.cfgRenderCtx < "u") return globalThis.cfgRenderCtx;
4542
4565
  }
4543
4566
  function b() {
@@ -4545,13 +4568,13 @@
4545
4568
  throw new Error("Not in config rendering context");
4546
4569
  }
4547
4570
  function G(t, e) {
4548
- const n2 = At();
4571
+ const n2 = wt();
4549
4572
  if (n2 === void 0) return false;
4550
4573
  if (t in n2.callbackRegistry) throw new Error(`Callback with key ${t} already registered.`);
4551
4574
  return n2.callbackRegistry[t] = e, true;
4552
4575
  }
4553
4576
  const fe = /* @__PURE__ */ new Map();
4554
- function wt(t, e) {
4577
+ function At(t, e) {
4555
4578
  t in b().callbackRegistry || (b().callbackRegistry[t] = (n2) => {
4556
4579
  for (const r of fe.get(t))
4557
4580
  r(n2);
@@ -4561,7 +4584,7 @@
4561
4584
  constructor(e, n2 = (r) => r) {
4562
4585
  V(this, "isResolved", false);
4563
4586
  V(this, "resolvedValue");
4564
- this.handle = e, this.postProcess = n2, wt(e, (r) => {
4587
+ this.handle = e, this.postProcess = n2, At(e, (r) => {
4565
4588
  this.resolvedValue = n2(r), this.isResolved = true;
4566
4589
  });
4567
4590
  }
@@ -4809,47 +4832,47 @@
4809
4832
  label: z$1.string()
4810
4833
  }), Et = z$1.array(Lt), Vt = 1e-3, kt = "__LABEL__", Ee = "__LABEL__@1";
4811
4834
  function ze(t, e, n2 = {}) {
4812
- const r = /* @__PURE__ */ new Map(), i = n2.forceTraceElements !== void 0 && n2.forceTraceElements.length > 0 ? new Set(n2.forceTraceElements) : void 0, o = /* @__PURE__ */ new Map(), s2 = t.map((d2) => {
4813
- var c2, v;
4814
- const y = e(d2);
4815
- let p2, g2, C;
4816
- "spec" in y && typeof y.spec == "object" ? (p2 = y.spec, g2 = y.prefixTrace, C = y.suffixTrace) : p2 = y;
4817
- const E2 = (c2 = p2.annotations) == null ? void 0 : c2[It], F = (v = p2.annotations) == null ? void 0 : v[_t], S = (F ? Et.safeParse(JSON.parse(F)).data : void 0) ?? [], P2 = [
4818
- ...g2 ?? [],
4835
+ const r = /* @__PURE__ */ new Map(), i = n2.forceTraceElements !== void 0 && n2.forceTraceElements.length > 0 ? new Set(n2.forceTraceElements) : void 0, o = /* @__PURE__ */ new Map(), s2 = t.map((d) => {
4836
+ var c2, v2;
4837
+ const y = e(d);
4838
+ let p2, g, C;
4839
+ "spec" in y && typeof y.spec == "object" ? (p2 = y.spec, g = y.prefixTrace, C = y.suffixTrace) : p2 = y;
4840
+ const E2 = (c2 = p2.annotations) == null ? void 0 : c2[It], F = (v2 = p2.annotations) == null ? void 0 : v2[_t], S = (F ? Et.safeParse(JSON.parse(F)).data : void 0) ?? [], P = [
4841
+ ...g ?? [],
4819
4842
  ...S,
4820
4843
  ...C ?? []
4821
4844
  ];
4822
4845
  if (E2 !== void 0) {
4823
4846
  const I2 = { label: E2, type: kt, importance: -2 };
4824
- n2.addLabelAsSuffix ? P2.push(I2) : P2.splice(0, 0, I2);
4847
+ n2.addLabelAsSuffix ? P.push(I2) : P.splice(0, 0, I2);
4825
4848
  }
4826
4849
  const T2 = [], x2 = /* @__PURE__ */ new Map();
4827
- for (let I2 = P2.length - 1; I2 >= 0; --I2) {
4828
- const { type: $ } = P2[I2], K = P2[I2].importance ?? 0, j = (x2.get($) ?? 0) + 1;
4829
- x2.set($, j);
4830
- const N = `${$}@${j}`;
4850
+ for (let I2 = P.length - 1; I2 >= 0; --I2) {
4851
+ const { type: J2 } = P[I2], K = P[I2].importance ?? 0, q = (x2.get(J2) ?? 0) + 1;
4852
+ x2.set(J2, q);
4853
+ const N = `${J2}@${q}`;
4831
4854
  o.set(N, (o.get(N) ?? 0) + 1), r.set(
4832
4855
  N,
4833
4856
  Math.max(
4834
4857
  r.get(N) ?? Number.NEGATIVE_INFINITY,
4835
- K - (P2.length - I2) * Vt
4858
+ K - (P.length - I2) * Vt
4836
4859
  )
4837
- ), T2.push({ ...P2[I2], fullType: N, occurrenceIndex: j });
4860
+ ), T2.push({ ...P[I2], fullType: N, occurrenceIndex: q });
4838
4861
  }
4839
4862
  return T2.reverse(), {
4840
- value: d2,
4863
+ value: d,
4841
4864
  spec: p2,
4842
4865
  label: E2,
4843
4866
  fullTrace: T2
4844
4867
  };
4845
4868
  }), a = [], l2 = [], u2 = [...r];
4846
- u2.sort(([, d2], [, y]) => y - d2);
4847
- for (const [d2] of u2)
4848
- d2.endsWith("@1") || o.get(d2) === t.length ? a.push(d2) : l2.push(d2);
4849
- const h2 = (d2, y = false) => {
4869
+ u2.sort(([, d], [, y]) => y - d);
4870
+ for (const [d] of u2)
4871
+ d.endsWith("@1") || o.get(d) === t.length ? a.push(d) : l2.push(d);
4872
+ const h2 = (d, y = false) => {
4850
4873
  const p2 = [];
4851
- for (let g2 = 0; g2 < s2.length; g2++) {
4852
- const C = s2[g2], E2 = C.fullTrace.filter((P2) => d2.has(P2.fullType) || i && i.has(P2.type));
4874
+ for (let g = 0; g < s2.length; g++) {
4875
+ const C = s2[g], E2 = C.fullTrace.filter((P) => d.has(P.fullType) || i && i.has(P.type));
4853
4876
  if (E2.length === 0)
4854
4877
  if (y)
4855
4878
  p2.push({
@@ -4857,7 +4880,7 @@
4857
4880
  value: C.value
4858
4881
  });
4859
4882
  else return;
4860
- const F = E2.map((P2) => P2.label), S = n2.separator ?? " / ";
4883
+ const F = E2.map((P) => P.label), S = n2.separator ?? " / ";
4861
4884
  p2.push({
4862
4885
  label: F.join(S),
4863
4886
  value: C.value
@@ -4869,19 +4892,19 @@
4869
4892
  if (l2.length !== 0) throw new Error("Non-empty secondary types list while main types list is empty.");
4870
4893
  return h2(new Set(Ee), true);
4871
4894
  }
4872
- let f = 0, m2 = -1;
4873
- for (; f < a.length; ) {
4874
- const d2 = /* @__PURE__ */ new Set();
4875
- n2.includeNativeLabel && d2.add(Ee);
4876
- for (let p2 = 0; p2 < f; ++p2) d2.add(a[p2]);
4877
- m2 >= 0 && d2.add(a[m2]);
4878
- const y = h2(d2);
4895
+ let f2 = 0, m2 = -1;
4896
+ for (; f2 < a.length; ) {
4897
+ const d = /* @__PURE__ */ new Set();
4898
+ n2.includeNativeLabel && d.add(Ee);
4899
+ for (let p2 = 0; p2 < f2; ++p2) d.add(a[p2]);
4900
+ m2 >= 0 && d.add(a[m2]);
4901
+ const y = h2(d);
4879
4902
  if (y !== void 0 && new Set(y.map((p2) => p2.label)).size === t.length) return y;
4880
- m2++, m2 >= a.length && (f++, m2 = f);
4903
+ m2++, m2 >= a.length && (f2++, m2 = f2);
4881
4904
  }
4882
4905
  return h2(/* @__PURE__ */ new Set([...a, ...l2]), true);
4883
4906
  }
4884
- const ee = "PColumnData/", le = ee + "ResourceMap", ue = ee + "Partitioned/ResourceMap", H = ee + "JsonPartitioned", J = ee + "BinaryPartitioned", Xe = ee + "Partitioned/", ce = Xe + "JsonPartitioned", z = Xe + "BinaryPartitioned";
4907
+ const ee = "PColumnData/", le = ee + "ResourceMap", ue = ee + "Partitioned/ResourceMap", H = ee + "JsonPartitioned", B = ee + "BinaryPartitioned", Xe = ee + "Partitioned/", ce = Xe + "JsonPartitioned", z = Xe + "BinaryPartitioned";
4885
4908
  const ve = (t) => {
4886
4909
  if (t.endsWith(".index"))
4887
4910
  return { baseKey: t.substring(0, t.length - 6), type: "index" };
@@ -4901,7 +4924,7 @@
4901
4924
  i = n2.partitionKeyLength + n2.keyLength;
4902
4925
  break;
4903
4926
  case H:
4904
- case J:
4927
+ case B:
4905
4928
  i = n2.partitionKeyLength;
4906
4929
  break;
4907
4930
  case z:
@@ -4912,9 +4935,9 @@
4912
4935
  switch (e) {
4913
4936
  case le:
4914
4937
  case H:
4915
- case J:
4938
+ case B:
4916
4939
  for (let o of t.listInputFields()) {
4917
- e === J && (o = ve(o).baseKey);
4940
+ e === B && (o = ve(o).baseKey);
4918
4941
  const s2 = [...JSON.parse(o)];
4919
4942
  r.push(s2);
4920
4943
  }
@@ -4956,7 +4979,7 @@
4956
4979
  }
4957
4980
  function Rt(t) {
4958
4981
  if (t === void 0) return;
4959
- if (_(t))
4982
+ if (M(t))
4960
4983
  return Dt(t);
4961
4984
  const e = Ot(t);
4962
4985
  if (!e) return;
@@ -4996,7 +5019,7 @@
4996
5019
  parts: i
4997
5020
  };
4998
5021
  }
4999
- case J: {
5022
+ case B: {
5000
5023
  if (typeof (r == null ? void 0 : r.partitionKeyLength) != "number")
5001
5024
  throw new Error(`Missing partitionKeyLength in metadata for ${n2}`);
5002
5025
  const i = [], o = /* @__PURE__ */ new Map();
@@ -5051,8 +5074,8 @@
5051
5074
  for (const s2 of t.listInputFields()) {
5052
5075
  const a = t.resolve({ field: s2, assertFieldType: "Input" });
5053
5076
  if (a === void 0) return;
5054
- if (a.resourceType.name !== J)
5055
- throw new Error(`Expected ${J} inside ${n2}, but got ${a.resourceType.name}`);
5077
+ if (a.resourceType.name !== B)
5078
+ throw new Error(`Expected ${B} inside ${n2}, but got ${a.resourceType.name}`);
5056
5079
  const l2 = Ce(a, JSON.parse(s2));
5057
5080
  if (l2 === void 0) return;
5058
5081
  if (l2.type !== "BinaryPartitioned")
@@ -5071,70 +5094,82 @@
5071
5094
  }
5072
5095
  function Nt(t) {
5073
5096
  if (t !== void 0) {
5074
- if (_(t)) return t;
5075
- if (Se$1(t)) return je(t);
5097
+ if (M(t)) return t;
5098
+ if (Se$1(t)) return Fe(t);
5076
5099
  if (t instanceof O) return Ce(t);
5077
5100
  throw new Error(`Unexpected input type: ${typeof t}`);
5078
5101
  }
5079
5102
  }
5080
5103
  function Ut(t, e) {
5081
- const n2 = [...e].sort((o, s2) => s2[0] - o[0]);
5082
- if (t.type === "JsonPartitioned" || t.type === "BinaryPartitioned") {
5083
- const { partitionKeyLength: o } = t;
5084
- for (const [s2] of e)
5085
- if (s2 >= o)
5086
- throw new Error(`Can't filter on non-partitioned axis ${s2}. Must be >= ${o}`);
5087
- } else if (t.type === "Json") {
5088
- const { keyLength: o } = t;
5089
- for (const [s2] of e)
5090
- if (s2 >= o)
5091
- throw new Error(`Can't filter on non-data axis ${s2}. Must be >= ${o}`);
5092
- }
5093
- const r = (o) => {
5094
- for (const [s2, a] of n2)
5095
- if (o[s2] !== a)
5104
+ const n2 = [...e].sort((s2, a) => a[0] - s2[0]), { type: r } = t;
5105
+ switch (r) {
5106
+ case "Json": {
5107
+ const { keyLength: s2 } = t;
5108
+ for (const [a] of e)
5109
+ if (a >= s2)
5110
+ throw new Error(`Can't filter on non-data axis ${a}. Must be >= ${s2}`);
5111
+ break;
5112
+ }
5113
+ case "JsonPartitioned":
5114
+ case "BinaryPartitioned":
5115
+ case "ParquetPartitioned": {
5116
+ const { partitionKeyLength: s2 } = t;
5117
+ for (const [a] of e)
5118
+ if (a >= s2)
5119
+ throw new Error(`Can't filter on non-partitioned axis ${a}. Must be >= ${s2}`);
5120
+ break;
5121
+ }
5122
+ default:
5123
+ throw new Error(`Unsupported data info type: ${r}`);
5124
+ }
5125
+ const i = (s2) => {
5126
+ for (const [a, l2] of n2)
5127
+ if (s2[a] !== l2)
5096
5128
  return false;
5097
5129
  return true;
5098
- }, i = (o) => {
5099
- const s2 = [...o];
5100
- for (const [a] of n2)
5101
- s2.splice(a, 1);
5102
- return s2;
5130
+ }, o = (s2) => {
5131
+ const a = [...s2];
5132
+ for (const [l2] of n2)
5133
+ a.splice(l2, 1);
5134
+ return a;
5103
5135
  };
5104
5136
  switch (t.type) {
5105
- case "Json": {
5106
- const o = t.data.filter((s2) => r(s2.key)).map((s2) => ({
5107
- key: i(s2.key),
5108
- value: s2.value
5109
- }));
5137
+ case "Json":
5110
5138
  return {
5111
5139
  type: "Json",
5112
5140
  keyLength: t.keyLength - e.length,
5113
- data: o
5141
+ data: t.data.filter((s2) => i(s2.key)).map((s2) => ({
5142
+ key: o(s2.key),
5143
+ value: s2.value
5144
+ }))
5114
5145
  };
5115
- }
5116
- case "JsonPartitioned": {
5117
- const o = t.parts.filter((s2) => r(s2.key)).map((s2) => ({
5118
- key: i(s2.key),
5119
- value: s2.value
5120
- }));
5146
+ case "JsonPartitioned":
5121
5147
  return {
5122
5148
  type: "JsonPartitioned",
5123
5149
  partitionKeyLength: t.partitionKeyLength - e.length,
5124
- parts: o
5150
+ parts: t.parts.filter((s2) => i(s2.key)).map((s2) => ({
5151
+ key: o(s2.key),
5152
+ value: s2.value
5153
+ }))
5125
5154
  };
5126
- }
5127
- case "BinaryPartitioned": {
5128
- const o = t.parts.filter((s2) => r(s2.key)).map((s2) => ({
5129
- key: i(s2.key),
5130
- value: s2.value
5131
- }));
5155
+ case "BinaryPartitioned":
5132
5156
  return {
5133
5157
  type: "BinaryPartitioned",
5134
5158
  partitionKeyLength: t.partitionKeyLength - e.length,
5135
- parts: o
5159
+ parts: t.parts.filter((s2) => i(s2.key)).map((s2) => ({
5160
+ key: o(s2.key),
5161
+ value: s2.value
5162
+ }))
5163
+ };
5164
+ case "ParquetPartitioned":
5165
+ return {
5166
+ type: "ParquetPartitioned",
5167
+ partitionKeyLength: t.partitionKeyLength - e.length,
5168
+ parts: t.parts.filter((s2) => i(s2.key)).map((s2) => ({
5169
+ key: o(s2.key),
5170
+ value: s2.value
5171
+ }))
5136
5172
  };
5137
- }
5138
5173
  }
5139
5174
  }
5140
5175
  function Kt(t) {
@@ -5152,30 +5187,30 @@
5152
5187
  return this.columns.filter((r) => n2(r.spec));
5153
5188
  }
5154
5189
  }
5155
- function jt(t) {
5190
+ function qt(t) {
5156
5191
  if (t)
5157
5192
  return t.map((e) => ({
5158
- type: `split:${Te$1(e.axisId)}`,
5193
+ type: `split:${Ie(e.axisId)}`,
5159
5194
  label: e.label,
5160
5195
  importance: 1e6
5161
5196
  // High importance for split filters in labels
5162
5197
  }));
5163
5198
  }
5164
- function qt(t) {
5199
+ function jt(t) {
5165
5200
  if (t)
5166
5201
  return t.map((e) => [e.axisIdx, e.value]);
5167
5202
  }
5168
- function Bt(t, e) {
5203
+ function $t(t, e) {
5169
5204
  if (!e || e.length === 0) return t;
5170
5205
  const n2 = [...e].sort((r, i) => r[0] - i[0]);
5171
- return Be$1({ id: t, axisFilters: n2 });
5206
+ return $e({ id: t, axisFilters: n2 });
5172
5207
  }
5173
5208
  function Ve(t) {
5174
5209
  if (!t || typeof t != "object") return false;
5175
5210
  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);
5176
5211
  return !!e.domainAnchor || n2 || r;
5177
5212
  }
5178
- function Jt(t) {
5213
+ function Bt(t) {
5179
5214
  if (typeof t != "object" || !("axes" in t) || t.axes === void 0)
5180
5215
  return [];
5181
5216
  const e = t.axes.map((n2, r) => typeof n2 == "object" && "split" in n2 && n2.split === true ? r : -1).filter((n2) => n2 !== -1);
@@ -5215,24 +5250,24 @@
5215
5250
  };
5216
5251
  let u2 = () => false;
5217
5252
  if (a) {
5218
- const p2 = (Array.isArray(a) ? a : [a]).map((g2) => {
5219
- if (Ve(g2)) {
5253
+ const p2 = (Array.isArray(a) ? a : [a]).map((g) => {
5254
+ if (Ve(g)) {
5220
5255
  if (!r)
5221
5256
  throw new Error("Anchored selectors in exclude require an AnchoredIdDeriver to be provided in options.");
5222
- return Qe$1(_e(r.anchors, g2, n2));
5257
+ return Qe$1(Me(r.anchors, g, n2));
5223
5258
  } else
5224
- return Qe$1(g2);
5259
+ return Qe$1(g);
5225
5260
  });
5226
- u2 = (g2) => p2.some((C) => C(g2));
5261
+ u2 = (g) => p2.some((C) => C(g));
5227
5262
  }
5228
- const h$1 = typeof e == "function" ? [e] : Array.isArray(e) ? e : [e], f = [], m2 = /* @__PURE__ */ new Set();
5263
+ const h$1 = typeof e == "function" ? [e] : Array.isArray(e) ? e : [e], f2 = [], m2 = /* @__PURE__ */ new Set();
5229
5264
  for (const p2 of h$1) {
5230
- const g2 = Ve(p2);
5265
+ const g = Ve(p2);
5231
5266
  let C;
5232
- if (g2) {
5267
+ if (g) {
5233
5268
  if (!r)
5234
5269
  throw new Error("Anchored selectors require an AnchoredIdDeriver to be provided in options.");
5235
- C = _e(r.anchors, p2, n2);
5270
+ C = Me(r.anchors, p2, n2);
5236
5271
  } else
5237
5272
  C = p2;
5238
5273
  const E2 = /* @__PURE__ */ new Set(), F = [];
@@ -5242,16 +5277,16 @@
5242
5277
  if (u2(c2.spec)) continue;
5243
5278
  if (E2.has(c2.id))
5244
5279
  throw new Error(`Duplicate column id ${c2.id} in provider ${T2.constructor.name}`);
5245
- const v = Ye(c2.spec);
5246
- m2.has(v) || (E2.add(c2.id), m2.add(v), F.push(c2));
5280
+ const v2 = Ye(c2.spec);
5281
+ m2.has(v2) || (E2.add(c2.id), m2.add(v2), F.push(c2));
5247
5282
  }
5248
5283
  }
5249
5284
  if (F.length === 0) continue;
5250
- const S = Jt(p2), P2 = S.length > 0;
5285
+ const S = Bt(p2), P = S.length > 0;
5251
5286
  for (const T2 of F) {
5252
5287
  if (!l$1(T2.spec)) continue;
5253
5288
  const x2 = T2.spec;
5254
- if (P2) {
5289
+ if (P) {
5255
5290
  if (Kt(T2.data))
5256
5291
  throw new Error(`Splitting is not supported for PColumns with PColumnValues data format. Column id: ${T2.id}`);
5257
5292
  const c2 = Nt(T2.data);
@@ -5259,40 +5294,40 @@
5259
5294
  if (o) continue;
5260
5295
  return;
5261
5296
  }
5262
- if (!Fe(c2))
5297
+ if (!Ce$1(c2))
5263
5298
  throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${c2.type} for column ${T2.id}`);
5264
- const v = Rt(c2), I2 = S[S.length - 1];
5299
+ const v2 = Rt(c2), I2 = S[S.length - 1];
5265
5300
  if (I2 >= c2.partitionKeyLength)
5266
5301
  throw new Error(`Not enough partition keys (${c2.partitionKeyLength}) for requested split axes (max index ${I2}) in column ${x2.name}`);
5267
- const $ = S.map((_2) => this.findLabels(h(x2.axesSpec[_2]))), K = [], j = (_2, W) => {
5302
+ const J2 = S.map((_) => this.findLabels(h(x2.axesSpec[_]))), K = [], q = (_, W) => {
5268
5303
  if (W >= S.length) {
5269
- if (K.push([..._2]), K.length > 1e4)
5304
+ if (K.push([..._]), K.length > 1e4)
5270
5305
  throw new Error("Too many key combinations, aborting.");
5271
5306
  return;
5272
5307
  }
5273
- const M = S[W];
5274
- if (M >= v.length)
5275
- throw new Error(`Axis index ${M} out of bounds for unique keys array (length ${v.length}) during split key generation for column ${T2.id}`);
5276
- const q = v[M];
5277
- if (!q || q.length === 0) {
5308
+ const M2 = S[W];
5309
+ if (M2 >= v2.length)
5310
+ throw new Error(`Axis index ${M2} out of bounds for unique keys array (length ${v2.length}) during split key generation for column ${T2.id}`);
5311
+ const j = v2[M2];
5312
+ if (!j || j.length === 0) {
5278
5313
  K.length = 0;
5279
5314
  return;
5280
5315
  }
5281
- for (const te of q)
5282
- _2.push(te), j(_2, W + 1), _2.pop();
5316
+ for (const te of j)
5317
+ _.push(te), q(_, W + 1), _.pop();
5283
5318
  };
5284
- if (j([], 0), K.length === 0)
5319
+ if (q([], 0), K.length === 0)
5285
5320
  continue;
5286
- const N = [...x2.axesSpec], et = S.map((_2) => _2);
5287
- for (let _2 = S.length - 1; _2 >= 0; _2--)
5288
- N.splice(S[_2], 1);
5321
+ const N = [...x2.axesSpec], et = S.map((_) => _);
5322
+ for (let _ = S.length - 1; _ >= 0; _--)
5323
+ N.splice(S[_], 1);
5289
5324
  const tt = { ...x2, axesSpec: N };
5290
- for (const _2 of K) {
5291
- const W = _2.map((M, q) => {
5292
- const te = et[q], nt = h(x2.axesSpec[te]), de = $[q], rt = (de == null ? void 0 : de[M]) ?? String(M);
5293
- return { axisIdx: te, axisId: nt, value: M, label: rt };
5325
+ for (const _ of K) {
5326
+ const W = _.map((M2, j) => {
5327
+ const te = et[j], nt = h(x2.axesSpec[te]), de = J2[j], rt = (de == null ? void 0 : de[M2]) ?? String(M2);
5328
+ return { axisIdx: te, axisId: nt, value: M2, label: rt };
5294
5329
  });
5295
- f.push({
5330
+ f2.push({
5296
5331
  type: "split",
5297
5332
  originalColumn: T2,
5298
5333
  spec: x2,
@@ -5302,7 +5337,7 @@
5302
5337
  });
5303
5338
  }
5304
5339
  } else
5305
- f.push({
5340
+ f2.push({
5306
5341
  type: "direct",
5307
5342
  originalColumn: T2,
5308
5343
  spec: x2,
@@ -5310,31 +5345,31 @@
5310
5345
  });
5311
5346
  }
5312
5347
  }
5313
- if (f.length === 0) return [];
5314
- const d2 = ze(
5315
- f,
5348
+ if (f2.length === 0) return [];
5349
+ const d = ze(
5350
+ f2,
5316
5351
  (p2) => ({
5317
5352
  spec: p2.spec,
5318
- suffixTrace: p2.type === "split" ? jt(p2.axisFilters) : void 0
5353
+ suffixTrace: p2.type === "split" ? qt(p2.axisFilters) : void 0
5319
5354
  }),
5320
5355
  l2
5321
5356
  ), y = [];
5322
- for (const { value: p2, label: g2 } of d2) {
5323
- const { originalColumn: C, spec: E2 } = p2, F = p2.type === "split" ? p2.axisFilters : void 0, S = qt(F);
5324
- let P2;
5325
- r ? P2 = r.deriveS(E2, S) : P2 = Bt(C.id, S);
5357
+ for (const { value: p2, label: g } of d) {
5358
+ const { originalColumn: C, spec: E2 } = p2, F = p2.type === "split" ? p2.axisFilters : void 0, S = jt(F);
5359
+ let P;
5360
+ r ? P = r.deriveS(E2, S) : P = $t(C.id, S);
5326
5361
  let T2 = { ...p2.adjustedSpec };
5327
5362
  s2 && (T2 = {
5328
5363
  ...T2,
5329
5364
  annotations: {
5330
5365
  ...T2.annotations ?? {},
5331
- "pl7.app/label": g2
5366
+ "pl7.app/label": g
5332
5367
  }
5333
5368
  }), y.push({
5334
- id: P2,
5369
+ id: P,
5335
5370
  spec: T2,
5336
- data: () => p2.type === "split" ? Ie(Ut(p2.dataEntries, S)) : p2.originalColumn.data,
5337
- label: g2
5371
+ data: () => p2.type === "split" ? Je$1(Ut(p2.dataEntries, S)) : p2.originalColumn.data,
5372
+ label: g
5338
5373
  });
5339
5374
  }
5340
5375
  return y;
@@ -5405,7 +5440,7 @@
5405
5440
  function ke(t) {
5406
5441
  return Ge$1(t, (e) => e instanceof O ? e.handle : Se$1(e) ? Oe$1(e, (n2) => n2.handle) : e);
5407
5442
  }
5408
- class $t {
5443
+ class Jt {
5409
5444
  constructor() {
5410
5445
  V(this, "ctx", b());
5411
5446
  }
@@ -5427,7 +5462,7 @@
5427
5462
  }));
5428
5463
  }
5429
5464
  resolveAnchorCtx(e) {
5430
- if (e instanceof Me) return e;
5465
+ if (e instanceof Ke) return e;
5431
5466
  const n2 = {};
5432
5467
  for (const [r, i] of Object.entries(e))
5433
5468
  if (nn$1(i)) {
@@ -5437,7 +5472,7 @@
5437
5472
  n2[r] = o;
5438
5473
  } else
5439
5474
  n2[r] = i;
5440
- return new Me(n2);
5475
+ return new Ke(n2);
5441
5476
  }
5442
5477
  /**
5443
5478
  * Returns columns that match the provided anchors and selectors. It applies axis filters and label derivation.
@@ -5649,7 +5684,7 @@
5649
5684
  let a = null;
5650
5685
  const l2 = this;
5651
5686
  return {
5652
- id: Be$1(i),
5687
+ id: $e(i),
5653
5688
  spec: s2,
5654
5689
  get data() {
5655
5690
  var u2;
@@ -5680,7 +5715,7 @@
5680
5715
  V(this, "_argsCache");
5681
5716
  V(this, "_uiStateCache");
5682
5717
  V(this, "_activeArgsCache");
5683
- V(this, "resultPool", new $t());
5718
+ V(this, "resultPool", new Jt());
5684
5719
  this.ctx = b();
5685
5720
  }
5686
5721
  get args() {
@@ -5788,7 +5823,7 @@
5788
5823
  this.ctx.logError(e);
5789
5824
  }
5790
5825
  }
5791
- const Wt = "1.42.10", X = Wt;
5826
+ const Wt = "1.42.15", X = Wt;
5792
5827
  function Gt(t) {
5793
5828
  return t.__renderLambda === true;
5794
5829
  }
@@ -5796,12 +5831,12 @@
5796
5831
  if (t !== void 0)
5797
5832
  return Gt(t) ? t.handle : t;
5798
5833
  }
5799
- const w = class w2 {
5834
+ const A = class A2 {
5800
5835
  constructor(e, n2, r, i, o, s2, a, l2, u2) {
5801
5836
  this._renderingMode = e, this._initialArgs = n2, this._initialUiState = r, this._outputs = i, this._inputsValid = o, this._sections = s2, this._title = a, this._enrichmentTargets = l2, this._featureFlags = u2;
5802
5837
  }
5803
5838
  static create(e = "Heavy") {
5804
- return new w2(
5839
+ return new A2(
5805
5840
  e,
5806
5841
  void 0,
5807
5842
  {},
@@ -5810,13 +5845,13 @@
5810
5845
  se([]),
5811
5846
  void 0,
5812
5847
  void 0,
5813
- { ...w2.INITIAL_BLOCK_FEATURE_FLAGS }
5848
+ { ...A2.INITIAL_BLOCK_FEATURE_FLAGS }
5814
5849
  );
5815
5850
  }
5816
5851
  output(e, n2, r = {}) {
5817
5852
  if (typeof n2 == "function") {
5818
5853
  const i = `output#${e}`;
5819
- return G(i, () => n2(new ne())), new w2(
5854
+ return G(i, () => n2(new ne())), new A2(
5820
5855
  this._renderingMode,
5821
5856
  this._initialArgs,
5822
5857
  this._initialUiState,
@@ -5835,7 +5870,7 @@
5835
5870
  this._featureFlags
5836
5871
  );
5837
5872
  } else
5838
- return new w2(
5873
+ return new A2(
5839
5874
  this._renderingMode,
5840
5875
  this._initialArgs,
5841
5876
  this._initialUiState,
@@ -5855,7 +5890,7 @@
5855
5890
  return this.output(e, n2, { retentive: true });
5856
5891
  }
5857
5892
  argsValid(e) {
5858
- return typeof e == "function" ? (G("inputsValid", () => e(new ne())), new w2(
5893
+ return typeof e == "function" ? (G("inputsValid", () => e(new ne())), new A2(
5859
5894
  this._renderingMode,
5860
5895
  this._initialArgs,
5861
5896
  this._initialUiState,
@@ -5868,7 +5903,7 @@
5868
5903
  this._title,
5869
5904
  this._enrichmentTargets,
5870
5905
  this._featureFlags
5871
- )) : new w2(
5906
+ )) : new A2(
5872
5907
  this._renderingMode,
5873
5908
  this._initialArgs,
5874
5909
  this._initialUiState,
@@ -5881,7 +5916,7 @@
5881
5916
  );
5882
5917
  }
5883
5918
  sections(e) {
5884
- return Array.isArray(e) ? this.sections(se(e)) : typeof e == "function" ? (G("sections", () => e(new ne())), new w2(
5919
+ return Array.isArray(e) ? this.sections(se(e)) : typeof e == "function" ? (G("sections", () => e(new ne())), new A2(
5885
5920
  this._renderingMode,
5886
5921
  this._initialArgs,
5887
5922
  this._initialUiState,
@@ -5891,7 +5926,7 @@
5891
5926
  this._title,
5892
5927
  this._enrichmentTargets,
5893
5928
  this._featureFlags
5894
- )) : new w2(
5929
+ )) : new A2(
5895
5930
  this._renderingMode,
5896
5931
  this._initialArgs,
5897
5932
  this._initialUiState,
@@ -5905,7 +5940,7 @@
5905
5940
  }
5906
5941
  /** Sets a rendering function to derive block title, shown for the block in the left blocks-overview panel. */
5907
5942
  title(e) {
5908
- return G("title", () => e(new ne())), new w2(
5943
+ return G("title", () => e(new ne())), new A2(
5909
5944
  this._renderingMode,
5910
5945
  this._initialArgs,
5911
5946
  this._initialUiState,
@@ -5922,7 +5957,7 @@
5922
5957
  * @deprecated use {@link withArgs}
5923
5958
  * */
5924
5959
  initialArgs(e) {
5925
- return new w2(
5960
+ return new A2(
5926
5961
  this._renderingMode,
5927
5962
  e,
5928
5963
  this._initialUiState,
@@ -5936,7 +5971,7 @@
5936
5971
  }
5937
5972
  /** Sets initial args for the block, this value must be specified. */
5938
5973
  withArgs(e) {
5939
- return new w2(
5974
+ return new A2(
5940
5975
  this._renderingMode,
5941
5976
  e,
5942
5977
  this._initialUiState,
@@ -5950,7 +5985,7 @@
5950
5985
  }
5951
5986
  /** Defines type and sets initial value for block UiState. */
5952
5987
  withUiState(e) {
5953
- return new w2(
5988
+ return new A2(
5954
5989
  this._renderingMode,
5955
5990
  this._initialArgs,
5956
5991
  e,
@@ -5964,7 +5999,7 @@
5964
5999
  }
5965
6000
  /** Sets or overrides feature flags for the block. */
5966
6001
  withFeatureFlags(e) {
5967
- return new w2(
6002
+ return new A2(
5968
6003
  this._renderingMode,
5969
6004
  this._initialArgs,
5970
6005
  this._initialUiState,
@@ -5981,7 +6016,7 @@
5981
6016
  * Influences dependency graph construction.
5982
6017
  */
5983
6018
  enriches(e) {
5984
- return G("enrichmentTargets", e), new w2(
6019
+ return G("enrichmentTargets", e), new A2(
5985
6020
  this._renderingMode,
5986
6021
  this._initialArgs,
5987
6022
  this._initialUiState,
@@ -6028,15 +6063,15 @@
6028
6063
  Object.entries(this._outputs).map(([r, i]) => [r, me(i)])
6029
6064
  )
6030
6065
  };
6031
- return globalThis.platformaApiVersion = e, Pt() ? $e({ sdkVersion: X, apiVersion: platformaApiVersion }) : { config: n2 };
6066
+ return globalThis.platformaApiVersion = e, Pt() ? Je({ sdkVersion: X, apiVersion: platformaApiVersion }) : { config: n2 };
6032
6067
  }
6033
6068
  };
6034
- V(w, "INITIAL_BLOCK_FEATURE_FLAGS", {
6069
+ V(A, "INITIAL_BLOCK_FEATURE_FLAGS", {
6035
6070
  supportsLazyState: true,
6036
6071
  requiresUIAPIVersion: 1,
6037
6072
  requiresModelAPIVersion: 1
6038
6073
  });
6039
- let Oe = w;
6074
+ let Oe = A;
6040
6075
  function Qe() {
6041
6076
  return {
6042
6077
  sourceId: null,
@@ -6095,14 +6130,14 @@
6095
6130
  return u2;
6096
6131
  }, s2 = [];
6097
6132
  for (const a of e) {
6098
- const l2 = a.spec.axesSpec[0], u2 = h(l2), h$1 = i.findIndex((f) => X$1(f, u2));
6133
+ const l2 = a.spec.axesSpec[0], u2 = h(l2), h$1 = i.findIndex((f2) => X$1(f2, u2));
6099
6134
  if (h$1 !== -1) {
6100
- const f = i[h$1], m2 = Object.keys(f.domain ?? {}).length, d2 = Object.keys(l2.domain ?? {}).length;
6101
- m2 > d2 ? s2.push({
6102
- id: o(a.id, f.domain),
6135
+ const f2 = i[h$1], m2 = Object.keys(f2.domain ?? {}).length, d = Object.keys(l2.domain ?? {}).length;
6136
+ m2 > d ? s2.push({
6137
+ id: o(a.id, f2.domain),
6103
6138
  spec: {
6104
6139
  ...a.spec,
6105
- axesSpec: [{ ...f, annotations: l2.annotations }]
6140
+ axesSpec: [{ ...f2, annotations: l2.annotations }]
6106
6141
  },
6107
6142
  data: a.data
6108
6143
  }) : s2.push(a), i.splice(h$1, 1);
@@ -6125,6 +6160,8 @@
6125
6160
  return Object.values(i.parts).every((s2) => s2.getIsReadyOrError());
6126
6161
  case "BinaryPartitioned":
6127
6162
  return Object.values(i.parts).every((s2) => s2.index.getIsReadyOrError() && s2.values.getIsReadyOrError());
6163
+ case "ParquetPartitioned":
6164
+ return Object.values(i.parts).every((s2) => s2.getIsReadyOrError());
6128
6165
  }
6129
6166
  else
6130
6167
  throw Error(`unsupported column data type: ${i}`);
@@ -6167,49 +6204,49 @@
6167
6204
  if (e.length === 0) return;
6168
6205
  const i = e.filter((c2) => Pe(c2.spec) || !Yt(c2.spec)), o = Ht(n2), s2 = zt(t.resultPool);
6169
6206
  if (!s2) return;
6170
- const a = Re(i.map(Ve$1), s2), l2 = [...i, ...a], h$1 = [
6207
+ const a = Re(i.map(Te$1), s2), l2 = [...i, ...a], h$1 = [
6171
6208
  ...ge(
6172
- [...l2.flatMap((c2) => c2.spec.axesSpec.map((v) => h(v)))],
6173
- (c2) => fn(c2)
6209
+ [...l2.flatMap((c2) => c2.spec.axesSpec.map((v2) => h(v2)))],
6210
+ (c2) => dn(c2)
6174
6211
  ).map((c2) => ({ type: "axis", id: c2 })),
6175
6212
  ...l2.map((c2) => ({ type: "column", id: c2.id }))
6176
- ], f = new Set(h$1.map((c2) => fn(c2))), m2 = (c2) => f.has(fn(c2)), d2 = "full", y = o.pTableParams.partitionFilters.filter((c2) => {
6177
- const v = m2(c2.column);
6178
- return v || t.logWarn(`Partition filter ${JSON.stringify(c2)} does not match provided columns, skipping`), v;
6213
+ ], f2 = new Set(h$1.map((c2) => dn(c2))), m2 = (c2) => f2.has(dn(c2)), d = "full", y = o.pTableParams.partitionFilters.filter((c2) => {
6214
+ const v2 = m2(c2.column);
6215
+ return v2 || t.logWarn(`Partition filter ${JSON.stringify(c2)} does not match provided columns, skipping`), v2;
6179
6216
  }), p2 = ge(
6180
6217
  [...[], ...o.pTableParams.filters],
6181
- (c2) => fn(c2.column)
6218
+ (c2) => dn(c2.column)
6182
6219
  ).filter((c2) => {
6183
- const v = m2(c2.column);
6184
- return v || t.logWarn(`Filter ${JSON.stringify(c2)} does not match provided columns, skipping`), v;
6185
- }), g2 = ge(
6220
+ const v2 = m2(c2.column);
6221
+ return v2 || t.logWarn(`Filter ${JSON.stringify(c2)} does not match provided columns, skipping`), v2;
6222
+ }), g = ge(
6186
6223
  [...[], ...o.pTableParams.sorting],
6187
- (c2) => fn(c2.column)
6224
+ (c2) => dn(c2.column)
6188
6225
  ).filter((c2) => {
6189
- const v = m2(c2.column);
6190
- return v || t.logWarn(`Sorting ${JSON.stringify(c2)} does not match provided columns, skipping`), v;
6226
+ const v2 = m2(c2.column);
6227
+ return v2 || t.logWarn(`Sorting ${JSON.stringify(c2)} does not match provided columns, skipping`), v2;
6191
6228
  }), C = Ne({
6192
6229
  columns: i,
6193
6230
  labelColumns: a,
6194
- coreJoinType: d2,
6231
+ coreJoinType: d,
6195
6232
  partitionFilters: y,
6196
6233
  filters: p2,
6197
- sorting: g2,
6234
+ sorting: g,
6198
6235
  coreColumnPredicate: void 0
6199
6236
  }), E2 = t.createPTable(C), F = new Set((() => {
6200
6237
  const c2 = o.pTableParams.hiddenColIds;
6201
- return c2 || i.filter((v) => Qt(v.spec)).map((v) => v.id);
6238
+ return c2 || i.filter((v2) => Qt(v2.spec)).map((v2) => v2.id);
6202
6239
  })());
6203
- i.filter((c2) => Pe(c2.spec)).forEach((c2) => F.delete(c2.id)), [...y.map((c2) => c2.column), ...p2.map((c2) => c2.column), ...g2.map((c2) => c2.column)].filter((c2) => c2.type === "column").forEach((c2) => F.delete(c2.id));
6204
- const S = i.filter((c2) => !F.has(c2.id)), P2 = Re(S.map(Ve$1), s2);
6205
- if (!Xt([...S, ...P2])) return;
6240
+ i.filter((c2) => Pe(c2.spec)).forEach((c2) => F.delete(c2.id)), [...y.map((c2) => c2.column), ...p2.map((c2) => c2.column), ...g.map((c2) => c2.column)].filter((c2) => c2.type === "column").forEach((c2) => F.delete(c2.id));
6241
+ const S = i.filter((c2) => !F.has(c2.id)), P = Re(S.map(Te$1), s2);
6242
+ if (!Xt([...S, ...P])) return;
6206
6243
  const T2 = Ne({
6207
6244
  columns: S,
6208
- labelColumns: P2,
6209
- coreJoinType: d2,
6245
+ labelColumns: P,
6246
+ coreJoinType: d,
6210
6247
  partitionFilters: y,
6211
6248
  filters: p2,
6212
- sorting: g2,
6249
+ sorting: g,
6213
6250
  coreColumnPredicate: void 0
6214
6251
  }), x2 = t.createPTable(T2);
6215
6252
  return {
@@ -6319,10 +6356,10 @@
6319
6356
  ]
6320
6357
  },
6321
6358
  data: times(rowCount, (i) => {
6322
- const v = i + 1;
6359
+ const v2 = i + 1;
6323
6360
  return {
6324
- key: [makePartitionId(rowCount, v), v],
6325
- val: v.toString()
6361
+ key: [makePartitionId(rowCount, v2), v2],
6362
+ val: v2.toString()
6326
6363
  };
6327
6364
  })
6328
6365
  },
@@ -6356,10 +6393,10 @@
6356
6393
  ]
6357
6394
  },
6358
6395
  data: times(rowCount, (i) => {
6359
- const v = i + 1;
6396
+ const v2 = i + 1;
6360
6397
  return {
6361
- key: [makePartitionId(rowCount, v), v],
6362
- val: v + 0.1
6398
+ key: [makePartitionId(rowCount, v2), v2],
6399
+ val: v2 + 0.1
6363
6400
  };
6364
6401
  })
6365
6402
  },
@@ -6383,10 +6420,10 @@
6383
6420
  ]
6384
6421
  },
6385
6422
  data: times(rowCount, (i) => {
6386
- const v = i + 1;
6423
+ const v2 = i + 1;
6387
6424
  return {
6388
- key: [v],
6389
- val: 1e5 - v
6425
+ key: [v2],
6426
+ val: 1e5 - v2
6390
6427
  };
6391
6428
  })
6392
6429
  },
@@ -6419,9 +6456,9 @@
6419
6456
  ]
6420
6457
  },
6421
6458
  data: times(rowCount, (i) => {
6422
- const v = i + 1;
6459
+ const v2 = i + 1;
6423
6460
  return {
6424
- key: [v, v],
6461
+ key: [v2, v2],
6425
6462
  val: 1
6426
6463
  };
6427
6464
  })
@@ -6450,10 +6487,10 @@
6450
6487
  ]
6451
6488
  },
6452
6489
  data: times(rowCount, (i) => {
6453
- const v = i + 1;
6490
+ const v2 = i + 1;
6454
6491
  return {
6455
- key: [v],
6456
- val: v.toString().repeat(j)
6492
+ key: [v2],
6493
+ val: v2.toString().repeat(j)
6457
6494
  };
6458
6495
  })
6459
6496
  });