@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
|
-
})),
|
|
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;
|
|
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
|
|
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,
|
|
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)),
|
|
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,
|
|
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 (
|
|
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),
|
|
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(
|
|
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(
|
|
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(
|
|
249
|
-
if (
|
|
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 (
|
|
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,
|
|
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 &&
|
|
316
|
+
t.finished && !r2 && _3(t.workerId, t.results);
|
|
317
317
|
}
|
|
318
|
-
function
|
|
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,
|
|
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 && (
|
|
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 &&
|
|
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
|
|
776
|
+
const A4 = hexToLab(accent);
|
|
777
777
|
let t = 0.1;
|
|
778
|
-
let low = mixLab(bg,
|
|
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,
|
|
781
|
+
low = mixLab(bg, A4, t);
|
|
782
782
|
}
|
|
783
783
|
const lowHex = labToHex(low);
|
|
784
|
-
let high = { ...
|
|
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,
|
|
1244
|
-
if (d2 && l.a1 !== "") if (g3 && l.a1 === g3 || u(l.a1) === R2)
|
|
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)
|
|
1246
|
+
if (i) if (T(l.cc) === i) A4++;
|
|
1247
1247
|
else continue;
|
|
1248
|
-
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
1647
|
-
let r =
|
|
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
|
|
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
|
|
1664
|
-
let l = [], a2 = [], i = {},
|
|
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
|
|
1669
|
+
let R2 = new Set(u2 ?? t);
|
|
1670
1670
|
for (let s of ["lat", "lon"]) {
|
|
1671
1671
|
let c2 = r?.[s];
|
|
1672
|
-
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 =
|
|
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
|
|
1680
|
-
if (
|
|
1681
|
-
let s =
|
|
1682
|
-
c2.length > 0 && c2.every((
|
|
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
|
|
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
|
|
1688
|
-
let
|
|
1689
|
-
if (N3(
|
|
1690
|
-
let v3 = U3(
|
|
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
|
|
1693
|
-
|
|
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,
|
|
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
|
|
1698
|
-
if (
|
|
1699
|
-
let c2 =
|
|
1700
|
-
if (!(
|
|
1701
|
-
i.zip = s,
|
|
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
|
|
1706
|
-
if (!
|
|
1705
|
+
let E4 = i.country;
|
|
1706
|
+
if (!E4 || !N3(b2(E4))) {
|
|
1707
1707
|
let s = null;
|
|
1708
|
-
for (let c2 of
|
|
1709
|
-
if (
|
|
1710
|
-
let
|
|
1711
|
-
(!s ||
|
|
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 && (
|
|
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
|
|
1718
|
-
if (
|
|
1719
|
-
let
|
|
1720
|
-
v3 < m3 || Q3(
|
|
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 ?
|
|
1725
|
-
let c2 = +String(s[i.lat] ?? "").trim(),
|
|
1726
|
-
return isFinite(c2) && isFinite(
|
|
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 && !
|
|
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
|
|
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
|
|
1735
|
-
var
|
|
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 =
|
|
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((
|
|
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
package/dist/react.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bicharts/chart-host",
|
|
3
|
-
"version": "0.6.
|
|
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",
|