udi-yac 0.10.0 → 0.11.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.
@@ -95358,72 +95358,84 @@ function m9(e) {
95358
95358
  throw Error(`Expr: unrecognized expression node ${JSON.stringify(e)}`);
95359
95359
  }
95360
95360
  var h9 = Oht("DataSourcesStore", () => {
95361
- let e = /* @__PURE__ */ r6({}), t = /* @__PURE__ */ r6({});
95362
- function n() {
95361
+ let e = /* @__PURE__ */ r6({}), t = /* @__PURE__ */ r6({}), n = /* @__PURE__ */ r6({});
95362
+ function r(e, t) {
95363
+ t === null ? delete n.value[e] : n.value[e] = {
95364
+ dimensions: [...t.dimensions],
95365
+ measures: [...t.measures]
95366
+ };
95367
+ }
95368
+ function i(e) {
95369
+ return n.value[e] ?? null;
95370
+ }
95371
+ function a(e) {
95372
+ return e in n.value;
95373
+ }
95374
+ function o() {
95363
95375
  let e = {};
95364
95376
  for (let [n, r] of Object.entries(t.value)) e[n] = r?.selection ?? null;
95365
- h.value = JSON.stringify(e);
95377
+ y.value = JSON.stringify(e);
95366
95378
  }
95367
- function r(e) {
95368
- let r = !1;
95369
- for (let [n, i] of Object.entries(e)) n in t.value && (0, f9.isEqual)(t.value[n], i) || (t.value[n] = i, r = !0);
95370
- r && n();
95379
+ function s(e) {
95380
+ let n = !1;
95381
+ for (let [r, i] of Object.entries(e)) r in t.value && (0, f9.isEqual)(t.value[r], i) || (t.value[r] = i, n = !0);
95382
+ n && o();
95371
95383
  }
95372
- function i(e, r, i) {
95373
- let a = t.value[r];
95374
- return a?.type === i ? { alreadyExists: !0 } : (t.value[r] = {
95384
+ function c(e, n, r) {
95385
+ let i = t.value[n];
95386
+ return i?.type === r ? { alreadyExists: !0 } : (t.value[n] = {
95375
95387
  dataSourceKey: e,
95376
95388
  selection: null,
95377
- type: i
95378
- }, a?.selection != null && n(), { alreadyExists: !1 });
95389
+ type: r
95390
+ }, i?.selection != null && o(), { alreadyExists: !1 });
95379
95391
  }
95380
- function a(e, r) {
95392
+ function l(e, n) {
95381
95393
  if (!(e in t.value)) throw Error(`Selection name ${e} not found`);
95382
- if (r != null && t.value[e].type === "interval") {
95383
- for (let e of Object.values(r)) if (Array.isArray(e) && e.some((e) => typeof e == "number" && !isFinite(e))) {
95384
- r = null;
95394
+ if (n != null && t.value[e].type === "interval") {
95395
+ for (let e of Object.values(n)) if (Array.isArray(e) && e.some((e) => typeof e == "number" && !isFinite(e))) {
95396
+ n = null;
95385
95397
  break;
95386
95398
  }
95387
95399
  }
95388
- let i = t.value[e].selection;
95389
- (0, f9.isEqual)(i, r) || (t.value[e].selection = r, n());
95400
+ let r = t.value[e].selection;
95401
+ (0, f9.isEqual)(r, n) || (t.value[e].selection = n, o());
95390
95402
  }
95391
- function o(e) {
95392
- a(e, null);
95403
+ function u(e) {
95404
+ l(e, null);
95393
95405
  }
95394
- function s() {
95395
- Object.keys(t.value).length !== 0 && (t.value = {}, h.value = "{}");
95406
+ function d() {
95407
+ Object.keys(t.value).length !== 0 && (t.value = {}, y.value = "{}");
95396
95408
  }
95397
- function c(e) {
95409
+ function f(e) {
95398
95410
  if (!(e in t.value)) throw Error(`Selection name ${e} not found`);
95399
95411
  return t.value[e].selection;
95400
95412
  }
95401
- let l = (e) => e.length ? EY((t) => e.every((e) => e(t))) : null;
95402
- function u(e) {
95413
+ let p = (e) => e.length ? EY((t) => e.every((e) => e(t))) : null;
95414
+ function m(e) {
95403
95415
  if (e === null) return null;
95404
95416
  let t = [];
95405
95417
  for (let [n, [r, i]] of Object.entries(e)) r != null && t.push((e) => e[n] >= r), i != null && t.push((e) => e[n] <= i);
95406
- return l(t);
95418
+ return p(t);
95407
95419
  }
95408
- function d(e) {
95420
+ function h(e) {
95409
95421
  if (e === null) return null;
95410
95422
  let t = Object.entries(e).filter(([, e]) => e.length > 0).map(([e, t]) => {
95411
95423
  let n = new Set(t.map(String));
95412
95424
  return (t) => n.has(String(t[e]));
95413
95425
  });
95414
- return l(t);
95426
+ return p(t);
95415
95427
  }
95416
- function f(e) {
95428
+ function g(e) {
95417
95429
  let { type: t, selection: n } = e;
95418
- return t === "point" ? d(n) : u(n);
95430
+ return t === "point" ? h(n) : m(n);
95419
95431
  }
95420
- function p({ key: n, inTable: r, selectionName: i, selectionMatching: a = "any", selectionEntityRelationship: o, selectionSourceKey: s }) {
95432
+ function _({ key: n, inTable: r, selectionName: i, selectionMatching: a = "any", selectionEntityRelationship: o, selectionSourceKey: s }) {
95421
95433
  let c = t.value[i];
95422
95434
  if (!c || !c.selection) return null;
95423
95435
  let { originKey: l, targetKey: u } = o || {
95424
95436
  originKey: null,
95425
95437
  targetKey: null
95426
- }, d = f(c);
95438
+ }, d = g(c);
95427
95439
  if (!l || !u || !s) {
95428
95440
  if (d) {
95429
95441
  let e = new Set(r.columnNames());
@@ -95431,31 +95443,31 @@ var h9 = Oht("DataSourcesStore", () => {
95431
95443
  }
95432
95444
  return d;
95433
95445
  }
95434
- let p = e.value[s];
95435
- if (!p || !d) return console.warn(`No relevant table or filter for mapping: ${s}`), null;
95446
+ let f = e.value[s];
95447
+ if (!f || !d) return console.warn(`No relevant table or filter for mapping: ${s}`), null;
95436
95448
  if (!r.columnNames().includes(u)) throw Error(`Identifying key [${u}] not found in table [${n}]. Ensure any filters relying on the [${u}] column are applied before other transformations that may remove it.`);
95437
- let m = p.dest.reify(), h = p.dest.filter(d).reify(), g = (e) => {
95449
+ let p = f.dest.reify(), m = f.dest.filter(d).reify(), h = (e) => {
95438
95450
  let t = new Set(e);
95439
95451
  return t.size === 0 ? "false" : EY((e) => t.has(e[u]));
95440
95452
  };
95441
95453
  if (a === "none") {
95442
- let e = new Set(h.array(l));
95454
+ let e = new Set(m.array(l));
95443
95455
  return EY((t) => t[u] != null && !e.has(t[u]));
95444
95456
  }
95445
- if (a != "all") return g(h.array(l));
95457
+ if (a != "all") return h(m.array(l));
95446
95458
  let _ = (e) => {
95447
95459
  let t = /* @__PURE__ */ new Map();
95448
95460
  for (let n of e) t.set(n, (t.get(n) ?? 0) + 1);
95449
95461
  return t;
95450
- }, v = _(m.array(l)), y = _(h.array(l)), b = [];
95462
+ }, v = _(p.array(l)), y = _(m.array(l)), b = [];
95451
95463
  for (let [e, t] of y.entries()) {
95452
95464
  let n = v.get(e) ?? 0;
95453
95465
  t > 0 && t === n && b.push(e);
95454
95466
  }
95455
- return g(b);
95467
+ return h(b);
95456
95468
  }
95457
- let m = /* @__PURE__ */ r6(!0), h = /* @__PURE__ */ r6(""), g = /* @__PURE__ */ r6(0);
95458
- async function _(t, n) {
95469
+ let v = /* @__PURE__ */ r6(!0), y = /* @__PURE__ */ r6(""), b = /* @__PURE__ */ r6(0);
95470
+ async function x(t, n) {
95459
95471
  let r = n ? t.map((e) => {
95460
95472
  let t = n[e.name];
95461
95473
  return t ? {
@@ -95466,15 +95478,15 @@ var h9 = Oht("DataSourcesStore", () => {
95466
95478
  r.some((t) => {
95467
95479
  let n = e.value[t.name];
95468
95480
  return !n || !(0, f9.isEqual)(n.source, t);
95469
- }) && (m.value = !0);
95470
- let i = r.map((e) => y(e));
95471
- await Promise.all(i), m.value = !1;
95481
+ }) && (v.value = !0);
95482
+ let i = r.map((e) => C(e));
95483
+ await Promise.all(i), v.value = !1;
95472
95484
  }
95473
- let v = /* @__PURE__ */ new Map();
95474
- async function y(t) {
95485
+ let S = /* @__PURE__ */ new Map();
95486
+ async function C(t) {
95475
95487
  let n = e.value[t.name];
95476
95488
  if (n && (0, f9.isEqual)(n.source, t)) return;
95477
- let r = t.name + "\0" + t.source, i = v.get(r);
95489
+ let r = t.name + "\0" + t.source, i = S.get(r);
95478
95490
  if (i) return i;
95479
95491
  let a = (async () => {
95480
95492
  let n = ",";
@@ -95483,16 +95495,16 @@ var h9 = Oht("DataSourcesStore", () => {
95483
95495
  e.value[t.name] = {
95484
95496
  source: t,
95485
95497
  dest: r
95486
- }, g.value++;
95498
+ }, b.value++;
95487
95499
  })();
95488
- v.set(r, a);
95500
+ S.set(r, a);
95489
95501
  try {
95490
95502
  await a;
95491
95503
  } finally {
95492
- v.delete(r);
95504
+ S.delete(r);
95493
95505
  }
95494
95506
  }
95495
- function b(t, n, r) {
95507
+ function w(t, n, r) {
95496
95508
  let i = {
95497
95509
  name: t,
95498
95510
  source: n
@@ -95500,37 +95512,37 @@ var h9 = Oht("DataSourcesStore", () => {
95500
95512
  e.value[t] = {
95501
95513
  source: i,
95502
95514
  dest: r
95503
- }, g.value++;
95515
+ }, b.value++;
95504
95516
  }
95505
- function x(t) {
95517
+ function T(t) {
95506
95518
  return t in e.value ? e.value[t] ?? null : null;
95507
95519
  }
95508
- let S = /* @__PURE__ */ new Map(), C = -1;
95509
- function w(e) {
95510
- C !== g.value && (S.clear(), C = g.value);
95511
- let t = S.get(e);
95520
+ let E = /* @__PURE__ */ new Map(), D = -1;
95521
+ function O(e) {
95522
+ D !== b.value && (E.clear(), D = b.value);
95523
+ let t = E.get(e);
95512
95524
  if (t) return t;
95513
- let n = x(e);
95525
+ let n = T(e);
95514
95526
  if (!n) return null;
95515
95527
  let r = OY(n.dest.reify());
95516
- return S.set(e, r), r;
95528
+ return E.set(e, r), r;
95517
95529
  }
95518
- let T = /* @__PURE__ */ new Map();
95519
- function E(e, t, n) {
95520
- let r = t ?? [], i = r.length > 0 && "rollup" in r[r.length - 1], a = n?.displayDataOnly ?? i, o = `${g.value}|${h.value}|${a ? "d" : "a"}|${e.join("\0")}|${JSON.stringify(t ?? null)}`, s = T.get(o);
95521
- if (s) return T.delete(o), T.set(o, s), s;
95530
+ let k = /* @__PURE__ */ new Map();
95531
+ function A(e, t, n) {
95532
+ let r = t ?? [], i = r.length > 0 && "rollup" in r[r.length - 1], a = n?.displayDataOnly ?? i, o = `${b.value}|${y.value}|${a ? "d" : "a"}|${e.join("\0")}|${JSON.stringify(t ?? null)}`, s = k.get(o);
95533
+ if (s) return k.delete(o), k.set(o, s), s;
95522
95534
  let c = () => {
95523
95535
  let t = /* @__PURE__ */ new Map();
95524
95536
  for (let n of e) {
95525
- let e = w(n);
95537
+ let e = O(n);
95526
95538
  e ? t.set(n, e) : console.warn(`Skipping missing data source for key: ${n}`);
95527
95539
  }
95528
95540
  return t;
95529
95541
  }, l = c();
95530
95542
  if (l.size !== new Set(e).size) return null;
95531
- let { data: u, containsNamedFilter: d } = D(l, t ?? [], { skipNamedFilters: !1 }), f = u.objects(), p = f;
95543
+ let { data: u, containsNamedFilter: d } = ee(l, t ?? [], { skipNamedFilters: !1 }), f = u.objects(), p = f;
95532
95544
  if (d && !a) {
95533
- let { data: e } = D(c(), t ?? [], { skipNamedFilters: !0 });
95545
+ let { data: e } = ee(c(), t ?? [], { skipNamedFilters: !0 });
95534
95546
  p = e.objects();
95535
95547
  }
95536
95548
  let m = {
@@ -95538,64 +95550,71 @@ var h9 = Oht("DataSourcesStore", () => {
95538
95550
  allData: p,
95539
95551
  isDisplayDataSubset: d
95540
95552
  };
95541
- if (T.set(o, m), T.size > 64) {
95542
- let e = T.keys().next().value;
95543
- e !== void 0 && T.delete(e);
95553
+ if (k.set(o, m), k.size > 64) {
95554
+ let e = k.keys().next().value;
95555
+ e !== void 0 && k.delete(e);
95544
95556
  }
95545
95557
  return m;
95546
95558
  }
95547
- function D(e, t, n) {
95548
- let r = new Map(e), i = !1, a = e.keys().next().value ?? "", o = e.get(a);
95549
- if (!o) throw Error(`Table not found for key: ${a}`);
95550
- let s = {
95551
- key: a,
95552
- table: o
95553
- }, c = (t) => {
95554
- let n = t ? e.get(t) : s.table;
95559
+ function ee(e, t, n) {
95560
+ let r = new Map(e), a = !1, o = e.keys().next().value ?? "", s = e.get(o);
95561
+ if (!s) throw Error(`Table not found for key: ${o}`);
95562
+ let c = {
95563
+ key: o,
95564
+ table: s
95565
+ }, l = (t) => {
95566
+ let n = t ? e.get(t) : c.table;
95555
95567
  if (!n) throw Error("in table not found");
95556
95568
  return n;
95557
- }, l = (t) => {
95558
- t.out ? s.key = t.out : t.in && !Array.isArray(t.in) && (s.key = t.in), e.set(s.key, s.table);
95569
+ }, u = (t) => {
95570
+ t.out ? c.key = t.out : t.in && !Array.isArray(t.in) && (c.key = t.in), e.set(c.key, c.table);
95559
95571
  };
95560
- for (let [o, u] of t.entries()) {
95561
- if ("filter" in u) {
95562
- let { filter: e, in: t } = u, r = c(t);
95563
- if (typeof e == "string") s.table = r.filter(e).reify();
95564
- else if (p9(e)) s.table = r.filter(m9(e)).reify();
95572
+ for (let [s, d] of t.entries()) {
95573
+ if ("filter" in d) {
95574
+ let { filter: e, in: t } = d, r = l(t);
95575
+ if (typeof e == "string") c.table = r.filter(e).reify();
95576
+ else if (p9(e)) c.table = r.filter(m9(e)).reify();
95565
95577
  else {
95566
- if (i = !0, n?.skipNamedFilters) continue;
95567
- let t = p({
95568
- key: a,
95578
+ if (a = !0, n?.skipNamedFilters) continue;
95579
+ let t = _({
95580
+ key: o,
95569
95581
  inTable: r,
95570
95582
  selectionName: e.name,
95571
95583
  selectionSourceKey: e.source,
95572
95584
  ...e.match === void 0 ? {} : { selectionMatching: e.match },
95573
95585
  ...e.entityRelationship === void 0 ? {} : { selectionEntityRelationship: e.entityRelationship }
95574
95586
  });
95575
- s.table = t ? r.filter(t).reify() : r;
95587
+ c.table = t ? r.filter(t).reify() : r;
95576
95588
  }
95577
- } else if ("groupby" in u) {
95578
- let e = c(u.in);
95579
- s.table = Array.isArray(u.groupby) ? e.groupby(...u.groupby) : e.groupby(u.groupby);
95580
- } else if ("unnest" in u) {
95581
- let e = c(u.in), { field: t, separator: n = ";", out: r = u.unnest.field } = u.unnest, i = EY((e) => {
95589
+ } else if ("only" in d) {
95590
+ let e = l(d.in), t = d.in ?? c.key, n = Array.isArray(d.only) ? d.only : [d.only], r = d.dimensions ?? i(t)?.dimensions;
95591
+ if (!r) throw Error(`'only' transformation on source '${t}' requires cube metadata: register the source's udi:dimensions via loadDataPackage, or list them inline with 'dimensions'.`);
95592
+ let a = n.filter((e) => !r.includes(e));
95593
+ if (a.length > 0) throw Error(`'only' transformation names non-dimension field(s) ${JSON.stringify(a)} on source '${t}'; its dimensions are ${JSON.stringify(r)}.`);
95594
+ let o = new Set(n);
95595
+ c.table = e.filter(EY((e) => r.every((t) => o.has(t) ? e[t] != null : e[t] == null))).reify();
95596
+ } else if ("groupby" in d) {
95597
+ let e = l(d.in);
95598
+ c.table = Array.isArray(d.groupby) ? e.groupby(...d.groupby) : e.groupby(d.groupby);
95599
+ } else if ("unnest" in d) {
95600
+ let e = l(d.in), { field: t, separator: n = ";", out: r = d.unnest.field } = d.unnest, i = EY((e) => {
95582
95601
  let r = e[t];
95583
95602
  return r == null ? [] : typeof r == "string" ? r.split(n).map((e) => e.trim()).filter((e) => e.length > 0) : [r];
95584
95603
  });
95585
- s.table = e.derive({ [r]: i }).unroll(r).reify();
95586
- } else if ("binby" in u) {
95587
- let e = c(u.in), { field: i, bins: a = 10, nice: l = !0, unit: d } = u.binby, { bin_start: f = "start", bin_end: p = "end" } = u.binby.output ?? {
95604
+ c.table = e.derive({ [r]: i }).unroll(r).reify();
95605
+ } else if ("binby" in d) {
95606
+ let e = l(d.in), { field: i, bins: a = 10, nice: o = !0, unit: u } = d.binby, { bin_start: f = "start", bin_end: p = "end" } = d.binby.output ?? {
95588
95607
  bin_start: "start",
95589
95608
  bin_end: "end"
95590
95609
  }, m = e;
95591
95610
  if (!n?.skipNamedFilters) {
95592
- let { data: e } = D(new Map(r), t.slice(0, o), { skipNamedFilters: !0 });
95611
+ let { data: e } = ee(new Map(r), t.slice(0, s), { skipNamedFilters: !0 });
95593
95612
  m = e;
95594
95613
  }
95595
- let h = d ?? 1, [g, _, v] = DY(d ? m.params({
95614
+ let h = u ?? 1, [g, _, v] = DY(u ? m.params({
95596
95615
  binField: i,
95597
- binUnit: d
95598
- }).derive({ __binby_units: (e, t) => e[t.binField] / t.binUnit }) : m, UW.bins(d ? "__binby_units" : i, a, l)), [y, b, x] = [
95616
+ binUnit: u
95617
+ }).derive({ __binby_units: (e, t) => e[t.binField] / t.binUnit }) : m, UW.bins(u ? "__binby_units" : i, a, o)), [y, b, x] = [
95599
95618
  g * h,
95600
95619
  _ * h,
95601
95620
  v * h
@@ -95603,26 +95622,26 @@ var h9 = Oht("DataSourcesStore", () => {
95603
95622
  [f]: `d => op.bin(d[${S}], ${y}, ${b}, ${x}, 0)`,
95604
95623
  [p]: `d => op.bin(d[${S}], ${y}, ${b}, ${x}, 1)`
95605
95624
  };
95606
- s.table = e.derive(C).groupby(f, p);
95607
- } else if ("rollup" in u) {
95608
- let e = c(u.in), t = {}, n = [];
95609
- for (let [e, r] of Object.entries(u.rollup)) t[e] = O(r), r.op === "frequency" && n.push(e);
95610
- s.table = e.rollup(t);
95625
+ c.table = e.derive(C).groupby(f, p);
95626
+ } else if ("rollup" in d) {
95627
+ let e = l(d.in), t = {}, n = [];
95628
+ for (let [e, r] of Object.entries(d.rollup)) t[e] = j(r), r.op === "frequency" && n.push(e);
95629
+ c.table = e.rollup(t);
95611
95630
  for (let e of n) {
95612
95631
  let t = {};
95613
- t[e] = (e, t) => e[t.freqKey] / UW.sum(e[t.freqKey]), s.table = s.table.params({ freqKey: e }).derive(t);
95632
+ t[e] = (e, t) => e[t.freqKey] / UW.sum(e[t.freqKey]), c.table = c.table.params({ freqKey: e }).derive(t);
95614
95633
  }
95615
- } else if ("orderby" in u) {
95616
- let e = c(u.in), t;
95617
- t = Array.isArray(u.orderby) ? u.orderby : [u.orderby];
95634
+ } else if ("orderby" in d) {
95635
+ let e = l(d.in), t;
95636
+ t = Array.isArray(d.orderby) ? d.orderby : [d.orderby];
95618
95637
  let n = t.flatMap((e) => {
95619
95638
  if (typeof e == "string") return [e];
95620
95639
  let t = Array.isArray(e.field) ? e.field : [e.field];
95621
95640
  return e.order === "desc" ? t.map((e) => xWe(e)) : t;
95622
95641
  });
95623
- s.table = e.orderby(n);
95624
- } else if ("derive" in u) {
95625
- let e = c(u.in), t = (0, f9.cloneDeep)(u.derive);
95642
+ c.table = e.orderby(n);
95643
+ } else if ("derive" in d) {
95644
+ let e = l(d.in), t = (0, f9.cloneDeep)(d.derive);
95626
95645
  for (let [e, n] of Object.entries(t)) if (typeof n != "string") {
95627
95646
  if (p9(n)) t[e] = m9(n);
95628
95647
  else {
@@ -95630,19 +95649,19 @@ var h9 = Oht("DataSourcesStore", () => {
95630
95649
  t[e] = SWe(p9(r) ? m9(r) : r, n.rolling.window);
95631
95650
  }
95632
95651
  }
95633
- s.table = e.derive(t);
95634
- } else if ("join" in u) {
95635
- let [t, n] = u.in, r = e.get(t), i = e.get(n);
95652
+ c.table = e.derive(t);
95653
+ } else if ("join" in d) {
95654
+ let [t, n] = d.in, r = e.get(t), i = e.get(n);
95636
95655
  if (!r || !i) throw Error("join table not found");
95637
- let a = u.join.kind === "left" ? "join_left" : "join";
95638
- if (typeof u.join.on == "string" || u.join.on.every((e) => typeof e == "string")) s.table = r[a](i, u.join.on);
95656
+ let a = d.join.kind === "left" ? "join_left" : "join";
95657
+ if (typeof d.join.on == "string" || d.join.on.every((e) => typeof e == "string")) c.table = r[a](i, d.join.on);
95639
95658
  else {
95640
- let [e, t] = u.join.on;
95659
+ let [e, t] = d.join.on;
95641
95660
  if (e.length !== t.length) throw Error("left and right multi keys must be the same length");
95642
- s.table = r.params({ leftMultiKeys: u.join.on[0] }).derive({ udi_internal_multi_key_join: EY((e, t) => t.leftMultiKeys.map((t) => e[t]).join("¶")) })[a](i.params({ rightMultiKeys: u.join.on[1] }).derive({ udi_internal_multi_key_join: EY((e, t) => t.rightMultiKeys.map((t) => e[t]).join("¶")) }), "udi_internal_multi_key_join");
95661
+ c.table = r.params({ leftMultiKeys: d.join.on[0] }).derive({ udi_internal_multi_key_join: EY((e, t) => t.leftMultiKeys.map((t) => e[t]).join("¶")) })[a](i.params({ rightMultiKeys: d.join.on[1] }).derive({ udi_internal_multi_key_join: EY((e, t) => t.rightMultiKeys.map((t) => e[t]).join("¶")) }), "udi_internal_multi_key_join");
95643
95662
  }
95644
- } else if ("kde" in u) {
95645
- let e = c(u.in), { field: t, samples: n } = u.kde, { bandwidth: r } = u.kde, { sample: i = "sample", density: a = "density" } = u.kde.output ?? {
95663
+ } else if ("kde" in d) {
95664
+ let e = l(d.in), { field: t, samples: n } = d.kde, { bandwidth: r } = d.kde, { sample: i = "sample", density: a = "density" } = d.kde.output ?? {
95646
95665
  sample: "sample",
95647
95666
  density: "density"
95648
95667
  }, o = {
@@ -95651,25 +95670,25 @@ var h9 = Oht("DataSourcesStore", () => {
95651
95670
  };
95652
95671
  if (e.isGrouped()) for (let t of e.groups().names) t != null && (o[t] = []);
95653
95672
  if (e.numRows() < 2) {
95654
- s.table = OY(o), l(u);
95673
+ c.table = OY(o), u(d);
95655
95674
  continue;
95656
95675
  }
95657
95676
  r ??= Lht(e.array(t), (e) => e), (r == null || !Number.isFinite(r) || r <= 0) && (r = 1);
95658
- let d, f = DY(e, UW.min(t)), p = DY(e, UW.max(t));
95677
+ let s, f = DY(e, UW.min(t)), p = DY(e, UW.max(t));
95659
95678
  if (!Number.isFinite(f) || !Number.isFinite(p) || f === p) {
95660
- s.table = OY(o), l(u);
95679
+ c.table = OY(o), u(d);
95661
95680
  continue;
95662
95681
  }
95663
95682
  let m = e.partitions(), h = e.column(t);
95664
95683
  for (let t = 0; t < m.length; t++) {
95665
95684
  let o = m[t];
95666
95685
  if (!o || o.length < 2) continue;
95667
- let s = OY(Bht(Array.from(o, (e) => h?.at(e)), {
95686
+ let c = OY(Bht(Array.from(o, (e) => h?.at(e)), {
95668
95687
  bandwidth: r,
95669
95688
  bins: n,
95670
95689
  extent: [f, p]
95671
95690
  }).points());
95672
- if (s = s.rename({
95691
+ if (c = c.rename({
95673
95692
  x: i,
95674
95693
  y: a
95675
95694
  }), e.isGrouped()) {
@@ -95680,21 +95699,21 @@ var h9 = Oht("DataSourcesStore", () => {
95680
95699
  let i = n.get[e], a = n.rows[t];
95681
95700
  if (a == null) throw Error("rowIndex is undefined");
95682
95701
  let o = i(a);
95683
- s = s.derive({ [r]: EY(o) });
95702
+ c = c.derive({ [r]: EY(o) });
95684
95703
  }
95685
95704
  }
95686
- d = d ? d.concat(s) : s;
95705
+ s = s ? s.concat(c) : c;
95687
95706
  }
95688
- d ||= OY(o), s.table = d;
95707
+ s ||= OY(o), c.table = s;
95689
95708
  }
95690
- l(u);
95709
+ u(d);
95691
95710
  }
95692
95711
  return {
95693
- data: s.table,
95694
- containsNamedFilter: i
95712
+ data: c.table,
95713
+ containsNamedFilter: a
95695
95714
  };
95696
95715
  }
95697
- function O(e) {
95716
+ function j(e) {
95698
95717
  switch (e.op) {
95699
95718
  case "count": return UW.count();
95700
95719
  case "sum":
@@ -95716,19 +95735,22 @@ var h9 = Oht("DataSourcesStore", () => {
95716
95735
  }
95717
95736
  return {
95718
95737
  dataSources: e,
95719
- loading: m,
95720
- tablesVersion: g,
95721
- selectionHash: h,
95722
- initDataSources: _,
95723
- seedDataSource: b,
95724
- getDataObject: E,
95725
- watchDataSelection: i,
95726
- getDataSelection: c,
95727
- updateDataSelection: a,
95728
- clearDataSelection: o,
95729
- clearAllSelections: s,
95738
+ loading: v,
95739
+ tablesVersion: b,
95740
+ selectionHash: y,
95741
+ initDataSources: x,
95742
+ seedDataSource: w,
95743
+ setCubeMetadata: r,
95744
+ getCubeMetadata: i,
95745
+ isCubeSource: a,
95746
+ getDataObject: A,
95747
+ watchDataSelection: c,
95748
+ getDataSelection: f,
95749
+ updateDataSelection: l,
95750
+ clearDataSelection: u,
95751
+ clearAllSelections: d,
95730
95752
  dataSelections: t,
95731
- bindExternalDataSelections: r
95753
+ bindExternalDataSelections: s
95732
95754
  };
95733
95755
  }), g9 = {
95734
95756
  kind: "local",
@@ -99221,20 +99243,23 @@ function Gvt(e) {
99221
99243
  }
99222
99244
  async function Kvt(e, t, n) {
99223
99245
  let r = h9(e), i = [];
99224
- for (let e of t) try {
99225
- let t = await fetch(e.url, n?.fetchOptions);
99226
- if (!t.ok) throw Error(`HTTP ${t.status} ${t.statusText}`);
99227
- let a = _We(await t.text(), { delimiter: Gvt(e) });
99228
- r.seedDataSource(e.name, e.url, a), i.push({
99229
- entityName: e.name,
99230
- fieldDescriptions: e.fieldDescriptions ?? {},
99231
- columns: a.columnNames().map((e) => ({
99232
- name: e,
99233
- values: a.array(e)
99234
- }))
99235
- });
99236
- } catch (t) {
99237
- n?.onError?.(e.name, t instanceof Error ? t.message : String(t));
99246
+ for (let e of t) {
99247
+ r.setCubeMetadata(e.name, e.cube ?? null);
99248
+ try {
99249
+ let t = await fetch(e.url, n?.fetchOptions);
99250
+ if (!t.ok) throw Error(`HTTP ${t.status} ${t.statusText}`);
99251
+ let a = _We(await t.text(), { delimiter: Gvt(e) });
99252
+ r.seedDataSource(e.name, e.url, a), i.push({
99253
+ entityName: e.name,
99254
+ fieldDescriptions: e.fieldDescriptions ?? {},
99255
+ columns: a.columnNames().map((e) => ({
99256
+ name: e,
99257
+ values: a.array(e)
99258
+ }))
99259
+ });
99260
+ } catch (t) {
99261
+ n?.onError?.(e.name, t instanceof Error ? t.message : String(t));
99262
+ }
99238
99263
  }
99239
99264
  if (i.length !== 0) try {
99240
99265
  await qvt(i, n);
@@ -99300,16 +99325,19 @@ function Zvt(e, t) {
99300
99325
  return Kvt($9, e, t);
99301
99326
  }
99302
99327
  function Qvt(e) {
99328
+ return h9($9).getCubeMetadata(e);
99329
+ }
99330
+ function $vt(e) {
99303
99331
  let t = h9($9);
99304
99332
  return K6(() => t.selectionHash, () => e(), { flush: "sync" });
99305
99333
  }
99306
- function $vt() {
99334
+ function eyt() {
99307
99335
  h9($9).clearAllSelections();
99308
99336
  }
99309
- var eyt = null, tyt = {};
99310
- function nyt() {
99337
+ var tyt = null, nyt = {};
99338
+ function ryt() {
99311
99339
  let e = h9($9);
99312
- return e.selectionHash !== eyt && (eyt = e.selectionHash, tyt = { ...e.dataSelections }), tyt;
99340
+ return e.selectionHash !== tyt && (tyt = e.selectionHash, nyt = { ...e.dataSelections }), nyt;
99313
99341
  }
99314
99342
  //#endregion
99315
- export { R9 as DEFAULT_PALETTE, g9 as LOCAL_BACKEND, Yvt as UDIVisElement, $vt as clearAllSelections, ggt as createRemoteBackend, n as formatTime, nyt as getDataSelections, _9 as getQueryBackend, Zvt as loadDataPackage, Xvt as queryData, hgt as setQueryBackend, o as setTimeFormats, Qvt as subscribeToSelections };
99343
+ export { R9 as DEFAULT_PALETTE, g9 as LOCAL_BACKEND, Yvt as UDIVisElement, eyt as clearAllSelections, ggt as createRemoteBackend, n as formatTime, Qvt as getCubeMetadata, ryt as getDataSelections, _9 as getQueryBackend, Zvt as loadDataPackage, Xvt as queryData, hgt as setQueryBackend, o as setTimeFormats, $vt as subscribeToSelections };