@bicharts/chart-host 0.6.38 → 0.6.39

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.
@@ -1481,88 +1481,88 @@ function Wt(n, s) {
1481
1481
  return { iso: i, unmatched: M2, matchedRows: h3, totalRows: n.length };
1482
1482
  }
1483
1483
 
1484
- // ../shape-core/dist/chunk-Q7UDK4PL.mjs
1484
+ // ../shape-core/dist/chunk-M7OKMBJS.mjs
1485
1485
  var import_papaparse = __toESM(require_papaparse_min(), 1);
1486
1486
  /*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */
1487
- var Ie = { "north-america": "AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI", "south-america": "AR BO BR CL CO EC FK GF GY PE PY SR UY VE", europe: "AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA", africa: "AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW", asia: "AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE", oceania: "AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS", antarctica: "AQ BV GS HM TF" };
1487
+ var we = { "north-america": "AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI", "south-america": "AR BO BR CL CO EC FK GF GY PE PY SR UY VE", europe: "AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA", africa: "AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW", asia: "AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE", oceania: "AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS", antarctica: "AQ BV GS HM TF" };
1488
1488
  var J3 = (() => {
1489
1489
  let t = /* @__PURE__ */ new Map();
1490
- for (let e of Object.keys(Ie)) for (let n of Ie[e].split(/\s+/)) n && t.set(n, e);
1490
+ for (let e of Object.keys(we)) for (let n of we[e].split(/\s+/)) n && t.set(n, e);
1491
1491
  return t;
1492
1492
  })();
1493
- function ut2(t) {
1493
+ function lt2(t) {
1494
1494
  for (let [e, n] of t) {
1495
1495
  let r2 = J3.get(e);
1496
1496
  r2 && !J3.has(n) && J3.set(n, r2);
1497
1497
  }
1498
1498
  }
1499
- ut2(N);
1500
- var pt = ["rate", "ratio", "pct", "percent", "percentage", "rating", "share", "score", "index", "nps", "csat", "margin", "yield", "coverage", "utilization", "utilisation", "z[_-]?score", "average", "avg", "mean", "median", "stddev", "variance", "gpa", "percentile", "quantile", "efficiency", "accuracy", "probability", "multiplier", "coefficient", "correlation", "occupancy", "age", "bmi", "temperature", "density", "pressure", "humidity", "ph", "velocity", "speed", "elevation", "altitude", "latency", "throughput", "bandwidth", "iops", "ppm", "ppb", "dpmo", "bps", "temperatuur", "temperatur", "temperatura", "teplota", "lampotila", "homerseklet", "sicaklik", "pression", "presion", "pressao", "pressione", "druck", "tryck", "tlak", "paine", "nyomas", "presiune", "humidite", "humedad", "umidade", "umidita", "feuchtigkeit", "vochtigheid", "kosteus", "vlhkost", "vitesse", "velocidad", "velocidade", "velocita", "geschwindigkeit", "snelheid", "hastighet", "hastighed", "rychlost", "nopeus", "sebesseg", "brzina", "predkosc", "densite", "densidad", "densidade", "densita", "dichte", "dichtheid", "hustota", "tiheys", "gustoca", "moyenne", "mediane", "promedio", "mediana", "gemiddelde", "durchschnitt", "mittelwert", "genomsnitt", "gennemsnit", "gjennomsnitt", "keskiarvo", "atlag", "ortalama", "prosjek", "srednia", "prumer", "priemer", "medie", "taux", "tasa", "taxa", "tasso", "verhaltnis", "verhouding", "aandeel", "anteil", "andel", "osuus", "podil", "udzial", "udio", "pourcentage", "porcentaje", "percentual", "prozent", "procent", "prosentti", "szazalek", "yuzde", "participacion", "participacao", "pondere", "omjer", "arany", "oran", "rata", "leeftijd", "edad", "idade", "wiek", "eletkor", "varsta", "puntuacion", "pontuacao", "punteggio", "betyg", "ocena", "indice", "indeks", "wskaznik", "puan"];
1501
- var ht = ["pct", "percent", "percentage", "rate", "ratio", "rating", "share", "score", "index", "nps", "csat", "margin", "yield", "coverage", "utilization", "utilisation", "gpa", "percentile", "quantile", "bmi", "density", "pressure", "humidity", "velocity", "efficiency", "occupancy", "latency", "throughput", "bandwidth", "iops", "ppm", "ppb", "dpmo", "bps"];
1502
- var bt = ["latitude", "longitude"];
1499
+ lt2(N);
1500
+ var ht = ["rate", "ratio", "pct", "percent", "percentage", "rating", "share", "score", "index", "nps", "csat", "margin", "yield", "coverage", "utilization", "utilisation", "z[_-]?score", "average", "avg", "mean", "median", "stddev", "variance", "gpa", "percentile", "quantile", "efficiency", "accuracy", "probability", "multiplier", "coefficient", "correlation", "occupancy", "age", "bmi", "temperature", "density", "pressure", "humidity", "ph", "velocity", "speed", "elevation", "altitude", "latency", "throughput", "bandwidth", "iops", "ppm", "ppb", "dpmo", "bps", "temperatuur", "temperatur", "temperatura", "teplota", "lampotila", "homerseklet", "sicaklik", "pression", "presion", "pressao", "pressione", "druck", "tryck", "tlak", "paine", "nyomas", "presiune", "humidite", "humedad", "umidade", "umidita", "feuchtigkeit", "vochtigheid", "kosteus", "vlhkost", "vitesse", "velocidad", "velocidade", "velocita", "geschwindigkeit", "snelheid", "hastighet", "hastighed", "rychlost", "nopeus", "sebesseg", "brzina", "predkosc", "densite", "densidad", "densidade", "densita", "dichte", "dichtheid", "hustota", "tiheys", "gustoca", "moyenne", "mediane", "promedio", "mediana", "gemiddelde", "durchschnitt", "mittelwert", "genomsnitt", "gennemsnit", "gjennomsnitt", "keskiarvo", "atlag", "ortalama", "prosjek", "srednia", "prumer", "priemer", "medie", "taux", "tasa", "taxa", "tasso", "verhaltnis", "verhouding", "aandeel", "anteil", "andel", "osuus", "podil", "udzial", "udio", "pourcentage", "porcentaje", "percentual", "prozent", "procent", "prosentti", "szazalek", "yuzde", "participacion", "participacao", "pondere", "omjer", "arany", "oran", "rata", "leeftijd", "edad", "idade", "wiek", "eletkor", "varsta", "puntuacion", "pontuacao", "punteggio", "betyg", "ocena", "indice", "indeks", "wskaznik", "puan"];
1501
+ var bt = ["pct", "percent", "percentage", "rate", "ratio", "rating", "share", "score", "index", "nps", "csat", "margin", "yield", "coverage", "utilization", "utilisation", "gpa", "percentile", "quantile", "bmi", "density", "pressure", "humidity", "velocity", "efficiency", "occupancy", "latency", "throughput", "bandwidth", "iops", "ppm", "ppb", "dpmo", "bps"];
1503
1502
  var yt2 = ["latitude", "longitude"];
1503
+ var St2 = ["latitude", "longitude"];
1504
1504
  function j3(t) {
1505
1505
  return p(t);
1506
1506
  }
1507
1507
  var de = ["somme de", "suma de", "soma de", "summe von", "som van", "somma di", "summa av", "sum av", "sum af", "soucet z", "suma z", "totaal van", "total de", "toplam", "osszeg", "nombre de", "recuento de", "contagem de", "anzahl von", "aantal van", "conteggio di", "antal av", "lukumaara", "pocet z"];
1508
- function St2(t) {
1508
+ function _t(t) {
1509
1509
  return [...t].sort((e, n) => n.length - e.length).map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\s+/g, "\\s+")).join("|");
1510
1510
  }
1511
- var Fe = new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:" + St2(de) + ")\\s+)", "i");
1512
- var _t = /(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])/g;
1513
- var At = new RegExp("\\b(" + pt.join("|") + ")\\b|(" + ht.join("|") + ")$", "i");
1514
- var Ct = new RegExp("\\b(" + bt.join("|") + ")\\b|(" + yt2.join("|") + ")$", "i");
1515
- function Ge(t) {
1511
+ var Ge = new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:" + _t(de) + ")\\s+)", "i");
1512
+ var At = /(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])/g;
1513
+ var Ct = new RegExp("\\b(" + ht.join("|") + ")\\b|(" + bt.join("|") + ")$", "i");
1514
+ var Mt2 = new RegExp("\\b(" + yt2.join("|") + ")\\b|(" + St2.join("|") + ")$", "i");
1515
+ function We(t) {
1516
1516
  if (!t) return "";
1517
- let e = String(t), n = Fe.exec(j3(e));
1517
+ let e = String(t), n = Ge.exec(j3(e));
1518
1518
  return (n ? e.slice(n[0].length) : e).trim();
1519
1519
  }
1520
- function Mt2(t) {
1521
- return !!t && Fe.test(j3(String(t)));
1520
+ function xt(t) {
1521
+ return !!t && Ge.test(j3(String(t)));
1522
1522
  }
1523
- var xt = ["count (distinct)", "count distinct", "distinct count", "standard deviation", "average", "variance", "median", "product", "stddev", "std dev", "count", "sum", "avg", "min", "minimum", "max", "maximum", "var"];
1524
- var Pe = new RegExp("^\\s*(" + [...xt].sort((t, e) => e.length - t.length).map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\s+/g, "\\s+")).join("|") + ")\\s+of\\s+", "i");
1525
- var Be = { Sum: ["Sum of "], Avg: ["Average of "], Average: ["Average of "], Count: ["Count of "], CountNonNull: ["Count of "], Min: ["Min of ", "First ", "Earliest "], Max: ["Max of ", "Last ", "Latest "], Median: ["Median of "], StandardDeviation: ["Standard deviation of "], Variance: ["Variance of "] };
1526
- var Rt = new RegExp("^(" + Object.keys(Be).join("|") + ")\\((.+)\\)$");
1527
- function Tt(t) {
1528
- let e = Ge(t);
1529
- return e.length === 0 ? "" : e.replace(_t, " ");
1523
+ var Rt = ["count (distinct)", "count distinct", "distinct count", "standard deviation", "average", "variance", "median", "product", "stddev", "std dev", "count", "sum", "avg", "min", "minimum", "max", "maximum", "var"];
1524
+ var ke = new RegExp("^\\s*(" + [...Rt].sort((t, e) => e.length - t.length).map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\s+/g, "\\s+")).join("|") + ")\\s+of\\s+", "i");
1525
+ var ze = { Sum: ["Sum of "], Avg: ["Average of "], Average: ["Average of "], Count: ["Count of "], CountNonNull: ["Count of "], Min: ["Min of ", "First ", "Earliest "], Max: ["Max of ", "Last ", "Latest "], Median: ["Median of "], StandardDeviation: ["Standard deviation of "], Variance: ["Variance of "] };
1526
+ var Tt = new RegExp("^(" + Object.keys(ze).join("|") + ")\\((.+)\\)$");
1527
+ function Nt(t) {
1528
+ let e = We(t);
1529
+ return e.length === 0 ? "" : e.replace(At, " ");
1530
1530
  }
1531
- function $e(t, e) {
1531
+ function Ue(t, e) {
1532
1532
  if (!e) return false;
1533
- let n = Ge(e);
1534
- return t.test(j3(Tt(e))) || t.test(j3(n)) || t.test(j3(d(n).join(" ")));
1535
- }
1536
- function Ue(t) {
1537
- return $e(Ct, t);
1533
+ let n = We(e);
1534
+ return t.test(j3(Nt(e))) || t.test(j3(n)) || t.test(j3(d(n).join(" ")));
1538
1535
  }
1539
- function Nt(t) {
1540
- return $e(At, t) || Ue(t);
1536
+ function Ve(t) {
1537
+ return Ue(Mt2, t);
1541
1538
  }
1542
- var Ve = /int|double|decimal|single|float|number|currency|money/i;
1543
1539
  function Et(t) {
1544
- let e = String(t?.valueNature ?? "").trim().toLowerCase();
1545
- return e === "categorical" ? "Categorical" : e === "ordinal" ? "Ordinal" : e === "continuous" || t?.isMeasure === true || Ve.test(String(t?.dataType ?? "")) ? "Continuous" : "Categorical";
1540
+ return Ue(Ct, t) || Ve(t);
1546
1541
  }
1542
+ var Ke = /int|double|decimal|single|float|number|currency|money/i;
1547
1543
  function vt(t) {
1548
- return t?.isMeasure === true || Ve.test(String(t?.dataType ?? ""));
1544
+ let e = String(t?.valueNature ?? "").trim().toLowerCase();
1545
+ return e === "categorical" ? "Categorical" : e === "ordinal" ? "Ordinal" : e === "continuous" || t?.isMeasure === true || Ke.test(String(t?.dataType ?? "")) ? "Continuous" : "Categorical";
1546
+ }
1547
+ function It2(t) {
1548
+ return t?.isMeasure === true || Ke.test(String(t?.dataType ?? ""));
1549
1549
  }
1550
- function Ke(t) {
1551
- let e = t ?? {}, n = Et(e);
1550
+ function Ye(t) {
1551
+ let e = t ?? {}, n = vt(e);
1552
1552
  if (n !== "Continuous") return { nature: n, additivity: "unknown", basis: "role", suppressed: false };
1553
- if (Ue(e.name)) return { nature: n, additivity: "positional", basis: "name", suppressed: true };
1553
+ if (Ve(e.name)) return { nature: n, additivity: "positional", basis: "name", suppressed: true };
1554
1554
  let r2 = String(e.additivity ?? "").trim().toLowerCase();
1555
- if (!(r2 === "additive" && Mt2(e.name))) {
1555
+ if (!(r2 === "additive" && xt(e.name))) {
1556
1556
  if (r2 === "additive") return { nature: n, additivity: "additive", basis: "measured", suppressed: false };
1557
1557
  if (r2 === "part_of_whole") return { nature: n, additivity: "part_of_whole", basis: "measured", suppressed: false };
1558
1558
  if (r2 === "intensive_rate") return { nature: n, additivity: "intensive_rate", basis: "measured", suppressed: false };
1559
1559
  }
1560
- return e.discourageAggregationAcrossGroups === true ? { nature: n, additivity: "intensive_rate", basis: "host-flag", suppressed: false } : Nt(e.name) ? { nature: n, additivity: "intensive_rate", basis: "name", suppressed: false } : { nature: n, additivity: "additive", basis: "default", suppressed: false };
1560
+ return e.discourageAggregationAcrossGroups === true ? { nature: n, additivity: "intensive_rate", basis: "host-flag", suppressed: false } : Et(e.name) ? { nature: n, additivity: "intensive_rate", basis: "name", suppressed: false } : { nature: n, additivity: "additive", basis: "default", suppressed: false };
1561
1561
  }
1562
- function Ye(t) {
1563
- let e = Ke(t), n = t ?? {};
1562
+ function He(t) {
1563
+ let e = Ye(t), n = t ?? {};
1564
1564
  if (e.nature === "Categorical") return ["first", "distinctcount", "count"];
1565
- if (e.nature === "Ordinal") return vt(n) ? ["median", "average", "min", "max", "first", "distinctcount", "count"] : ["first", "distinctcount", "count"];
1565
+ if (e.nature === "Ordinal") return It2(n) ? ["median", "average", "min", "max", "first", "distinctcount", "count"] : ["first", "distinctcount", "count"];
1566
1566
  switch (e.additivity) {
1567
1567
  case "positional":
1568
1568
  return ["min", "max", "count", "distinctcount", "first"];
@@ -1572,16 +1572,16 @@ function Ye(t) {
1572
1572
  return ["sum", "average", "median", "min", "max", "count", "distinctcount", "first"];
1573
1573
  }
1574
1574
  }
1575
- function Dn(t) {
1576
- return Ye(t)[0];
1575
+ function On(t) {
1576
+ return He(t)[0];
1577
1577
  }
1578
- function Pn(t, e) {
1578
+ function kn(t, e) {
1579
1579
  if (e !== "sum" && e !== "count") return false;
1580
1580
  if (e === "count") return true;
1581
- let n = Ke(t);
1581
+ let n = Ye(t);
1582
1582
  return n.additivity === "additive" || n.additivity === "part_of_whole" || n.additivity === "unknown";
1583
1583
  }
1584
- var Lt = new RegExp([String.raw`\bisMeasure\b`, String.raw`\bdataType\b`, String.raw`\bcolumns\s*\[\s*-?\d`, String.raw`\.iloc\s*\[[^\]]*,`, String.raw`\.iat\s*\[`, String.raw`\bselect_dtypes\b`, String.raw`\b_get_numeric_data\b`, String.raw`\bis_numeric_dtype\b`, String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`, String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`, String.raw`\bdf\.dtypes\b`, String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`, String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));
1584
+ var Dt = new RegExp([String.raw`\bisMeasure\b`, String.raw`\bdataType\b`, String.raw`\bcolumns\s*\[\s*-?\d`, String.raw`\.iloc\s*\[[^\]]*,`, String.raw`\.iat\s*\[`, String.raw`\bselect_dtypes\b`, String.raw`\b_get_numeric_data\b`, String.raw`\bis_numeric_dtype\b`, String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`, String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`, String.raw`\bdf\.dtypes\b`, String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`, String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));
1585
1585
 
1586
1586
  // ../shape-core/dist/index.mjs
1587
1587
  /*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */
@@ -1643,7 +1643,7 @@ function te(t) {
1643
1643
  function ce2(t, e) {
1644
1644
  return y2(e, rt) ? true : ne2(t).some((n) => /^\d{5}(-\d{4})?$/.test(n.replace(/\.0+$/, "")));
1645
1645
  }
1646
- function En2(t, e) {
1646
+ function Pn2(t, e) {
1647
1647
  let n = F3(t);
1648
1648
  if (n.length === 0) return 0;
1649
1649
  let o2 = 0;
@@ -1655,12 +1655,12 @@ function J4(t, e) {
1655
1655
  for (let o2 of F3(t)) e(o2) && n++;
1656
1656
  return n;
1657
1657
  }
1658
- function Sn(t, e) {
1658
+ function Ln(t, e) {
1659
1659
  let n = 0;
1660
1660
  for (let o2 of ne2(t)) e(o2) && n++;
1661
1661
  return n;
1662
1662
  }
1663
- function Rn(t, e, n, o2, u2) {
1663
+ function Mn2(t, e, n, o2, u2) {
1664
1664
  let l = [], a2 = [], i = {}, S2 = {}, T2 = new Set(t), b4 = (s) => e.map((d2) => d2[s]);
1665
1665
  for (let s of ["city", "country"]) {
1666
1666
  let d2 = n?.[s];
@@ -1689,15 +1689,15 @@ function Rn(t, e, n, o2, u2) {
1689
1689
  if (I4(E4)) continue;
1690
1690
  let P4 = z3(E4);
1691
1691
  if (P4 < 95) continue;
1692
- let K3 = J4(E4, (V3) => !!Y(V3)), Pe2 = J4(E4, (V3) => !!Y(V3) && !ue2(V3, o2));
1693
- K3 < X3 && Pe2 < 1 || (!s || P4 > s.pct) && (s = { name: d2, pct: P4 });
1692
+ let K3 = J4(E4, (V3) => !!Y(V3)), Pe = J4(E4, (V3) => !!Y(V3) && !ue2(V3, o2));
1693
+ K3 < X3 && Pe < 1 || (!s || P4 > s.pct) && (s = { name: d2, pct: P4 });
1694
1694
  }
1695
1695
  s && (i.state = s.name, c2.add(s.name), l.push(`state=${s.name} (${s.pct}% states/provinces)`));
1696
1696
  }
1697
1697
  if (!i.zip) for (let s of C2) {
1698
1698
  if (c2.has(s)) continue;
1699
1699
  let d2 = b4(s), E4 = te(d2);
1700
- if (!(E4 < 95) && ce2(d2, s) && !(Sn(d2, (P4) => Z(P4).length > 0) < X3)) {
1700
+ if (!(E4 < 95) && ce2(d2, s) && !(Ln(d2, (P4) => Z(P4).length > 0) < X3)) {
1701
1701
  i.zip = s, c2.add(s), l.push(`zip=${s} (${E4}% ZIP codes)`);
1702
1702
  break;
1703
1703
  }
@@ -1716,7 +1716,7 @@ function Rn(t, e, n, o2, u2) {
1716
1716
  let s = null;
1717
1717
  for (let d2 of C2) {
1718
1718
  if (c2.has(d2)) continue;
1719
- let E4 = b4(d2), P4 = En2(E4, o2);
1719
+ let E4 = b4(d2), P4 = Pn2(E4, o2);
1720
1720
  P4 < m3 || J4(E4, (K3) => p3(K3, o2)) < X3 || (!s || P4 > s.pct) && (s = { name: d2, pct: P4 });
1721
1721
  }
1722
1722
  s && (i.city = s.name, l.push(`city=${s.name} (${s.pct}% known cities)`));
@@ -1729,10 +1729,10 @@ function Rn(t, e, n, o2, u2) {
1729
1729
  }
1730
1730
  var r = (t, ...e) => ({ part: t, langs: Object.freeze(e) });
1731
1731
  var re2 = Object.freeze({ jaar: r("year", "nl"), kwartaal: r("quarter", "nl"), maand: r("month", "nl"), dag: r("day", "nl", "sv", "da", "nb"), jahr: r("year", "de"), quartal: r("quarter", "de"), monat: r("month", "de"), tag: r("day", "de"), ann\u00E9e: r("year", "fr"), mois: r("month", "fr"), jour: r("day", "fr"), trimestre: r("quarter", "fr", "es", "pt", "it"), a\u00F1o: r("year", "es"), mes: r("month", "es"), d\u00EDa: r("day", "es"), ano: r("year", "pt"), m\u00EAs: r("month", "pt"), dia: r("day", "pt"), anno: r("year", "it"), mese: r("month", "it"), giorno: r("day", "it"), \u0433\u043E\u0434: r("year", "ru"), \u043C\u0435\u0441\u044F\u0446: r("month", "ru"), \u0440\u0456\u043A: r("year", "uk"), \u043C\u0456\u0441\u044F\u0446\u044C: r("month", "uk"), \u043A\u0432\u0430\u0440\u0442\u0430\u043B: r("quarter", "ru", "uk"), \u0434\u0435\u043D\u044C: r("day", "ru", "uk"), rok: r("year", "pl", "cs", "sk"), kwarta\u0142: r("quarter", "pl"), miesi\u0105c: r("month", "pl"), dzie\u0144: r("day", "pl"), \u010Dtvrtlet\u00ED: r("quarter", "cs"), m\u011Bs\u00EDc: r("month", "cs"), den: r("day", "cs"), \u0161tvr\u0165rok: r("quarter", "sk"), mesiac: r("month", "sk"), de\u0148: r("day", "sk"), \u00E5r: r("year", "sv", "da", "nb"), kvartal: r("quarter", "sv", "da", "nb"), m\u00E5nad: r("month", "sv"), m\u00E5ned: r("month", "da", "nb"), vuosi: r("year", "fi"), vuosinelj\u00E4nnes: r("quarter", "fi"), kuukausi: r("month", "fi"), p\u00E4iv\u00E4: r("day", "fi"), \u00E9v: r("year", "hu"), negyed\u00E9v: r("quarter", "hu"), h\u00F3nap: r("month", "hu"), nap: r("day", "hu"), y\u0131l: r("year", "tr"), \u00E7eyrek: r("quarter", "tr"), ay: r("month", "tr"), g\u00FCn: r("day", "tr"), \u03AD\u03C4\u03BF\u03C2: r("year", "el"), \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF: r("quarter", "el"), \u03BC\u03AE\u03BD\u03B1\u03C2: r("month", "el"), \u03B7\u03BC\u03AD\u03C1\u03B1: r("day", "el"), an: r("year", "ro"), trimestru: r("quarter", "ro"), lun\u0103: r("month", "ro"), zi: r("day", "ro"), godina: r("year", "hr"), tromjese\u010Dje: r("quarter", "hr"), mjesec: r("month", "hr"), dan: r("day", "hr"), \u5E74: r("year", "ja", "zh"), \u56DB\u534A\u671F: r("quarter", "ja"), \u5B63\u5EA6: r("quarter", "zh"), \u6708: r("month", "ja", "zh"), \u65E5: r("day", "ja", "zh"), \uC5F0\uB3C4: r("year", "ko"), \uBD84\uAE30: r("quarter", "ko"), \uC6D4: r("month", "ko"), \uC77C: r("day", "ko"), tahun: r("year", "id"), kuartal: r("quarter", "id"), triwulan: r("quarter", "id"), bulan: r("month", "id"), hari: r("day", "id"), n\u0103m: r("year", "vi"), qu\u00FD: r("quarter", "vi"), th\u00E1ng: r("month", "vi"), ng\u00E0y: r("day", "vi"), \u0E1B\u0E35: r("year", "th"), \u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A: r("quarter", "th"), \u0E40\u0E14\u0E37\u0E2D\u0E19: r("month", "th"), \u0E27\u0E31\u0E19: r("day", "th"), \u0627\u0644\u0633\u0646\u0629: r("year", "ar"), \u0633\u0646\u0629: r("year", "ar"), \u0627\u0644\u0639\u0627\u0645: r("year", "ar"), \u0639\u0627\u0645: r("year", "ar"), \u0627\u0644\u0631\u0628\u0639: r("quarter", "ar"), \u0631\u0628\u0639: r("quarter", "ar"), "\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629": r("quarter", "ar"), \u0627\u0644\u0634\u0647\u0631: r("month", "ar"), \u0634\u0647\u0631: r("month", "ar"), \u0627\u0644\u064A\u0648\u0645: r("day", "ar"), \u064A\u0648\u0645: r("day", "ar"), \u05E9\u05E0\u05D4: r("year", "he"), \u05E8\u05D1\u05E2\u05D5\u05DF: r("quarter", "he"), \u05D7\u05D5\u05D3\u05E9: r("month", "he"), \u05D9\u05D5\u05DD: r("day", "he"), \u0935\u0930\u094D\u0937: r("year", "hi"), \u0938\u093E\u0932: r("year", "hi"), \u0924\u093F\u092E\u093E\u0939\u0940: r("quarter", "hi"), \u092E\u0939\u0940\u0928\u093E: r("month", "hi"), \u092E\u093E\u0939: r("month", "hi"), \u0926\u093F\u0928: r("day", "hi"), \u0633\u0627\u0644: r("year", "fa"), \u0645\u0627\u0647: r("month", "fa"), \u0631\u0648\u0632: r("day", "fa") });
1732
- var xn2 = Object.freeze(Array.from(new Set(Object.values(re2).flatMap((t) => t.langs))));
1732
+ var _n = Object.freeze(Array.from(new Set(Object.values(re2).flatMap((t) => t.langs))));
1733
1733
  var me = Object.freeze(["fa", "ar", "he", "th"]);
1734
- var jn = Object.freeze({ integer: "number", decimal: "number", double: "number", datetime: "date", date: "date", boolean: "boolean", string: "text" });
1735
- var tr = Object.freeze({ RENDER_START: "render-start", RENDER_OK: "render-ok", RENDER_ERROR: "render-error", VIEW: "view", VIEW_VERDICT: "view-verdict" });
1734
+ var Zn2 = Object.freeze({ integer: "number", decimal: "number", double: "number", datetime: "date", date: "date", boolean: "boolean", string: "text" });
1735
+ var ar = Object.freeze({ RENDER_START: "render-start", RENDER_OK: "render-ok", RENDER_ERROR: "render-error", VIEW: "view", VIEW_VERDICT: "view-verdict" });
1736
1736
 
1737
1737
  // src/payload.ts
1738
1738
  var ROW_IDX_COLUMN = "__rowIdx__";
@@ -1747,7 +1747,7 @@ function resolvePointChannel(cols, rowObjs, point) {
1747
1747
  let labelCol;
1748
1748
  if (bind) {
1749
1749
  const dims = cols.filter((c2) => !c2.isMeasure).map((c2) => c2.name);
1750
- const res = Rn(dims, rowObjs, bind, point?.mapKind, cols.map((c2) => c2.name));
1750
+ const res = Mn2(dims, rowObjs, bind, point?.mapKind, cols.map((c2) => c2.name));
1751
1751
  bind = res.bind;
1752
1752
  rolesBackfilled = res.backfilled;
1753
1753
  rolesRefused = res.refused;
@@ -2069,9 +2069,9 @@ function createMarkResolver(env) {
2069
2069
  let best = Number.MAX_VALUE;
2070
2070
  const N2 = 64;
2071
2071
  for (let i = 0; i <= N2; i++) {
2072
- const pt2 = el.getPointAtLength(L4 * i / N2);
2073
- const dx = m2.a * pt2.x + m2.c * pt2.y + m2.e - x3;
2074
- const dy = m2.b * pt2.x + m2.d * pt2.y + m2.f - y4;
2072
+ const pt = el.getPointAtLength(L4 * i / N2);
2073
+ const dx = m2.a * pt.x + m2.c * pt.y + m2.e - x3;
2074
+ const dy = m2.b * pt.x + m2.d * pt.y + m2.f - y4;
2075
2075
  const d2 = dx * dx + dy * dy;
2076
2076
  if (d2 < best) best = d2;
2077
2077
  }
@@ -3237,10 +3237,10 @@ function applyLabelContrast(container, opts = {}) {
3237
3237
  for (let t = 0; t < texts.length; t++) {
3238
3238
  const tx = texts[t];
3239
3239
  if (tx.getAttribute(LABEL_CONTRAST_DONE_ATTR) === "1") continue;
3240
- const tr2 = tx.getBoundingClientRect();
3241
- if (tr2.width <= 0 || tr2.height <= 0) continue;
3242
- const ovArea = (r2) => Math.max(0, Math.min(r2.right, tr2.right) - Math.max(r2.left, tr2.left)) * Math.max(0, Math.min(r2.bottom, tr2.bottom) - Math.max(r2.top, tr2.top));
3243
- const glyphArea = tr2.width * tr2.height;
3240
+ const tr = tx.getBoundingClientRect();
3241
+ if (tr.width <= 0 || tr.height <= 0) continue;
3242
+ const ovArea = (r2) => Math.max(0, Math.min(r2.right, tr.right) - Math.max(r2.left, tr.left)) * Math.max(0, Math.min(r2.bottom, tr.bottom) - Math.max(r2.top, tr.top));
3243
+ const glyphArea = tr.width * tr.height;
3244
3244
  const txRoot = paintRoot(tx, container);
3245
3245
  let over = 0;
3246
3246
  const boxed = rects.map((mk) => ({ mk, ov: ovArea(mk.r) })).filter((x3) => {
@@ -3250,7 +3250,7 @@ function applyLabelContrast(container, opts = {}) {
3250
3250
  return false;
3251
3251
  });
3252
3252
  if (over > 0) report.paintedOver++;
3253
- const pts = glyphSampleGrid({ left: tr2.left, top: tr2.top, width: tr2.width, height: tr2.height });
3253
+ const pts = glyphSampleGrid({ left: tr.left, top: tr.top, width: tr.width, height: tr.height });
3254
3254
  const painted = pts.map(() => false);
3255
3255
  let unmeasured = 0;
3256
3256
  const under = boxed.map((x3) => {
@@ -4051,10 +4051,10 @@ export {
4051
4051
  le,
4052
4052
  L2 as L,
4053
4053
  L3,
4054
- Ke,
4055
4054
  Ye,
4056
- Dn,
4057
- Pn,
4055
+ He,
4056
+ On,
4057
+ kn,
4058
4058
  buildRenderPayload,
4059
4059
  stripJsComments,
4060
4060
  isInsideControl,
package/dist/index.mjs CHANGED
@@ -32,14 +32,13 @@ import {
32
32
  DARK_TEXT,
33
33
  DIM_OPACITY_DEFAULT,
34
34
  DIM_OPACITY_VAR,
35
- Dn,
36
35
  FIT_CONTENT_SELECTOR,
37
36
  FLIP_MODE_DEFAULT,
38
37
  GEO_POINT_PRECISIONS,
39
38
  GLYPH_SAMPLE_N,
40
39
  HOST_CONTAINER_CLASS,
41
40
  HOST_CONTRACT_VERSION,
42
- Ke,
41
+ He,
43
42
  L,
44
43
  L3,
45
44
  LABEL_CONTRAST_CAP,
@@ -54,12 +53,12 @@ import {
54
53
  MIN_CONTRAST,
55
54
  MIN_HIT_BAND_PX,
56
55
  MIN_RAMP_FILLS,
56
+ On,
57
57
  PAGE_MATCH_TOLERANCE,
58
58
  PHANTOM_FRACTION,
59
59
  PILL_MIN_ALPHA,
60
60
  PILL_MIN_COVERAGE,
61
61
  PILL_OPAQUE_ALPHA,
62
- Pn,
63
62
  ROW_IDX_ATTR,
64
63
  SAME_SHADE_DELTA_E,
65
64
  SCROLL_SLACK_PX,
@@ -112,6 +111,7 @@ import {
112
111
  isInvalidSentinelError,
113
112
  isPhantomBox,
114
113
  isPillBackdropAlpha,
114
+ kn,
115
115
  labelBand,
116
116
  le,
117
117
  loadGeo,
@@ -140,7 +140,7 @@ import {
140
140
  unpinScrolledAxis,
141
141
  valuePlacementFlag,
142
142
  withoutViewOnlyKeys
143
- } from "./chunk-3OLKWWX5.mjs";
143
+ } from "./chunk-XC527HDN.mjs";
144
144
  import "./chunk-A2GMXZP7.mjs";
145
145
  import "./chunk-GHODWOAL.mjs";
146
146
 
@@ -1487,15 +1487,15 @@ function displayText(col, raw, opts) {
1487
1487
  return String(raw);
1488
1488
  }
1489
1489
  function isSuppressed(col) {
1490
- return Ke(col).suppressed;
1490
+ return Ye(col).suppressed;
1491
1491
  }
1492
1492
  function resolveAgg(col, requested, auto) {
1493
1493
  const fallback = () => {
1494
- const d2 = Dn(col);
1494
+ const d2 = On(col);
1495
1495
  return d2 === "first" ? "count" : d2;
1496
1496
  };
1497
1497
  if (auto) return fallback();
1498
- return Ye(col).indexOf(requested) >= 0 ? requested : fallback();
1498
+ return He(col).indexOf(requested) >= 0 ? requested : fallback();
1499
1499
  }
1500
1500
  function toNumber(v2) {
1501
1501
  if (v2 == null || v2 === "") return null;
@@ -1598,7 +1598,7 @@ function computeSelectionCard(payload, selectedRowIdxs, opts = {}) {
1598
1598
  }
1599
1599
  const value = reduce(selVals, colAgg, selRaw);
1600
1600
  let sharePct = null;
1601
- if (Pn(col, colAgg) && value != null) {
1601
+ if (kn(col, colAgg) && value != null) {
1602
1602
  const allVals = [];
1603
1603
  const allRaw = [];
1604
1604
  for (let r2 = 0; r2 < rows.length; r2++) {
package/dist/react.mjs CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  loadGeo,
8
8
  syncMemberSelection,
9
9
  toSourceRows
10
- } from "./chunk-3OLKWWX5.mjs";
10
+ } from "./chunk-XC527HDN.mjs";
11
11
  import "./chunk-A2GMXZP7.mjs";
12
12
  import "./chunk-GHODWOAL.mjs";
13
13
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bicharts/chart-host",
3
- "version": "0.6.38",
3
+ "version": "0.6.39",
4
4
  "description": "Run a BIC-generated D3 chart in any web host: compiles the generated render() function, applies the shared option defaults, resolves mark clicks (through tooltip overlays), owns the selection affordance, and translates row indices between cross-filtered charts. The same contract the BIC Power BI visual implements, minus Power BI. React bindings at @bicharts/chart-host/react.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",