@bicharts/chart-host 0.6.35 → 0.6.36

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.
@@ -144,13 +144,13 @@ var require_papaparse_min = __commonJS({
144
144
  function g4() {
145
145
  if (p4 && a4 && (k3("Delimiter", "UndetectableDelimiter", "Unable to auto-detect delimiting character; defaulted to '" + v3.DefaultDelimiter + "'"), a4 = false), m4.skipEmptyLines && (p4.data = p4.data.filter(function(e4) {
146
146
  return !y5(e4);
147
- })), _5()) {
147
+ })), _4()) {
148
148
  let t4 = function(e4, t5) {
149
149
  e4 = P4(e4), q2(m4.transformHeader) && (e4 = m4.transformHeader(e4, t5)), c4.push(e4);
150
150
  };
151
151
  var t2 = t4;
152
152
  if (p4) if (Array.isArray(p4.data[0])) {
153
- for (var e2 = 0; _5() && e2 < p4.data.length; e2++) p4.data[e2].forEach(t4);
153
+ for (var e2 = 0; _4() && e2 < p4.data.length; e2++) p4.data[e2].forEach(t4);
154
154
  p4.data.splice(0, 1);
155
155
  } else p4.data.forEach(t4);
156
156
  }
@@ -169,7 +169,7 @@ var require_papaparse_min = __commonJS({
169
169
  var r4;
170
170
  p4 && (m4.header || m4.dynamicTyping || m4.transform) && (r4 = 1, !p4.data.length || Array.isArray(p4.data[0]) ? (p4.data = p4.data.map(i4), r4 = p4.data.length) : p4.data = i4(p4.data, 0), m4.header && p4.meta && (p4.meta.fields = c4), f5 += r4);
171
171
  }
172
- function _5() {
172
+ function _4() {
173
173
  return m4.header && 0 === c4.length;
174
174
  }
175
175
  function k3(e2, t2, i4, r4) {
@@ -177,13 +177,13 @@ var require_papaparse_min = __commonJS({
177
177
  void 0 !== r4 && (e2.row = r4), p4.errors.push(e2);
178
178
  }
179
179
  q2(m4.step) && (t = m4.step, m4.step = function(e2) {
180
- p4 = e2, _5() ? g4() : (g4(), 0 !== p4.data.length && (r2 += e2.data.length, m4.preview && r2 > m4.preview ? s2.abort() : (p4.data = p4.data[0], t(p4, i2))));
180
+ p4 = e2, _4() ? g4() : (g4(), 0 !== p4.data.length && (r2 += e2.data.length, m4.preview && r2 > m4.preview ? s2.abort() : (p4.data = p4.data[0], t(p4, i2))));
181
181
  }), this.parse = function(e2, t2, i4) {
182
182
  var r4 = m4.quoteChar || '"', r4 = (m4.newline || (m4.newline = this.guessLineEndings(e2, r4)), a4 = false, m4.delimiter ? q2(m4.delimiter) && (m4.delimiter = m4.delimiter(e2), p4.meta.delimiter = m4.delimiter) : ((r4 = ((e4, t4, i5, r5, n5) => {
183
183
  var s4, a5, o5, h5;
184
184
  n5 = n5 || [",", " ", "|", ";", v3.RECORD_SEP, v3.UNIT_SEP];
185
185
  for (var u5 = 0; u5 < n5.length; u5++) {
186
- for (var d4, f6 = n5[u5], l3 = 0, c5 = 0, p5 = 0, g5 = (o5 = void 0, new E4({ comments: r5, delimiter: f6, newline: t4, preview: 10 }).parse(e4)), _6 = 0; _6 < g5.data.length; _6++) i5 && y5(g5.data[_6]) ? p5++ : (d4 = g5.data[_6].length, c5 += d4, void 0 === o5 ? o5 = d4 : 0 < d4 && (l3 += Math.abs(d4 - o5), o5 = d4));
186
+ for (var d4, f6 = n5[u5], l3 = 0, c5 = 0, p5 = 0, g5 = (o5 = void 0, new E4({ comments: r5, delimiter: f6, newline: t4, preview: 10 }).parse(e4)), _5 = 0; _5 < g5.data.length; _5++) i5 && y5(g5.data[_5]) ? p5++ : (d4 = g5.data[_5].length, c5 += d4, void 0 === o5 ? o5 = d4 : 0 < d4 && (l3 += Math.abs(d4 - o5), o5 = d4));
187
187
  0 < g5.data.length && (c5 /= g5.data.length - p5), (void 0 === a5 || l3 <= a5) && (void 0 === h5 || h5 < c5) && 1.99 < c5 && (a5 = l3, s4 = f6, h5 = c5);
188
188
  }
189
189
  return { successful: !!(m4.delimiter = s4), bestDelimiter: s4 };
@@ -211,7 +211,7 @@ var require_papaparse_min = __commonJS({
211
211
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
212
212
  }
213
213
  function E4(C) {
214
- var S2 = (C = C || {}).delimiter, O3 = C.newline, x3 = C.comments, I2 = C.step, A2 = C.preview, T2 = C.fastMode, D3 = null, L4 = false, F3 = null == C.quoteChar ? '"' : C.quoteChar, j4 = F3;
214
+ var S2 = (C = C || {}).delimiter, O3 = C.newline, x3 = C.comments, I2 = C.step, A4 = C.preview, T2 = C.fastMode, D3 = null, L4 = false, F3 = null == C.quoteChar ? '"' : C.quoteChar, j4 = F3;
215
215
  if (void 0 !== C.escapeChar && (j4 = C.escapeChar), ("string" != typeof S2 || -1 < v3.BAD_DELIMITERS.indexOf(S2)) && (S2 = ","), x3 === S2) throw new Error("Comment character same as delimiter");
216
216
  true === x3 ? x3 = "#" : ("string" != typeof x3 || -1 < v3.BAD_DELIMITERS.indexOf(x3)) && (x3 = false), "\n" !== O3 && "\r" !== O3 && "\r\n" !== O3 && (O3 = "\n");
217
217
  var z3 = 0, M2 = false;
@@ -227,26 +227,26 @@ var require_papaparse_min = __commonJS({
227
227
  if (o4) {
228
228
  if (h4 = [], k3(d3.split(S2)), R2(), M2) return w2();
229
229
  } else k3(d3.split(S2));
230
- if (A2 && A2 <= c4) return h4 = h4.slice(0, A2), w2(true);
230
+ if (A4 && A4 <= c4) return h4 = h4.slice(0, A4), w2(true);
231
231
  }
232
232
  }
233
233
  return w2();
234
234
  }
235
- for (var p4 = i2.indexOf(S2, z3), g4 = i2.indexOf(O3, z3), _5 = new RegExp(U4(j4) + U4(F3), "g"), m4 = i2.indexOf(F3, z3); ; ) if (i2[z3] === F3) for (m4 = z3, z3++; ; ) {
235
+ for (var p4 = i2.indexOf(S2, z3), g4 = i2.indexOf(O3, z3), _4 = new RegExp(U4(j4) + U4(F3), "g"), m4 = i2.indexOf(F3, z3); ; ) if (i2[z3] === F3) for (m4 = z3, z3++; ; ) {
236
236
  if (-1 === (m4 = i2.indexOf(F3, m4 + 1))) return r2 || u4.push({ type: "Quotes", code: "MissingQuotes", message: "Quoted field unterminated", row: h4.length, index: z3 }), E5();
237
- if (m4 === n4 - 1) return E5(i2.substring(z3, m4).replace(_5, F3));
237
+ if (m4 === n4 - 1) return E5(i2.substring(z3, m4).replace(_4, F3));
238
238
  if (F3 === j4 && i2[m4 + 1] === j4) m4++;
239
239
  else if (F3 === j4 || 0 === m4 || i2[m4 - 1] !== j4) {
240
240
  -1 !== p4 && p4 < m4 + 1 && (p4 = i2.indexOf(S2, m4 + 1));
241
241
  var y5 = v4(-1 === (g4 = -1 !== g4 && g4 < m4 + 1 ? i2.indexOf(O3, m4 + 1) : g4) ? p4 : Math.min(p4, g4));
242
242
  if (i2.substr(m4 + 1 + y5, e) === S2) {
243
- d3.push(i2.substring(z3, m4).replace(_5, F3)), i2[z3 = m4 + 1 + y5 + e] !== F3 && (m4 = i2.indexOf(F3, z3)), p4 = i2.indexOf(S2, z3), g4 = i2.indexOf(O3, z3);
243
+ d3.push(i2.substring(z3, m4).replace(_4, F3)), i2[z3 = m4 + 1 + y5 + e] !== F3 && (m4 = i2.indexOf(F3, z3)), p4 = i2.indexOf(S2, z3), g4 = i2.indexOf(O3, z3);
244
244
  break;
245
245
  }
246
246
  y5 = v4(g4);
247
247
  if (i2.substring(m4 + 1 + y5, m4 + 1 + y5 + s2) === O3) {
248
- if (d3.push(i2.substring(z3, m4).replace(_5, F3)), b4(m4 + 1 + y5 + s2), p4 = i2.indexOf(S2, z3), m4 = i2.indexOf(F3, z3), o4 && (R2(), M2)) return w2();
249
- if (A2 && h4.length >= A2) return w2(true);
248
+ if (d3.push(i2.substring(z3, m4).replace(_4, F3)), b4(m4 + 1 + y5 + s2), p4 = i2.indexOf(S2, z3), m4 = i2.indexOf(F3, z3), o4 && (R2(), M2)) return w2();
249
+ if (A4 && h4.length >= A4) return w2(true);
250
250
  break;
251
251
  }
252
252
  u4.push({ type: "Quotes", code: "InvalidQuotes", message: "Trailing quote on quoted field is malformed", row: h4.length, index: z3 }), m4++;
@@ -259,7 +259,7 @@ var require_papaparse_min = __commonJS({
259
259
  else {
260
260
  if (-1 === g4) break;
261
261
  if (d3.push(i2.substring(z3, g4)), b4(g4 + s2), o4 && (R2(), M2)) return w2();
262
- if (A2 && h4.length >= A2) return w2(true);
262
+ if (A4 && h4.length >= A4) return w2(true);
263
263
  }
264
264
  return E5();
265
265
  function k3(e2) {
@@ -306,16 +306,16 @@ var require_papaparse_min = __commonJS({
306
306
  if (t.error) i2.userError(t.error, t.file);
307
307
  else if (t.results && t.results.data) {
308
308
  var n4 = { abort: function() {
309
- r2 = true, _4(t.workerId, { data: [], errors: [], meta: { aborted: true } });
309
+ r2 = true, _3(t.workerId, { data: [], errors: [], meta: { aborted: true } });
310
310
  }, pause: m2, resume: m2 };
311
311
  if (q2(i2.userStep)) {
312
312
  for (var s2 = 0; s2 < t.results.data.length && (i2.userStep({ data: t.results.data[s2], errors: t.results.errors, meta: t.results.meta }, n4), !r2); s2++) ;
313
313
  delete t.results;
314
314
  } else q2(i2.userChunk) && (i2.userChunk(t.results, n4, t.file), delete t.results);
315
315
  }
316
- t.finished && !r2 && _4(t.workerId, t.results);
316
+ t.finished && !r2 && _3(t.workerId, t.results);
317
317
  }
318
- function _4(e, t) {
318
+ function _3(e, t) {
319
319
  var i2 = o2[e];
320
320
  q2(i2.userComplete) && i2.userComplete(t), i2.terminate(), delete o2[e];
321
321
  }
@@ -348,11 +348,11 @@ var require_papaparse_min = __commonJS({
348
348
  })(), (e2 = new n2.Worker(e2)).onmessage = g3, e2.id = h3++, o2[e2.id] = e2);
349
349
  })()).userStep = t.step, i2.userChunk = t.chunk, i2.userComplete = t.complete, i2.userError = t.error, t.step = q2(t.step), t.chunk = q2(t.chunk), t.complete = q2(t.complete), t.error = q2(t.error), delete t.worker, i2.postMessage({ input: e, config: t, workerId: i2.id });
350
350
  }, v3.unparse = function(e, t) {
351
- var s2 = false, _5 = true, m4 = ",", y5 = "\r\n", a4 = '"', o4 = a4 + a4, i2 = false, r2 = null, h4 = false, u4 = ((() => {
351
+ var s2 = false, _4 = true, m4 = ",", y5 = "\r\n", a4 = '"', o4 = a4 + a4, i2 = false, r2 = null, h4 = false, u4 = ((() => {
352
352
  if ("object" == typeof t) {
353
353
  if ("string" != typeof t.delimiter || v3.BAD_DELIMITERS.filter(function(e2) {
354
354
  return -1 !== t.delimiter.indexOf(e2);
355
- }).length || (m4 = t.delimiter), "boolean" != typeof t.quotes && "function" != typeof t.quotes && !Array.isArray(t.quotes) || (s2 = t.quotes), "boolean" != typeof t.skipEmptyLines && "string" != typeof t.skipEmptyLines || (i2 = t.skipEmptyLines), "string" == typeof t.newline && (y5 = t.newline), "string" == typeof t.quoteChar && (a4 = t.quoteChar, o4 = a4 + a4), "boolean" == typeof t.header && (_5 = t.header), Array.isArray(t.columns)) {
355
+ }).length || (m4 = t.delimiter), "boolean" != typeof t.quotes && "function" != typeof t.quotes && !Array.isArray(t.quotes) || (s2 = t.quotes), "boolean" != typeof t.skipEmptyLines && "string" != typeof t.skipEmptyLines || (i2 = t.skipEmptyLines), "string" == typeof t.newline && (y5 = t.newline), "string" == typeof t.quoteChar && (a4 = t.quoteChar, o4 = a4 + a4), "boolean" == typeof t.header && (_4 = t.header), Array.isArray(t.columns)) {
356
356
  if (0 === t.columns.length) throw new Error("Option columns is empty");
357
357
  r2 = t.columns;
358
358
  }
@@ -367,7 +367,7 @@ var require_papaparse_min = __commonJS({
367
367
  throw new Error("Unable to serialize unrecognized input");
368
368
  function n4(e2, t2, i4) {
369
369
  var r4 = "", n5 = ("string" == typeof e2 && (e2 = JSON.parse(e2)), "string" == typeof t2 && (t2 = JSON.parse(t2)), Array.isArray(e2) && 0 < e2.length), s4 = !Array.isArray(t2[0]);
370
- if (n5 && _5) {
370
+ if (n5 && _4) {
371
371
  for (var a5 = 0; a5 < e2.length; a5++) 0 < a5 && (r4 += m4), r4 += k3(e2[a5], a5);
372
372
  0 < t2.length && (r4 += y5);
373
373
  }
@@ -773,15 +773,15 @@ function resolveAutoColorScale(p2) {
773
773
  };
774
774
  const candidates = p2.isHighContrast ? [normHex(p2.themeAccent), normHex(p2.themeFg)] : [...palette.map(normHex), normHex(p2.themeAccent), normHex(p2.themeFg)];
775
775
  const accent = candidates.find(usable) ?? FALLBACK_ACCENT;
776
- const A2 = hexToLab(accent);
776
+ const A4 = hexToLab(accent);
777
777
  let t = 0.1;
778
- let low = mixLab(bg, A2, t);
778
+ let low = mixLab(bg, A4, t);
779
779
  while (t < 0.6 && deltaE2000(paintedOver(labToHex(low), canvas, AUTO_RAMP_DRAWN_OPACITY), bg) < SAME_SHADE_DELTA_E) {
780
780
  t += 0.02;
781
- low = mixLab(bg, A2, t);
781
+ low = mixLab(bg, A4, t);
782
782
  }
783
783
  const lowHex = labToHex(low);
784
- let high = { ...A2 };
784
+ let high = { ...A4 };
785
785
  let highHex = labToHex(high);
786
786
  for (let step = 0; step < 80 && autoRampMinStep(lowHex, highHex, canvas) < AUTO_RAMP_MIN_STEP_DELTA_E; step++) {
787
787
  const L4 = Math.max(4, Math.min(98, high.L + (darkCanvas ? 1 : -1)));
@@ -1240,12 +1240,12 @@ function A3(n2) {
1240
1240
  if (f4 && f4.length) {
1241
1241
  let d2 = n2.state === void 0 || n2.state === null ? "" : String(n2.state).trim(), R2 = d2 ? u(d2) : "", g3 = d2 ? Y(d2) : null, S2 = [], m2 = -1;
1242
1242
  for (let c2 of f4) {
1243
- let l = c2.row, A2 = 0;
1244
- if (d2 && l.a1 !== "") if (g3 && l.a1 === g3 || u(l.a1) === R2) A2++;
1243
+ let l = c2.row, A4 = 0;
1244
+ if (d2 && l.a1 !== "") if (g3 && l.a1 === g3 || u(l.a1) === R2) A4++;
1245
1245
  else continue;
1246
- if (i) if (T(l.cc) === i) A2++;
1246
+ if (i) if (T(l.cc) === i) A4++;
1247
1247
  else continue;
1248
- A2 > m2 ? (m2 = A2, S2 = [c2]) : A2 === m2 && S2.push(c2);
1248
+ A4 > m2 ? (m2 = A4, S2 = [c2]) : A4 === m2 && S2.push(c2);
1249
1249
  }
1250
1250
  S2.some((c2) => c2.primary) && (S2 = S2.filter((c2) => c2.primary));
1251
1251
  let p2 = /* @__PURE__ */ new Map();
@@ -1276,19 +1276,19 @@ var x = 8;
1276
1276
  function y3(n2, e) {
1277
1277
  let t = new Array(n2.length), o2 = new Array(n2.length), i = new Array(n2.length), r = /* @__PURE__ */ new Set(), a2 = [], s = /* @__PURE__ */ new Set(), f4 = [], d2 = /* @__PURE__ */ new Set(), R2 = [], g3 = { latlon: 0, city: 0, zip3: 0, state: 0, country: 0 }, S2 = 0, m2 = 0, p2 = null;
1278
1278
  for (let l = 0; l < n2.length; ++l) {
1279
- let A2 = n2[l], C = A3({ ...A2, mapKind: e });
1279
+ let A4 = n2[l], C = A3({ ...A4, mapKind: e });
1280
1280
  if (S3(C)) {
1281
1281
  t[l] = null, o2[l] = null, i[l] = null, m2++;
1282
- let M2 = K(A2);
1282
+ let M2 = K(A4);
1283
1283
  M2 && !d2.has(M2.toLowerCase()) && (d2.add(M2.toLowerCase()), R2.length < x && R2.push(M2));
1284
1284
  } else if (C) {
1285
1285
  if (t[l] = C.lat, o2[l] = C.lon, i[l] = C.precision, S2++, g3[C.precision]++, (p2 === null || G[C.precision] > G[p2]) && (p2 = C.precision), G[C.precision] > G.city) {
1286
- let M2 = K(A2);
1286
+ let M2 = K(A4);
1287
1287
  M2 && !s.has(M2.toLowerCase()) && (s.add(M2.toLowerCase()), f4.length < x && f4.push(M2));
1288
1288
  }
1289
1289
  } else {
1290
1290
  t[l] = null, o2[l] = null, i[l] = null;
1291
- let M2 = K(A2);
1291
+ let M2 = K(A4);
1292
1292
  M2 && !r.has(M2.toLowerCase()) && (r.add(M2.toLowerCase()), a2.push(M2));
1293
1293
  }
1294
1294
  }
@@ -1590,7 +1590,7 @@ var le = 400;
1590
1590
  function X3(t) {
1591
1591
  return !!E(t);
1592
1592
  }
1593
- function _3(t) {
1593
+ function A2(t) {
1594
1594
  let e = /* @__PURE__ */ new Set();
1595
1595
  for (let r of t) {
1596
1596
  if (r == null) continue;
@@ -1600,7 +1600,7 @@ function _3(t) {
1600
1600
  return Array.from(e);
1601
1601
  }
1602
1602
  function N3(t) {
1603
- let e = _3(t);
1603
+ let e = A2(t);
1604
1604
  if (e.length === 0 || Z2(t) < 95) return false;
1605
1605
  let r = e.filter((u2) => X3(u2) && !Y(u2)).length, o2 = e.filter((u2) => !X3(u2) && !!Y(u2)).length;
1606
1606
  return r >= 1 && r >= o2;
@@ -1611,14 +1611,14 @@ function se2(t, e) {
1611
1611
  return r ? e === "world" ? true : s3.has(r) : false;
1612
1612
  }
1613
1613
  function Z2(t) {
1614
- let e = _3(t);
1614
+ let e = A2(t);
1615
1615
  if (e.length === 0) return 0;
1616
1616
  let r = 0;
1617
1617
  for (let o2 of e) X3(o2) && r++;
1618
1618
  return Math.round(r / e.length * 1e3) / 10;
1619
1619
  }
1620
1620
  function U3(t) {
1621
- let e = _3(t);
1621
+ let e = A2(t);
1622
1622
  if (e.length === 0) return 0;
1623
1623
  let r = 0;
1624
1624
  for (let o2 of e) Y(o2) && r++;
@@ -1643,8 +1643,8 @@ function J3(t) {
1643
1643
  function ae3(t, e) {
1644
1644
  return y2(e, rt) ? true : ee3(t).some((r) => /^\d{5}(-\d{4})?$/.test(r.replace(/\.0+$/, "")));
1645
1645
  }
1646
- function pn(t, e) {
1647
- let r = _3(t);
1646
+ function gn(t, e) {
1647
+ let r = A2(t);
1648
1648
  if (r.length === 0) return 0;
1649
1649
  let o2 = 0;
1650
1650
  for (let u2 of r) p3(u2, e) && o2++;
@@ -1652,7 +1652,7 @@ function pn(t, e) {
1652
1652
  }
1653
1653
  function Q3(t, e) {
1654
1654
  let r = 0;
1655
- for (let o2 of _3(t)) e(o2) && r++;
1655
+ for (let o2 of A2(t)) e(o2) && r++;
1656
1656
  return r;
1657
1657
  }
1658
1658
  function yn(t, e) {
@@ -1660,79 +1660,79 @@ function yn(t, e) {
1660
1660
  for (let o2 of ee3(t)) e(o2) && r++;
1661
1661
  return r;
1662
1662
  }
1663
- function gn(t, e, r, o2, u2) {
1664
- let l = [], a2 = [], i = {}, E4 = {}, T2 = new Set(t), C = (s) => e.map((c2) => c2[s]);
1663
+ function hn(t, e, r, o2, u2) {
1664
+ let l = [], a2 = [], i = {}, C = {}, T2 = new Set(t), b2 = (s) => e.map((c2) => c2[s]);
1665
1665
  for (let s of ["city", "country"]) {
1666
1666
  let c2 = r?.[s];
1667
1667
  c2 && T2.has(c2) && (i[s] = c2);
1668
1668
  }
1669
- let S2 = new Set(u2 ?? t);
1669
+ let R2 = new Set(u2 ?? t);
1670
1670
  for (let s of ["lat", "lon"]) {
1671
1671
  let c2 = r?.[s];
1672
- c2 && S2.has(c2) && (i[s] = c2);
1672
+ c2 && R2.has(c2) && (i[s] = c2);
1673
1673
  }
1674
1674
  let y4 = r?.zip;
1675
1675
  if (y4 && T2.has(y4)) {
1676
- let s = C(y4), c2 = J3(s);
1676
+ let s = b2(y4), c2 = J3(s);
1677
1677
  c2 < 95 ? a2.push(`zip=${y4} (only ${c2}% of values read as ZIPs)`) : ae3(s, y4) ? i.zip = y4 : a2.push(`zip=${y4} (all values are 3-4 digits with nothing to say they are postal)`);
1678
1678
  }
1679
- let f4 = r?.state;
1680
- if (f4 && T2.has(f4)) {
1681
- let s = C(f4), c2 = _3(s);
1682
- c2.length > 0 && c2.every((p2) => se2(p2, o2)) ? a2.push(`state=${f4} (every value is "CA", which is both Canada and California)`) : N3(s) ? (a2.push(`state=${f4} (every value is a country, not a state)`), i.country || (i.country = f4)) : U3(s) < 95 ? a2.push(`state=${f4} (only ${U3(s)}% of values are states/provinces)`) : i.state = f4;
1679
+ let p2 = r?.state;
1680
+ if (p2 && T2.has(p2)) {
1681
+ let s = b2(p2), c2 = A2(s);
1682
+ c2.length > 0 && c2.every((g3) => se2(g3, o2)) ? a2.push(`state=${p2} (every value is "CA", which is both Canada and California)`) : N3(s) ? (a2.push(`state=${p2} (every value is a country, not a state)`), i.country || (i.country = p2)) : U3(s) < 95 ? a2.push(`state=${p2} (only ${U3(s)}% of values are states/provinces)`) : i.state = p2;
1683
1683
  }
1684
- let m2 = new Set(Object.values(i).filter(Boolean)), g3 = t.filter((s) => !m2.has(s) && !s.startsWith("__"));
1684
+ let f4 = new Set(Object.values(i).filter(Boolean)), h3 = t.filter((s) => !f4.has(s) && !s.startsWith("__"));
1685
1685
  if (!i.state) {
1686
1686
  let s = null;
1687
- for (let c2 of g3) {
1688
- let p2 = C(c2);
1689
- if (N3(p2)) continue;
1690
- let v3 = U3(p2);
1687
+ for (let c2 of h3) {
1688
+ let g3 = b2(c2);
1689
+ if (N3(g3)) continue;
1690
+ let v3 = U3(g3);
1691
1691
  if (v3 < 95) continue;
1692
- let q2 = Q3(p2, (k3) => !!Y(k3)), Re = Q3(p2, (k3) => !!Y(k3) && !se2(k3, o2));
1693
- q2 < Y3 && Re < 1 || (!s || v3 > s.pct) && (s = { name: c2, pct: v3 });
1692
+ let z3 = Q3(g3, (O3) => !!Y(O3)), Re = Q3(g3, (O3) => !!Y(O3) && !se2(O3, o2));
1693
+ z3 < Y3 && Re < 1 || (!s || v3 > s.pct) && (s = { name: c2, pct: v3 });
1694
1694
  }
1695
- s && (i.state = s.name, m2.add(s.name), l.push(`state=${s.name} (${s.pct}% states/provinces)`));
1695
+ s && (i.state = s.name, f4.add(s.name), l.push(`state=${s.name} (${s.pct}% states/provinces)`));
1696
1696
  }
1697
- if (!i.zip) for (let s of g3) {
1698
- if (m2.has(s)) continue;
1699
- let c2 = C(s), p2 = J3(c2);
1700
- if (!(p2 < 95) && ae3(c2, s) && !(yn(c2, (v3) => Z(v3).length > 0) < Y3)) {
1701
- i.zip = s, m2.add(s), l.push(`zip=${s} (${p2}% ZIP codes)`);
1697
+ if (!i.zip) for (let s of h3) {
1698
+ if (f4.has(s)) continue;
1699
+ let c2 = b2(s), g3 = J3(c2);
1700
+ if (!(g3 < 95) && ae3(c2, s) && !(yn(c2, (v3) => Z(v3).length > 0) < Y3)) {
1701
+ i.zip = s, f4.add(s), l.push(`zip=${s} (${g3}% ZIP codes)`);
1702
1702
  break;
1703
1703
  }
1704
1704
  }
1705
- let b2 = i.country;
1706
- if (!b2 || !N3(C(b2))) {
1705
+ let E4 = i.country;
1706
+ if (!E4 || !N3(b2(E4))) {
1707
1707
  let s = null;
1708
- for (let c2 of g3) {
1709
- if (m2.has(c2) || !N3(C(c2))) continue;
1710
- let p2 = Z2(C(c2));
1711
- (!s || p2 > s.pct) && (s = { name: c2, pct: p2 });
1708
+ for (let c2 of h3) {
1709
+ if (f4.has(c2) || !N3(b2(c2))) continue;
1710
+ let g3 = Z2(b2(c2));
1711
+ (!s || g3 > s.pct) && (s = { name: c2, pct: g3 });
1712
1712
  }
1713
- s && (b2 && (a2.push(`country=${b2} (only ${Z2(C(b2))}% of values are country identifiers; using ${s.name} instead)`), E4.country = b2), i.country = s.name, m2.add(s.name), l.push(`country=${s.name}`));
1713
+ s && (E4 && (a2.push(`country=${E4} (only ${Z2(b2(E4))}% of values are country identifiers; using ${s.name} instead)`), C.country = E4), i.country = s.name, f4.add(s.name), l.push(`country=${s.name}`));
1714
1714
  }
1715
1715
  if (!i.city) {
1716
1716
  let s = null;
1717
- for (let c2 of g3) {
1718
- if (m2.has(c2)) continue;
1719
- let p2 = C(c2), v3 = pn(p2, o2);
1720
- v3 < m3 || Q3(p2, (q2) => p3(q2, o2)) < Y3 || (!s || v3 > s.pct) && (s = { name: c2, pct: v3 });
1717
+ for (let c2 of h3) {
1718
+ if (f4.has(c2)) continue;
1719
+ let g3 = b2(c2), v3 = gn(g3, o2);
1720
+ v3 < m3 || Q3(g3, (z3) => p3(z3, o2)) < Y3 || (!s || v3 > s.pct) && (s = { name: c2, pct: v3 });
1721
1721
  }
1722
1722
  s && (i.city = s.name, l.push(`city=${s.name} (${s.pct}% known cities)`));
1723
1723
  }
1724
- let x3 = i.country ? C(i.country) : [], A2 = !!i.country && N3(x3), I2 = A2 ? new Set(x3.map((s) => E(s == null ? null : String(s))).filter(Boolean)).size : 0, R2 = A2 && I2 >= 2, L4 = !!(i.lat && i.lon) && e.some((s) => {
1725
- let c2 = +String(s[i.lat] ?? "").trim(), p2 = +String(s[i.lon] ?? "").trim();
1726
- return isFinite(c2) && isFinite(p2) && c2 >= -90 && c2 <= 90 && p2 >= -180 && p2 <= 180 && String(s[i.lat] ?? "").trim() !== "" && String(s[i.lon] ?? "").trim() !== "";
1724
+ let x3 = i.country ? b2(i.country) : [], w2 = !!i.country && N3(x3), F3 = w2 ? new Set(x3.map((s) => E(s == null ? null : String(s))).filter(Boolean)).size : 0, S2 = w2 && F3 >= 2, P4 = !!(i.lat && i.lon) && e.some((s) => {
1725
+ let c2 = +String(s[i.lat] ?? "").trim(), g3 = +String(s[i.lon] ?? "").trim();
1726
+ return isFinite(c2) && isFinite(g3) && c2 >= -90 && c2 <= 90 && g3 >= -180 && g3 <= 180 && String(s[i.lat] ?? "").trim() !== "" && String(s[i.lon] ?? "").trim() !== "";
1727
1727
  });
1728
- return i.lat && i.lon && !L4 && a2.push(`lat/lon=${i.lat}/${i.lon} (no row holds a usable coordinate pair)`), i.country && !R2 && !(i.city || i.state || i.zip || L4) && a2.push(A2 ? `country=${i.country} (every row resolves to the same country - nothing to place apart)` : `country=${i.country} (values are not country identifiers)`), { bind: !!(i.city || i.state || i.zip || R2 || L4) ? i : null, backfilled: l, refused: a2, ...Object.keys(E4).length ? { labelFallback: E4 } : {} };
1728
+ return i.lat && i.lon && !P4 && a2.push(`lat/lon=${i.lat}/${i.lon} (no row holds a usable coordinate pair)`), i.country && !S2 && !(i.city || i.state || i.zip || P4) && a2.push(w2 ? `country=${i.country} (every row resolves to the same country - nothing to place apart)` : `country=${i.country} (values are not country identifiers)`), { bind: !!(i.city || i.state || i.zip || S2 || P4) ? i : null, backfilled: l, refused: a2, ...Object.keys(C).length ? { labelFallback: C } : {} };
1729
1729
  }
1730
1730
  var n = (t, ...e) => ({ part: t, langs: Object.freeze(e) });
1731
1731
  var te2 = Object.freeze({ jaar: n("year", "nl"), kwartaal: n("quarter", "nl"), maand: n("month", "nl"), dag: n("day", "nl", "sv", "da", "nb"), jahr: n("year", "de"), quartal: n("quarter", "de"), monat: n("month", "de"), tag: n("day", "de"), ann\u00E9e: n("year", "fr"), mois: n("month", "fr"), jour: n("day", "fr"), trimestre: n("quarter", "fr", "es", "pt", "it"), a\u00F1o: n("year", "es"), mes: n("month", "es"), d\u00EDa: n("day", "es"), ano: n("year", "pt"), m\u00EAs: n("month", "pt"), dia: n("day", "pt"), anno: n("year", "it"), mese: n("month", "it"), giorno: n("day", "it"), \u0433\u043E\u0434: n("year", "ru"), \u043C\u0435\u0441\u044F\u0446: n("month", "ru"), \u0440\u0456\u043A: n("year", "uk"), \u043C\u0456\u0441\u044F\u0446\u044C: n("month", "uk"), \u043A\u0432\u0430\u0440\u0442\u0430\u043B: n("quarter", "ru", "uk"), \u0434\u0435\u043D\u044C: n("day", "ru", "uk"), rok: n("year", "pl", "cs", "sk"), kwarta\u0142: n("quarter", "pl"), miesi\u0105c: n("month", "pl"), dzie\u0144: n("day", "pl"), \u010Dtvrtlet\u00ED: n("quarter", "cs"), m\u011Bs\u00EDc: n("month", "cs"), den: n("day", "cs"), \u0161tvr\u0165rok: n("quarter", "sk"), mesiac: n("month", "sk"), de\u0148: n("day", "sk"), \u00E5r: n("year", "sv", "da", "nb"), kvartal: n("quarter", "sv", "da", "nb"), m\u00E5nad: n("month", "sv"), m\u00E5ned: n("month", "da", "nb"), vuosi: n("year", "fi"), vuosinelj\u00E4nnes: n("quarter", "fi"), kuukausi: n("month", "fi"), p\u00E4iv\u00E4: n("day", "fi"), \u00E9v: n("year", "hu"), negyed\u00E9v: n("quarter", "hu"), h\u00F3nap: n("month", "hu"), nap: n("day", "hu"), y\u0131l: n("year", "tr"), \u00E7eyrek: n("quarter", "tr"), ay: n("month", "tr"), g\u00FCn: n("day", "tr"), \u03AD\u03C4\u03BF\u03C2: n("year", "el"), \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF: n("quarter", "el"), \u03BC\u03AE\u03BD\u03B1\u03C2: n("month", "el"), \u03B7\u03BC\u03AD\u03C1\u03B1: n("day", "el"), an: n("year", "ro"), trimestru: n("quarter", "ro"), lun\u0103: n("month", "ro"), zi: n("day", "ro"), godina: n("year", "hr"), tromjese\u010Dje: n("quarter", "hr"), mjesec: n("month", "hr"), dan: n("day", "hr"), \u5E74: n("year", "ja", "zh"), \u56DB\u534A\u671F: n("quarter", "ja"), \u5B63\u5EA6: n("quarter", "zh"), \u6708: n("month", "ja", "zh"), \u65E5: n("day", "ja", "zh"), \uC5F0\uB3C4: n("year", "ko"), \uBD84\uAE30: n("quarter", "ko"), \uC6D4: n("month", "ko"), \uC77C: n("day", "ko"), tahun: n("year", "id"), kuartal: n("quarter", "id"), triwulan: n("quarter", "id"), bulan: n("month", "id"), hari: n("day", "id"), n\u0103m: n("year", "vi"), qu\u00FD: n("quarter", "vi"), th\u00E1ng: n("month", "vi"), ng\u00E0y: n("day", "vi"), \u0E1B\u0E35: n("year", "th"), \u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A: n("quarter", "th"), \u0E40\u0E14\u0E37\u0E2D\u0E19: n("month", "th"), \u0E27\u0E31\u0E19: n("day", "th"), \u0627\u0644\u0633\u0646\u0629: n("year", "ar"), \u0633\u0646\u0629: n("year", "ar"), \u0627\u0644\u0639\u0627\u0645: n("year", "ar"), \u0639\u0627\u0645: n("year", "ar"), \u0627\u0644\u0631\u0628\u0639: n("quarter", "ar"), \u0631\u0628\u0639: n("quarter", "ar"), "\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629": n("quarter", "ar"), \u0627\u0644\u0634\u0647\u0631: n("month", "ar"), \u0634\u0647\u0631: n("month", "ar"), \u0627\u0644\u064A\u0648\u0645: n("day", "ar"), \u064A\u0648\u0645: n("day", "ar"), \u05E9\u05E0\u05D4: n("year", "he"), \u05E8\u05D1\u05E2\u05D5\u05DF: n("quarter", "he"), \u05D7\u05D5\u05D3\u05E9: n("month", "he"), \u05D9\u05D5\u05DD: n("day", "he"), \u0935\u0930\u094D\u0937: n("year", "hi"), \u0938\u093E\u0932: n("year", "hi"), \u0924\u093F\u092E\u093E\u0939\u0940: n("quarter", "hi"), \u092E\u0939\u0940\u0928\u093E: n("month", "hi"), \u092E\u093E\u0939: n("month", "hi"), \u0926\u093F\u0928: n("day", "hi"), \u0633\u0627\u0644: n("year", "fa"), \u0645\u0627\u0647: n("month", "fa"), \u0631\u0648\u0632: n("day", "fa") });
1732
- var hn = Object.freeze(Array.from(new Set(Object.values(te2).flatMap((t) => t.langs))));
1732
+ var Cn2 = Object.freeze(Array.from(new Set(Object.values(te2).flatMap((t) => t.langs))));
1733
1733
  var ue = Object.freeze(["fa", "ar", "he", "th"]);
1734
- var In = Object.freeze({ integer: "number", decimal: "number", double: "number", datetime: "date", date: "date", boolean: "boolean", string: "text" });
1735
- var zn = Object.freeze({ RENDER_START: "render-start", RENDER_OK: "render-ok", RENDER_ERROR: "render-error", VIEW: "view", VIEW_VERDICT: "view-verdict" });
1734
+ var zn = Object.freeze({ integer: "number", decimal: "number", double: "number", datetime: "date", date: "date", boolean: "boolean", string: "text" });
1735
+ var Yn2 = 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 = gn(dims, rowObjs, bind, point?.mapKind, cols.map((c2) => c2.name));
1750
+ const res = hn(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;
@@ -3906,7 +3906,7 @@ function createChartGroup(columns, rows, opts = {}) {
3906
3906
  return forId;
3907
3907
  };
3908
3908
  const payloadFor = (sourceRowIdxs) => {
3909
- const idxs = sourceRowIdxs ? sourceRowIdxs.slice() : table.map((_4, i) => i);
3909
+ const idxs = sourceRowIdxs ? sourceRowIdxs.slice() : table.map((_3, i) => i);
3910
3910
  const subset = idxs.map((i) => table[i]);
3911
3911
  const payload = buildRenderPayload(cols, subset, geo ?? void 0, point ?? void 0);
3912
3912
  return { payload, rowMap: idxs };
package/dist/index.mjs CHANGED
@@ -140,7 +140,7 @@ import {
140
140
  unpinScrolledAxis,
141
141
  valuePlacementFlag,
142
142
  withoutViewOnlyKeys
143
- } from "./chunk-6JAF422N.mjs";
143
+ } from "./chunk-FV7IUIST.mjs";
144
144
  import "./chunk-A2GMXZP7.mjs";
145
145
  import "./chunk-GHODWOAL.mjs";
146
146
 
package/dist/react.mjs CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  loadGeo,
8
8
  syncMemberSelection,
9
9
  toSourceRows
10
- } from "./chunk-6JAF422N.mjs";
10
+ } from "./chunk-FV7IUIST.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.35",
3
+ "version": "0.6.36",
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",