@blueprint-chart/lib 1.8.1 → 1.8.2
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.
- package/dist/charts/number-parse.d.ts +17 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +101 -101
- package/dist/lib/lib.iife.js +8 -8
- package/dist/node-backend/index.js +98 -90
- package/dist/{render-bpc-Bp2OTJmu.js → render-bpc-By-iMMKD.js} +144 -136
- package/dist/runtime.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { $ as e, A as t, B as n, C as r, Ct as i, D as a, E as o,
|
|
2
|
-
import { t as
|
|
1
|
+
import { $ as e, A as t, B as n, C as r, Ct as i, D as a, E as o, Et as s, F as c, G as l, H as ee, I as te, J as u, K as ne, L as re, M as ie, N as ae, O as oe, P as se, Q as d, R as ce, S as f, St as le, T as ue, Tt as de, U as fe, V as pe, W as me, X as p, Y as he, Z as ge, _ as _e, _t as ve, a as ye, at as be, b as xe, bt as Se, c as Ce, ct as we, d as Te, dt as Ee, et as De, f as Oe, ft as ke, g as Ae, gt as je, h as Me, ht as Ne, i as m, it as Pe, j as Fe, k as Ie, l as Le, lt as h, m as g, mt as Re, n as _, nt as ze, o as Be, ot as Ve, p as v, pt as He, q as Ue, r as We, rt as Ge, s as Ke, st as qe, t as Je, tt as y, u as Ye, ut as Xe, v as Ze, vt as Qe, w as $e, wt as et, x as b, xt as tt, y as nt, yt as rt, z as it } from "./render-bpc-By-iMMKD.js";
|
|
2
|
+
import { t as at } from "./runtime-BnrDRLyH.js";
|
|
3
3
|
import x from "chroma-js";
|
|
4
4
|
//#region src/recommendations/intent.ts
|
|
5
|
-
var
|
|
5
|
+
var ot = [
|
|
6
6
|
{
|
|
7
7
|
intent: "range",
|
|
8
8
|
pattern: /\b(range|high and low|high\/low|margin of error|confidence interval|confidence|interval|plus or minus|spread between)\b/i
|
|
@@ -30,7 +30,7 @@ var at = [
|
|
|
30
30
|
];
|
|
31
31
|
function S(e) {
|
|
32
32
|
if (e === void 0 || e.trim() === "") return "none";
|
|
33
|
-
for (let t of
|
|
33
|
+
for (let t of ot) if (t.pattern.test(e)) return t.intent;
|
|
34
34
|
return "none";
|
|
35
35
|
}
|
|
36
36
|
//#endregion
|
|
@@ -101,7 +101,7 @@ var C = (e, t, n) => ({
|
|
|
101
101
|
},
|
|
102
102
|
other: { none: () => [C("bar-vertical", "good", "Default bar chart recommendation")] }
|
|
103
103
|
};
|
|
104
|
-
function
|
|
104
|
+
function st(e, t, n) {
|
|
105
105
|
let r = w[e], i = r[t] ?? r.none;
|
|
106
106
|
return i ? i(n) : [C("bar-vertical", "good", "Default bar chart recommendation")];
|
|
107
107
|
}
|
|
@@ -113,7 +113,7 @@ function T(e, t) {
|
|
|
113
113
|
}
|
|
114
114
|
//#endregion
|
|
115
115
|
//#region src/recommendations/types.ts
|
|
116
|
-
var
|
|
116
|
+
var ct = {
|
|
117
117
|
"bar-vertical": "Vertical Bar Chart",
|
|
118
118
|
"bar-horizontal": "Horizontal Bar Chart",
|
|
119
119
|
"bar-multi": "Grouped Bar Chart",
|
|
@@ -130,17 +130,17 @@ var st = {
|
|
|
130
130
|
};
|
|
131
131
|
//#endregion
|
|
132
132
|
//#region src/recommendations/recommend.ts
|
|
133
|
-
function
|
|
134
|
-
return e.length === 0 ? [] :
|
|
133
|
+
function lt(e, t, n) {
|
|
134
|
+
return e.length === 0 ? [] : st(T(e, t), S(n), t).map((e) => ({
|
|
135
135
|
chartType: e.type,
|
|
136
|
-
label:
|
|
136
|
+
label: ct[e.type] ?? e.type,
|
|
137
137
|
fitness: e.fitness,
|
|
138
138
|
reason: e.reason
|
|
139
139
|
}));
|
|
140
140
|
}
|
|
141
141
|
//#endregion
|
|
142
142
|
//#region src/charts/colorblind.ts
|
|
143
|
-
var
|
|
143
|
+
var ut = {
|
|
144
144
|
protanopia: "Protanopia (no red)",
|
|
145
145
|
deuteranopia: "Deuteranopia (no green)",
|
|
146
146
|
tritanopia: "Tritanopia (no blue)"
|
|
@@ -215,24 +215,24 @@ var lt = {
|
|
|
215
215
|
function D(e) {
|
|
216
216
|
return `bc-cvd-${e}`;
|
|
217
217
|
}
|
|
218
|
-
function
|
|
218
|
+
function dt(e) {
|
|
219
219
|
let t = "http://www.w3.org/2000/svg", n = document.createElementNS(t, "filter");
|
|
220
220
|
n.setAttribute("id", D(e)), n.setAttribute("color-interpolation-filters", "linearRGB");
|
|
221
221
|
let r = document.createElementNS(t, "feColorMatrix");
|
|
222
222
|
return r.setAttribute("type", "matrix"), r.setAttribute("values", E[e].join(" ")), n.appendChild(r), n;
|
|
223
223
|
}
|
|
224
|
-
function
|
|
224
|
+
function ft(e) {
|
|
225
225
|
return e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4;
|
|
226
226
|
}
|
|
227
227
|
function O(e) {
|
|
228
228
|
return e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055;
|
|
229
229
|
}
|
|
230
230
|
function k(e, t) {
|
|
231
|
-
let [n, r, i] = x(e).rgb().map((e) =>
|
|
231
|
+
let [n, r, i] = x(e).rgb().map((e) => ft(e / 255)), a = E[t], o = O(a[0] * n + a[1] * r + a[2] * i), s = O(a[5] * n + a[6] * r + a[7] * i), c = O(a[10] * n + a[11] * r + a[12] * i), l = (e) => Math.min(255, Math.max(0, Math.round(e * 255)));
|
|
232
232
|
return x(l(o), l(s), l(c)).hex();
|
|
233
233
|
}
|
|
234
|
-
var
|
|
235
|
-
function
|
|
234
|
+
var pt = 10;
|
|
235
|
+
function mt(e) {
|
|
236
236
|
if (e.length < 2) return [];
|
|
237
237
|
let t = [
|
|
238
238
|
"protanopia",
|
|
@@ -243,7 +243,7 @@ function pt(e) {
|
|
|
243
243
|
let t = e.map((e) => k(e, r)), i = [];
|
|
244
244
|
for (let n = 0; n < t.length; n++) for (let r = n + 1; r < t.length; r++) {
|
|
245
245
|
let a = x.deltaE(t[n], t[r]);
|
|
246
|
-
a <
|
|
246
|
+
a < pt && i.push({
|
|
247
247
|
a: e[n],
|
|
248
248
|
b: e[r],
|
|
249
249
|
deltaE: a
|
|
@@ -251,7 +251,7 @@ function pt(e) {
|
|
|
251
251
|
}
|
|
252
252
|
i.length > 0 && n.push({
|
|
253
253
|
type: r,
|
|
254
|
-
label:
|
|
254
|
+
label: ut[r],
|
|
255
255
|
pairs: i
|
|
256
256
|
});
|
|
257
257
|
}
|
|
@@ -269,13 +269,13 @@ function M(e, t) {
|
|
|
269
269
|
let n = `${t}${/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e.key) ? e.key : `"${e.key}"`} = ${j(e)}`;
|
|
270
270
|
return [...A(e.leadingComments, t), n].join("\n");
|
|
271
271
|
}
|
|
272
|
-
function
|
|
272
|
+
function ht(e, t) {
|
|
273
273
|
let n;
|
|
274
274
|
return n = e.key === "series" && e.quotedKey && !(e.values && e.values.length > 1) ? `${t}"series" = ${j(e)}` : e.values && e.values.length > 1 ? `${t}${e.key === "series" && !e.quotedKey ? e.key : `"${e.key}"`} = ${e.values.map((e) => typeof e == "number" ? `${e}` : `"${String(e).replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`).join(",")}` : `${t}${/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e.key) ? e.key : `"${e.key}"`} = ${j(e)}`, [...A(e.leadingComments, t), n].join("\n");
|
|
275
275
|
}
|
|
276
276
|
function N(e, t) {
|
|
277
277
|
let n = [...A(e.leadingComments, t), `${t}data {`];
|
|
278
|
-
for (let r of e.entries) n.push(
|
|
278
|
+
for (let r of e.entries) n.push(ht(r, `${t} `));
|
|
279
279
|
return n.push(`${t}}`), n.join("\n");
|
|
280
280
|
}
|
|
281
281
|
function P(e, t) {
|
|
@@ -292,13 +292,13 @@ function I(e, t) {
|
|
|
292
292
|
return n.push(`${t}}`), n.join("\n");
|
|
293
293
|
}
|
|
294
294
|
function L(e, t) {
|
|
295
|
-
let n = e.kind ??
|
|
296
|
-
if (n ===
|
|
295
|
+
let n = e.kind ?? d.Point;
|
|
296
|
+
if (n === d.Range) {
|
|
297
297
|
let n = [...A(e.leadingComments, t), `${t}range {`];
|
|
298
298
|
for (let r of e.properties) n.push(M(r, `${t} `));
|
|
299
299
|
return n.push(`${t}}`), n.join("\n");
|
|
300
300
|
}
|
|
301
|
-
if (n ===
|
|
301
|
+
if (n === d.Free) {
|
|
302
302
|
let n = [...A(e.leadingComments, t), `${t}note {`];
|
|
303
303
|
for (let r of e.properties) n.push(M(r, `${t} `));
|
|
304
304
|
return n.push(`${t}}`), n.join("\n");
|
|
@@ -329,11 +329,11 @@ function B(e, t) {
|
|
|
329
329
|
for (let r of e.properties) n.push(M(r, `${t} `));
|
|
330
330
|
return n.push(`${t}}`), n.join("\n");
|
|
331
331
|
}
|
|
332
|
-
function
|
|
333
|
-
let r =
|
|
332
|
+
function gt(e, t, n) {
|
|
333
|
+
let r = b(n).find((t) => t.key === e);
|
|
334
334
|
return !r || r.default === void 0 ? !1 : String(r.default) === String(t);
|
|
335
335
|
}
|
|
336
|
-
function
|
|
336
|
+
function _t(e) {
|
|
337
337
|
let t = [`chart ${e.chartType} {`];
|
|
338
338
|
for (let n of e.properties) t.push(M(n, " "));
|
|
339
339
|
e.data && t.push(N(e.data, " "));
|
|
@@ -346,11 +346,11 @@ function gt(e) {
|
|
|
346
346
|
for (let n of e.transforms) t.push(B(n, " "));
|
|
347
347
|
return t.push("}"), t.join("\n");
|
|
348
348
|
}
|
|
349
|
-
function
|
|
349
|
+
function vt(e) {
|
|
350
350
|
return new Map(e.map((e) => [e.key, e.value]));
|
|
351
351
|
}
|
|
352
352
|
function V(e, t, n, r) {
|
|
353
|
-
let i =
|
|
353
|
+
let i = b(n).find((t) => t.key === e);
|
|
354
354
|
return i ? r.has(e) ? String(r.get(e)) === String(t) : i.default !== void 0 && String(i.default) === String(t) : !1;
|
|
355
355
|
}
|
|
356
356
|
function H(e, t, n, r) {
|
|
@@ -358,7 +358,7 @@ function H(e, t, n, r) {
|
|
|
358
358
|
for (let a of e.properties) (a.isPercentage || !V(a.key, a.value, n, r)) && i.push(M(a, `${t} `));
|
|
359
359
|
return i.push(`${t}}`), i.join("\n");
|
|
360
360
|
}
|
|
361
|
-
function
|
|
361
|
+
function yt(e, t, n, r) {
|
|
362
362
|
let i = e.properties.find((e) => e.key === "type"), a = i ? String(i.value) : n, o = e.name == null ? `${t}scene {` : `${t}scene "${e.name}" {`, s = [...A(e.leadingComments, t), o], c = new Map(r);
|
|
363
363
|
for (let n of e.properties) {
|
|
364
364
|
if (n.key === "type") {
|
|
@@ -376,7 +376,7 @@ function vt(e, t, n, r) {
|
|
|
376
376
|
for (let n of e.transforms) s.push(B(n, `${t} `));
|
|
377
377
|
return s.push(`${t}}`), s.join("\n");
|
|
378
378
|
}
|
|
379
|
-
function
|
|
379
|
+
function bt(e) {
|
|
380
380
|
let t = [`chart ${e.chartType} {`], n = /* @__PURE__ */ new Map();
|
|
381
381
|
for (let r of e.properties) (r.isPercentage || !V(r.key, r.value, e.chartType, n)) && t.push(M(r, " "));
|
|
382
382
|
e.data && t.push(N(e.data, " "));
|
|
@@ -384,15 +384,15 @@ function yt(e) {
|
|
|
384
384
|
for (let n of e.highlights) t.push(F(n, " "));
|
|
385
385
|
for (let n of e.areaFills) t.push(I(n, " "));
|
|
386
386
|
for (let n of e.annotations) t.push(L(n, " "));
|
|
387
|
-
let r =
|
|
387
|
+
let r = vt(e.properties);
|
|
388
388
|
for (let n of e.series) t.push(H(n, " ", e.chartType, r));
|
|
389
|
-
for (let n of e.scenes) t.push(
|
|
389
|
+
for (let n of e.scenes) t.push(yt(n, " ", e.chartType, r));
|
|
390
390
|
for (let n of e.transforms) t.push(B(n, " "));
|
|
391
391
|
return t.push("}"), t.join("\n");
|
|
392
392
|
}
|
|
393
|
-
function
|
|
393
|
+
function xt(e) {
|
|
394
394
|
let t = [`chart ${e.chartType} {`];
|
|
395
|
-
for (let n of e.properties)
|
|
395
|
+
for (let n of e.properties) gt(n.key, n.value, e.chartType) || t.push(M(n, " "));
|
|
396
396
|
e.data && t.push(N(e.data, " "));
|
|
397
397
|
for (let n of e.colorizes) t.push(P(n, " "));
|
|
398
398
|
for (let n of e.highlights) t.push(F(n, " "));
|
|
@@ -421,7 +421,7 @@ var U = /* @__PURE__ */ new Set([
|
|
|
421
421
|
"heightMode",
|
|
422
422
|
"aspectRatio",
|
|
423
423
|
"fixedHeight"
|
|
424
|
-
]), W = /* @__PURE__ */ new Set(["sort"]),
|
|
424
|
+
]), W = /* @__PURE__ */ new Set(["sort"]), St = /* @__PURE__ */ new Set([
|
|
425
425
|
"text",
|
|
426
426
|
"repeat",
|
|
427
427
|
"textColor",
|
|
@@ -439,7 +439,7 @@ var U = /* @__PURE__ */ new Set([
|
|
|
439
439
|
"circleSize",
|
|
440
440
|
"circleStyle",
|
|
441
441
|
"circleColor"
|
|
442
|
-
]),
|
|
442
|
+
]), Ct = /* @__PURE__ */ new Set([
|
|
443
443
|
"start",
|
|
444
444
|
"end",
|
|
445
445
|
"repeat",
|
|
@@ -451,7 +451,7 @@ var U = /* @__PURE__ */ new Set([
|
|
|
451
451
|
"direction",
|
|
452
452
|
"text",
|
|
453
453
|
"textColor"
|
|
454
|
-
]),
|
|
454
|
+
]), wt = /* @__PURE__ */ new Set([
|
|
455
455
|
"text",
|
|
456
456
|
"x",
|
|
457
457
|
"y",
|
|
@@ -460,7 +460,7 @@ var U = /* @__PURE__ */ new Set([
|
|
|
460
460
|
"maxWidth",
|
|
461
461
|
"textOutline"
|
|
462
462
|
]);
|
|
463
|
-
function
|
|
463
|
+
function Tt(e, t) {
|
|
464
464
|
let n = e.length, r = t.length;
|
|
465
465
|
if (n === 0) return r;
|
|
466
466
|
if (r === 0) return n;
|
|
@@ -478,19 +478,19 @@ function wt(e, t) {
|
|
|
478
478
|
function G(e, t) {
|
|
479
479
|
let n, r = Infinity;
|
|
480
480
|
for (let i of t) {
|
|
481
|
-
let t =
|
|
481
|
+
let t = Tt(e.toLowerCase(), i.toLowerCase());
|
|
482
482
|
t < r && (r = t, n = i);
|
|
483
483
|
}
|
|
484
484
|
if (n === void 0) return;
|
|
485
485
|
let i = Math.max(1, Math.min(3, Math.floor(e.length / 2)));
|
|
486
486
|
return r <= i ? n : void 0;
|
|
487
487
|
}
|
|
488
|
-
function
|
|
488
|
+
function Et(e, t) {
|
|
489
489
|
return e.find((e) => e.key === t);
|
|
490
490
|
}
|
|
491
|
-
function
|
|
491
|
+
function Dt(e, t, n, r) {
|
|
492
492
|
let i = t.value, a = String(i).toLowerCase();
|
|
493
|
-
if (e.type ===
|
|
493
|
+
if (e.type === y.Boolean) {
|
|
494
494
|
if (e.key === "valueLabels" && a === "percent" || i === !0 || i === !1 || a === "true" || a === "false") return;
|
|
495
495
|
r.push({
|
|
496
496
|
code: "invalid-boolean",
|
|
@@ -513,11 +513,11 @@ function Et(e, t, n, r) {
|
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
515
|
function K(e, t, n, r) {
|
|
516
|
-
let i =
|
|
516
|
+
let i = b(e), a = /* @__PURE__ */ new Set([...i.map((e) => e.key), ...U]);
|
|
517
517
|
for (let o of t) {
|
|
518
518
|
let t = `${n}.${o.key}`;
|
|
519
519
|
if (U.has(o.key)) continue;
|
|
520
|
-
let s =
|
|
520
|
+
let s = Et(i, o.key);
|
|
521
521
|
if (!s) {
|
|
522
522
|
r.push({
|
|
523
523
|
code: "unknown-property",
|
|
@@ -527,25 +527,25 @@ function K(e, t, n, r) {
|
|
|
527
527
|
});
|
|
528
528
|
continue;
|
|
529
529
|
}
|
|
530
|
-
|
|
530
|
+
Dt(s, o, t, r);
|
|
531
531
|
}
|
|
532
532
|
}
|
|
533
|
-
function Dt(e) {
|
|
534
|
-
return e === f.Range ? St : e === f.Free ? Ct : xt;
|
|
535
|
-
}
|
|
536
533
|
function Ot(e) {
|
|
537
|
-
return d
|
|
534
|
+
return e === d.Range ? Ct : e === d.Free ? wt : St;
|
|
535
|
+
}
|
|
536
|
+
function kt(e) {
|
|
537
|
+
return p[e];
|
|
538
538
|
}
|
|
539
539
|
function q(e, t, n) {
|
|
540
540
|
e.forEach((e, r) => {
|
|
541
|
-
let i = e.kind ??
|
|
541
|
+
let i = e.kind ?? d.Point, a = Ot(i), o = kt(i);
|
|
542
542
|
for (let i of e.properties) a.has(i.key) || n.push({
|
|
543
543
|
code: "unknown-annotation-property",
|
|
544
544
|
path: `${t}.${o}[${r}].${i.key}`,
|
|
545
545
|
message: `Unknown ${o} property "${i.key}"; it will be silently ignored.`,
|
|
546
546
|
suggestion: G(i.key, a)
|
|
547
547
|
});
|
|
548
|
-
let s =
|
|
548
|
+
let s = v(e.properties).get("repeat");
|
|
549
549
|
s !== void 0 && (s === "true" || s === "false" || s === !0 || s === !1 || typeof s == "number" && Number.isInteger(s) && s >= 1 || n.push({
|
|
550
550
|
code: "invalid-annotation-repeat",
|
|
551
551
|
message: `repeat must be false, true, or a positive integer (got ${String(s)})`,
|
|
@@ -563,8 +563,8 @@ function J(e, t, n) {
|
|
|
563
563
|
});
|
|
564
564
|
});
|
|
565
565
|
}
|
|
566
|
-
function
|
|
567
|
-
let t = [], n = [], r =
|
|
566
|
+
function At(e) {
|
|
567
|
+
let t = [], n = [], r = f(), i = r.includes(e.chartType);
|
|
568
568
|
i || t.push({
|
|
569
569
|
code: "unknown-chart-type",
|
|
570
570
|
path: "chartType",
|
|
@@ -576,15 +576,15 @@ function kt(e) {
|
|
|
576
576
|
code: "missing-data",
|
|
577
577
|
path: "data",
|
|
578
578
|
message: e.data && e.data.entries.length === 0 ? "Data block is empty." : "Chart has no data."
|
|
579
|
-
}), e.data &&
|
|
580
|
-
|
|
579
|
+
}), e.data && jt(e.data.entries, n), e.scenes.forEach((n, r) => {
|
|
580
|
+
Mt(n, e.chartType, r, t);
|
|
581
581
|
}), {
|
|
582
582
|
valid: t.length === 0,
|
|
583
583
|
errors: t,
|
|
584
584
|
warnings: n
|
|
585
585
|
};
|
|
586
586
|
}
|
|
587
|
-
function
|
|
587
|
+
function jt(e, t) {
|
|
588
588
|
let n = e.findIndex((e) => e.key === "series" && !e.quotedKey);
|
|
589
589
|
if (n === -1) return;
|
|
590
590
|
let r = e[n], i = r.values ?? [r.value];
|
|
@@ -600,25 +600,25 @@ function At(e, t) {
|
|
|
600
600
|
suggestion: "Move the series row to the top of the data block."
|
|
601
601
|
});
|
|
602
602
|
}
|
|
603
|
-
function
|
|
603
|
+
function Mt(e, t, n, r) {
|
|
604
604
|
let i = `scene[${n}]`, a = e.properties.find((e) => e.key === "type")?.value, o = a == null ? t : String(a);
|
|
605
|
-
a != null && !
|
|
605
|
+
a != null && !f().includes(o) ? r.push({
|
|
606
606
|
code: "unknown-chart-type",
|
|
607
607
|
path: `${i}.type`,
|
|
608
608
|
message: `Unknown chart type "${o}".`,
|
|
609
|
-
suggestion: G(o,
|
|
609
|
+
suggestion: G(o, f())
|
|
610
610
|
}) : K(o, e.properties, i, r), J(e.transforms, i, r), q(e.annotations, i, r);
|
|
611
611
|
}
|
|
612
612
|
//#endregion
|
|
613
613
|
//#region src/samples/letter-frequency.bpc?raw
|
|
614
|
-
var Mt = "chart bar-vertical {\n title = \"E is the most frequent letter in English\"\n description = \"How often each letter appears in typical English text\"\n byline = \"Pierre Romera\"\n source = \"Lewand, Cryptological Mathematics\"\n sourceUrl = \"https://en.wikipedia.org/wiki/Letter_frequency\"\n note = \"Based on analysis of 40,000 words from English prose\"\n colorPalette = \"London\"\n sort = descending\n\n highlight \"E\"\n\n data {\n \"E\" = 12.70\n \"T\" = 9.06\n \"A\" = 8.17\n \"O\" = 7.51\n \"I\" = 6.97\n \"N\" = 6.75\n \"S\" = 6.33\n \"H\" = 6.09\n \"R\" = 5.99\n \"D\" = 4.25\n }\n}\n", Nt = "chart bar-vertical {\n // the headline above the chart\n title = \"China emits more CO₂ than the US and India combined\"\n description = \"Annual emissions in billion tonnes, 2023\"\n source = \"Our World in Data\"\n sourceUrl = \"https://ourworldindata.org/co2-emissions\"\n\n // one row per country: \"label\" = value\n data {\n \"China\" = 12.17\n \"United States\" = 4.92\n \"India\" = 3.06\n \"Russia\" = 1.73\n \"Japan\" = 0.99\n \"Germany\" = 0.59\n }\n\n // highlight pops one bar in the accent color\n highlight \"China\"\n\n // an annotation points a callout at a single bar\n annotation \"India\" {\n text = \"Surpassed EU in 2023\"\n showLine = true\n anchorDirection = N\n textOffsetX = 66\n textOffsetY = -41\n lineStyle = curve-left\n showArrow = true\n lineTargetDistance = 26\n showCircle = false\n }\n}\n", Pt = "chart bar-horizontal {\n title = \"Mandarin has nearly twice as many native speakers as Spanish\"\n description = \"Number of native speakers worldwide, in millions\"\n source = \"Ethnologue\"\n sourceUrl = \"https://ethnologue.com\"\n byline = \"Pierre Romera\"\n sort = descending\n\n highlight \"Mandarin\"\n\n data {\n \"Mandarin\" = 988\n \"Spanish\" = 487\n \"English\" = 372\n \"Hindi\" = 347\n \"Bengali\" = 232\n \"Portuguese\" = 252\n \"Russian\" = 133\n \"Japanese\" = 124\n }\n}\n", Ft = "chart line-multi {\n title = \"China now buys more electric cars than the rest of the world combined\"\n description = \"Electric car sales by region, millions per year\"\n source = \"IEA Global EV Outlook 2024\"\n sourceUrl = \"https://www.iea.org/reports/global-ev-outlook-2024\"\n colorPalette = \"Maya\"\n tooltips = true\n\n data {\n series = \"China\",\"Europe\",\"United States\",\"Rest of world\"\n \"2018\" = 1.1,0.4,0.36,0.1\n \"2020\" = 1.3,1.4,0.30,0.2\n \"2021\" = 3.3,2.3,0.63,0.4\n \"2022\" = 6.0,2.7,1.0,0.7\n \"2023\" = 8.1,3.2,1.4,1.0\n }\n}\n", It = "chart bar-multi {\n title = \"USA tops Paris 2024 with 126 medals across all categories\"\n description = \"2024 Paris Summer Games — top six nations\"\n source = \"Olympics.com\"\n sourceUrl = \"https://olympics.com\"\n colors = \"#eeca3b, #c0c0c0, #cd7f32\"\n sort = descending\n\n data {\n series = \"Gold\",\"Silver\",\"Bronze\"\n \"USA\" = 40,44,42\n \"China\" = 40,27,24\n \"Japan\" = 20,12,13\n \"Great Britain\" = 14,22,29\n \"Australia\" = 18,19,16\n \"France\" = 16,26,22\n }\n}\n", Lt = "chart line {\n title = \"2024 was the hottest year on record\"\n description = \"Deviation from the 1951–1980 average, in °C\"\n source = \"NASA GISS\"\n sourceUrl = \"https://data.giss.nasa.gov/gistemp/\"\n tooltips = true\n crosshair = false\n lineSymbols = true\n\n data {\n \"1980\" = 0.26\n \"1985\" = 0.12\n \"1990\" = 0.45\n \"1995\" = 0.45\n \"2000\" = 0.39\n \"2005\" = 0.68\n \"2010\" = 0.73\n \"2015\" = 0.9\n \"2020\" = 1.01\n \"2024\" = 1.28\n }\n\n annotation \"2015\" {\n text = \"2015 Paris Agreement to limit global warming to 1.5°C \"\n maxWidth = 224\n showLine = true\n lineStyle = curve-right\n showArrow = true\n showCircle = true\n }\n}\n", Rt = "chart line {\n title = \"Bitcoin surged past $90,000 in 2024\"\n description = \"USD, year-end closing price\"\n source = \"CoinGecko\"\n sourceUrl = \"https://www.coingecko.com\"\n colors = \"#f7931a\"\n lineSymbols = true\n lineSymbolShowOn = \"all\"\n lineSymbolShape = \"diamond\"\n verticalNumberFormat = \",.0f\"\n tooltips = true\n\n annotation \"2021\" {\n text = \"All-time high cycle\"\n textOffsetY = -12\n showArrow = true\n }\n\n data {\n \"2016\" = 963\n \"2017\" = 14156\n \"2018\" = 3742\n \"2019\" = 7194\n \"2020\" = 29080\n \"2021\" = 46306\n \"2022\" = 16547\n \"2023\" = 42258\n \"2024\" = 93429\n }\n}\n", zt = "chart line-multi {\n title = \"The income share of the top 1% has surged since 1980\"\n description = \"Pre-tax national income captured by the top 1%, percent\"\n source = \"World Inequality Database\"\n sourceUrl = \"https://wid.world\"\n colorPalette = \"Egypt\"\n tooltips = true\n lineSymbols = true\n lineSymbolShowOn = \"all\"\n\n data {\n series = \"United States\",\"India\",\"China\",\"France\"\n \"1980\" = 10.4,7.5,6.6,7.5\n \"1990\" = 14.7,10.7,8.3,9.0\n \"2000\" = 17.3,10.5,10.5,11.3\n \"2010\" = 17.9,16.4,15.2,11.0\n \"2021\" = 19.9,22.1,15.7,12.7\n }\n\n scene \"US doubles\" {\n title = \"The US top 1% nearly doubled its income share since 1980\"\n highlight \"United States\"\n }\n\n scene \"India overtakes\" {\n title = \"India is now the most unequal of these major economies\"\n highlight \"India\"\n }\n\n scene \"France's modest rise\" {\n title = \"France's top 1% rose far less than the US or India\"\n highlight \"France\"\n }\n}\n", Bt = "chart pie {\n title = \"Asia is home to nearly 60% of the world's population\"\n description = \"Estimated share, 2024\"\n source = \"United Nations\"\n sourceUrl = \"https://population.un.org\"\n colorPalette = \"Klimt\"\n legendPosition = \"right\"\n tooltips = true\n\n data {\n \"Asia\" = 58.9\n \"Africa\" = 18.6\n \"Europe\" = 9.1\n \"Latin America\" = 8.1\n \"North America\" = 4.7\n }\n}\n", Vt = "chart bar-vertical {\n title = \"Brazil produces more coffee than the next three countries combined\"\n description = \"Million 60-kg bags, 2023/24 crop year\"\n source = \"USDA Foreign Agricultural Service\"\n sourceUrl = \"https://www.fas.usda.gov/data/coffee-world-markets-and-trade\"\n colorPalette = \"Harvey\"\n\n data {\n \"Brazil\" = 66.4\n \"Vietnam\" = 27.5\n \"Colombia\" = 12.76\n \"Ethiopia\" = 9.13\n \"Indonesia\" = 7.65\n \"Honduras\" = 5.5\n }\n\n highlight \"Brazil\"\n\n transform sort {\n column = \"value\"\n direction = descending\n }\n}\n", Ht = "chart donut {\n title = \"The richest 1% own more wealth than the entire bottom 90% combined\"\n description = \"Share of global wealth by group, 2021\"\n source = \"World Inequality Report 2022\"\n sourceUrl = \"https://wir2022.wid.world\"\n colorPalette = \"Imperator\"\n legendPosition = \"right\"\n displayAsPercentage = true\n tooltips = true\n\n data {\n \"Top 1%\" = 38\n \"Next 9%\" = 38\n \"Middle 40%\" = 22\n \"Bottom 50%\" = 2\n }\n\n scene \"Top 1% spotlight\" {\n title = \"The top 1% hold 38% of all global wealth\"\n description = \"Share of global wealth by group, 2021\"\n highlight \"Top 1%\"\n }\n\n scene \"Bottom half\" {\n title = \"The bottom half of humanity owns just 2%\"\n description = \"Share of global wealth by group, 2021\"\n highlight \"Bottom 50%\"\n }\n\n scene \"Income tells a softer story\" {\n title = \"Income is concentrated too — but less than wealth\"\n description = \"Share of global income by the same groups, 2021\"\n highlight \"Top 1%\"\n data {\n \"Top 1%\" = 19\n \"Next 9%\" = 33\n \"Middle 40%\" = 39\n \"Bottom 50%\" = 9\n }\n }\n}\n", Ut = "chart area {\n title = \"The US national debt has more than tripled since 2008\"\n description = \"Total federal debt outstanding, trillions of dollars\"\n source = \"U.S. Treasury, Fiscal Data\"\n sourceUrl = \"https://fiscaldata.treasury.gov\"\n\n annotation \"2008\" {\n text = \"Financial crisis\"\n showArrow = true\n textOffsetY = -14\n }\n\n data {\n \"2000\" = 5.7\n \"2004\" = 7.4\n \"2008\" = 10.0\n \"2012\" = 16.1\n \"2016\" = 19.6\n \"2020\" = 26.9\n \"2024\" = 35.5\n }\n}\n", Wt = "chart area-stacked {\n title = \"Renewables' share of global energy has more than doubled since 2000\"\n description = \"Share of global primary energy by source, 2000–2023\"\n source = \"Our World in Data\"\n sourceUrl = \"https://ourworldindata.org/energy-mix\"\n stackPercent = true\n areaSortMode = descending\n\n data {\n series = \"Coal\",\"Oil\",\"Gas\",\"Renewables\"\n \"2000\" = 27456,43017,23994,2997\n \"2005\" = 36201,47017,27439,3510\n \"2010\" = 42016,48193,31593,4868\n \"2015\" = 43695,51294,34780,6400\n \"2020\" = 42316,49101,38704,8569\n \"2023\" = 45319,54839,40151,10325\n }\n}\n", Gt = "chart column-stacked {\n title = \"Natural gas and renewables pushed coal off the US power grid\"\n description = \"Share of US electricity generation by source, percent\"\n source = \"U.S. Energy Information Administration\"\n sourceUrl = \"https://www.eia.gov/electricity\"\n stackMode = \"percent\"\n\n data {\n series = \"Coal\",\"Natural gas\",\"Nuclear\",\"Renewables\"\n \"2010\" = 45,24,20,10\n \"2015\" = 33,33,20,13\n \"2020\" = 19,39,20,20\n \"2023\" = 16,43,19,21\n }\n}\n", Kt = "chart bar-stacked {\n title = \"India has far more children than China, and a workforce nearly as large\"\n description = \"Millions of people, 2023\"\n source = \"UN Population Division\"\n sourceUrl = \"https://population.un.org\"\n colorPalette = \"London\"\n\n data {\n series = \"0-14\",\"15-64\",\"65+\"\n \"China\" = 232,988,200\n \"India\" = 354,978,97\n \"USA\" = 58,216,59\n \"Indonesia\" = 67,189,21\n \"Brazil\" = 43,148,24\n }\n}\n", qt = "chart area-stacked {\n title = \"EU subsidies to new members surged after enlargement\"\n description = \"Agricultural subsidies to post-socialist EU members, million euros\"\n source = \"Eurostat\"\n sourceUrl = \"https://ec.europa.eu/eurostat\"\n colorPalette = \"Enara\"\n interpolation = \"linear\"\n heightMode = \"aspect-ratio\"\n aspectRatio = \"1:1\"\n\n data {\n series = \"Indirect subsidies\",\"Direct subsidies\"\n \"2000\" = 370,800\n \"2001\" = 445,896\n \"2002\" = 567,816\n \"2003\" = 641,950\n \"2004\" = 1908,2434\n \"2005\" = 2234,3509\n \"2006\" = 2576,4356\n \"2007\" = 2467,5429\n \"2008\" = 2672,6655\n \"2009\" = 2474,7195\n \"2010\" = 2117,8207\n \"2011\" = 1863,9230\n \"2012\" = 1528,9191\n \"2013\" = 1251,10252\n \"2014\" = 1132,10987\n \"2015\" = 1687,10145\n }\n\n scene \"Indirect subsidies shrank\" {\n title = \"Indirect subsidies were cut under WTO pressure\"\n description = \"Subsidies tied to specific crops fell foul of World Trade Organization rules\"\n\n highlight \"Indirect subsidies\"\n }\n\n scene \"Direct subsidies dominate\" {\n title = \"Direct per-hectare payments now dominate\"\n description = \"The larger the fields, the more money farmers receive\"\n\n highlight \"Direct subsidies\"\n }\n\n scene \"Bulgaria: subsidies explode\" {\n title = \"Bulgarian farmers received almost nothing before 2007 accession\"\n description = \"More than three-quarters of Bulgarian subsidies are direct payments — the highest share among new members\"\n\n data {\n series = \"Indirect subsidies\",\"Direct subsidies\"\n \"2000\" = 0,5\n \"2001\" = 0,33\n \"2002\" = 0,48\n \"2003\" = 0,69\n \"2004\" = 0,67\n \"2005\" = 0,87\n \"2006\" = 0,57\n \"2007\" = 59,250\n \"2008\" = 75,484\n \"2009\" = 97,415\n \"2010\" = 79,466\n \"2011\" = 94,458\n \"2012\" = 120,617\n \"2013\" = 132,852\n \"2014\" = 143,821\n \"2015\" = 213,677\n }\n\n highlight \"Direct subsidies\"\n }\n\n scene \"Bulgarian farms grew\" {\n title = \"Average farm size in Bulgaria quadrupled\"\n description = \"Average farm size in hectares\"\n type = line\n\n data {\n \"2005\" = 5\n \"2007\" = 6\n \"2010\" = 12\n \"2013\" = 18\n }\n }\n\n scene \"Production rose\" {\n title = \"Bulgarian farm production rose from 3 to 4 billion euros\"\n description = \"Total production of Bulgarian farms, million euros\"\n type = area\n\n data {\n \"2000\" = 2933\n \"2001\" = 3240\n \"2002\" = 3051\n \"2003\" = 2816\n \"2004\" = 3049\n \"2005\" = 3011\n \"2006\" = 3111\n \"2007\" = 3038\n \"2008\" = 4148\n \"2009\" = 3437\n \"2010\" = 3486\n \"2011\" = 4038\n \"2012\" = 4161\n \"2013\" = 4115\n \"2014\" = 4138\n \"2015\" = 3915\n }\n }\n\n scene \"Cash crops replaced vegetables\" {\n title = \"Cash crops replaced vegetables in Bulgaria\"\n description = \"Production of Bulgarian farms, million euros\"\n type = area-stacked\n\n data {\n series = \"Vegetables\",\"Cash crops\",\"Other production\"\n \"2000\" = 464,615,1854\n \"2001\" = 458,777,2005\n \"2002\" = 577,850,1624\n \"2003\" = 539,818,1459\n \"2004\" = 483,1103,1463\n \"2005\" = 492,994,1525\n \"2006\" = 510,1083,1518\n \"2007\" = 436,936,1666\n \"2008\" = 541,2045,1563\n \"2009\" = 243,1553,1641\n \"2010\" = 184,2173,1128\n \"2011\" = 120,2853,1065\n \"2012\" = 117,2900,1144\n \"2013\" = 139,2802,1174\n \"2014\" = 143,3082,914\n \"2015\" = 144,2986,785\n }\n\n highlight \"Cash crops\"\n }\n\n scene \"Vegetables collapsed\" {\n title = \"Vegetable production fell by a factor of three\"\n description = \"A traditional Bulgarian cultivation shrank as subsidies favoured large fields\"\n\n highlight \"Vegetables\"\n }\n\n scene \"Every vegetable declined\" {\n title = \"Bulgarian vegetable production collapsed across the board\"\n description = \"Production volume indexed to 2001 = 100\"\n type = line-multi\n lineSymbols = false\n\n data {\n series = \"Cabbages\",\"Tomatoes\",\"Watermelons\",\"Carrots\",\"Onions\",\"Garlic\",\"Strawberries\"\n \"2001\" = 100,100,100,100,100,100,100\n \"2002\" = 79,90,124,64,106,95,100\n \"2003\" = 100,157,177,142,118,98,72\n \"2004\" = 84,87,83,245,124,138,74\n \"2005\" = 50,46,62,30,40,93,42\n \"2006\" = 52,78,113,95,56,80,56\n \"2007\" = 36,49,64,74,29,30,38\n \"2008\" = 47,49,66,97,44,29,55\n \"2009\" = 28,38,74,105,23,39,55\n \"2010\" = 57,42,51,76,53,57,37\n \"2011\" = 32,38,56,86,47,43,45\n \"2012\" = 34,34,46,69,29,43,31\n \"2013\" = 33,43,53,39,36,40,24\n \"2014\" = 31,44,28,69,37,8,27\n \"2015\" = 31,45,50,57,25,18,32\n }\n }\n\n scene \"Jobs disappeared\" {\n title = \"Family farmers disappeared while salaried ag jobs held steady\"\n description = \"EU agricultural employment, thousands of full-time equivalents\"\n type = line-multi\n lineSymbols = false\n\n data {\n series = \"Salaried workers\",\"Non-salaried workers\"\n \"2000\" = 2678,12194\n \"2001\" = 2598,11586\n \"2002\" = 2658,10795\n \"2003\" = 2563,10609\n \"2004\" = 2560,9999\n \"2005\" = 2501,10047\n \"2006\" = 2499,9782\n \"2007\" = 2437,9231\n \"2008\" = 2416,8971\n \"2009\" = 2348,8672\n \"2010\" = 2335,7808\n \"2011\" = 2322,7551\n \"2012\" = 2325,7501\n \"2013\" = 2297,7425\n \"2014\" = 2366,7183\n \"2015\" = 2413,6928\n \"2016\" = 2457,6741\n }\n\n highlight \"Non-salaried workers\"\n }\n}\n", Jt = "chart bar-horizontal {\n title = \"China emits more CO₂ than the US and India combined\"\n description = \"Annual emissions in billion tonnes, 2023\"\n source = \"Our World in Data\"\n sourceUrl = \"https://ourworldindata.org/co2-emissions\"\n byline = \"Pierre Romera\"\n\n data {\n \"China\" = 12.17\n \"United States\" = 4.92\n \"India\" = 3.06\n \"Russia\" = 1.73\n \"Japan\" = 0.99\n \"Germany\" = 0.59\n }\n\n scene \"China spotlight\" {\n title = \"China alone emits more than the US and India together\"\n highlight \"China\"\n }\n\n scene \"India rising\" {\n title = \"India passed the EU to become the third-largest emitter\"\n highlight \"India\"\n }\n\n scene \"Japan declining\" {\n title = \"Japan's emissions have fallen since their 2013 peak\"\n highlight \"Japan\"\n }\n\n scene \"Per capita reframe\" {\n title = \"Per person, Gulf states dwarf the biggest emitters\"\n description = \"CO₂ emissions per capita, tonnes per person, 2023\"\n highlight \"Qatar\"\n data {\n \"Qatar\" = 40.13\n \"United Arab Emirates\" = 19.77\n \"United States\" = 14.32\n \"China\" = 8.56\n \"India\" = 2.13\n }\n }\n}\n", Yt = "chart bar-split {\n title = \"CDU/CSU led German polls at 29 % ahead of the 2021 election\"\n description = \"How Germany would vote in the September 2021 federal election, according to polling in the previous June\"\n source = \"FG Wahlen\"\n sourceUrl = \"https://www.forschungsgruppe.de\"\n note = \"Margin of error at 10%: +/- 2 percentage points; at 40%: +/- 3 percentage points\"\n\n data {\n series = \"Poll\",\"High\",\"Low\"\n \"CDU/CSU\" = 29,32,27\n \"Greens\" = 22,25,20\n \"SPD\" = 14,16,12\n \"AfD\" = 10,12,8\n \"FDP\" = 10,12,8\n \"Left\" = 7,9,5\n }\n}\n", Xt = "chart bar-grouped {\n title = \"Asia Pacific holds more renewable capacity than all other regions combined\"\n description = \"Installed capacity in gigawatts (GW), 2023\"\n source = \"IRENA\"\n sourceUrl = \"https://www.irena.org/Publications/2024/Mar/Renewable-capacity-statistics-2024\"\n colorPalette = \"Folklore\"\n\n data {\n series = \"Solar\",\"Wind\",\"Hydro\"\n \"Asia Pacific\" = 870,520,650\n \"Europe\" = 290,260,230\n \"North America\" = 150,170,200\n \"Latin America\" = 50,40,190\n \"Africa\" = 12,9,40\n }\n}\n";
|
|
614
|
+
var Nt = "chart bar-vertical {\n title = \"E is the most frequent letter in English\"\n description = \"How often each letter appears in typical English text\"\n byline = \"Pierre Romera\"\n source = \"Lewand, Cryptological Mathematics\"\n sourceUrl = \"https://en.wikipedia.org/wiki/Letter_frequency\"\n note = \"Based on analysis of 40,000 words from English prose\"\n colorPalette = \"London\"\n sort = descending\n\n highlight \"E\"\n\n data {\n \"E\" = 12.70\n \"T\" = 9.06\n \"A\" = 8.17\n \"O\" = 7.51\n \"I\" = 6.97\n \"N\" = 6.75\n \"S\" = 6.33\n \"H\" = 6.09\n \"R\" = 5.99\n \"D\" = 4.25\n }\n}\n", Pt = "chart bar-vertical {\n // the headline above the chart\n title = \"China emits more CO₂ than the US and India combined\"\n description = \"Annual emissions in billion tonnes, 2023\"\n source = \"Our World in Data\"\n sourceUrl = \"https://ourworldindata.org/co2-emissions\"\n\n // one row per country: \"label\" = value\n data {\n \"China\" = 12.17\n \"United States\" = 4.92\n \"India\" = 3.06\n \"Russia\" = 1.73\n \"Japan\" = 0.99\n \"Germany\" = 0.59\n }\n\n // highlight pops one bar in the accent color\n highlight \"China\"\n\n // an annotation points a callout at a single bar\n annotation \"India\" {\n text = \"Surpassed EU in 2023\"\n showLine = true\n anchorDirection = N\n textOffsetX = 66\n textOffsetY = -41\n lineStyle = curve-left\n showArrow = true\n lineTargetDistance = 26\n showCircle = false\n }\n}\n", Ft = "chart bar-horizontal {\n title = \"Mandarin has nearly twice as many native speakers as Spanish\"\n description = \"Number of native speakers worldwide, in millions\"\n source = \"Ethnologue\"\n sourceUrl = \"https://ethnologue.com\"\n byline = \"Pierre Romera\"\n sort = descending\n\n highlight \"Mandarin\"\n\n data {\n \"Mandarin\" = 988\n \"Spanish\" = 487\n \"English\" = 372\n \"Hindi\" = 347\n \"Bengali\" = 232\n \"Portuguese\" = 252\n \"Russian\" = 133\n \"Japanese\" = 124\n }\n}\n", It = "chart line-multi {\n title = \"China now buys more electric cars than the rest of the world combined\"\n description = \"Electric car sales by region, millions per year\"\n source = \"IEA Global EV Outlook 2024\"\n sourceUrl = \"https://www.iea.org/reports/global-ev-outlook-2024\"\n colorPalette = \"Maya\"\n tooltips = true\n\n data {\n series = \"China\",\"Europe\",\"United States\",\"Rest of world\"\n \"2018\" = 1.1,0.4,0.36,0.1\n \"2020\" = 1.3,1.4,0.30,0.2\n \"2021\" = 3.3,2.3,0.63,0.4\n \"2022\" = 6.0,2.7,1.0,0.7\n \"2023\" = 8.1,3.2,1.4,1.0\n }\n}\n", Lt = "chart bar-multi {\n title = \"USA tops Paris 2024 with 126 medals across all categories\"\n description = \"2024 Paris Summer Games — top six nations\"\n source = \"Olympics.com\"\n sourceUrl = \"https://olympics.com\"\n colors = \"#eeca3b, #c0c0c0, #cd7f32\"\n sort = descending\n\n data {\n series = \"Gold\",\"Silver\",\"Bronze\"\n \"USA\" = 40,44,42\n \"China\" = 40,27,24\n \"Japan\" = 20,12,13\n \"Great Britain\" = 14,22,29\n \"Australia\" = 18,19,16\n \"France\" = 16,26,22\n }\n}\n", Rt = "chart line {\n title = \"2024 was the hottest year on record\"\n description = \"Deviation from the 1951–1980 average, in °C\"\n source = \"NASA GISS\"\n sourceUrl = \"https://data.giss.nasa.gov/gistemp/\"\n tooltips = true\n crosshair = false\n lineSymbols = true\n\n data {\n \"1980\" = 0.26\n \"1985\" = 0.12\n \"1990\" = 0.45\n \"1995\" = 0.45\n \"2000\" = 0.39\n \"2005\" = 0.68\n \"2010\" = 0.73\n \"2015\" = 0.9\n \"2020\" = 1.01\n \"2024\" = 1.28\n }\n\n annotation \"2015\" {\n text = \"2015 Paris Agreement to limit global warming to 1.5°C \"\n maxWidth = 224\n showLine = true\n lineStyle = curve-right\n showArrow = true\n showCircle = true\n }\n}\n", zt = "chart line {\n title = \"Bitcoin surged past $90,000 in 2024\"\n description = \"USD, year-end closing price\"\n source = \"CoinGecko\"\n sourceUrl = \"https://www.coingecko.com\"\n colors = \"#f7931a\"\n lineSymbols = true\n lineSymbolShowOn = \"all\"\n lineSymbolShape = \"diamond\"\n verticalNumberFormat = \",.0f\"\n tooltips = true\n\n annotation \"2021\" {\n text = \"All-time high cycle\"\n textOffsetY = -12\n showArrow = true\n }\n\n data {\n \"2016\" = 963\n \"2017\" = 14156\n \"2018\" = 3742\n \"2019\" = 7194\n \"2020\" = 29080\n \"2021\" = 46306\n \"2022\" = 16547\n \"2023\" = 42258\n \"2024\" = 93429\n }\n}\n", Bt = "chart line-multi {\n title = \"The income share of the top 1% has surged since 1980\"\n description = \"Pre-tax national income captured by the top 1%, percent\"\n source = \"World Inequality Database\"\n sourceUrl = \"https://wid.world\"\n colorPalette = \"Egypt\"\n tooltips = true\n lineSymbols = true\n lineSymbolShowOn = \"all\"\n\n data {\n series = \"United States\",\"India\",\"China\",\"France\"\n \"1980\" = 10.4,7.5,6.6,7.5\n \"1990\" = 14.7,10.7,8.3,9.0\n \"2000\" = 17.3,10.5,10.5,11.3\n \"2010\" = 17.9,16.4,15.2,11.0\n \"2021\" = 19.9,22.1,15.7,12.7\n }\n\n scene \"US doubles\" {\n title = \"The US top 1% nearly doubled its income share since 1980\"\n highlight \"United States\"\n }\n\n scene \"India overtakes\" {\n title = \"India is now the most unequal of these major economies\"\n highlight \"India\"\n }\n\n scene \"France's modest rise\" {\n title = \"France's top 1% rose far less than the US or India\"\n highlight \"France\"\n }\n}\n", Vt = "chart pie {\n title = \"Asia is home to nearly 60% of the world's population\"\n description = \"Estimated share, 2024\"\n source = \"United Nations\"\n sourceUrl = \"https://population.un.org\"\n colorPalette = \"Klimt\"\n legendPosition = \"right\"\n tooltips = true\n\n data {\n \"Asia\" = 58.9\n \"Africa\" = 18.6\n \"Europe\" = 9.1\n \"Latin America\" = 8.1\n \"North America\" = 4.7\n }\n}\n", Ht = "chart bar-vertical {\n title = \"Brazil produces more coffee than the next three countries combined\"\n description = \"Million 60-kg bags, 2023/24 crop year\"\n source = \"USDA Foreign Agricultural Service\"\n sourceUrl = \"https://www.fas.usda.gov/data/coffee-world-markets-and-trade\"\n colorPalette = \"Harvey\"\n\n data {\n \"Brazil\" = 66.4\n \"Vietnam\" = 27.5\n \"Colombia\" = 12.76\n \"Ethiopia\" = 9.13\n \"Indonesia\" = 7.65\n \"Honduras\" = 5.5\n }\n\n highlight \"Brazil\"\n\n transform sort {\n column = \"value\"\n direction = descending\n }\n}\n", Ut = "chart donut {\n title = \"The richest 1% own more wealth than the entire bottom 90% combined\"\n description = \"Share of global wealth by group, 2021\"\n source = \"World Inequality Report 2022\"\n sourceUrl = \"https://wir2022.wid.world\"\n colorPalette = \"Imperator\"\n legendPosition = \"right\"\n displayAsPercentage = true\n tooltips = true\n\n data {\n \"Top 1%\" = 38\n \"Next 9%\" = 38\n \"Middle 40%\" = 22\n \"Bottom 50%\" = 2\n }\n\n scene \"Top 1% spotlight\" {\n title = \"The top 1% hold 38% of all global wealth\"\n description = \"Share of global wealth by group, 2021\"\n highlight \"Top 1%\"\n }\n\n scene \"Bottom half\" {\n title = \"The bottom half of humanity owns just 2%\"\n description = \"Share of global wealth by group, 2021\"\n highlight \"Bottom 50%\"\n }\n\n scene \"Income tells a softer story\" {\n title = \"Income is concentrated too — but less than wealth\"\n description = \"Share of global income by the same groups, 2021\"\n highlight \"Top 1%\"\n data {\n \"Top 1%\" = 19\n \"Next 9%\" = 33\n \"Middle 40%\" = 39\n \"Bottom 50%\" = 9\n }\n }\n}\n", Wt = "chart area {\n title = \"The US national debt has more than tripled since 2008\"\n description = \"Total federal debt outstanding, trillions of dollars\"\n source = \"U.S. Treasury, Fiscal Data\"\n sourceUrl = \"https://fiscaldata.treasury.gov\"\n\n annotation \"2008\" {\n text = \"Financial crisis\"\n showArrow = true\n textOffsetY = -14\n }\n\n data {\n \"2000\" = 5.7\n \"2004\" = 7.4\n \"2008\" = 10.0\n \"2012\" = 16.1\n \"2016\" = 19.6\n \"2020\" = 26.9\n \"2024\" = 35.5\n }\n}\n", Gt = "chart area-stacked {\n title = \"Renewables' share of global energy has more than doubled since 2000\"\n description = \"Share of global primary energy by source, 2000–2023\"\n source = \"Our World in Data\"\n sourceUrl = \"https://ourworldindata.org/energy-mix\"\n stackPercent = true\n areaSortMode = descending\n\n data {\n series = \"Coal\",\"Oil\",\"Gas\",\"Renewables\"\n \"2000\" = 27456,43017,23994,2997\n \"2005\" = 36201,47017,27439,3510\n \"2010\" = 42016,48193,31593,4868\n \"2015\" = 43695,51294,34780,6400\n \"2020\" = 42316,49101,38704,8569\n \"2023\" = 45319,54839,40151,10325\n }\n}\n", Kt = "chart column-stacked {\n title = \"Natural gas and renewables pushed coal off the US power grid\"\n description = \"Share of US electricity generation by source, percent\"\n source = \"U.S. Energy Information Administration\"\n sourceUrl = \"https://www.eia.gov/electricity\"\n stackMode = \"percent\"\n\n data {\n series = \"Coal\",\"Natural gas\",\"Nuclear\",\"Renewables\"\n \"2010\" = 45,24,20,10\n \"2015\" = 33,33,20,13\n \"2020\" = 19,39,20,20\n \"2023\" = 16,43,19,21\n }\n}\n", qt = "chart bar-stacked {\n title = \"India has far more children than China, and a workforce nearly as large\"\n description = \"Millions of people, 2023\"\n source = \"UN Population Division\"\n sourceUrl = \"https://population.un.org\"\n colorPalette = \"London\"\n\n data {\n series = \"0-14\",\"15-64\",\"65+\"\n \"China\" = 232,988,200\n \"India\" = 354,978,97\n \"USA\" = 58,216,59\n \"Indonesia\" = 67,189,21\n \"Brazil\" = 43,148,24\n }\n}\n", Jt = "chart area-stacked {\n title = \"EU subsidies to new members surged after enlargement\"\n description = \"Agricultural subsidies to post-socialist EU members, million euros\"\n source = \"Eurostat\"\n sourceUrl = \"https://ec.europa.eu/eurostat\"\n colorPalette = \"Enara\"\n interpolation = \"linear\"\n heightMode = \"aspect-ratio\"\n aspectRatio = \"1:1\"\n\n data {\n series = \"Indirect subsidies\",\"Direct subsidies\"\n \"2000\" = 370,800\n \"2001\" = 445,896\n \"2002\" = 567,816\n \"2003\" = 641,950\n \"2004\" = 1908,2434\n \"2005\" = 2234,3509\n \"2006\" = 2576,4356\n \"2007\" = 2467,5429\n \"2008\" = 2672,6655\n \"2009\" = 2474,7195\n \"2010\" = 2117,8207\n \"2011\" = 1863,9230\n \"2012\" = 1528,9191\n \"2013\" = 1251,10252\n \"2014\" = 1132,10987\n \"2015\" = 1687,10145\n }\n\n scene \"Indirect subsidies shrank\" {\n title = \"Indirect subsidies were cut under WTO pressure\"\n description = \"Subsidies tied to specific crops fell foul of World Trade Organization rules\"\n\n highlight \"Indirect subsidies\"\n }\n\n scene \"Direct subsidies dominate\" {\n title = \"Direct per-hectare payments now dominate\"\n description = \"The larger the fields, the more money farmers receive\"\n\n highlight \"Direct subsidies\"\n }\n\n scene \"Bulgaria: subsidies explode\" {\n title = \"Bulgarian farmers received almost nothing before 2007 accession\"\n description = \"More than three-quarters of Bulgarian subsidies are direct payments — the highest share among new members\"\n\n data {\n series = \"Indirect subsidies\",\"Direct subsidies\"\n \"2000\" = 0,5\n \"2001\" = 0,33\n \"2002\" = 0,48\n \"2003\" = 0,69\n \"2004\" = 0,67\n \"2005\" = 0,87\n \"2006\" = 0,57\n \"2007\" = 59,250\n \"2008\" = 75,484\n \"2009\" = 97,415\n \"2010\" = 79,466\n \"2011\" = 94,458\n \"2012\" = 120,617\n \"2013\" = 132,852\n \"2014\" = 143,821\n \"2015\" = 213,677\n }\n\n highlight \"Direct subsidies\"\n }\n\n scene \"Bulgarian farms grew\" {\n title = \"Average farm size in Bulgaria quadrupled\"\n description = \"Average farm size in hectares\"\n type = line\n\n data {\n \"2005\" = 5\n \"2007\" = 6\n \"2010\" = 12\n \"2013\" = 18\n }\n }\n\n scene \"Production rose\" {\n title = \"Bulgarian farm production rose from 3 to 4 billion euros\"\n description = \"Total production of Bulgarian farms, million euros\"\n type = area\n\n data {\n \"2000\" = 2933\n \"2001\" = 3240\n \"2002\" = 3051\n \"2003\" = 2816\n \"2004\" = 3049\n \"2005\" = 3011\n \"2006\" = 3111\n \"2007\" = 3038\n \"2008\" = 4148\n \"2009\" = 3437\n \"2010\" = 3486\n \"2011\" = 4038\n \"2012\" = 4161\n \"2013\" = 4115\n \"2014\" = 4138\n \"2015\" = 3915\n }\n }\n\n scene \"Cash crops replaced vegetables\" {\n title = \"Cash crops replaced vegetables in Bulgaria\"\n description = \"Production of Bulgarian farms, million euros\"\n type = area-stacked\n\n data {\n series = \"Vegetables\",\"Cash crops\",\"Other production\"\n \"2000\" = 464,615,1854\n \"2001\" = 458,777,2005\n \"2002\" = 577,850,1624\n \"2003\" = 539,818,1459\n \"2004\" = 483,1103,1463\n \"2005\" = 492,994,1525\n \"2006\" = 510,1083,1518\n \"2007\" = 436,936,1666\n \"2008\" = 541,2045,1563\n \"2009\" = 243,1553,1641\n \"2010\" = 184,2173,1128\n \"2011\" = 120,2853,1065\n \"2012\" = 117,2900,1144\n \"2013\" = 139,2802,1174\n \"2014\" = 143,3082,914\n \"2015\" = 144,2986,785\n }\n\n highlight \"Cash crops\"\n }\n\n scene \"Vegetables collapsed\" {\n title = \"Vegetable production fell by a factor of three\"\n description = \"A traditional Bulgarian cultivation shrank as subsidies favoured large fields\"\n\n highlight \"Vegetables\"\n }\n\n scene \"Every vegetable declined\" {\n title = \"Bulgarian vegetable production collapsed across the board\"\n description = \"Production volume indexed to 2001 = 100\"\n type = line-multi\n lineSymbols = false\n\n data {\n series = \"Cabbages\",\"Tomatoes\",\"Watermelons\",\"Carrots\",\"Onions\",\"Garlic\",\"Strawberries\"\n \"2001\" = 100,100,100,100,100,100,100\n \"2002\" = 79,90,124,64,106,95,100\n \"2003\" = 100,157,177,142,118,98,72\n \"2004\" = 84,87,83,245,124,138,74\n \"2005\" = 50,46,62,30,40,93,42\n \"2006\" = 52,78,113,95,56,80,56\n \"2007\" = 36,49,64,74,29,30,38\n \"2008\" = 47,49,66,97,44,29,55\n \"2009\" = 28,38,74,105,23,39,55\n \"2010\" = 57,42,51,76,53,57,37\n \"2011\" = 32,38,56,86,47,43,45\n \"2012\" = 34,34,46,69,29,43,31\n \"2013\" = 33,43,53,39,36,40,24\n \"2014\" = 31,44,28,69,37,8,27\n \"2015\" = 31,45,50,57,25,18,32\n }\n }\n\n scene \"Jobs disappeared\" {\n title = \"Family farmers disappeared while salaried ag jobs held steady\"\n description = \"EU agricultural employment, thousands of full-time equivalents\"\n type = line-multi\n lineSymbols = false\n\n data {\n series = \"Salaried workers\",\"Non-salaried workers\"\n \"2000\" = 2678,12194\n \"2001\" = 2598,11586\n \"2002\" = 2658,10795\n \"2003\" = 2563,10609\n \"2004\" = 2560,9999\n \"2005\" = 2501,10047\n \"2006\" = 2499,9782\n \"2007\" = 2437,9231\n \"2008\" = 2416,8971\n \"2009\" = 2348,8672\n \"2010\" = 2335,7808\n \"2011\" = 2322,7551\n \"2012\" = 2325,7501\n \"2013\" = 2297,7425\n \"2014\" = 2366,7183\n \"2015\" = 2413,6928\n \"2016\" = 2457,6741\n }\n\n highlight \"Non-salaried workers\"\n }\n}\n", Yt = "chart bar-horizontal {\n title = \"China emits more CO₂ than the US and India combined\"\n description = \"Annual emissions in billion tonnes, 2023\"\n source = \"Our World in Data\"\n sourceUrl = \"https://ourworldindata.org/co2-emissions\"\n byline = \"Pierre Romera\"\n\n data {\n \"China\" = 12.17\n \"United States\" = 4.92\n \"India\" = 3.06\n \"Russia\" = 1.73\n \"Japan\" = 0.99\n \"Germany\" = 0.59\n }\n\n scene \"China spotlight\" {\n title = \"China alone emits more than the US and India together\"\n highlight \"China\"\n }\n\n scene \"India rising\" {\n title = \"India passed the EU to become the third-largest emitter\"\n highlight \"India\"\n }\n\n scene \"Japan declining\" {\n title = \"Japan's emissions have fallen since their 2013 peak\"\n highlight \"Japan\"\n }\n\n scene \"Per capita reframe\" {\n title = \"Per person, Gulf states dwarf the biggest emitters\"\n description = \"CO₂ emissions per capita, tonnes per person, 2023\"\n highlight \"Qatar\"\n data {\n \"Qatar\" = 40.13\n \"United Arab Emirates\" = 19.77\n \"United States\" = 14.32\n \"China\" = 8.56\n \"India\" = 2.13\n }\n }\n}\n", Xt = "chart bar-split {\n title = \"CDU/CSU led German polls at 29 % ahead of the 2021 election\"\n description = \"How Germany would vote in the September 2021 federal election, according to polling in the previous June\"\n source = \"FG Wahlen\"\n sourceUrl = \"https://www.forschungsgruppe.de\"\n note = \"Margin of error at 10%: +/- 2 percentage points; at 40%: +/- 3 percentage points\"\n\n data {\n series = \"Poll\",\"High\",\"Low\"\n \"CDU/CSU\" = 29,32,27\n \"Greens\" = 22,25,20\n \"SPD\" = 14,16,12\n \"AfD\" = 10,12,8\n \"FDP\" = 10,12,8\n \"Left\" = 7,9,5\n }\n}\n", Zt = "chart bar-grouped {\n title = \"Asia Pacific holds more renewable capacity than all other regions combined\"\n description = \"Installed capacity in gigawatts (GW), 2023\"\n source = \"IRENA\"\n sourceUrl = \"https://www.irena.org/Publications/2024/Mar/Renewable-capacity-statistics-2024\"\n colorPalette = \"Folklore\"\n\n data {\n series = \"Solar\",\"Wind\",\"Hydro\"\n \"Asia Pacific\" = 870,520,650\n \"Europe\" = 290,260,230\n \"North America\" = 150,170,200\n \"Latin America\" = 50,40,190\n \"Africa\" = 12,9,40\n }\n}\n";
|
|
615
615
|
//#endregion
|
|
616
616
|
//#region src/samples.ts
|
|
617
617
|
function Y(e, t) {
|
|
618
618
|
let n = e.properties.find((e) => e.key === t);
|
|
619
619
|
return n ? String(n.value) : "";
|
|
620
620
|
}
|
|
621
|
-
function
|
|
621
|
+
function Qt(e) {
|
|
622
622
|
if (!e.data) return "";
|
|
623
623
|
let t = e.data.entries, n = t.find((e) => e.key === "series" && !e.quotedKey);
|
|
624
624
|
return n ? [["category", ...String(n.value).split(",")].join(" "), ...t.filter((e) => !(e.key === "series" && !e.quotedKey)).map((e) => {
|
|
@@ -626,59 +626,59 @@ function Zt(e) {
|
|
|
626
626
|
return [e.key, ...t].join(" ");
|
|
627
627
|
})].join("\n") : [["label", "value"].join(" "), ...t.map((e) => [e.key, String(e.value)].join(" "))].join("\n");
|
|
628
628
|
}
|
|
629
|
-
function
|
|
629
|
+
function $t(e) {
|
|
630
630
|
if (!e.data) return "";
|
|
631
631
|
let t = e.data.entries, n = t.find((e) => e.key === "series" && !e.quotedKey);
|
|
632
632
|
return n ? [`series = "${String(n.value)}"`, ...t.filter((e) => !(e.key === "series" && !e.quotedKey)).map((e) => `"${e.key}" = "${String(e.value)}"`)].join("\n") : t.map((e) => `"${e.key}" = ${String(e.value)}`).join("\n");
|
|
633
633
|
}
|
|
634
|
-
function
|
|
634
|
+
function X(e, t) {
|
|
635
635
|
let n = g(t);
|
|
636
636
|
return {
|
|
637
637
|
id: e,
|
|
638
638
|
title: Y(n, "title"),
|
|
639
639
|
description: Y(n, "description"),
|
|
640
640
|
chartType: n.chartType,
|
|
641
|
-
tsvData:
|
|
642
|
-
serializedData:
|
|
641
|
+
tsvData: Qt(n),
|
|
642
|
+
serializedData: $t(n),
|
|
643
643
|
dsl: t
|
|
644
644
|
};
|
|
645
645
|
}
|
|
646
|
-
var
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
],
|
|
646
|
+
var en = [
|
|
647
|
+
X("letter-frequency", Nt),
|
|
648
|
+
X("co2-emissions", Pt),
|
|
649
|
+
X("coffee-production", Ht),
|
|
650
|
+
X("spoken-languages", Ft),
|
|
651
|
+
X("quarterly-revenue", It),
|
|
652
|
+
X("medal-count", Lt),
|
|
653
|
+
X("temperature-anomaly", Rt),
|
|
654
|
+
X("bitcoin-price", zt),
|
|
655
|
+
X("unemployment-rates", Bt),
|
|
656
|
+
X("browser-market", Ut),
|
|
657
|
+
X("world-population", Vt),
|
|
658
|
+
X("stock-price-area", Wt),
|
|
659
|
+
X("energy-mix-stacked-area", Gt),
|
|
660
|
+
X("quarterly-stacked-columns", Kt),
|
|
661
|
+
X("population-stacked-bar", qt),
|
|
662
|
+
X("election-polls", Xt),
|
|
663
|
+
X("renewable-capacity", Zt),
|
|
664
|
+
X("farm-compass", Jt),
|
|
665
|
+
X("co2-emissions-story", Yt)
|
|
666
|
+
], Z = class extends Error {
|
|
667
667
|
constructor(e, t) {
|
|
668
668
|
super(e, t), this.name = "ChartParseError";
|
|
669
669
|
}
|
|
670
|
-
},
|
|
670
|
+
}, Q = class extends Error {
|
|
671
671
|
constructor(e = "PNG export is only available in Node. Use toSvg() in the browser.") {
|
|
672
672
|
super(e), this.name = "PngBrowserUnsupportedError";
|
|
673
673
|
}
|
|
674
|
-
},
|
|
674
|
+
}, tn = class extends Error {
|
|
675
675
|
constructor(e) {
|
|
676
676
|
super(e), this.name = "MissingNodeRenderDepsError";
|
|
677
677
|
}
|
|
678
678
|
};
|
|
679
679
|
//#endregion
|
|
680
680
|
//#region src/render/backends/dom-backend.ts
|
|
681
|
-
function
|
|
681
|
+
function nn() {
|
|
682
682
|
return {
|
|
683
683
|
kind: "dom",
|
|
684
684
|
createContainer(e, t) {
|
|
@@ -689,7 +689,7 @@ function en() {
|
|
|
689
689
|
};
|
|
690
690
|
},
|
|
691
691
|
renderToContainer(e, t, n) {
|
|
692
|
-
|
|
692
|
+
_(e, t, {
|
|
693
693
|
sceneIndex: n.sceneIndex,
|
|
694
694
|
thumbnail: n.thumbnail ?? !1,
|
|
695
695
|
transition: !1,
|
|
@@ -708,30 +708,30 @@ function en() {
|
|
|
708
708
|
throw Error("dom-backend: renderToContainer produced no frame");
|
|
709
709
|
},
|
|
710
710
|
rasterizePng() {
|
|
711
|
-
return Promise.reject(new
|
|
711
|
+
return Promise.reject(new Q());
|
|
712
712
|
}
|
|
713
713
|
};
|
|
714
714
|
}
|
|
715
715
|
//#endregion
|
|
716
716
|
//#region src/render/public-render.ts
|
|
717
|
-
var
|
|
718
|
-
function
|
|
717
|
+
var rn = 640, an = 400;
|
|
718
|
+
function $() {
|
|
719
719
|
return typeof document < "u" && typeof document.createElement == "function";
|
|
720
720
|
}
|
|
721
|
-
async function
|
|
722
|
-
return
|
|
721
|
+
async function on() {
|
|
722
|
+
return $() ? nn() : (await import("@blueprint-chart/lib/internal/node-backend")).createNodeBackend();
|
|
723
723
|
}
|
|
724
|
-
async function
|
|
724
|
+
async function sn(e, t = {}) {
|
|
725
725
|
let n;
|
|
726
726
|
try {
|
|
727
|
-
n =
|
|
727
|
+
n = m(g(e));
|
|
728
728
|
} catch (e) {
|
|
729
|
-
throw new
|
|
729
|
+
throw new Z(e instanceof Error ? e.message : String(e), { cause: e });
|
|
730
730
|
}
|
|
731
|
-
let r = await
|
|
731
|
+
let r = await on(), i = t.frame ?? !0, a = {
|
|
732
732
|
sceneIndex: t.scene,
|
|
733
|
-
width: t.width ??
|
|
734
|
-
height: t.height ??
|
|
733
|
+
width: t.width ?? rn,
|
|
734
|
+
height: t.height ?? an
|
|
735
735
|
};
|
|
736
736
|
function o(e) {
|
|
737
737
|
r.renderToContainer(e, n, {
|
|
@@ -782,4 +782,4 @@ async function on(e, t = {}) {
|
|
|
782
782
|
return s;
|
|
783
783
|
}
|
|
784
784
|
//#endregion
|
|
785
|
-
export {
|
|
785
|
+
export { p as ANNOTATION_KIND_KEYWORD, ge as Anchor, d as AnnotationKind, e as AnnotationLineStyle, De as AxisDirection, Fe as BC_TRANSITION_NAME, y as ChartOptionType, Z as ChartParseError, ze as ChartType, Ge as CompassDirection, Pe as CrosshairDirection, be as CrosshairStyle, ae as DEFAULT_BAR_GAP, Ve as DirectLabelMode, qe as DslNodeType, we as FrameSizing, h as GridStyle, Xe as Interpolation, Ee as LabelPosition, ke as LabelRotation, He as LegendPosition, Re as LineStyle, tn as MissingNodeRenderDepsError, Ne as Orientation, Q as PngBrowserUnsupportedError, je as RangeAnchor, ve as ScaleType, Ie as SceneTransition, Qe as SortDirection, rt as SortMode, Se as StackMode, tt as StrokeStyle, le as SymbolShape, i as SymbolShowOn, et as SymbolStyle, de as TickPosition, s as ValueLabelPosition, l as adjustColorsForBackground, m as astToDefinition, _e as buildChartOptions, at as buildSrcdoc, mt as checkCvdColors, S as classifyIntent, n as commitFadeOut, xt as compactSerialize, bt as compactSerializeDeep, ye as convertAnnotations, Be as convertAreaFills, Ke as convertColorizes, Ce as convertHighlights, Le as convertSeriesOverrides, me as createCanvas, dt as createCvdSvgFilter, he as createFrame, Ye as dataEntriesToString, Te as extractChartTypeOptions, Oe as extractSceneOverrides, pe as fadeIn, a as featureJoin, ie as getCachedChart, xe as getChart, b as getChartOptions, Me as getChartTypeDefaults, D as getCvdFilterId, t as getSceneTransition, ee as getTransitionDuration, $e as isSeriesHidden, f as listCharts, c as listPalettes, g as parse, Ze as parseData, v as propertyMap, lt as recommendCharts, r as registerChart, sn as render, Je as renderBpc, _ as renderChart, ce as renderHorizontalAxis, re as renderLegend, it as renderVerticalAxis, ne as resolveBackgroundColor, se as resolveBarGapPadding, Ae as resolveChartTypeOptions, te as resolvePalette, We as resolveScene, ue as resolveSeriesColor, o as resolveSeriesInterpolation, en as samples, _t as serialize, T as shapeOf, k as simulateCvdColor, fe as snapshotForFadeOut, oe as snapshotLiveAttrs, nt as stripDigitGroupSpaces, At as validateChart, Ue as wcagContrastRatio, u as wcagLevel };
|