@bicharts/chart-host 0.6.0 → 0.6.1

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.
@@ -23,7 +23,7 @@ var require_papaparse_min = __commonJS({
23
23
  })(exports, function r() {
24
24
  var n = "undefined" != typeof self ? self : "undefined" != typeof window ? window : void 0 !== n ? n : {};
25
25
  var d2, s = !n.document && !!n.postMessage, a4 = n.IS_PAPA_WORKER || false, o = {}, h3 = 0, v2 = {};
26
- function P2(e) {
26
+ function P4(e) {
27
27
  return 65279 === e.charCodeAt(0) ? e.slice(1) : e;
28
28
  }
29
29
  function u2(e) {
@@ -146,7 +146,7 @@ var require_papaparse_min = __commonJS({
146
146
  return !y6(e4);
147
147
  })), _3()) {
148
148
  let t4 = function(e4, t5) {
149
- e4 = P2(e4), q4(m4.transformHeader) && (e4 = m4.transformHeader(e4, t5)), c4.push(e4);
149
+ e4 = P4(e4), q4(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])) {
@@ -211,55 +211,55 @@ 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, x4 = C.comments, I2 = C.step, A = C.preview, T3 = C.fastMode, D4 = null, L2 = false, F4 = null == C.quoteChar ? '"' : C.quoteChar, j3 = F4;
215
- if (void 0 !== C.escapeChar && (j3 = C.escapeChar), ("string" != typeof S2 || -1 < v2.BAD_DELIMITERS.indexOf(S2)) && (S2 = ","), x4 === S2) throw new Error("Comment character same as delimiter");
214
+ var S = (C = C || {}).delimiter, O3 = C.newline, x4 = C.comments, I2 = C.step, A = C.preview, T3 = C.fastMode, D3 = null, L2 = false, F4 = null == C.quoteChar ? '"' : C.quoteChar, j3 = F4;
215
+ if (void 0 !== C.escapeChar && (j3 = C.escapeChar), ("string" != typeof S || -1 < v2.BAD_DELIMITERS.indexOf(S)) && (S = ","), x4 === S) throw new Error("Comment character same as delimiter");
216
216
  true === x4 ? x4 = "#" : ("string" != typeof x4 || -1 < v2.BAD_DELIMITERS.indexOf(x4)) && (x4 = false), "\n" !== O3 && "\r" !== O3 && "\r\n" !== O3 && (O3 = "\n");
217
217
  var z3 = 0, M2 = false;
218
218
  this.parse = function(i2, t, r2) {
219
219
  if ("string" != typeof i2) throw new Error("Input must be a string");
220
- var n2 = i2.length, e = S2.length, s2 = O3.length, a5 = x4.length, o2 = q4(I2), h4 = [], u4 = [], d3 = [], f5 = z3 = 0;
221
- if (!i2) return w2();
220
+ var n2 = i2.length, e = S.length, s2 = O3.length, a5 = x4.length, o2 = q4(I2), h4 = [], u4 = [], d3 = [], f5 = z3 = 0;
221
+ if (!i2) return w3();
222
222
  if (T3 || false !== T3 && -1 === i2.indexOf(F4)) {
223
223
  for (var l2 = i2.split(O3), c4 = 0; c4 < l2.length; c4++) {
224
224
  if (d3 = l2[c4], z3 += d3.length, c4 !== l2.length - 1) z3 += O3.length;
225
- else if (r2) return w2();
225
+ else if (r2) return w3();
226
226
  if (!x4 || d3.substring(0, a5) !== x4) {
227
227
  if (o2) {
228
- if (h4 = [], k2(d3.split(S2)), R2(), M2) return w2();
229
- } else k2(d3.split(S2));
230
- if (A && A <= c4) return h4 = h4.slice(0, A), w2(true);
228
+ if (h4 = [], k2(d3.split(S)), R2(), M2) return w3();
229
+ } else k2(d3.split(S));
230
+ if (A && A <= c4) return h4 = h4.slice(0, A), w3(true);
231
231
  }
232
232
  }
233
- return w2();
233
+ return w3();
234
234
  }
235
- for (var p4 = i2.indexOf(S2, z3), g4 = i2.indexOf(O3, z3), _3 = new RegExp(U2(j3) + U2(F4), "g"), m4 = i2.indexOf(F4, z3); ; ) if (i2[z3] === F4) for (m4 = z3, z3++; ; ) {
235
+ for (var p4 = i2.indexOf(S, z3), g4 = i2.indexOf(O3, z3), _3 = new RegExp(U2(j3) + U2(F4), "g"), m4 = i2.indexOf(F4, z3); ; ) if (i2[z3] === F4) for (m4 = z3, z3++; ; ) {
236
236
  if (-1 === (m4 = i2.indexOf(F4, m4 + 1))) return r2 || u4.push({ type: "Quotes", code: "MissingQuotes", message: "Quoted field unterminated", row: h4.length, index: z3 }), E5();
237
237
  if (m4 === n2 - 1) return E5(i2.substring(z3, m4).replace(_3, F4));
238
238
  if (F4 === j3 && i2[m4 + 1] === j3) m4++;
239
239
  else if (F4 === j3 || 0 === m4 || i2[m4 - 1] !== j3) {
240
- -1 !== p4 && p4 < m4 + 1 && (p4 = i2.indexOf(S2, m4 + 1));
240
+ -1 !== p4 && p4 < m4 + 1 && (p4 = i2.indexOf(S, m4 + 1));
241
241
  var y6 = v3(-1 === (g4 = -1 !== g4 && g4 < m4 + 1 ? i2.indexOf(O3, m4 + 1) : g4) ? p4 : Math.min(p4, g4));
242
- if (i2.substr(m4 + 1 + y6, e) === S2) {
243
- d3.push(i2.substring(z3, m4).replace(_3, F4)), i2[z3 = m4 + 1 + y6 + e] !== F4 && (m4 = i2.indexOf(F4, z3)), p4 = i2.indexOf(S2, z3), g4 = i2.indexOf(O3, z3);
242
+ if (i2.substr(m4 + 1 + y6, e) === S) {
243
+ d3.push(i2.substring(z3, m4).replace(_3, F4)), i2[z3 = m4 + 1 + y6 + e] !== F4 && (m4 = i2.indexOf(F4, z3)), p4 = i2.indexOf(S, z3), g4 = i2.indexOf(O3, z3);
244
244
  break;
245
245
  }
246
246
  y6 = v3(g4);
247
247
  if (i2.substring(m4 + 1 + y6, m4 + 1 + y6 + s2) === O3) {
248
- if (d3.push(i2.substring(z3, m4).replace(_3, F4)), b5(m4 + 1 + y6 + s2), p4 = i2.indexOf(S2, z3), m4 = i2.indexOf(F4, z3), o2 && (R2(), M2)) return w2();
249
- if (A && h4.length >= A) return w2(true);
248
+ if (d3.push(i2.substring(z3, m4).replace(_3, F4)), b5(m4 + 1 + y6 + s2), p4 = i2.indexOf(S, z3), m4 = i2.indexOf(F4, z3), o2 && (R2(), M2)) return w3();
249
+ if (A && h4.length >= A) return w3(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++;
253
253
  }
254
254
  }
255
255
  else if (x4 && 0 === d3.length && i2.substring(z3, z3 + a5) === x4) {
256
- if (-1 === g4) return w2();
257
- z3 = g4 + s2, g4 = i2.indexOf(O3, z3), p4 = i2.indexOf(S2, z3);
258
- } else if (-1 !== p4 && (p4 < g4 || -1 === g4)) d3.push(i2.substring(z3, p4)), z3 = p4 + e, p4 = i2.indexOf(S2, z3);
256
+ if (-1 === g4) return w3();
257
+ z3 = g4 + s2, g4 = i2.indexOf(O3, z3), p4 = i2.indexOf(S, z3);
258
+ } else if (-1 !== p4 && (p4 < g4 || -1 === g4)) d3.push(i2.substring(z3, p4)), z3 = p4 + e, p4 = i2.indexOf(S, z3);
259
259
  else {
260
260
  if (-1 === g4) break;
261
- if (d3.push(i2.substring(z3, g4)), b5(g4 + s2), o2 && (R2(), M2)) return w2();
262
- if (A && h4.length >= A) return w2(true);
261
+ if (d3.push(i2.substring(z3, g4)), b5(g4 + s2), o2 && (R2(), M2)) return w3();
262
+ if (A && h4.length >= A) return w3(true);
263
263
  }
264
264
  return E5();
265
265
  function k2(e2) {
@@ -270,30 +270,30 @@ var require_papaparse_min = __commonJS({
270
270
  return t2 = -1 !== e2 && (e2 = i2.substring(m4 + 1, e2)) && "" === e2.trim() ? e2.length : t2;
271
271
  }
272
272
  function E5(e2) {
273
- return r2 || (void 0 === e2 && (e2 = i2.substring(z3)), d3.push(e2), z3 = n2, k2(d3), o2 && R2()), w2();
273
+ return r2 || (void 0 === e2 && (e2 = i2.substring(z3)), d3.push(e2), z3 = n2, k2(d3), o2 && R2()), w3();
274
274
  }
275
275
  function b5(e2) {
276
276
  z3 = e2, k2(d3), d3 = [], g4 = i2.indexOf(O3, z3);
277
277
  }
278
- function w2(e2) {
278
+ function w3(e2) {
279
279
  if (C.header && !t && h4.length && !L2) {
280
280
  var s4 = h4[0], a6 = /* @__PURE__ */ Object.create(null), o4 = new Set(s4);
281
281
  let n4 = false;
282
282
  for (let r4 = 0; r4 < s4.length; r4++) {
283
- let i4 = P2(s4[r4]);
283
+ let i4 = P4(s4[r4]);
284
284
  if (a6[i4 = q4(C.transformHeader) ? C.transformHeader(i4, r4) : i4]) {
285
285
  let e4, t2 = a6[i4];
286
286
  for (; e4 = i4 + "_" + t2, t2++, o4.has(e4); ) ;
287
- o4.add(e4), s4[r4] = e4, a6[i4]++, n4 = true, (D4 = null === D4 ? {} : D4)[e4] = i4;
287
+ o4.add(e4), s4[r4] = e4, a6[i4]++, n4 = true, (D3 = null === D3 ? {} : D3)[e4] = i4;
288
288
  } else a6[i4] = 1, s4[r4] = i4;
289
289
  o4.add(i4);
290
290
  }
291
291
  n4 && console.warn("Duplicate headers found and renamed."), L2 = true;
292
292
  }
293
- return { data: h4, errors: u4, meta: { delimiter: S2, linebreak: O3, aborted: M2, truncated: !!e2, cursor: f5 + (t || 0), renamedHeaders: D4 } };
293
+ return { data: h4, errors: u4, meta: { delimiter: S, linebreak: O3, aborted: M2, truncated: !!e2, cursor: f5 + (t || 0), renamedHeaders: D3 } };
294
294
  }
295
295
  function R2() {
296
- I2(w2()), h4 = [], u4 = [];
296
+ I2(w3()), h4 = [], u4 = [];
297
297
  }
298
298
  }, this.abort = function() {
299
299
  M2 = true;
@@ -339,7 +339,7 @@ var require_papaparse_min = __commonJS({
339
339
  return v2.parse = function(e, t) {
340
340
  var i2 = (t = t || {}).dynamicTyping || false;
341
341
  q4(i2) && (t.dynamicTypingFunction = i2, i2 = {});
342
- if (t.dynamicTyping = i2, t.transform = !!q4(t.transform) && t.transform, !t.worker || !v2.WORKERS_SUPPORTED) return i2 = null, v2.NODE_STREAM_INPUT, "string" == typeof e ? (e = P2(e), i2 = new (t.download ? f4 : c2)(t)) : true === e.readable && q4(e.read) && q4(e.on) ? i2 = new p2(t) : (n.File && e instanceof File || e instanceof Object) && (i2 = new l(t)), i2.stream(e);
342
+ if (t.dynamicTyping = i2, t.transform = !!q4(t.transform) && t.transform, !t.worker || !v2.WORKERS_SUPPORTED) return i2 = null, v2.NODE_STREAM_INPUT, "string" == typeof e ? (e = P4(e), i2 = new (t.download ? f4 : c2)(t)) : true === e.readable && q4(e.read) && q4(e.on) ? i2 = new p2(t) : (n.File && e instanceof File || e instanceof Object) && (i2 = new l(t)), i2.stream(e);
343
343
  (i2 = (() => {
344
344
  var e2;
345
345
  return !!v2.WORKERS_SUPPORTED && (e2 = (() => {
@@ -507,11 +507,11 @@ function f(t) {
507
507
  return t > EPS ? Math.cbrt(t) : (KAPPA * t + 16) / 116;
508
508
  }
509
509
  function rgbToLab(r, g3, b4) {
510
- const R2 = linearise(r), G3 = linearise(g3), B2 = linearise(b4);
511
- const X2 = 0.4124564 * R2 + 0.3575761 * G3 + 0.1804375 * B2;
512
- const Y2 = 0.2126729 * R2 + 0.7151522 * G3 + 0.072175 * B2;
513
- const Z2 = 0.0193339 * R2 + 0.119192 * G3 + 0.9503041 * B2;
514
- const fx = f(X2 / Xn), fy = f(Y2 / Yn), fz = f(Z2 / Zn);
510
+ const R2 = linearise(r), G2 = linearise(g3), B2 = linearise(b4);
511
+ const X2 = 0.4124564 * R2 + 0.3575761 * G2 + 0.1804375 * B2;
512
+ const Y2 = 0.2126729 * R2 + 0.7151522 * G2 + 0.072175 * B2;
513
+ const Z3 = 0.0193339 * R2 + 0.119192 * G2 + 0.9503041 * B2;
514
+ const fx = f(X2 / Xn), fy = f(Y2 / Yn), fz = f(Z3 / Zn);
515
515
  return { L: 116 * fy - 16, a: 500 * (fx - fy), b: 200 * (fy - fz) };
516
516
  }
517
517
  function hexToLab(hex2) {
@@ -527,8 +527,8 @@ function deltaE2000(c1, c2) {
527
527
  const C1 = Math.hypot(c1.a, c1.b), C2 = Math.hypot(c2.a, c2.b);
528
528
  const Cbar = (C1 + C2) / 2;
529
529
  const C7 = Math.pow(Cbar, 7);
530
- const G3 = 0.5 * (1 - Math.sqrt(C7 / (C7 + Math.pow(25, 7))));
531
- const a1p = (1 + G3) * c1.a, a2p = (1 + G3) * c2.a;
530
+ const G2 = 0.5 * (1 - Math.sqrt(C7 / (C7 + Math.pow(25, 7))));
531
+ const a1p = (1 + G2) * c1.a, a2p = (1 + G2) * c2.a;
532
532
  const C1p = Math.hypot(a1p, c1.b), C2p = Math.hypot(a2p, c2.b);
533
533
  const neutral = C1p < NEUTRAL_CHROMA || C2p < NEUTRAL_CHROMA;
534
534
  const h1p = C1p < NEUTRAL_CHROMA ? 0 : (Math.atan2(c1.b, a1p) * DEG + 360) % 360;
@@ -568,11 +568,11 @@ function labToHex(lab) {
568
568
  const fy = (lab.L + 16) / 116, fx = fy + lab.a / 500, fz = fy - lab.b / 200;
569
569
  const X2 = Xn * finv(fx);
570
570
  const Y2 = Yn * (lab.L > KAPPA * EPS ? fy * fy * fy : lab.L / KAPPA);
571
- const Z2 = Zn * finv(fz);
571
+ const Z3 = Zn * finv(fz);
572
572
  const lin = [
573
- 3.2404542 * X2 - 1.5371385 * Y2 - 0.4985314 * Z2,
574
- -0.969266 * X2 + 1.8760108 * Y2 + 0.041556 * Z2,
575
- 0.0556434 * X2 - 0.2040259 * Y2 + 1.0572252 * Z2
573
+ 3.2404542 * X2 - 1.5371385 * Y2 - 0.4985314 * Z3,
574
+ -0.969266 * X2 + 1.8760108 * Y2 + 0.041556 * Z3,
575
+ 0.0556434 * X2 - 0.2040259 * Y2 + 1.0572252 * Z3
576
576
  ];
577
577
  return "#" + lin.map((v2) => {
578
578
  const c2 = Math.max(0, Math.min(1, v2));
@@ -1237,20 +1237,20 @@ function A3(n) {
1237
1237
  if (r && i && c3(r) !== i && (r = null), n.city !== void 0 && n.city !== null) {
1238
1238
  let a4 = u(String(n.city)), s = O(a4), f4 = s ? F(s, n.mapKind) : null;
1239
1239
  if (f4 && f4.length) {
1240
- let d2 = n.state === void 0 || n.state === null ? "" : String(n.state).trim(), R2 = d2 ? u(d2) : "", g3 = d2 ? Y(d2) : null, S2 = [], m2 = -1;
1240
+ let d2 = n.state === void 0 || n.state === null ? "" : String(n.state).trim(), R2 = d2 ? u(d2) : "", g3 = d2 ? Y(d2) : null, S = [], m2 = -1;
1241
1241
  for (let c2 of f4) {
1242
1242
  let l = c2.row, A = 0;
1243
1243
  if (d2 && l.a1 !== "") if (g3 && l.a1 === g3 || u(l.a1) === R2) A++;
1244
1244
  else continue;
1245
1245
  if (i) if (T(l.cc) === i) A++;
1246
1246
  else continue;
1247
- A > m2 ? (m2 = A, S2 = [c2]) : A === m2 && S2.push(c2);
1247
+ A > m2 ? (m2 = A, S = [c2]) : A === m2 && S.push(c2);
1248
1248
  }
1249
- S2.some((c2) => c2.primary) && (S2 = S2.filter((c2) => c2.primary));
1249
+ S.some((c2) => c2.primary) && (S = S.filter((c2) => c2.primary));
1250
1250
  let p2 = /* @__PURE__ */ new Map();
1251
- for (let c2 of S2) p2.set(c2.row.lon.toFixed(2) + "," + c2.row.lat.toFixed(2), c2.row);
1251
+ for (let c2 of S) p2.set(c2.row.lon.toFixed(2) + "," + c2.row.lat.toFixed(2), c2.row);
1252
1252
  if (p2.size === 1) {
1253
- let c2 = S2[0].row;
1253
+ let c2 = S[0].row;
1254
1254
  return { lat: c2.lat, lon: c2.lon, precision: "city" };
1255
1255
  }
1256
1256
  if (p2.size > 1) return { ambiguous: true, matches: p2.size };
@@ -1273,7 +1273,7 @@ function A3(n) {
1273
1273
  var G = { latlon: 0, city: 1, zip3: 2, state: 3, country: 4 };
1274
1274
  var x = 8;
1275
1275
  function y3(n, e) {
1276
- let t = new Array(n.length), o = new Array(n.length), i = new Array(n.length), r = /* @__PURE__ */ new Set(), a4 = [], 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;
1276
+ let t = new Array(n.length), o = new Array(n.length), i = new Array(n.length), r = /* @__PURE__ */ new Set(), a4 = [], s = /* @__PURE__ */ new Set(), f4 = [], d2 = /* @__PURE__ */ new Set(), R2 = [], g3 = { latlon: 0, city: 0, zip3: 0, state: 0, country: 0 }, S = 0, m2 = 0, p2 = null;
1277
1277
  for (let l = 0; l < n.length; ++l) {
1278
1278
  let A = n[l], C = A3({ ...A, mapKind: e });
1279
1279
  if (S3(C)) {
@@ -1281,7 +1281,7 @@ function y3(n, e) {
1281
1281
  let M2 = K(A);
1282
1282
  M2 && !d2.has(M2.toLowerCase()) && (d2.add(M2.toLowerCase()), R2.length < x && R2.push(M2));
1283
1283
  } else if (C) {
1284
- if (t[l] = C.lat, o[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) {
1284
+ if (t[l] = C.lat, o[l] = C.lon, i[l] = C.precision, S++, g3[C.precision]++, (p2 === null || G[C.precision] > G[p2]) && (p2 = C.precision), G[C.precision] > G.city) {
1285
1285
  let M2 = K(A);
1286
1286
  M2 && !s.has(M2.toLowerCase()) && (s.add(M2.toLowerCase()), f4.length < x && f4.push(M2));
1287
1287
  }
@@ -1292,7 +1292,7 @@ function y3(n, e) {
1292
1292
  }
1293
1293
  }
1294
1294
  let c2 = !n3() && n.some((l) => l.city !== null && l.city !== void 0 && String(l.city).trim() !== "");
1295
- return { lat: t, lon: o, precisions: i, precision: p2, precisionCounts: g3, coarseExamples: f4, unmatched: a4, ambiguousRows: m2, ambiguousExamples: R2, matchedRows: S2, totalRows: n.length, ...c2 ? { cityTableMissing: true } : {} };
1295
+ return { lat: t, lon: o, precisions: i, precision: p2, precisionCounts: g3, coarseExamples: f4, unmatched: a4, ambiguousRows: m2, ambiguousExamples: R2, matchedRows: S, totalRows: n.length, ...c2 ? { cityTableMissing: true } : {} };
1296
1296
  }
1297
1297
  function K(n) {
1298
1298
  let e = [n.city, n.state, n.zip, n.country].filter((t) => t != null && String(t).trim() !== "").map((t) => String(t).trim()).join(", ");
@@ -1558,147 +1558,147 @@ var ct2 = new RegExp([String.raw`\bisMeasure\b`, String.raw`\bdataType\b`, Strin
1558
1558
 
1559
1559
  // ../shape-core/dist/index.mjs
1560
1560
  /*! @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. */
1561
- var F3 = 2;
1562
- var q3 = 400;
1563
- function E2(i) {
1564
- return !!E(i);
1565
- }
1566
- function S(i) {
1567
- let n = /* @__PURE__ */ new Set();
1568
- for (let t of i) {
1561
+ var E2 = 2;
1562
+ var Z2 = 400;
1563
+ function O2(o) {
1564
+ return !!E(o);
1565
+ }
1566
+ function P2(o) {
1567
+ let e = /* @__PURE__ */ new Set();
1568
+ for (let t of o) {
1569
1569
  if (t == null) continue;
1570
- let r = u(String(t));
1571
- if (!V(r) && !n.has(r) && (n.add(r), n.size >= q3)) break;
1570
+ let i = u(String(t));
1571
+ if (!V(i) && !e.has(i) && (e.add(i), e.size >= Z2)) break;
1572
1572
  }
1573
- return Array.from(n);
1573
+ return Array.from(e);
1574
1574
  }
1575
- function x3(i) {
1576
- let n = S(i);
1577
- if (n.length === 0 || O2(i) < 95) return false;
1578
- let t = n.filter((c2) => E2(c2) && !Y(c2)).length, r = n.filter((c2) => !E2(c2) && !!Y(c2)).length;
1579
- return t >= 1 && t >= r;
1575
+ function x3(o) {
1576
+ let e = P2(o);
1577
+ if (e.length === 0 || z2(o) < 95) return false;
1578
+ let t = e.filter((c2) => O2(c2) && !Y(c2)).length, i = e.filter((c2) => !O2(c2) && !!Y(c2)).length;
1579
+ return t >= 1 && t >= i;
1580
1580
  }
1581
- function W2(i, n) {
1582
- if (!Y(i)) return false;
1583
- let t = E(i);
1584
- return t ? n === "world" ? true : s3.has(t) : false;
1581
+ function j2(o, e) {
1582
+ if (!Y(o)) return false;
1583
+ let t = E(o);
1584
+ return t ? e === "world" ? true : s3.has(t) : false;
1585
1585
  }
1586
- function O2(i) {
1587
- let n = S(i);
1588
- if (n.length === 0) return 0;
1586
+ function z2(o) {
1587
+ let e = P2(o);
1588
+ if (e.length === 0) return 0;
1589
1589
  let t = 0;
1590
- for (let r of n) E2(r) && t++;
1591
- return Math.round(t / n.length * 1e3) / 10;
1590
+ for (let i of e) O2(i) && t++;
1591
+ return Math.round(t / e.length * 1e3) / 10;
1592
1592
  }
1593
- function D3(i) {
1594
- let n = S(i);
1595
- if (n.length === 0) return 0;
1593
+ function w2(o) {
1594
+ let e = P2(o);
1595
+ if (e.length === 0) return 0;
1596
1596
  let t = 0;
1597
- for (let r of n) Y(r) && t++;
1598
- return Math.round(t / n.length * 1e3) / 10;
1597
+ for (let i of e) Y(i) && t++;
1598
+ return Math.round(t / e.length * 1e3) / 10;
1599
1599
  }
1600
- function $2(i) {
1601
- let n = /* @__PURE__ */ new Set();
1602
- for (let t of i) {
1600
+ function H2(o) {
1601
+ let e = /* @__PURE__ */ new Set();
1602
+ for (let t of o) {
1603
1603
  if (t == null) continue;
1604
- let r = String(t).trim();
1605
- if (!V(u(r)) && !n.has(r) && (n.add(r), n.size >= q3)) break;
1604
+ let i = String(t).trim();
1605
+ if (!V(u(i)) && !e.has(i) && (e.add(i), e.size >= Z2)) break;
1606
1606
  }
1607
- return Array.from(n);
1607
+ return Array.from(e);
1608
1608
  }
1609
- function z2(i) {
1610
- let n = $2(i);
1611
- if (n.length === 0) return 0;
1609
+ function $2(o) {
1610
+ let e = H2(o);
1611
+ if (e.length === 0) return 0;
1612
1612
  let t = 0;
1613
- for (let r of n) Z(r).length > 0 && t++;
1614
- return Math.round(t / n.length * 1e3) / 10;
1613
+ for (let i of e) Z(i).length > 0 && t++;
1614
+ return Math.round(t / e.length * 1e3) / 10;
1615
1615
  }
1616
- function j2(i, n) {
1617
- return y2(n, rt) ? true : $2(i).some((t) => /^\d{5}(-\d{4})?$/.test(t.replace(/\.0+$/, "")));
1616
+ function q3(o, e) {
1617
+ return y2(e, rt) ? true : H2(o).some((t) => /^\d{5}(-\d{4})?$/.test(t.replace(/\.0+$/, "")));
1618
1618
  }
1619
- function yt2(i, n) {
1620
- let t = S(i);
1619
+ function yt2(o, e) {
1620
+ let t = P2(o);
1621
1621
  if (t.length === 0) return 0;
1622
- let r = 0;
1623
- for (let c2 of t) p3(c2, n) && r++;
1624
- return Math.round(r / t.length * 1e3) / 10;
1622
+ let i = 0;
1623
+ for (let c2 of t) p3(c2, e) && i++;
1624
+ return Math.round(i / t.length * 1e3) / 10;
1625
1625
  }
1626
- function G2(i, n) {
1626
+ function F3(o, e) {
1627
1627
  let t = 0;
1628
- for (let r of S(i)) n(r) && t++;
1628
+ for (let i of P2(o)) e(i) && t++;
1629
1629
  return t;
1630
1630
  }
1631
- function Ct(i, n) {
1631
+ function Ct(o, e) {
1632
1632
  let t = 0;
1633
- for (let r of $2(i)) n(r) && t++;
1633
+ for (let i of H2(o)) e(i) && t++;
1634
1634
  return t;
1635
1635
  }
1636
- function ht(i, n, t, r, c2) {
1637
- let l = [], a4 = [], o = {}, R2 = {}, h3 = new Set(i), f4 = (e) => n.map((s) => s[e]);
1638
- for (let e of ["city", "country"]) {
1639
- let s = t?.[e];
1640
- s && h3.has(s) && (o[e] = s);
1636
+ function ht(o, e, t, i, c2) {
1637
+ let u2 = [], a4 = [], r = {}, T3 = {}, h3 = new Set(o), f4 = (n) => e.map((s) => s[n]);
1638
+ for (let n of ["city", "country"]) {
1639
+ let s = t?.[n];
1640
+ s && h3.has(s) && (r[n] = s);
1641
1641
  }
1642
- let Y2 = new Set(c2 ?? i);
1643
- for (let e of ["lat", "lon"]) {
1644
- let s = t?.[e];
1645
- s && Y2.has(s) && (o[e] = s);
1642
+ let Y2 = new Set(c2 ?? o);
1643
+ for (let n of ["lat", "lon"]) {
1644
+ let s = t?.[n];
1645
+ s && Y2.has(s) && (r[n] = s);
1646
1646
  }
1647
1647
  let g3 = t?.zip;
1648
1648
  if (g3 && h3.has(g3)) {
1649
- let e = f4(g3), s = z2(e);
1650
- s < 95 ? a4.push(`zip=${g3} (only ${s}% of values read as ZIPs)`) : j2(e, g3) ? o.zip = g3 : a4.push(`zip=${g3} (all values are 3-4 digits with nothing to say they are postal)`);
1649
+ let n = f4(g3), s = $2(n);
1650
+ s < 95 ? a4.push(`zip=${g3} (only ${s}% of values read as ZIPs)`) : q3(n, g3) ? r.zip = g3 : a4.push(`zip=${g3} (all values are 3-4 digits with nothing to say they are postal)`);
1651
1651
  }
1652
1652
  let p2 = t?.state;
1653
1653
  if (p2 && h3.has(p2)) {
1654
- let e = f4(p2), s = S(e);
1655
- s.length > 0 && s.every((u2) => W2(u2, r)) ? a4.push(`state=${p2} (every value is "CA", which is both Canada and California)`) : x3(e) ? (a4.push(`state=${p2} (every value is a country, not a state)`), o.country || (o.country = p2)) : D3(e) < 95 ? a4.push(`state=${p2} (only ${D3(e)}% of values are states/provinces)`) : o.state = p2;
1654
+ let n = f4(p2), s = P2(n);
1655
+ s.length > 0 && s.every((l) => j2(l, i)) ? a4.push(`state=${p2} (every value is "CA", which is both Canada and California)`) : x3(n) ? (a4.push(`state=${p2} (every value is a country, not a state)`), r.country || (r.country = p2)) : w2(n) < 95 ? a4.push(`state=${p2} (only ${w2(n)}% of values are states/provinces)`) : r.state = p2;
1656
1656
  }
1657
- let y5 = new Set(Object.values(o).filter(Boolean)), A = i.filter((e) => !y5.has(e) && !e.startsWith("__"));
1658
- if (!o.state) {
1659
- let e = null;
1657
+ let y5 = new Set(Object.values(r).filter(Boolean)), A = o.filter((n) => !y5.has(n) && !n.startsWith("__"));
1658
+ if (!r.state) {
1659
+ let n = null;
1660
1660
  for (let s of A) {
1661
- let u2 = f4(s);
1662
- if (x3(u2)) continue;
1663
- let m2 = D3(u2);
1661
+ let l = f4(s);
1662
+ if (x3(l)) continue;
1663
+ let m2 = w2(l);
1664
1664
  if (m2 < 95) continue;
1665
- let w2 = G2(u2, (T3) => !!Y(T3)), Q3 = G2(u2, (T3) => !!Y(T3) && !W2(T3, r));
1666
- w2 < F3 && Q3 < 1 || (!e || m2 > e.pct) && (e = { name: s, pct: m2 });
1665
+ let D3 = F3(l, (R2) => !!Y(R2)), ee = F3(l, (R2) => !!Y(R2) && !j2(R2, i));
1666
+ D3 < E2 && ee < 1 || (!n || m2 > n.pct) && (n = { name: s, pct: m2 });
1667
1667
  }
1668
- e && (o.state = e.name, y5.add(e.name), l.push(`state=${e.name} (${e.pct}% states/provinces)`));
1668
+ n && (r.state = n.name, y5.add(n.name), u2.push(`state=${n.name} (${n.pct}% states/provinces)`));
1669
1669
  }
1670
- if (!o.zip) for (let e of A) {
1671
- if (y5.has(e)) continue;
1672
- let s = f4(e), u2 = z2(s);
1673
- if (!(u2 < 95) && j2(s, e) && !(Ct(s, (m2) => Z(m2).length > 0) < F3)) {
1674
- o.zip = e, y5.add(e), l.push(`zip=${e} (${u2}% ZIP codes)`);
1670
+ if (!r.zip) for (let n of A) {
1671
+ if (y5.has(n)) continue;
1672
+ let s = f4(n), l = $2(s);
1673
+ if (!(l < 95) && q3(s, n) && !(Ct(s, (m2) => Z(m2).length > 0) < E2)) {
1674
+ r.zip = n, y5.add(n), u2.push(`zip=${n} (${l}% ZIP codes)`);
1675
1675
  break;
1676
1676
  }
1677
1677
  }
1678
- let P2 = o.country;
1679
- if (!P2 || !x3(f4(P2))) {
1680
- let e = null;
1678
+ let S = r.country;
1679
+ if (!S || !x3(f4(S))) {
1680
+ let n = null;
1681
1681
  for (let s of A) {
1682
1682
  if (y5.has(s) || !x3(f4(s))) continue;
1683
- let u2 = O2(f4(s));
1684
- (!e || u2 > e.pct) && (e = { name: s, pct: u2 });
1683
+ let l = z2(f4(s));
1684
+ (!n || l > n.pct) && (n = { name: s, pct: l });
1685
1685
  }
1686
- e && (P2 && (a4.push(`country=${P2} (only ${O2(f4(P2))}% of values are country identifiers; using ${e.name} instead)`), R2.country = P2), o.country = e.name, y5.add(e.name), l.push(`country=${e.name}`));
1686
+ n && (S && (a4.push(`country=${S} (only ${z2(f4(S))}% of values are country identifiers; using ${n.name} instead)`), T3.country = S), r.country = n.name, y5.add(n.name), u2.push(`country=${n.name}`));
1687
1687
  }
1688
- if (!o.city) {
1689
- let e = null;
1688
+ if (!r.city) {
1689
+ let n = null;
1690
1690
  for (let s of A) {
1691
1691
  if (y5.has(s)) continue;
1692
- let u2 = f4(s), m2 = yt2(u2, r);
1693
- m2 < m3 || G2(u2, (w2) => p3(w2, r)) < F3 || (!e || m2 > e.pct) && (e = { name: s, pct: m2 });
1692
+ let l = f4(s), m2 = yt2(l, i);
1693
+ m2 < m3 || F3(l, (D3) => p3(D3, i)) < E2 || (!n || m2 > n.pct) && (n = { name: s, pct: m2 });
1694
1694
  }
1695
- e && (o.city = e.name, l.push(`city=${e.name} (${e.pct}% known cities)`));
1695
+ n && (r.city = n.name, u2.push(`city=${n.name} (${n.pct}% known cities)`));
1696
1696
  }
1697
- let B2 = o.country ? f4(o.country) : [], _2 = !!o.country && x3(B2), J2 = _2 ? new Set(B2.map((e) => E(e == null ? null : String(e))).filter(Boolean)).size : 0, H2 = _2 && J2 >= 2, L2 = !!(o.lat && o.lon) && n.some((e) => {
1698
- let s = +String(e[o.lat] ?? "").trim(), u2 = +String(e[o.lon] ?? "").trim();
1699
- return isFinite(s) && isFinite(u2) && s >= -90 && s <= 90 && u2 >= -180 && u2 <= 180 && String(e[o.lat] ?? "").trim() !== "" && String(e[o.lon] ?? "").trim() !== "";
1697
+ let B2 = r.country ? f4(r.country) : [], k2 = !!r.country && x3(B2), Q3 = k2 ? new Set(B2.map((n) => E(n == null ? null : String(n))).filter(Boolean)).size : 0, K3 = k2 && Q3 >= 2, _2 = !!(r.lat && r.lon) && e.some((n) => {
1698
+ let s = +String(n[r.lat] ?? "").trim(), l = +String(n[r.lon] ?? "").trim();
1699
+ return isFinite(s) && isFinite(l) && s >= -90 && s <= 90 && l >= -180 && l <= 180 && String(n[r.lat] ?? "").trim() !== "" && String(n[r.lon] ?? "").trim() !== "";
1700
1700
  });
1701
- return o.lat && o.lon && !L2 && a4.push(`lat/lon=${o.lat}/${o.lon} (no row holds a usable coordinate pair)`), o.country && !H2 && !(o.city || o.state || o.zip || L2) && a4.push(_2 ? `country=${o.country} (every row resolves to the same country - nothing to place apart)` : `country=${o.country} (values are not country identifiers)`), { bind: !!(o.city || o.state || o.zip || H2 || L2) ? o : null, backfilled: l, refused: a4, ...Object.keys(R2).length ? { labelFallback: R2 } : {} };
1701
+ return r.lat && r.lon && !_2 && a4.push(`lat/lon=${r.lat}/${r.lon} (no row holds a usable coordinate pair)`), r.country && !K3 && !(r.city || r.state || r.zip || _2) && a4.push(k2 ? `country=${r.country} (every row resolves to the same country - nothing to place apart)` : `country=${r.country} (values are not country identifiers)`), { bind: !!(r.city || r.state || r.zip || K3 || _2) ? r : null, backfilled: u2, refused: a4, ...Object.keys(T3).length ? { labelFallback: T3 } : {} };
1702
1702
  }
1703
1703
 
1704
1704
  // src/payload.ts
@@ -2305,13 +2305,13 @@ function censusHitBands(container, doc) {
2305
2305
  if (!OPEN_TAGS.has(tag)) continue;
2306
2306
  const cs = styleOf2(el, ownerDoc);
2307
2307
  const open = isUnfilled(attrOrComputed(el, "fill", cs));
2308
- const w2 = widthPx(attrOrComputed(el, "stroke-width", cs) || "1");
2308
+ const w3 = widthPx(attrOrComputed(el, "stroke-width", cs) || "1");
2309
2309
  const geom = String(el.getAttribute?.("d") ?? "") || `${tag}#${String(el.getAttribute?.(ROW_IDX_ATTR) ?? "")}`;
2310
2310
  const inert = String(cs?.pointerEvents ?? el.style?.pointerEvents ?? "") === "none";
2311
- rows.push({ el, geom, w: w2, open, inert });
2312
- if (isFinite(w2)) {
2311
+ rows.push({ el, geom, w: w3, open, inert });
2312
+ if (isFinite(w3)) {
2313
2313
  const prev = widestByGeom.get(geom);
2314
- if (prev === void 0 || w2 > prev) widestByGeom.set(geom, w2);
2314
+ if (prev === void 0 || w3 > prev) widestByGeom.set(geom, w3);
2315
2315
  }
2316
2316
  }
2317
2317
  const out = { ...EMPTY3 };
@@ -2482,12 +2482,12 @@ function contentExtentOf(boxes) {
2482
2482
  if (usable.length === 0) return { w: 0, h: 0, source: "none" };
2483
2483
  const inFlow = usable.filter((b4) => !b4.floating);
2484
2484
  const counted = inFlow.length > 0 ? inFlow : usable;
2485
- let w2 = 0, h3 = 0;
2485
+ let w3 = 0, h3 = 0;
2486
2486
  for (const b4 of counted) {
2487
- if (b4.right > w2) w2 = b4.right;
2487
+ if (b4.right > w3) w3 = b4.right;
2488
2488
  if (b4.bottom > h3) h3 = b4.bottom;
2489
2489
  }
2490
- return { w: w2, h: h3, source: inFlow.length > 0 ? "in-flow" : "all-floating" };
2490
+ return { w: w3, h: h3, source: inFlow.length > 0 ? "in-flow" : "all-floating" };
2491
2491
  }
2492
2492
  function scrollFitFor(contentW, contentH, viewportW, viewportH, slackPx = SCROLL_SLACK_PX) {
2493
2493
  return {
@@ -2497,8 +2497,8 @@ function scrollFitFor(contentW, contentH, viewportW, viewportH, slackPx = SCROLL
2497
2497
  }
2498
2498
  var FIT_CONTENT_SELECTOR = "text, .d3-mark, .d3-legend-mark";
2499
2499
  var PHANTOM_FRACTION = 0.95;
2500
- function isPhantomBox(w2, h3, refW, refH) {
2501
- return w2 > refW * PHANTOM_FRACTION || h3 > refH * PHANTOM_FRACTION;
2500
+ function isPhantomBox(w3, h3, refW, refH) {
2501
+ return w3 > refW * PHANTOM_FRACTION || h3 > refH * PHANTOM_FRACTION;
2502
2502
  }
2503
2503
  var MAX_FRAME_GROW_FACTOR = 20;
2504
2504
  function planFrameGrow(inkBottomPx, elHeightPx, viewBoxH, ctmScale, slackPx = SCROLL_SLACK_PX, maxFactor = MAX_FRAME_GROW_FACTOR) {
package/dist/index.mjs CHANGED
@@ -133,7 +133,7 @@ import {
133
133
  unpinScrolledAxis,
134
134
  valuePlacementFlag,
135
135
  withoutViewOnlyKeys
136
- } from "./chunk-DTAYO46G.mjs";
136
+ } from "./chunk-RO6O22YG.mjs";
137
137
  import "./chunk-A2GMXZP7.mjs";
138
138
  import "./chunk-GHODWOAL.mjs";
139
139
 
package/dist/react.mjs CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  createChartHost,
5
5
  geoFromCache,
6
6
  loadGeo
7
- } from "./chunk-DTAYO46G.mjs";
7
+ } from "./chunk-RO6O22YG.mjs";
8
8
  import "./chunk-A2GMXZP7.mjs";
9
9
  import "./chunk-GHODWOAL.mjs";
10
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bicharts/chart-host",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
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",