@pixerate/editor 0.180.0 → 0.181.0
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/agent/index.cjs +34 -34
- package/dist/agent/index.js +5 -5
- package/dist/canvas/index.cjs +6 -6
- package/dist/canvas/index.js +2 -2
- package/dist/chart/index.cjs +162 -157
- package/dist/chart/index.d.cts +1 -0
- package/dist/chart/index.d.ts +1 -0
- package/dist/chart/index.js +12 -7
- package/dist/chart/layout-streamgraph.d.cts +15 -0
- package/dist/chart/layout-streamgraph.d.ts +15 -0
- package/dist/chart/spec.d.cts +1 -1
- package/dist/chart/spec.d.ts +1 -1
- package/dist/chart/types.d.cts +2 -1
- package/dist/chart/types.d.ts +2 -1
- package/dist/{chunk-KPWG3PSW.js → chunk-23E5GI2U.js} +8 -2
- package/dist/{chunk-IMHRN4ZZ.js → chunk-3MO3ZS7E.js} +3 -3
- package/dist/{chunk-GXEC4FS6.cjs → chunk-5DQPDXOM.cjs} +82 -76
- package/dist/{chunk-ORZF4JOO.js → chunk-6ZZKRH7R.js} +3 -1
- package/dist/{chunk-FHNGNL3V.cjs → chunk-CZBRY4SW.cjs} +51 -51
- package/dist/{chunk-34UCPHYO.js → chunk-GOBOCZZI.js} +2 -2
- package/dist/{chunk-VKHJJUBK.cjs → chunk-HUAISCUX.cjs} +22 -18
- package/dist/{chunk-OLCHKGGO.js → chunk-L6Y7TSQ4.js} +5 -1
- package/dist/{chunk-TUXKLM5W.cjs → chunk-N76AMOKE.cjs} +224 -42
- package/dist/{chunk-RLOIEDA3.cjs → chunk-O7QXVGMP.cjs} +16 -16
- package/dist/{chunk-R2VHVQVY.js → chunk-PI2UYMZY.js} +3 -3
- package/dist/{chunk-E45AIIWY.cjs → chunk-RUONPPMC.cjs} +8 -8
- package/dist/{chunk-GTF4RYXJ.cjs → chunk-SOSBOS5T.cjs} +22 -22
- package/dist/{chunk-FKYGM35R.js → chunk-UFEDHACQ.js} +2 -2
- package/dist/{chunk-OJQVKJYD.js → chunk-WKMUBATU.js} +183 -1
- package/dist/{chunk-OUO3DSRT.cjs → chunk-WRZ6C4TU.cjs} +3 -1
- package/dist/export/index.cjs +4 -4
- package/dist/export/index.js +3 -3
- package/dist/extensions/index.cjs +7 -7
- package/dist/extensions/index.js +6 -6
- package/dist/index.cjs +13 -13
- package/dist/index.js +7 -7
- package/package.json +1 -1
package/dist/chart/index.cjs
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkSOSBOS5Tcjs = require('../chunk-SOSBOS5T.cjs');
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
@@ -25,7 +25,7 @@ var _chunkGTF4RYXJcjs = require('../chunk-GTF4RYXJ.cjs');
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _chunkHUAISCUXcjs = require('../chunk-HUAISCUX.cjs');
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
@@ -47,7 +47,7 @@ var _chunkVKHJJUBKcjs = require('../chunk-VKHJJUBK.cjs');
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
var
|
|
50
|
+
var _chunk5DQPDXOMcjs = require('../chunk-5DQPDXOM.cjs');
|
|
51
51
|
require('../chunk-TTCJPX4U.cjs');
|
|
52
52
|
|
|
53
53
|
|
|
@@ -99,8 +99,8 @@ require('../chunk-TTCJPX4U.cjs');
|
|
|
99
99
|
|
|
100
100
|
|
|
101
101
|
|
|
102
|
-
var _chunkTUXKLM5Wcjs = require('../chunk-TUXKLM5W.cjs');
|
|
103
102
|
|
|
103
|
+
var _chunkN76AMOKEcjs = require('../chunk-N76AMOKE.cjs');
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
|
|
@@ -193,7 +193,8 @@ var _chunkTUXKLM5Wcjs = require('../chunk-TUXKLM5W.cjs');
|
|
|
193
193
|
|
|
194
194
|
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
|
|
197
|
+
var _chunkWRZ6C4TUcjs = require('../chunk-WRZ6C4TU.cjs');
|
|
197
198
|
require('../chunk-VU6WQSMB.cjs');
|
|
198
199
|
require('../chunk-55AKPTLM.cjs');
|
|
199
200
|
|
|
@@ -328,7 +329,7 @@ function chartFileName(spec, extension) {
|
|
|
328
329
|
}
|
|
329
330
|
async function downloadChartPng(spec, options = {}) {
|
|
330
331
|
const { width = 800, height = 450, filename = chartFileName(spec, "png"), theme, ...raster } = options;
|
|
331
|
-
const svg =
|
|
332
|
+
const svg = _chunk5DQPDXOMcjs.chartToSvg.call(void 0, spec, { width, height, theme });
|
|
332
333
|
const { url, width: w, height: h } = await svgToPngDataUrl(svg, { ...raster, width, height });
|
|
333
334
|
const doc = _nullishCoalesce(raster.document, () => ( globalThis.document));
|
|
334
335
|
const link = doc.createElement("a");
|
|
@@ -343,7 +344,7 @@ async function downloadChartPng(spec, options = {}) {
|
|
|
343
344
|
|
|
344
345
|
// src/chart/recommend.ts
|
|
345
346
|
var blank = (c) => c === null || c === void 0 || String(c).trim() === "";
|
|
346
|
-
var isText = (c) => blank(c) ||
|
|
347
|
+
var isText = (c) => blank(c) || _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, c) === void 0;
|
|
347
348
|
function analyzeChartTable(rows) {
|
|
348
349
|
const grid = rows.filter((r) => r.some((c) => !blank(c)));
|
|
349
350
|
const height = grid.length;
|
|
@@ -361,7 +362,7 @@ function analyzeChartTable(rows) {
|
|
|
361
362
|
let anyPositive = false;
|
|
362
363
|
for (let r = headerRow ? 1 : 0; r < height; r++)
|
|
363
364
|
for (let c = labelColumn ? 1 : 0; c < width; c++) {
|
|
364
|
-
const v =
|
|
365
|
+
const v = _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, cell(r, c));
|
|
365
366
|
if (typeof v !== "number") continue;
|
|
366
367
|
anyNumber = true;
|
|
367
368
|
if (v < 0) {
|
|
@@ -370,7 +371,7 @@ function analyzeChartTable(rows) {
|
|
|
370
371
|
} else if (v > 0) anyPositive = true;
|
|
371
372
|
}
|
|
372
373
|
const labels = byRows ? _nullishCoalesce(_optionalChain([grid, 'access', _20 => _20[0], 'optionalAccess', _21 => _21.slice, 'call', _22 => _22(labelColumn ? 1 : 0)]), () => ( [])) : grid.slice(headerRow ? 1 : 0).map((r) => r[0]);
|
|
373
|
-
const dates = (byRows ? headerRow : labelColumn) && labels.length > 1 && labels.filter((l) => !blank(l) &&
|
|
374
|
+
const dates = (byRows ? headerRow : labelColumn) && labels.length > 1 && labels.filter((l) => !blank(l) && _chunkN76AMOKEcjs.parseChartDate.call(void 0, String(l)) !== null).length >= labels.length * 0.8;
|
|
374
375
|
return {
|
|
375
376
|
headerRow,
|
|
376
377
|
labelColumn,
|
|
@@ -407,7 +408,10 @@ function recommendForShape(shape) {
|
|
|
407
408
|
add("line", "Line", "The categories are dates: a line shows change over time.");
|
|
408
409
|
add("area", "Area", "Shows change over time with volume.");
|
|
409
410
|
add("bar", "Column", "Compares each period.");
|
|
410
|
-
if (shape.series > 1)
|
|
411
|
+
if (shape.series > 1) {
|
|
412
|
+
add("area", "Stacked area", "Shows how the parts add up over time.", "stacked");
|
|
413
|
+
add("streamgraph", "Streamgraph", "Shows changing proportions and overall volume as an organic stream.");
|
|
414
|
+
}
|
|
411
415
|
if (shape.series >= 5 && shape.points >= 3) add("barrace", "Bar race", "Many series over time: an animated ranking shows who leads when.");
|
|
412
416
|
return out;
|
|
413
417
|
}
|
|
@@ -462,7 +466,7 @@ function chartFromTable(rows, options = {}) {
|
|
|
462
466
|
if (xFromFirst) {
|
|
463
467
|
table = table.map((r) => [r[1], ...r.slice(2)]);
|
|
464
468
|
}
|
|
465
|
-
const data =
|
|
469
|
+
const data = _chunkWRZ6C4TUcjs.chartDataFromTable.call(void 0, table, { seriesIn: shape.byRows ? "rows" : "columns", header: true, xFromFirstColumn: xFromFirst });
|
|
466
470
|
return { type, stacking, categories: data.categories, series: data.series, issues: data.issues, shape };
|
|
467
471
|
}
|
|
468
472
|
|
|
@@ -504,10 +508,10 @@ function createChartCommands(controller, options = {}) {
|
|
|
504
508
|
readOnly: true,
|
|
505
509
|
keywords: ["chart", "data", "spec", "get", "summary"],
|
|
506
510
|
description: "Returns the chart spec, its data as a table (series names in the header row) and a summary: per-series min / max / mean / trend, axes as drawn, layout warnings and a colour check.",
|
|
507
|
-
params: object({ width:
|
|
511
|
+
params: object({ width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }),
|
|
508
512
|
run: (_ctx, params = {}) => {
|
|
509
513
|
const spec = controller.getSpec();
|
|
510
|
-
return { spec: controller.toJSON(), table:
|
|
514
|
+
return { spec: controller.toJSON(), table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, spec), summary: _chunk5DQPDXOMcjs.summarizeChart.call(void 0, controller.toJSON(), { width: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _25 => _25.width]), () => ( 640)), height: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _26 => _26.height]), () => ( 400)) }), issues: controller.getState().issues };
|
|
511
515
|
}
|
|
512
516
|
},
|
|
513
517
|
{
|
|
@@ -516,7 +520,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
516
520
|
label: "Change Chart\u2026",
|
|
517
521
|
keywords: ["chart", "title", "axis", "legend", "stack", "style", "format", "type"],
|
|
518
522
|
description: 'Changes chart presentation as one undo step: type, titles, axes (xAxis = categories, yAxis = values, yAxis2 = secondary values; reverse, and scale "log" on value axes), legend, stacking, orientation, curve, points, data labels, palette, donut hole, bar spacing, histogram bins, waterfall total, or radar rings and grid shape, note, highlight, reference lines and bands, or colour by category (varyColors). Invalid values change nothing and return why.',
|
|
519
|
-
params: object(
|
|
523
|
+
params: object(_chunkSOSBOS5Tcjs.CHART_UPDATE_PROPERTIES),
|
|
520
524
|
run: (_ctx, params) => {
|
|
521
525
|
check(controller.update(params));
|
|
522
526
|
return { spec: controller.toJSON() };
|
|
@@ -530,11 +534,11 @@ function createChartCommands(controller, options = {}) {
|
|
|
530
534
|
description: "Replaces the categories and series as one undo step. Each series has one value per category (padded with gaps).",
|
|
531
535
|
params: object({
|
|
532
536
|
categories: { type: "array", items: { type: "string" }, description: "Category labels in order." },
|
|
533
|
-
series: { type: "array", description: "The new series.", items: object({ id: { type: "string", description: "Stable id (optional)." }, ...
|
|
537
|
+
series: { type: "array", description: "The new series.", items: object({ id: { type: "string", description: "Stable id (optional)." }, ..._chunkSOSBOS5Tcjs.SERIES_PROPS }, ["name", "values"]) }
|
|
534
538
|
}),
|
|
535
539
|
run: (_ctx, params) => {
|
|
536
540
|
check(controller.setData(params));
|
|
537
|
-
return { table:
|
|
541
|
+
return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
|
|
538
542
|
}
|
|
539
543
|
},
|
|
540
544
|
{
|
|
@@ -543,10 +547,10 @@ function createChartCommands(controller, options = {}) {
|
|
|
543
547
|
label: "Set Chart Values\u2026",
|
|
544
548
|
keywords: ["chart", "value", "cell", "edit"],
|
|
545
549
|
description: "Sets individual values as one undo step. Series by id or name; category by index or label.",
|
|
546
|
-
params: object({ cells: { type: "array", minItems: 1, description: "Values to set.", items: object({ series:
|
|
550
|
+
params: object({ cells: { type: "array", minItems: 1, description: "Values to set.", items: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, value: _chunkSOSBOS5Tcjs.VALUE }, ["series", "category", "value"]) } }, ["cells"]),
|
|
547
551
|
run: (_ctx, params) => {
|
|
548
552
|
check(controller.setValues(params.cells.map((c) => ({ seriesId: resolveSeries(c.series).id, index: resolveCategory(c.category), value: c.value }))));
|
|
549
|
-
return { table:
|
|
553
|
+
return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
|
|
550
554
|
}
|
|
551
555
|
},
|
|
552
556
|
{
|
|
@@ -555,7 +559,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
555
559
|
label: "Add Series",
|
|
556
560
|
keywords: ["chart", "series", "new"],
|
|
557
561
|
description: "Adds a series (default: an empty one at the end). Returns its id.",
|
|
558
|
-
params: object({ ...
|
|
562
|
+
params: object({ ..._chunkSOSBOS5Tcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } }),
|
|
559
563
|
run: (_ctx, params = {}) => {
|
|
560
564
|
const { at, ...input } = _nullishCoalesce(params, () => ( {}));
|
|
561
565
|
const clean = Object.fromEntries(Object.entries(input).filter(([, v]) => v !== null));
|
|
@@ -570,7 +574,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
570
574
|
label: "Change Series\u2026",
|
|
571
575
|
keywords: ["chart", "series", "rename", "colour", "color", "hide", "axis", "marker"],
|
|
572
576
|
description: "Renames, recolours, hides, moves to the secondary axis or changes how a series is drawn, including error bars (null resets a field).",
|
|
573
|
-
params: object({ series:
|
|
577
|
+
params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkSOSBOS5Tcjs.SERIES_PROPS).filter(([k]) => k !== "values")) }, ["series"]),
|
|
574
578
|
run: (_ctx, params) => {
|
|
575
579
|
const { series, ...patch } = params;
|
|
576
580
|
const id = resolveSeries(series).id;
|
|
@@ -584,7 +588,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
584
588
|
label: "Delete Series",
|
|
585
589
|
keywords: ["chart", "series", "remove"],
|
|
586
590
|
description: "Deletes a series by id or name.",
|
|
587
|
-
params: object({ series:
|
|
591
|
+
params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF }, ["series"]),
|
|
588
592
|
run: (_ctx, params) => {
|
|
589
593
|
check(controller.removeSeries(resolveSeries(params.series).id));
|
|
590
594
|
return { series: seriesIds() };
|
|
@@ -609,7 +613,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
609
613
|
label: "Delete Category",
|
|
610
614
|
keywords: ["chart", "category", "row", "remove"],
|
|
611
615
|
description: "Deletes a category (and its values) by index or label.",
|
|
612
|
-
params: object({ category:
|
|
616
|
+
params: object({ category: _chunkSOSBOS5Tcjs.CATEGORY_REF }, ["category"]),
|
|
613
617
|
run: (_ctx, params) => {
|
|
614
618
|
check(controller.removeCategory(resolveCategory(params.category)));
|
|
615
619
|
return { categories: controller.getSpec().categories };
|
|
@@ -621,7 +625,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
621
625
|
label: "Add Trendline\u2026",
|
|
622
626
|
keywords: ["chart", "trend", "regression", "fit", "forecast", "moving average"],
|
|
623
627
|
description: "Fits a trendline to a series (linear, exponential, logarithmic, power, polynomial or moving average). Returns its index and the fit.",
|
|
624
|
-
params: object({ series:
|
|
628
|
+
params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, ..._chunkSOSBOS5Tcjs.TRENDLINE_PROPS }, ["series", "type"]),
|
|
625
629
|
run: (_ctx, params) => {
|
|
626
630
|
const { series, ...line } = params;
|
|
627
631
|
const result = controller.addTrendline(resolveSeries(series).id, line);
|
|
@@ -636,7 +640,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
636
640
|
label: "Delete Trendline",
|
|
637
641
|
keywords: ["chart", "trend", "remove"],
|
|
638
642
|
description: "Deletes a trendline from a series.",
|
|
639
|
-
params: object({ series:
|
|
643
|
+
params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index (0 = first)." } }, ["series", "index"]),
|
|
640
644
|
run: (_ctx, params) => {
|
|
641
645
|
check(controller.removeTrendline(resolveSeries(params.series).id, params.index));
|
|
642
646
|
return { trendlines: _nullishCoalesce(_optionalChain([controller, 'access', _29 => _29.getSeries, 'call', _30 => _30(resolveSeries(params.series).id), 'optionalAccess', _31 => _31.trendlines]), () => ( [])) };
|
|
@@ -648,7 +652,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
648
652
|
label: "Add Reference Line\u2026",
|
|
649
653
|
keywords: ["chart", "target", "goal", "threshold", "average", "reference", "line", "annotation"],
|
|
650
654
|
description: "Draws a dashed line across the plot at one value (a target, floor or average). Returns its index.",
|
|
651
|
-
params: object(
|
|
655
|
+
params: object(_chunkSOSBOS5Tcjs.REFERENCE_LINE_PROPS, ["value"]),
|
|
652
656
|
run: (_ctx, params) => {
|
|
653
657
|
const result = controller.addReferenceLine(params);
|
|
654
658
|
check(result);
|
|
@@ -661,7 +665,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
661
665
|
label: "Change Reference Line\u2026",
|
|
662
666
|
keywords: ["chart", "target", "reference", "line", "annotation"],
|
|
663
667
|
description: "Changes a reference line by index; label, axis and color take null to remove them.",
|
|
664
|
-
params: object({ index:
|
|
668
|
+
params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference line"), ..._chunkSOSBOS5Tcjs.REFERENCE_LINE_PATCH }, ["index"]),
|
|
665
669
|
run: (_ctx, params) => {
|
|
666
670
|
const { index, ...patch } = params;
|
|
667
671
|
check(controller.updateReferenceLine(index, patch));
|
|
@@ -674,7 +678,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
674
678
|
label: "Delete Reference Line",
|
|
675
679
|
keywords: ["chart", "target", "reference", "line", "remove"],
|
|
676
680
|
description: "Deletes a reference line by index.",
|
|
677
|
-
params: object({ index:
|
|
681
|
+
params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference line") }, ["index"]),
|
|
678
682
|
run: (_ctx, params) => {
|
|
679
683
|
check(controller.removeReferenceLine(params.index));
|
|
680
684
|
return { referenceLines: controller.getSpec().referenceLines };
|
|
@@ -686,7 +690,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
686
690
|
label: "Add Reference Band\u2026",
|
|
687
691
|
keywords: ["chart", "target", "range", "band", "reference", "shade", "annotation"],
|
|
688
692
|
description: "Shades a band across the plot between two values (a target or normal range). Returns its index.",
|
|
689
|
-
params: object(
|
|
693
|
+
params: object(_chunkSOSBOS5Tcjs.REFERENCE_BAND_PROPS, ["from", "to"]),
|
|
690
694
|
run: (_ctx, params) => {
|
|
691
695
|
const result = controller.addReferenceBand(params);
|
|
692
696
|
check(result);
|
|
@@ -699,7 +703,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
699
703
|
label: "Change Reference Band\u2026",
|
|
700
704
|
keywords: ["chart", "range", "band", "reference", "annotation"],
|
|
701
705
|
description: "Changes a reference band by index; label, axis and color take null to remove them.",
|
|
702
|
-
params: object({ index:
|
|
706
|
+
params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference band"), ..._chunkSOSBOS5Tcjs.REFERENCE_BAND_PATCH }, ["index"]),
|
|
703
707
|
run: (_ctx, params) => {
|
|
704
708
|
const { index, ...patch } = params;
|
|
705
709
|
check(controller.updateReferenceBand(index, patch));
|
|
@@ -712,7 +716,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
712
716
|
label: "Delete Reference Band",
|
|
713
717
|
keywords: ["chart", "range", "band", "reference", "remove"],
|
|
714
718
|
description: "Deletes a reference band by index.",
|
|
715
|
-
params: object({ index:
|
|
719
|
+
params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference band") }, ["index"]),
|
|
716
720
|
run: (_ctx, params) => {
|
|
717
721
|
check(controller.removeReferenceBand(params.index));
|
|
718
722
|
return { referenceBands: controller.getSpec().referenceBands };
|
|
@@ -724,7 +728,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
724
728
|
label: "Pin Label to Point\u2026",
|
|
725
729
|
keywords: ["chart", "callout", "annotation", "label", "note", "point"],
|
|
726
730
|
description: 'Pins a short label to one bar or point (label null or "" removes it).',
|
|
727
|
-
params: object({ series:
|
|
731
|
+
params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (a few words), or null to remove it." } }, ["series", "category", "label"]),
|
|
728
732
|
run: (_ctx, params) => {
|
|
729
733
|
const series = resolveSeries(params.series);
|
|
730
734
|
const index = resolveCategory(params.category);
|
|
@@ -752,10 +756,10 @@ function createChartCommands(controller, options = {}) {
|
|
|
752
756
|
label: "Replace Grouped Data\u2026",
|
|
753
757
|
keywords: ["chart", "tree", "hierarchy", "groups", "treemap", "sunburst", "nested"],
|
|
754
758
|
description: "Replaces the data with groups of items (a tree) for treemaps and sunbursts; [] goes back to plain data.",
|
|
755
|
-
params: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs:
|
|
759
|
+
params: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkSOSBOS5Tcjs.TREE_DEFS },
|
|
756
760
|
run: (_ctx, params) => {
|
|
757
761
|
check(controller.setTree(params.tree));
|
|
758
|
-
return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total:
|
|
762
|
+
return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })) };
|
|
759
763
|
}
|
|
760
764
|
},
|
|
761
765
|
{
|
|
@@ -791,7 +795,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
791
795
|
},
|
|
792
796
|
required: ["node"],
|
|
793
797
|
additionalProperties: false,
|
|
794
|
-
$defs:
|
|
798
|
+
$defs: _chunkSOSBOS5Tcjs.TREE_DEFS
|
|
795
799
|
},
|
|
796
800
|
run: (_ctx, params) => {
|
|
797
801
|
const result = controller.addTreeNode(_nullishCoalesce(params.parent, () => ( [])), params.node, { at: params.at });
|
|
@@ -807,7 +811,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
807
811
|
description: "Renames a node, sets an item's value or sets a node's colour (null for the palette).",
|
|
808
812
|
params: object(
|
|
809
813
|
{
|
|
810
|
-
path:
|
|
814
|
+
path: _chunkSOSBOS5Tcjs.TREE_PATH,
|
|
811
815
|
name: { type: "string", description: "New name." },
|
|
812
816
|
value: { type: "number", minimum: 0, description: "Items only: the new amount." },
|
|
813
817
|
color: { type: ["string", "null"], description: "CSS colour, or null for the palette colour." }
|
|
@@ -827,10 +831,10 @@ function createChartCommands(controller, options = {}) {
|
|
|
827
831
|
label: "Delete Item or Group",
|
|
828
832
|
keywords: ["chart", "tree", "group", "item", "remove", "delete"],
|
|
829
833
|
description: "Deletes a node of the grouped data with everything under it.",
|
|
830
|
-
params: object({ path:
|
|
834
|
+
params: object({ path: _chunkSOSBOS5Tcjs.TREE_PATH }, ["path"]),
|
|
831
835
|
run: (_ctx, params) => {
|
|
832
836
|
check(controller.removeTreeNode(params.path));
|
|
833
|
-
return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total:
|
|
837
|
+
return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })) };
|
|
834
838
|
}
|
|
835
839
|
},
|
|
836
840
|
{
|
|
@@ -841,7 +845,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
841
845
|
description: "Replaces the data with flows between named nodes for a Sankey diagram; [] goes back to plain data.",
|
|
842
846
|
params: object(
|
|
843
847
|
{
|
|
844
|
-
links: { type: "array", items: { type: "object", properties:
|
|
848
|
+
links: { type: "array", items: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
|
|
845
849
|
nodes: { type: "array", items: { type: "string" }, description: "Node names in stacking order." }
|
|
846
850
|
},
|
|
847
851
|
["links"]
|
|
@@ -875,7 +879,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
875
879
|
label: "Add Flow\u2026",
|
|
876
880
|
keywords: ["chart", "sankey", "flow", "link", "add"],
|
|
877
881
|
description: "Adds a flow between two nodes. Returns its index.",
|
|
878
|
-
params: object(
|
|
882
|
+
params: object(_chunkSOSBOS5Tcjs.LINK_PROPS, ["source", "target", "value"]),
|
|
879
883
|
run: (_ctx, params) => {
|
|
880
884
|
const result = controller.addLink(params);
|
|
881
885
|
check(result);
|
|
@@ -888,7 +892,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
888
892
|
label: "Change Flow\u2026",
|
|
889
893
|
keywords: ["chart", "sankey", "flow", "link", "value"],
|
|
890
894
|
description: "Changes a flow by index (color null for the default).",
|
|
891
|
-
params: object({ index:
|
|
895
|
+
params: object({ index: _chunkSOSBOS5Tcjs.LINK_INDEX, ..._chunkSOSBOS5Tcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, ["index"]),
|
|
892
896
|
run: (_ctx, params) => {
|
|
893
897
|
const { index, ...patch } = params;
|
|
894
898
|
check(controller.updateLink(index, patch));
|
|
@@ -901,7 +905,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
901
905
|
label: "Delete Flow",
|
|
902
906
|
keywords: ["chart", "sankey", "flow", "link", "remove"],
|
|
903
907
|
description: "Deletes a flow by index.",
|
|
904
|
-
params: object({ index:
|
|
908
|
+
params: object({ index: _chunkSOSBOS5Tcjs.LINK_INDEX }, ["index"]),
|
|
905
909
|
run: (_ctx, params) => {
|
|
906
910
|
check(controller.removeLink(params.index));
|
|
907
911
|
return { links: controller.getSpec().links };
|
|
@@ -917,9 +921,9 @@ function createChartCommands(controller, options = {}) {
|
|
|
917
921
|
params: object({ map: { type: "string", description: "Map id (default: the chart's map)." } }),
|
|
918
922
|
run: (_ctx, params = {}) => {
|
|
919
923
|
const id = _nullishCoalesce(_optionalChain([params, 'optionalAccess', _36 => _36.map]), () => ( controller.getSpec().map));
|
|
920
|
-
const geometry =
|
|
924
|
+
const geometry = _chunkN76AMOKEcjs.getChartMap.call(void 0, id);
|
|
921
925
|
if (!geometry) fail(`There is no map "${id}"; register it with registerChartMap.`);
|
|
922
|
-
const matches =
|
|
926
|
+
const matches = _chunkN76AMOKEcjs.matchChartMapRegions.call(void 0, geometry, controller.getSpec().categories);
|
|
923
927
|
return { regions: geometry.regions.map((r) => ({ id: r.id, name: r.name })), unmatched: controller.getSpec().categories.filter((_, i) => !matches[i]) };
|
|
924
928
|
}
|
|
925
929
|
},
|
|
@@ -930,11 +934,11 @@ function createChartCommands(controller, options = {}) {
|
|
|
930
934
|
readOnly: true,
|
|
931
935
|
keywords: ["chart", "race", "ranking", "leader", "time"],
|
|
932
936
|
description: "Returns the top names of a bar race at a moment (default: the one shown).",
|
|
933
|
-
params: object({ time:
|
|
937
|
+
params: object({ time: _chunkSOSBOS5Tcjs.RACE_TIME }),
|
|
934
938
|
run: (_ctx, params = {}) => {
|
|
935
939
|
const spec = controller.getSpec();
|
|
936
940
|
const frame = _optionalChain([params, 'optionalAccess', _37 => _37.time]) !== void 0 ? raceFrame(params.time) : _nullishCoalesce(controller.getState().raceFrame, () => ( spec.categories.length - 1));
|
|
937
|
-
return { frame, ranking:
|
|
941
|
+
return { frame, ranking: _chunkN76AMOKEcjs.chartRaceRanking.call(void 0, spec, frame).slice(0, spec.raceTopN).map((e) => ({ rank: e.rank + 1, series: e.seriesId, name: e.name, value: e.value })) };
|
|
938
942
|
}
|
|
939
943
|
},
|
|
940
944
|
{
|
|
@@ -943,7 +947,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
943
947
|
label: "Show Bar Race Moment\u2026",
|
|
944
948
|
keywords: ["chart", "race", "frame", "time", "scrub"],
|
|
945
949
|
description: "Shows the bar race at a time point (null for the last) and stops playback. View state, not an undo step.",
|
|
946
|
-
params: object({ time: { ...
|
|
950
|
+
params: object({ time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkSOSBOS5Tcjs.RACE_TIME.description} null shows the last time point.` } }, ["time"]),
|
|
947
951
|
run: (_ctx, params) => {
|
|
948
952
|
const frame = params.time === null ? null : raceFrame(params.time);
|
|
949
953
|
check(controller.setRaceFrame(frame));
|
|
@@ -981,8 +985,8 @@ function createChartCommands(controller, options = {}) {
|
|
|
981
985
|
keywords: ["chart", "quick layout", "style", "colours", "colors", "monochrome", "theme"],
|
|
982
986
|
description: "Applies a quick layout and / or colour scheme as one undo step.",
|
|
983
987
|
params: object({
|
|
984
|
-
layout: { type: "string", enum:
|
|
985
|
-
colors: { type: "string", enum:
|
|
988
|
+
layout: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
|
|
989
|
+
colors: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
|
|
986
990
|
}),
|
|
987
991
|
run: (_ctx, params = {}) => {
|
|
988
992
|
check(controller.applyPreset(_nullishCoalesce(params, () => ( {}))));
|
|
@@ -997,7 +1001,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
997
1001
|
description: "Swaps series and categories as one undo step.",
|
|
998
1002
|
run: () => {
|
|
999
1003
|
check(controller.transpose());
|
|
1000
|
-
return { table:
|
|
1004
|
+
return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
|
|
1001
1005
|
}
|
|
1002
1006
|
},
|
|
1003
1007
|
{
|
|
@@ -1017,7 +1021,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
1017
1021
|
run: (_ctx, params) => {
|
|
1018
1022
|
const result = controller.importCsv(params.csv, { seriesIn: params.seriesIn, header: params.header });
|
|
1019
1023
|
check(result);
|
|
1020
|
-
return { table:
|
|
1024
|
+
return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()), issues: _nullishCoalesce(result.issues, () => ( [])) };
|
|
1021
1025
|
}
|
|
1022
1026
|
},
|
|
1023
1027
|
{
|
|
@@ -1028,7 +1032,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
1028
1032
|
description: "Replaces the chart with Mermaid xychart-beta, pie, radar-beta, sankey-beta or treemap-beta text (one undo step). Unreadable lines are listed with line numbers.",
|
|
1029
1033
|
params: object({ mermaid: { type: "string", description: "Mermaid text." } }, ["mermaid"]),
|
|
1030
1034
|
run: (_ctx, params) => {
|
|
1031
|
-
const read =
|
|
1035
|
+
const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, params.mermaid);
|
|
1032
1036
|
if (!read.family) fail(read.issues.map((i) => i.message).join(" ") || "Expected Mermaid starting with xychart-beta, pie, radar-beta, sankey-beta or treemap-beta.");
|
|
1033
1037
|
check(controller.update({ ...read.spec }, { label: "Import Mermaid chart" }));
|
|
1034
1038
|
return { spec: controller.toJSON(), issues: read.issues };
|
|
@@ -1042,7 +1046,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
1042
1046
|
keywords: ["chart", "mermaid", "markdown", "export"],
|
|
1043
1047
|
description: "Returns the chart as Mermaid text (with a round-trip comment unless meta is false).",
|
|
1044
1048
|
params: object({ meta: { type: "boolean", description: "Include the %% @pixerate round-trip comment (default true)." } }),
|
|
1045
|
-
run: (_ctx, params = {}) => ({ mermaid:
|
|
1049
|
+
run: (_ctx, params = {}) => ({ mermaid: _chunk5DQPDXOMcjs.chartToMermaid.call(void 0, controller.toJSON(), { meta: _optionalChain([params, 'optionalAccess', _39 => _39.meta]) }) })
|
|
1046
1050
|
},
|
|
1047
1051
|
{
|
|
1048
1052
|
...base,
|
|
@@ -1051,7 +1055,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
1051
1055
|
readOnly: true,
|
|
1052
1056
|
keywords: ["chart", "office", "word", "powerpoint", "docx", "pptx", "xml", "export"],
|
|
1053
1057
|
description: "Returns the chart as a DrawingML chart part (c:chartSpace) and what could not be written.",
|
|
1054
|
-
run: () =>
|
|
1058
|
+
run: () => _chunkHUAISCUXcjs.chartToOoxml.call(void 0, controller.toJSON())
|
|
1055
1059
|
},
|
|
1056
1060
|
{
|
|
1057
1061
|
...base,
|
|
@@ -1060,9 +1064,9 @@ function createChartCommands(controller, options = {}) {
|
|
|
1060
1064
|
readOnly: true,
|
|
1061
1065
|
keywords: ["chart", "svg", "export", "image"],
|
|
1062
1066
|
description: "Returns the chart drawn as a standalone, accessible SVG string (with <title> and <desc>).",
|
|
1063
|
-
params: object({ width:
|
|
1067
|
+
params: object({ width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }),
|
|
1064
1068
|
run: (_ctx, params = {}) => ({
|
|
1065
|
-
svg:
|
|
1069
|
+
svg: _chunk5DQPDXOMcjs.chartToSvg.call(void 0, controller.toJSON(), { width: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _40 => _40.width]), () => ( 640)), height: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _41 => _41.height]), () => ( 400)) })
|
|
1066
1070
|
})
|
|
1067
1071
|
},
|
|
1068
1072
|
{
|
|
@@ -1074,7 +1078,7 @@ function createChartCommands(controller, options = {}) {
|
|
|
1074
1078
|
description: "Suggests chart types for the current data (or CSV), best first, each with a reason.",
|
|
1075
1079
|
params: object({ csv: { type: "string", description: "CSV text to analyse instead of the current data." } }),
|
|
1076
1080
|
run: (_ctx, params = {}) => ({
|
|
1077
|
-
recommendations: recommendChartTypes(_optionalChain([params, 'optionalAccess', _42 => _42.csv]) !== void 0 ? _chunkN3KJFGXTcjs.parseCsv.call(void 0, params.csv) :
|
|
1081
|
+
recommendations: recommendChartTypes(_optionalChain([params, 'optionalAccess', _42 => _42.csv]) !== void 0 ? _chunkN3KJFGXTcjs.parseCsv.call(void 0, params.csv) : _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()))
|
|
1078
1082
|
})
|
|
1079
1083
|
},
|
|
1080
1084
|
{
|
|
@@ -1087,8 +1091,8 @@ function createChartCommands(controller, options = {}) {
|
|
|
1087
1091
|
run: () => {
|
|
1088
1092
|
const s = controller.getSpec();
|
|
1089
1093
|
const visible = s.series.filter((x) => !x.hidden);
|
|
1090
|
-
const colors =
|
|
1091
|
-
return { colors, ...
|
|
1094
|
+
const colors = _chunkWRZ6C4TUcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _43 => _43[0], 'optionalAccess', _44 => _44.pointColors, 'optionalAccess', _45 => _45[i]]) || _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunkWRZ6C4TUcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
|
|
1095
|
+
return { colors, ..._chunkWRZ6C4TUcjs.checkChartColors.call(void 0, colors) };
|
|
1092
1096
|
}
|
|
1093
1097
|
},
|
|
1094
1098
|
{
|
|
@@ -1119,7 +1123,7 @@ function chartClientToScene(scene, box, clientX, clientY) {
|
|
|
1119
1123
|
function canDragChartPoint(controller, scene, target) {
|
|
1120
1124
|
if (_optionalChain([target, 'optionalAccess', _46 => _46.kind]) !== "point" || !scene.valueScale || scene.percent) return false;
|
|
1121
1125
|
const spec = controller.getSpec();
|
|
1122
|
-
const family =
|
|
1126
|
+
const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
|
|
1123
1127
|
if (family !== "cartesian" && family !== "xy" && family !== "waterfall") return false;
|
|
1124
1128
|
const series = controller.getSeries(target.seriesId);
|
|
1125
1129
|
return !!series && !series.hidden && series.values[target.index] !== null;
|
|
@@ -1128,7 +1132,7 @@ function snapChartDragValue(scene, value, options = {}) {
|
|
|
1128
1132
|
const scale = _nullishCoalesce(options.scale, () => ( scene.valueScale));
|
|
1129
1133
|
const tolerance = _nullishCoalesce(options.tolerancePx, () => ( 6));
|
|
1130
1134
|
if (scale) {
|
|
1131
|
-
const px = (v) =>
|
|
1135
|
+
const px = (v) => _chunkN76AMOKEcjs.chartScaleToPixel.call(void 0, v, scale);
|
|
1132
1136
|
const at = px(value);
|
|
1133
1137
|
let best = null;
|
|
1134
1138
|
let bestDist = tolerance;
|
|
@@ -1143,7 +1147,7 @@ function snapChartDragValue(scene, value, options = {}) {
|
|
|
1143
1147
|
}
|
|
1144
1148
|
if (best !== null) return best;
|
|
1145
1149
|
}
|
|
1146
|
-
return
|
|
1150
|
+
return _chunkN76AMOKEcjs.snapChartValue.call(void 0, scene, value, options.step, _optionalChain([scale, 'optionalAccess', _47 => _47.ticks]), _optionalChain([scale, 'optionalAccess', _48 => _48.logBase]));
|
|
1147
1151
|
}
|
|
1148
1152
|
function startChartPointDrag(controller, scene, target, start, options = {}) {
|
|
1149
1153
|
if (!canDragChartPoint(controller, scene, target)) return null;
|
|
@@ -1152,11 +1156,11 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
|
|
|
1152
1156
|
const series = controller.getSeries(seriesId);
|
|
1153
1157
|
const secondary = series.axis === "secondary" && !!scene.valueScale2;
|
|
1154
1158
|
const scale = secondary ? scene.valueScale2 : scene.valueScale;
|
|
1155
|
-
const xy =
|
|
1159
|
+
const xy = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec) === "xy" && !!scene.xScale;
|
|
1156
1160
|
const startValue = _nullishCoalesce(series.values[index], () => ( 0));
|
|
1157
1161
|
const startX = _nullishCoalesce(_optionalChain([series, 'access', _49 => _49.x, 'optionalAccess', _50 => _50[index]]), () => ( null));
|
|
1158
|
-
const startAt =
|
|
1159
|
-
const startAtX = xy ?
|
|
1162
|
+
const startAt = _chunkN76AMOKEcjs.chartValueAtPoint.call(void 0, scene, start, secondary);
|
|
1163
|
+
const startAtX = xy ? _chunkN76AMOKEcjs.chartXAtPoint.call(void 0, scene, start) : void 0;
|
|
1160
1164
|
if (startAt === void 0) return null;
|
|
1161
1165
|
const candidates = [0, startValue];
|
|
1162
1166
|
if (!xy) {
|
|
@@ -1174,7 +1178,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
|
|
|
1174
1178
|
target: { seriesId, index },
|
|
1175
1179
|
move(point, moveOptions = {}) {
|
|
1176
1180
|
if (ended) return;
|
|
1177
|
-
const at =
|
|
1181
|
+
const at = _chunkN76AMOKEcjs.chartValueAtPoint.call(void 0, scene, point, secondary);
|
|
1178
1182
|
if (at === void 0) return;
|
|
1179
1183
|
const factor = moveOptions.fine ? 0.1 : 1;
|
|
1180
1184
|
const moved = (from, to, s, value) => s.logBase && value > 0 && from > 0 && to > 0 ? value * Math.pow(to / from, factor) : value + (to - from) * factor;
|
|
@@ -1182,7 +1186,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
|
|
|
1182
1186
|
let moveX = false;
|
|
1183
1187
|
let atX;
|
|
1184
1188
|
if (xy && startX !== null && startAtX !== void 0) {
|
|
1185
|
-
atX =
|
|
1189
|
+
atX = _chunkN76AMOKEcjs.chartXAtPoint.call(void 0, scene, point);
|
|
1186
1190
|
moveX = atX !== void 0;
|
|
1187
1191
|
if (moveOptions.lockAxis) {
|
|
1188
1192
|
if (Math.abs(point.x - start.x) >= Math.abs(point.y - start.y)) moveY = false;
|
|
@@ -1194,7 +1198,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
|
|
|
1194
1198
|
if (moveOptions.fine) {
|
|
1195
1199
|
if (s.logBase && !options.step) return v > 0 ? Number(v.toPrecision(3)) : v;
|
|
1196
1200
|
const unit = options.step ? options.step / 10 : s.ticks.length > 1 ? (s.ticks[1] - s.ticks[0]) / 100 : void 0;
|
|
1197
|
-
return
|
|
1201
|
+
return _chunkN76AMOKEcjs.snapChartValue.call(void 0, scene, v, unit, s.ticks);
|
|
1198
1202
|
}
|
|
1199
1203
|
return snapChartDragValue(scene, v, { candidates: c, tolerancePx: options.tolerancePx, step: options.step, scale: s });
|
|
1200
1204
|
};
|
|
@@ -1282,7 +1286,7 @@ function describeChartSelection(controller, selection = controller.getState().se
|
|
|
1282
1286
|
case "legend":
|
|
1283
1287
|
return "Legend";
|
|
1284
1288
|
case "axis":
|
|
1285
|
-
return selection.axis === "x" ?
|
|
1289
|
+
return selection.axis === "x" ? _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec) === "xy" ? "X axis" : "Category axis" : selection.axis === "y" ? "Value axis" : "Secondary value axis";
|
|
1286
1290
|
case "series":
|
|
1287
1291
|
return `Series "${_nullishCoalesce(_optionalChain([controller, 'access', _66 => _66.getSeries, 'call', _67 => _67(selection.seriesId), 'optionalAccess', _68 => _68.name]), () => ( selection.seriesId))}"`;
|
|
1288
1292
|
case "category":
|
|
@@ -1296,7 +1300,7 @@ function describeChartSelection(controller, selection = controller.getState().se
|
|
|
1296
1300
|
const series = controller.getSeries(selection.seriesId);
|
|
1297
1301
|
const value = _optionalChain([series, 'optionalAccess', _72 => _72.values, 'access', _73 => _73[selection.index]]);
|
|
1298
1302
|
const x = _optionalChain([series, 'optionalAccess', _74 => _74.x, 'optionalAccess', _75 => _75[selection.index]]);
|
|
1299
|
-
if (x !== void 0 && x !== null &&
|
|
1303
|
+
if (x !== void 0 && x !== null && _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec) === "xy") return `${_nullishCoalesce(_optionalChain([series, 'optionalAccess', _76 => _76.name]), () => ( selection.seriesId))}: (${x}, ${_nullishCoalesce(value, () => ( "blank"))})`;
|
|
1300
1304
|
return `${_nullishCoalesce(_optionalChain([series, 'optionalAccess', _77 => _77.name]), () => ( selection.seriesId))} \xB7 ${_nullishCoalesce(spec.categories[selection.index], () => ( selection.index))}: ${_nullishCoalesce(value, () => ( "blank"))}`;
|
|
1301
1305
|
}
|
|
1302
1306
|
}
|
|
@@ -1338,34 +1342,34 @@ function chartHitTest(scene, point, measure = (t, s, w = 400) => t.length * s *
|
|
|
1338
1342
|
}
|
|
1339
1343
|
|
|
1340
1344
|
// src/chart/tooltip.ts
|
|
1341
|
-
var VALUE_FAMILIES = /* @__PURE__ */ new Set(["cartesian", "xy", "pie", "radar", "waterfall", "funnel", "parliament", "slope"]);
|
|
1345
|
+
var VALUE_FAMILIES = /* @__PURE__ */ new Set(["cartesian", "xy", "pie", "radar", "waterfall", "funnel", "parliament", "slope", "streamgraph"]);
|
|
1342
1346
|
var SLICE_FAMILIES = /* @__PURE__ */ new Set(["pie", "funnel", "parliament"]);
|
|
1343
1347
|
function valueFormat(spec, series) {
|
|
1344
1348
|
return _nullishCoalesce(series.format, () => ( (series.axis === "secondary" ? spec.yAxis2.format : spec.yAxis.format)));
|
|
1345
1349
|
}
|
|
1346
|
-
var percentText = (share) =>
|
|
1350
|
+
var percentText = (share) => _chunkN76AMOKEcjs.formatChartNumber.call(void 0, share, { style: "percent", decimals: share < 0.1 ? 1 : 0 });
|
|
1347
1351
|
function item(spec, seriesIndex, index, share) {
|
|
1348
|
-
const family =
|
|
1352
|
+
const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
|
|
1349
1353
|
const series = spec.series[seriesIndex];
|
|
1350
1354
|
const value = _nullishCoalesce(series.values[index], () => ( null));
|
|
1351
1355
|
const slice = SLICE_FAMILIES.has(family);
|
|
1352
|
-
let text =
|
|
1356
|
+
let text = _chunkN76AMOKEcjs.formatChartNumber.call(void 0, value, valueFormat(spec, series));
|
|
1353
1357
|
if (family === "xy") {
|
|
1354
1358
|
const x = _optionalChain([series, 'access', _78 => _78.x, 'optionalAccess', _79 => _79[index]]);
|
|
1355
|
-
if (x !== null && x !== void 0) text = `${
|
|
1359
|
+
if (x !== null && x !== void 0) text = `${_chunkN76AMOKEcjs.formatChartNumber.call(void 0, x, spec.xAxis.format)}, ${text}`;
|
|
1356
1360
|
}
|
|
1357
1361
|
if (share !== void 0) text = `${text} (${percentText(share)})`;
|
|
1358
1362
|
return {
|
|
1359
1363
|
seriesId: series.id,
|
|
1360
1364
|
name: slice ? _nullishCoalesce(spec.categories[index], () => ( series.name)) : series.name,
|
|
1361
|
-
color: slice ? _nullishCoalesce(_optionalChain([series, 'access', _80 => _80.pointColors, 'optionalAccess', _81 => _81[index]]), () => (
|
|
1365
|
+
color: slice ? _nullishCoalesce(_optionalChain([series, 'access', _80 => _80.pointColors, 'optionalAccess', _81 => _81[index]]), () => ( _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, spec, index))) : _chunkWRZ6C4TUcjs.chartPointColor.call(void 0, spec, seriesIndex, index),
|
|
1362
1366
|
value,
|
|
1363
1367
|
...share !== void 0 ? { share } : {},
|
|
1364
1368
|
text
|
|
1365
1369
|
};
|
|
1366
1370
|
}
|
|
1367
1371
|
function chartTooltipFor(spec, index, seriesId, anchor = { x: 0, y: 0 }) {
|
|
1368
|
-
const family =
|
|
1372
|
+
const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
|
|
1369
1373
|
if (!VALUE_FAMILIES.has(family)) return null;
|
|
1370
1374
|
if (!Number.isInteger(index) || index < 0 || index >= Math.max(spec.categories.length, ...spec.series.map((s) => s.values.length))) return null;
|
|
1371
1375
|
const visible = spec.series.map((s, i) => ({ s, i })).filter(({ s }) => !s.hidden && (!seriesId || s.id === seriesId));
|
|
@@ -1389,10 +1393,10 @@ function chartTooltipFor(spec, index, seriesId, anchor = { x: 0, y: 0 }) {
|
|
|
1389
1393
|
}
|
|
1390
1394
|
function chartTooltipAt(spec, scene, point, options = {}) {
|
|
1391
1395
|
if (options.mode === "category" && scene.categoryScale) {
|
|
1392
|
-
const index =
|
|
1396
|
+
const index = _chunkN76AMOKEcjs.chartCategoryAtPoint.call(void 0, scene, point);
|
|
1393
1397
|
if (index !== void 0) return chartTooltipFor(spec, index, void 0, point);
|
|
1394
1398
|
}
|
|
1395
|
-
const target = chartHitTest(scene, point, _nullishCoalesce(options.measureText, () => (
|
|
1399
|
+
const target = chartHitTest(scene, point, _nullishCoalesce(options.measureText, () => ( _chunkN76AMOKEcjs.estimateChartTextWidth)));
|
|
1396
1400
|
if (_optionalChain([target, 'optionalAccess', _82 => _82.kind]) === "point") return chartTooltipFor(spec, target.index, target.seriesId, point);
|
|
1397
1401
|
if (_optionalChain([target, 'optionalAccess', _83 => _83.kind]) === "category" && scene.categoryScale && options.mode === "category") return chartTooltipFor(spec, target.index, void 0, point);
|
|
1398
1402
|
return null;
|
|
@@ -1438,7 +1442,7 @@ function planChartCommand(spec, scene, command, speed = 1) {
|
|
|
1438
1442
|
const from = _nullishCoalesce(_optionalChain([series, 'optionalAccess', _86 => _86.values, 'access', _87 => _87[command.index]]), () => ( 0));
|
|
1439
1443
|
const scale = _optionalChain([series, 'optionalAccess', _88 => _88.axis]) === "secondary" ? _nullishCoalesce(scene.valueScale2, () => ( scene.valueScale)) : scene.valueScale;
|
|
1440
1444
|
if (at && scale) {
|
|
1441
|
-
const px =
|
|
1445
|
+
const px = _chunkN76AMOKEcjs.linearMap.call(void 0, command.value, scale.domain, scale.range);
|
|
1442
1446
|
const to = scale.axis === "y" ? { x: at.x, y: px } : { x: px, y: at.y };
|
|
1443
1447
|
steps.push({ type: "move", to: at, ms: ms(380) }, { type: "press" }, { type: "drag", to, ms: ms(520), from, value: command.value }, { type: "release" });
|
|
1444
1448
|
} else steps.push({ type: "drag", to: { x: scene.plot.x + scene.plot.width / 2, y: scene.plot.y + scene.plot.height / 2 }, ms: ms(200), from, value: command.value });
|
|
@@ -1698,10 +1702,10 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1698
1702
|
fail2(`There is no category ${JSON.stringify(ref)}; expected an index from 0 to ${categories.length - 1} or one of ${categories.slice(0, 20).map((c) => JSON.stringify(c)).join(", ")}.`);
|
|
1699
1703
|
return index;
|
|
1700
1704
|
};
|
|
1701
|
-
const table = () =>
|
|
1705
|
+
const table = () => _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, spec());
|
|
1702
1706
|
const treeTable = () => {
|
|
1703
|
-
const rows =
|
|
1704
|
-
const depth =
|
|
1707
|
+
const rows = _chunkWRZ6C4TUcjs.chartTreeToRows.call(void 0, spec().tree);
|
|
1708
|
+
const depth = _chunkWRZ6C4TUcjs.chartTreeDepth.call(void 0, spec().tree);
|
|
1705
1709
|
return [[...Array.from({ length: depth }, (_, k) => k === 0 ? "Group" : k === depth - 1 ? "Item" : `Level ${k + 1}`), "Value"], ...rows.map((r) => [...r.path, ...Array(depth - r.path.length).fill(""), r.value])];
|
|
1706
1710
|
};
|
|
1707
1711
|
const raceFrameOf = (time) => {
|
|
@@ -1717,17 +1721,17 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1717
1721
|
return {
|
|
1718
1722
|
frame: at,
|
|
1719
1723
|
time: _nullishCoalesce(s.categories[Math.round(at)], () => ( null)),
|
|
1720
|
-
ranking:
|
|
1724
|
+
ranking: _chunkN76AMOKEcjs.chartRaceRanking.call(void 0, s, at).slice(0, s.raceTopN).map((e) => ({ rank: e.rank + 1, series: e.seriesId, name: e.name, value: e.value }))
|
|
1721
1725
|
};
|
|
1722
1726
|
};
|
|
1723
|
-
const linksSummary = () => ({ links: spec().links, nodes: spec().sankeyNodes.map((name, i) => ({ name, value:
|
|
1724
|
-
const treeSummary = () => ({ tree: spec().tree, groups: spec().tree.map((n) => ({ name: n.name, total:
|
|
1727
|
+
const linksSummary = () => ({ links: spec().links, nodes: spec().sankeyNodes.map((name, i) => ({ name, value: _chunkWRZ6C4TUcjs.chartSankeyNodeValues.call(void 0, spec().links, spec().sankeyNodes)[i] })) });
|
|
1728
|
+
const treeSummary = () => ({ tree: spec().tree, groups: spec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })), depth: _chunkWRZ6C4TUcjs.chartTreeDepth.call(void 0, spec().tree) });
|
|
1725
1729
|
const Parser = () => _nullishCoalesce(options.DOMParser, () => ( globalThis.DOMParser));
|
|
1726
1730
|
const getChart = {
|
|
1727
1731
|
name: "get_chart",
|
|
1728
1732
|
title: "Read the chart",
|
|
1729
1733
|
description: "Returns the chart spec (type, titles, axes, legend, series with ids and settings), its data as a table (header row of series names, then one row per category), grouped data as treeTable (path of names to each item, then its value) when the chart has a tree, the current selection, and a summary at the given size: per-series min / max / mean / trend, the axes as drawn, layout warnings (hidden labels, thinned lines), a colour check and a plain-language description. Use the series ids and category indexes it returns with the write tools.",
|
|
1730
|
-
inputSchema: { type: "object", properties: { width:
|
|
1734
|
+
inputSchema: { type: "object", properties: { width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }, additionalProperties: false },
|
|
1731
1735
|
annotations: { title: "Read the chart", ...READ },
|
|
1732
1736
|
handler: ({ width = size.width, height = size.height }) => {
|
|
1733
1737
|
const reason = readOnlyReason();
|
|
@@ -1735,7 +1739,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1735
1739
|
spec: controller.toJSON(),
|
|
1736
1740
|
table: table(),
|
|
1737
1741
|
selection: controller.getState().selection,
|
|
1738
|
-
summary:
|
|
1742
|
+
summary: _chunk5DQPDXOMcjs.summarizeChart.call(void 0, controller.toJSON(), { width, height }),
|
|
1739
1743
|
...spec().tree.length ? { treeTable: treeTable() } : {},
|
|
1740
1744
|
issues: controller.getState().issues,
|
|
1741
1745
|
...reason ? { readOnly: reason } : {}
|
|
@@ -1749,10 +1753,10 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1749
1753
|
inputSchema: {
|
|
1750
1754
|
type: "object",
|
|
1751
1755
|
properties: {
|
|
1752
|
-
width:
|
|
1753
|
-
height:
|
|
1756
|
+
width: _chunkSOSBOS5Tcjs.WIDTH,
|
|
1757
|
+
height: _chunkSOSBOS5Tcjs.HEIGHT,
|
|
1754
1758
|
format: { type: "string", enum: ["svg", "png"], description: "svg (default): the SVG document as text. png: an image to look at (only when the host can rasterize; costs image tokens)." },
|
|
1755
|
-
time: { ...
|
|
1759
|
+
time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, description: `Bar race only: the moment to draw (default: the one shown). ${_chunkSOSBOS5Tcjs.RACE_TIME.description}` }
|
|
1756
1760
|
},
|
|
1757
1761
|
additionalProperties: false
|
|
1758
1762
|
},
|
|
@@ -1760,8 +1764,8 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1760
1764
|
handler: async ({ width = size.width, height = size.height, format = "svg", time }) => {
|
|
1761
1765
|
const json = controller.toJSON();
|
|
1762
1766
|
const raceFrame = time !== void 0 ? raceFrameOf(time) : controller.getState().raceFrame;
|
|
1763
|
-
const scene =
|
|
1764
|
-
const svg =
|
|
1767
|
+
const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, json, { width, height, selection: null, raceFrame });
|
|
1768
|
+
const svg = _chunk5DQPDXOMcjs.chartSceneToSvg.call(void 0, scene, { ariaLabel: json.title || void 0, description: _chunk5DQPDXOMcjs.describeChart.call(void 0, json) });
|
|
1765
1769
|
const warnings = scene.warnings;
|
|
1766
1770
|
if (format === "png") {
|
|
1767
1771
|
if (!options.rasterize) fail2('This host cannot rasterize charts; call render_chart with format "svg", or get_chart for the layout warnings.');
|
|
@@ -1795,8 +1799,8 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1795
1799
|
handler: ({ colors, surface }) => {
|
|
1796
1800
|
const s = spec();
|
|
1797
1801
|
const visible = s.series.filter((x) => !x.hidden);
|
|
1798
|
-
const own =
|
|
1799
|
-
return { colors: _nullishCoalesce(colors, () => ( own)), ...
|
|
1802
|
+
const own = _chunkWRZ6C4TUcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _100 => _100[0], 'optionalAccess', _101 => _101.pointColors, 'optionalAccess', _102 => _102[i]]) || _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunkWRZ6C4TUcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
|
|
1803
|
+
return { colors: _nullishCoalesce(colors, () => ( own)), ..._chunkWRZ6C4TUcjs.checkChartColors.call(void 0, _nullishCoalesce(colors, () => ( own)), { surface }) };
|
|
1800
1804
|
}
|
|
1801
1805
|
};
|
|
1802
1806
|
const recommend = {
|
|
@@ -1818,7 +1822,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1818
1822
|
description: "Returns a trendline's fitted coefficients (in x for category charts, x = 1, 2, 3, \u2026), R\xB2, equation and the number of points, or the moving-average points.",
|
|
1819
1823
|
inputSchema: {
|
|
1820
1824
|
type: "object",
|
|
1821
|
-
properties: { series:
|
|
1825
|
+
properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
|
|
1822
1826
|
required: ["series", "index"],
|
|
1823
1827
|
additionalProperties: false
|
|
1824
1828
|
},
|
|
@@ -1839,7 +1843,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1839
1843
|
description: "Returns what a viewer sees when hovering a category (or one series in it): the category label and, for each visible series with a value there, its name, colour, value, share (percent-stacked and pie charts, 0\u20131) and the value as the chart writes it. Returns null for charts without one value per category (histogram, box, treemap, sunburst, sankey, \u2026) or when no visible series has a value there.",
|
|
1840
1844
|
inputSchema: {
|
|
1841
1845
|
type: "object",
|
|
1842
|
-
properties: { category:
|
|
1846
|
+
properties: { category: _chunkSOSBOS5Tcjs.CATEGORY_REF, series: { ..._chunkSOSBOS5Tcjs.SERIES_REF, description: `${_chunkSOSBOS5Tcjs.SERIES_REF.description} Omit to include every visible series in the category.` } },
|
|
1843
1847
|
required: ["category"],
|
|
1844
1848
|
additionalProperties: false
|
|
1845
1849
|
},
|
|
@@ -1855,7 +1859,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1855
1859
|
name: "get_chart_race_ranking",
|
|
1856
1860
|
title: "Read a bar race ranking",
|
|
1857
1861
|
description: "Returns who leads a bar race at a moment without changing what is shown: the top raceTopN names with their rank, series id and value (eased between time points). Defaults to the moment shown. Works for any chart, reading categories as time points and series as names.",
|
|
1858
|
-
inputSchema: { type: "object", properties: { time:
|
|
1862
|
+
inputSchema: { type: "object", properties: { time: _chunkSOSBOS5Tcjs.RACE_TIME }, additionalProperties: false },
|
|
1859
1863
|
annotations: { title: "Read a bar race ranking", ...READ },
|
|
1860
1864
|
handler: ({ time }) => raceAt(time !== void 0 ? raceFrameOf(time) : controller.getState().raceFrame)
|
|
1861
1865
|
};
|
|
@@ -1867,10 +1871,10 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1867
1871
|
annotations: { title: "List map regions", ...READ },
|
|
1868
1872
|
handler: ({ map }) => {
|
|
1869
1873
|
const id = _nullishCoalesce(map, () => ( spec().map));
|
|
1870
|
-
const maps =
|
|
1871
|
-
const geometry =
|
|
1874
|
+
const maps = _chunkN76AMOKEcjs.listChartMaps.call(void 0, ).map((m) => ({ id: m.id, name: m.name, regions: m.regions.length }));
|
|
1875
|
+
const geometry = _chunkN76AMOKEcjs.getChartMap.call(void 0, id);
|
|
1872
1876
|
if (!geometry) fail2(maps.length ? `There is no map "${id}"; the host has ${maps.map((m) => `"${m.id}"`).join(", ")}.` : `There is no map "${id}": the host has not registered any maps (EUROPE_CHART_MAP in @pixerate/editor/chart-maps).`);
|
|
1873
|
-
const matches =
|
|
1877
|
+
const matches = _chunkN76AMOKEcjs.matchChartMapRegions.call(void 0, geometry, spec().categories);
|
|
1874
1878
|
return {
|
|
1875
1879
|
maps,
|
|
1876
1880
|
map: id,
|
|
@@ -1887,8 +1891,8 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1887
1891
|
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
1888
1892
|
annotations: { title: "List chart presets", ...READ },
|
|
1889
1893
|
handler: () => ({
|
|
1890
|
-
layouts:
|
|
1891
|
-
colorSchemes:
|
|
1894
|
+
layouts: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map(({ id, label, description }) => ({ id, label, description })),
|
|
1895
|
+
colorSchemes: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map(({ id, label, description, palette }) => ({ id, label, description, palette }))
|
|
1892
1896
|
})
|
|
1893
1897
|
};
|
|
1894
1898
|
const exportMermaid = {
|
|
@@ -1897,7 +1901,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1897
1901
|
description: 'Returns the chart as Mermaid text for Markdown or chat: xychart-beta, pie or radar-beta, sankey-beta for Sankey diagrams with flows, treemap-beta for treemaps and sunbursts (with their levels). With meta (default true) one "%% @pixerate {\u2026}" comment keeps what Mermaid cannot express, so import_chart_mermaid gets the chart back exactly.',
|
|
1898
1902
|
inputSchema: { type: "object", properties: { meta: { type: "boolean", description: "Include the round-trip comment (default true)." } }, additionalProperties: false },
|
|
1899
1903
|
annotations: { title: "Export chart as Mermaid", ...READ },
|
|
1900
|
-
handler: ({ meta = true }) => ({ mermaid:
|
|
1904
|
+
handler: ({ meta = true }) => ({ mermaid: _chunk5DQPDXOMcjs.chartToMermaid.call(void 0, controller.toJSON(), { meta }) })
|
|
1901
1905
|
};
|
|
1902
1906
|
const exportOoxml = {
|
|
1903
1907
|
name: "export_chart_ooxml",
|
|
@@ -1905,7 +1909,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1905
1909
|
description: "Returns the chart as a DrawingML chart part (c:chartSpace) for Word or PowerPoint files, with what could not be written as sentences.",
|
|
1906
1910
|
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
1907
1911
|
annotations: { title: "Export chart as Office XML", ...READ },
|
|
1908
|
-
handler: () =>
|
|
1912
|
+
handler: () => _chunkHUAISCUXcjs.chartToOoxml.call(void 0, controller.toJSON())
|
|
1909
1913
|
};
|
|
1910
1914
|
const updateChart = {
|
|
1911
1915
|
name: "update_chart",
|
|
@@ -1913,7 +1917,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1913
1917
|
description: 'Changes how the chart looks, as one undo step: type, titles, axes (xAxis = categories or numeric x, yAxis = values, yAxis2 = secondary values; each can be reversed, and value axes can be logarithmic with scale "log"), legend, stacking, orientation, curve, points, data labels and their position, palette, donut hole, bar spacing, histogram bins, waterfall total, radar rings (radarTicks) and grid shape (radarGraticule), note, highlight, reference lines and bands (whole lists), and varyColors. All-or-nothing: invalid values change nothing and come back as sentences. Returns the new spec.',
|
|
1914
1918
|
inputSchema: {
|
|
1915
1919
|
type: "object",
|
|
1916
|
-
properties:
|
|
1920
|
+
properties: _chunkSOSBOS5Tcjs.CHART_UPDATE_PROPERTIES,
|
|
1917
1921
|
additionalProperties: false
|
|
1918
1922
|
},
|
|
1919
1923
|
annotations: { title: "Change chart presentation", ...WRITE_IDEMPOTENT },
|
|
@@ -1934,7 +1938,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1934
1938
|
series: {
|
|
1935
1939
|
type: "array",
|
|
1936
1940
|
description: "The new series (replaces all).",
|
|
1937
|
-
items: { type: "object", properties: { id: { type: "string", description: "Stable id (optional)." }, ...
|
|
1941
|
+
items: { type: "object", properties: { id: { type: "string", description: "Stable id (optional)." }, ..._chunkSOSBOS5Tcjs.SERIES_PROPS }, required: ["name", "values"], additionalProperties: false }
|
|
1938
1942
|
}
|
|
1939
1943
|
},
|
|
1940
1944
|
additionalProperties: false
|
|
@@ -1957,7 +1961,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1957
1961
|
type: "array",
|
|
1958
1962
|
minItems: 1,
|
|
1959
1963
|
description: "Values to set.",
|
|
1960
|
-
items: { type: "object", properties: { series:
|
|
1964
|
+
items: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, value: _chunkSOSBOS5Tcjs.VALUE }, required: ["series", "category", "value"], additionalProperties: false }
|
|
1961
1965
|
}
|
|
1962
1966
|
},
|
|
1963
1967
|
required: ["cells"],
|
|
@@ -1966,7 +1970,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1966
1970
|
annotations: { title: "Set chart values", ...WRITE_IDEMPOTENT },
|
|
1967
1971
|
handler: async ({ cells }) => {
|
|
1968
1972
|
const resolved = cells.map((c) => ({ seriesId: seriesById(c.series).id, index: categoryIndex(c.category), value: c.value }));
|
|
1969
|
-
const parsed = resolved.map((c) =>
|
|
1973
|
+
const parsed = resolved.map((c) => _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, c.value));
|
|
1970
1974
|
const bad = resolved.find((_, i) => parsed[i] === void 0);
|
|
1971
1975
|
if (bad) fail2(`"${String(bad.value)}" is not a number; pass a number, numeric text or null for a gap. Nothing was changed.`);
|
|
1972
1976
|
if (options.director && parsed.every((v) => typeof v === "number")) {
|
|
@@ -1983,7 +1987,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
1983
1987
|
description: "Adds a series (values padded to the categories) and selects it. Returns its id and stored values.",
|
|
1984
1988
|
inputSchema: {
|
|
1985
1989
|
type: "object",
|
|
1986
|
-
properties: { ...
|
|
1990
|
+
properties: { ..._chunkSOSBOS5Tcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default: series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } },
|
|
1987
1991
|
required: ["name"],
|
|
1988
1992
|
additionalProperties: false
|
|
1989
1993
|
},
|
|
@@ -2001,7 +2005,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2001
2005
|
description: "Renames, recolours, hides, moves to the secondary axis or changes how a series is drawn (marker, curve, labels, format, x values, bubble sizes, point colours, error bars). null resets a field. Values change with set_chart_values. Returns the series.",
|
|
2002
2006
|
inputSchema: {
|
|
2003
2007
|
type: "object",
|
|
2004
|
-
properties: { series:
|
|
2008
|
+
properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkSOSBOS5Tcjs.SERIES_PROPS).filter(([k]) => k !== "values")) },
|
|
2005
2009
|
required: ["series"],
|
|
2006
2010
|
additionalProperties: false
|
|
2007
2011
|
},
|
|
@@ -2017,7 +2021,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2017
2021
|
name: "remove_chart_series",
|
|
2018
2022
|
title: "Delete a series",
|
|
2019
2023
|
description: "Deletes a series and its values. Returns the remaining series ids.",
|
|
2020
|
-
inputSchema: { type: "object", properties: { series:
|
|
2024
|
+
inputSchema: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF }, required: ["series"], additionalProperties: false },
|
|
2021
2025
|
annotations: { title: "Delete a series", ...DESTRUCTIVE },
|
|
2022
2026
|
handler: ({ series }) => {
|
|
2023
2027
|
resolve(controller.removeSeries(seriesById(series).id));
|
|
@@ -2043,7 +2047,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2043
2047
|
name: "remove_chart_category",
|
|
2044
2048
|
title: "Delete a category",
|
|
2045
2049
|
description: "Deletes a category and its value in every series. Returns the remaining categories.",
|
|
2046
|
-
inputSchema: { type: "object", properties: { category:
|
|
2050
|
+
inputSchema: { type: "object", properties: { category: _chunkSOSBOS5Tcjs.CATEGORY_REF }, required: ["category"], additionalProperties: false },
|
|
2047
2051
|
annotations: { title: "Delete a category", ...DESTRUCTIVE },
|
|
2048
2052
|
handler: ({ category }) => {
|
|
2049
2053
|
resolve(controller.removeCategory(categoryIndex(category)));
|
|
@@ -2086,7 +2090,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2086
2090
|
annotations: { title: "Import a Mermaid chart", ...DESTRUCTIVE },
|
|
2087
2091
|
handler: ({ mermaid }) => {
|
|
2088
2092
|
const fenced = /```(?:mermaid)?\s*\n([\s\S]*?)```/.exec(mermaid);
|
|
2089
|
-
const read =
|
|
2093
|
+
const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, fenced ? fenced[1] : mermaid);
|
|
2090
2094
|
if (!read.family) fail2(read.issues.map((i) => i.message).join(" ") || "Expected Mermaid starting with xychart-beta, pie, radar-beta, sankey-beta or treemap-beta.");
|
|
2091
2095
|
resolve(controller.update({ ...read.spec }, { label: "Import Mermaid chart" }));
|
|
2092
2096
|
return { spec: controller.toJSON(), issues: read.issues };
|
|
@@ -2099,7 +2103,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2099
2103
|
inputSchema: { type: "object", properties: { xml: { type: "string", description: "The chart part XML, e.g. word/charts/chart1.xml." } }, required: ["xml"], additionalProperties: false },
|
|
2100
2104
|
annotations: { title: "Import an Office chart", ...DESTRUCTIVE },
|
|
2101
2105
|
handler: ({ xml }) => {
|
|
2102
|
-
const read =
|
|
2106
|
+
const read = _chunkHUAISCUXcjs.chartFromOoxml.call(void 0, xml, { DOMParser: Parser() });
|
|
2103
2107
|
if (read.issues.some((i) => i.path === "" || i.path === "plotArea")) fail2(read.issues.map((i) => i.message).join(" "));
|
|
2104
2108
|
resolve(controller.update({ ...read.spec }, { label: "Import Office chart" }));
|
|
2105
2109
|
return { spec: controller.toJSON(), issues: read.issues.map((i) => i.message), unsupported: read.unsupported, lossless: read.lossless };
|
|
@@ -2109,7 +2113,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2109
2113
|
name: "add_chart_trendline",
|
|
2110
2114
|
title: "Add a trendline",
|
|
2111
2115
|
description: "Fits a trendline to a series and draws it (unstacked bar, line, area, scatter and bubble charts). Returns its index and the fit: coefficients, R\xB2 and equation.",
|
|
2112
|
-
inputSchema: { type: "object", properties: { series:
|
|
2116
|
+
inputSchema: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, ..._chunkSOSBOS5Tcjs.TRENDLINE_PROPS }, required: ["series", "type"], additionalProperties: false },
|
|
2113
2117
|
annotations: { title: "Add a trendline", ...WRITE },
|
|
2114
2118
|
handler: ({ series, ...line }) => {
|
|
2115
2119
|
const s = seriesById(series);
|
|
@@ -2123,7 +2127,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2123
2127
|
description: "Deletes a trendline from a series. Returns the series' remaining trendlines.",
|
|
2124
2128
|
inputSchema: {
|
|
2125
2129
|
type: "object",
|
|
2126
|
-
properties: { series:
|
|
2130
|
+
properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
|
|
2127
2131
|
required: ["series", "index"],
|
|
2128
2132
|
additionalProperties: false
|
|
2129
2133
|
},
|
|
@@ -2142,7 +2146,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2142
2146
|
name: `add_chart_reference_${what}`,
|
|
2143
2147
|
title: `Add a reference ${what}`,
|
|
2144
2148
|
description: what === "line" ? "Draws a dashed line across the plot at one value: a target, a floor, an average (bar, line, area, scatter and bubble charts). The axis grows to keep it in view. Returns its index and the reference lines." : "Shades a band across the plot between two values: a target or normal range (bar, line, area, scatter and bubble charts), drawn under the data. The axis grows to keep it in view. Returns its index and the reference bands.",
|
|
2145
|
-
inputSchema: { type: "object", properties: what === "line" ?
|
|
2149
|
+
inputSchema: { type: "object", properties: what === "line" ? _chunkSOSBOS5Tcjs.REFERENCE_LINE_PROPS : _chunkSOSBOS5Tcjs.REFERENCE_BAND_PROPS, required: what === "line" ? ["value"] : ["from", "to"], additionalProperties: false },
|
|
2146
2150
|
annotations: { title: `Add a reference ${what}`, ...WRITE },
|
|
2147
2151
|
handler: (args) => {
|
|
2148
2152
|
const result = resolve(what === "line" ? controller.addReferenceLine(args) : controller.addReferenceBand(args));
|
|
@@ -2153,7 +2157,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2153
2157
|
name: `update_chart_reference_${what}`,
|
|
2154
2158
|
title: `Change a reference ${what}`,
|
|
2155
2159
|
description: `Changes a reference ${what} by index (all-or-nothing); label, axis and color take null to remove them. Returns the ${what} as stored.`,
|
|
2156
|
-
inputSchema: { type: "object", properties: { index:
|
|
2160
|
+
inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, Kind), ...what === "line" ? _chunkSOSBOS5Tcjs.REFERENCE_LINE_PATCH : _chunkSOSBOS5Tcjs.REFERENCE_BAND_PATCH }, required: ["index"], additionalProperties: false },
|
|
2157
2161
|
annotations: { title: `Change a reference ${what}`, ...WRITE_IDEMPOTENT },
|
|
2158
2162
|
handler: ({ index, ...patch }) => {
|
|
2159
2163
|
if (!Object.keys(patch).length) fail2(`Nothing to change: pass at least one field besides index, e.g. {"index": ${index}, "label": "Target"}.`);
|
|
@@ -2165,7 +2169,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2165
2169
|
name: `remove_chart_reference_${what}`,
|
|
2166
2170
|
title: `Delete a reference ${what}`,
|
|
2167
2171
|
description: `Deletes a reference ${what} by index; the ones after it move up one. Returns the reference ${what}s left.`,
|
|
2168
|
-
inputSchema: { type: "object", properties: { index:
|
|
2172
|
+
inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, Kind) }, required: ["index"], additionalProperties: false },
|
|
2169
2173
|
annotations: { title: `Delete a reference ${what}`, ...DESTRUCTIVE },
|
|
2170
2174
|
handler: ({ index }) => {
|
|
2171
2175
|
resolve(what === "line" ? controller.removeReferenceLine(index) : controller.removeReferenceBand(index));
|
|
@@ -2182,7 +2186,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2182
2186
|
description: 'Pins a short label to one bar or point, with a leader line, to say why it matters ("Record quarter", "Launch"); label null or "" removes it. Bar, line, area, scatter and bubble charts; the point must have a value. Selects the point and returns the series id, category index and label.',
|
|
2183
2187
|
inputSchema: {
|
|
2184
2188
|
type: "object",
|
|
2185
|
-
properties: { series:
|
|
2189
|
+
properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (keep it to a few words), or null to remove it." } },
|
|
2186
2190
|
required: ["series", "category", "label"],
|
|
2187
2191
|
additionalProperties: false
|
|
2188
2192
|
},
|
|
@@ -2215,7 +2219,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2215
2219
|
name: "set_chart_tree",
|
|
2216
2220
|
title: "Replace grouped data",
|
|
2217
2221
|
description: `Replaces the chart's data with groups of items (a tree) for treemaps and sunbursts, as one undo step: items {"name", "value"} and groups {"name", "children"}, up to 6 levels, names unique among siblings. The top-level groups become the categories and their totals the first series, so other chart types draw the totals. [] goes back to plain data (the totals stay as values). Returns the tree, each group's total and the depth.`,
|
|
2218
|
-
inputSchema: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs:
|
|
2222
|
+
inputSchema: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkSOSBOS5Tcjs.TREE_DEFS },
|
|
2219
2223
|
annotations: { title: "Replace grouped data", ...WRITE_IDEMPOTENT },
|
|
2220
2224
|
handler: ({ tree }) => {
|
|
2221
2225
|
resolve(controller.setTree(tree));
|
|
@@ -2254,13 +2258,13 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2254
2258
|
},
|
|
2255
2259
|
required: ["node"],
|
|
2256
2260
|
additionalProperties: false,
|
|
2257
|
-
$defs:
|
|
2261
|
+
$defs: _chunkSOSBOS5Tcjs.TREE_DEFS
|
|
2258
2262
|
},
|
|
2259
2263
|
annotations: { title: "Add an item or group", ...WRITE },
|
|
2260
2264
|
handler: ({ parent = [], node, at }) => {
|
|
2261
2265
|
const result = resolve(controller.addTreeNode(parent, node, { at }));
|
|
2262
|
-
const group = parent.length ?
|
|
2263
|
-
return { path: result.path, parentTotal: group ?
|
|
2266
|
+
const group = parent.length ? _chunkWRZ6C4TUcjs.findChartTreeNode.call(void 0, spec().tree, parent) : null;
|
|
2267
|
+
return { path: result.path, parentTotal: group ? _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, group) : spec().tree.reduce((t, n) => t + _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n), 0) };
|
|
2264
2268
|
}
|
|
2265
2269
|
};
|
|
2266
2270
|
const updateTreeNode = {
|
|
@@ -2270,7 +2274,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2270
2274
|
inputSchema: {
|
|
2271
2275
|
type: "object",
|
|
2272
2276
|
properties: {
|
|
2273
|
-
path:
|
|
2277
|
+
path: _chunkSOSBOS5Tcjs.TREE_PATH,
|
|
2274
2278
|
name: { type: "string", description: "New name (unique among its siblings)." },
|
|
2275
2279
|
value: { type: "number", minimum: 0, description: "Items only: the new amount." },
|
|
2276
2280
|
color: { type: ["string", "null"], description: "CSS colour, or null for the palette colour." }
|
|
@@ -2282,14 +2286,14 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2282
2286
|
handler: ({ path, ...patch }) => {
|
|
2283
2287
|
if (!Object.keys(patch).length) fail2("Nothing to change: pass name, value or color with the path.");
|
|
2284
2288
|
const result = resolve(controller.updateTreeNode(path, patch));
|
|
2285
|
-
return { path: result.path, node:
|
|
2289
|
+
return { path: result.path, node: _chunkWRZ6C4TUcjs.findChartTreeNode.call(void 0, spec().tree, result.path) };
|
|
2286
2290
|
}
|
|
2287
2291
|
};
|
|
2288
2292
|
const removeTreeNode = {
|
|
2289
2293
|
name: "remove_chart_tree_node",
|
|
2290
2294
|
title: "Delete an item or group",
|
|
2291
2295
|
description: "Deletes a node of the grouped data with everything under it (a group left empty becomes an item with value 0). Returns the group totals left.",
|
|
2292
|
-
inputSchema: { type: "object", properties: { path:
|
|
2296
|
+
inputSchema: { type: "object", properties: { path: _chunkSOSBOS5Tcjs.TREE_PATH }, required: ["path"], additionalProperties: false },
|
|
2293
2297
|
annotations: { title: "Delete an item or group", ...DESTRUCTIVE },
|
|
2294
2298
|
handler: ({ path }) => {
|
|
2295
2299
|
resolve(controller.removeTreeNode(path));
|
|
@@ -2303,7 +2307,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2303
2307
|
inputSchema: {
|
|
2304
2308
|
type: "object",
|
|
2305
2309
|
properties: {
|
|
2306
|
-
links: { type: "array", items: { type: "object", properties:
|
|
2310
|
+
links: { type: "array", items: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
|
|
2307
2311
|
nodes: { type: "array", items: { type: "string" }, description: "Node names in stacking order (default: as the flows first name them)." }
|
|
2308
2312
|
},
|
|
2309
2313
|
required: ["links"],
|
|
@@ -2338,7 +2342,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2338
2342
|
name: "add_chart_link",
|
|
2339
2343
|
title: "Add a flow",
|
|
2340
2344
|
description: "Adds a flow from one node to another (new names add nodes). Refused when the pair exists already or it would close a loop. Returns its index and the throughput of its two nodes.",
|
|
2341
|
-
inputSchema: { type: "object", properties:
|
|
2345
|
+
inputSchema: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false },
|
|
2342
2346
|
annotations: { title: "Add a flow", ...WRITE },
|
|
2343
2347
|
handler: (args) => {
|
|
2344
2348
|
const result = resolve(controller.addLink(args));
|
|
@@ -2352,7 +2356,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2352
2356
|
name: "update_chart_link",
|
|
2353
2357
|
title: "Change a flow",
|
|
2354
2358
|
description: "Changes a flow by index: its source, target, value or colour (null goes back to the default). Checked like a new flow. Returns the flow as stored.",
|
|
2355
|
-
inputSchema: { type: "object", properties: { index:
|
|
2359
|
+
inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.LINK_INDEX, ..._chunkSOSBOS5Tcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, required: ["index"], additionalProperties: false },
|
|
2356
2360
|
annotations: { title: "Change a flow", ...WRITE_IDEMPOTENT },
|
|
2357
2361
|
handler: ({ index, ...patch }) => {
|
|
2358
2362
|
if (!Object.keys(patch).length) fail2(`Nothing to change: pass source, target, value or color with the index, e.g. {"index": ${index}, "value": 40}.`);
|
|
@@ -2364,7 +2368,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2364
2368
|
name: "remove_chart_link",
|
|
2365
2369
|
title: "Delete a flow",
|
|
2366
2370
|
description: "Deletes a flow by index; the ones after it move up one, and nodes no flow uses any more go. Returns the flows left.",
|
|
2367
|
-
inputSchema: { type: "object", properties: { index:
|
|
2371
|
+
inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.LINK_INDEX }, required: ["index"], additionalProperties: false },
|
|
2368
2372
|
annotations: { title: "Delete a flow", ...DESTRUCTIVE },
|
|
2369
2373
|
handler: ({ index }) => {
|
|
2370
2374
|
resolve(controller.removeLink(index));
|
|
@@ -2375,7 +2379,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2375
2379
|
name: "set_chart_race_frame",
|
|
2376
2380
|
title: "Show a bar race moment",
|
|
2377
2381
|
description: "Shows the bar race at a time point (or between two), and stops playback. This is view state like the selection: it is not an undo step and is not saved in the chart. Returns the moment and the ranking shown.",
|
|
2378
|
-
inputSchema: { type: "object", properties: { time: { ...
|
|
2382
|
+
inputSchema: { type: "object", properties: { time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkSOSBOS5Tcjs.RACE_TIME.description} null shows the last time point.` } }, required: ["time"], additionalProperties: false },
|
|
2379
2383
|
annotations: { title: "Show a bar race moment", ...WRITE_IDEMPOTENT },
|
|
2380
2384
|
handler: ({ time }) => {
|
|
2381
2385
|
const frame = time === null ? null : raceFrameOf(time);
|
|
@@ -2402,8 +2406,8 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2402
2406
|
inputSchema: {
|
|
2403
2407
|
type: "object",
|
|
2404
2408
|
properties: {
|
|
2405
|
-
layout: { type: "string", enum:
|
|
2406
|
-
colors: { type: "string", enum:
|
|
2409
|
+
layout: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
|
|
2410
|
+
colors: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
|
|
2407
2411
|
},
|
|
2408
2412
|
additionalProperties: false
|
|
2409
2413
|
},
|
|
@@ -2432,8 +2436,8 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2432
2436
|
type: "object",
|
|
2433
2437
|
properties: {
|
|
2434
2438
|
kind: { type: "string", enum: ["none", "chart", "title", "subtitle", "legend", "axis", "series", "point", "category", "trendline"], description: "What to select." },
|
|
2435
|
-
series: { ...
|
|
2436
|
-
category: { ...
|
|
2439
|
+
series: { ..._chunkSOSBOS5Tcjs.SERIES_REF, description: "Series id or name (series, point, trendline)." },
|
|
2440
|
+
category: { ..._chunkSOSBOS5Tcjs.CATEGORY_REF, description: "Category index or label (point, category)." },
|
|
2437
2441
|
axis: { type: "string", enum: ["x", "y", "y2"], description: "Axis (axis)." },
|
|
2438
2442
|
index: { type: "integer", minimum: 0, description: "Trendline index (trendline)." }
|
|
2439
2443
|
},
|
|
@@ -2491,15 +2495,15 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2491
2495
|
to: { type: "object", description: "End, as fractions of the chart.", properties: { x: { type: "number", minimum: 0, maximum: 1, description: "Fraction of the width." }, y: { type: "number", minimum: 0, maximum: 1, description: "Fraction of the height." } }, required: ["x", "y"], additionalProperties: false },
|
|
2492
2496
|
fine: { type: "boolean", description: "Move a tenth as far (Alt)." },
|
|
2493
2497
|
lockAxis: { type: "boolean", description: "Scatter charts: change only the axis moved along most (Shift)." },
|
|
2494
|
-
width:
|
|
2495
|
-
height:
|
|
2498
|
+
width: _chunkSOSBOS5Tcjs.WIDTH,
|
|
2499
|
+
height: _chunkSOSBOS5Tcjs.HEIGHT
|
|
2496
2500
|
},
|
|
2497
2501
|
required: ["from", "to"],
|
|
2498
2502
|
additionalProperties: false
|
|
2499
2503
|
},
|
|
2500
2504
|
annotations: { title: "Drag a chart point", ...WRITE },
|
|
2501
2505
|
handler: ({ from, to, fine, lockAxis, width = size.width, height = size.height }) => {
|
|
2502
|
-
const scene =
|
|
2506
|
+
const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, controller.toJSON(), { width, height });
|
|
2503
2507
|
const start = { x: from.x * width, y: from.y * height };
|
|
2504
2508
|
const target = chartHitTest(scene, start);
|
|
2505
2509
|
if (_optionalChain([target, 'optionalAccess', _118 => _118.kind]) !== "point") fail2(`There is no bar or point at (${from.x}, ${from.y}); ${target ? `that is the ${target.kind}` : "that is outside the chart"}. Use render_chart to find marks.`);
|
|
@@ -2529,7 +2533,7 @@ function createChartToolProvider(controller, options = {}) {
|
|
|
2529
2533
|
},
|
|
2530
2534
|
annotations: { title: "Press a key on the chart", ...DESTRUCTIVE },
|
|
2531
2535
|
handler: ({ key: k, shift, alt }) => {
|
|
2532
|
-
const scene =
|
|
2536
|
+
const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, controller.toJSON(), size);
|
|
2533
2537
|
const used = handleChartKey(controller, scene, { key: k, shiftKey: shift, altKey: alt });
|
|
2534
2538
|
const sel = controller.getState().selection;
|
|
2535
2539
|
const value = _optionalChain([sel, 'optionalAccess', _123 => _123.kind]) === "point" ? _nullishCoalesce(_optionalChain([controller, 'access', _124 => _124.getSeries, 'call', _125 => _125(sel.seriesId), 'optionalAccess', _126 => _126.values, 'access', _127 => _127[sel.index]]), () => ( null)) : void 0;
|
|
@@ -2680,12 +2684,12 @@ var ChartStream = (_class = class {
|
|
|
2680
2684
|
if (format === "json") {
|
|
2681
2685
|
const value = complete ? safeParse(text) : parsePartialChartJson(text);
|
|
2682
2686
|
if (value !== void 0) {
|
|
2683
|
-
const read =
|
|
2687
|
+
const read = _chunkWRZ6C4TUcjs.normalizeChartSpec.call(void 0, value);
|
|
2684
2688
|
spec = read.spec;
|
|
2685
2689
|
issues = complete ? read.issues : [];
|
|
2686
2690
|
}
|
|
2687
2691
|
} else {
|
|
2688
|
-
const read =
|
|
2692
|
+
const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, text, { partial: !complete });
|
|
2689
2693
|
if (read.family) {
|
|
2690
2694
|
spec = read.spec;
|
|
2691
2695
|
issues = complete ? read.issues : [];
|
|
@@ -2806,7 +2810,7 @@ async function readRels(r, partPath) {
|
|
|
2806
2810
|
}
|
|
2807
2811
|
return rels;
|
|
2808
2812
|
}
|
|
2809
|
-
var isChartRef = (el) => el.localName === "chart" && (el.namespaceURI ===
|
|
2813
|
+
var isChartRef = (el) => el.localName === "chart" && (el.namespaceURI === _chunkHUAISCUXcjs.CHART_OOXML_NS || el.namespaceURI === STRICT_CHART_NS || el.namespaceURI === CHARTEX_NS);
|
|
2810
2814
|
function frameName(ref) {
|
|
2811
2815
|
for (let el = ref.parentElement; el; el = el.parentElement) {
|
|
2812
2816
|
if (el.localName === "graphicFrame") {
|
|
@@ -2825,7 +2829,7 @@ async function chartsInPart(r, root, rels, place) {
|
|
|
2825
2829
|
const entry = r.zip.get(rel.target);
|
|
2826
2830
|
if (!entry) continue;
|
|
2827
2831
|
r.seen.add(rel.target);
|
|
2828
|
-
const read =
|
|
2832
|
+
const read = _chunkHUAISCUXcjs.chartFromOoxml.call(void 0, await r.zip.readText(entry), { DOMParser: r.Parser });
|
|
2829
2833
|
const name = frameName(ref);
|
|
2830
2834
|
r.charts.push({
|
|
2831
2835
|
id: `chart-${r.charts.length + 1}`,
|
|
@@ -3096,16 +3100,16 @@ var COLOR = { type: "string", minLength: 1, description: 'A CSS colour (hex or r
|
|
|
3096
3100
|
function chartColors(spec) {
|
|
3097
3101
|
const out = [];
|
|
3098
3102
|
const visible = spec.series.map((s, i) => ({ s, i })).filter(({ s }) => !s.hidden);
|
|
3099
|
-
if (
|
|
3103
|
+
if (_chunkWRZ6C4TUcjs.chartColorsByCategory.call(void 0, spec.type)) {
|
|
3100
3104
|
const first = visible[0];
|
|
3101
3105
|
spec.categories.forEach((name, index) => {
|
|
3102
|
-
const color = _optionalChain([first, 'optionalAccess', _143 => _143.s, 'access', _144 => _144.pointColors, 'optionalAccess', _145 => _145[index]]) ||
|
|
3106
|
+
const color = _optionalChain([first, 'optionalAccess', _143 => _143.s, 'access', _144 => _144.pointColors, 'optionalAccess', _145 => _145[index]]) || _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, spec, index);
|
|
3103
3107
|
out.push({ color, label: `Slice "${name}"`, target: first ? { kind: "point", seriesId: first.s.id, index } : { kind: "category", index } });
|
|
3104
3108
|
});
|
|
3105
3109
|
return out;
|
|
3106
3110
|
}
|
|
3107
3111
|
for (const { s, i } of visible) {
|
|
3108
|
-
out.push({ color:
|
|
3112
|
+
out.push({ color: _chunkWRZ6C4TUcjs.chartSeriesColor.call(void 0, spec, i), label: `Series "${s.name}"`, target: { kind: "series", seriesId: s.id } });
|
|
3109
3113
|
_optionalChain([s, 'access', _146 => _146.pointColors, 'optionalAccess', _147 => _147.forEach, 'call', _148 => _148((c, index) => {
|
|
3110
3114
|
if (c) out.push({ color: c, label: `Point ${index + 1} of "${s.name}"`, target: { kind: "point", seriesId: s.id, index } });
|
|
3111
3115
|
})]);
|
|
@@ -3127,18 +3131,18 @@ var paletteOnly = {
|
|
|
3127
3131
|
},
|
|
3128
3132
|
run(spec, profile, { tolerance = 0.02 }) {
|
|
3129
3133
|
const palette = paletteOf(profile);
|
|
3130
|
-
const allowed = palette.flatMap((c) =>
|
|
3134
|
+
const allowed = palette.flatMap((c) => _chunkWRZ6C4TUcjs.CHART_PALETTE_SHADES.map((t) => _chunkWRZ6C4TUcjs.shadeChartColor.call(void 0, c, t))).map((c) => ({ c, rgb: _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, c) }));
|
|
3131
3135
|
return chartColors(spec).flatMap(({ color, label, target }) => {
|
|
3132
|
-
const rgb =
|
|
3136
|
+
const rgb = _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, color);
|
|
3133
3137
|
if (!rgb) return [];
|
|
3134
3138
|
let best = { c: palette[0], d: Infinity };
|
|
3135
3139
|
for (const a of allowed) {
|
|
3136
3140
|
if (!a.rgb) continue;
|
|
3137
|
-
const d =
|
|
3141
|
+
const d = _chunkWRZ6C4TUcjs.chartColorDistance.call(void 0, rgb, a.rgb);
|
|
3138
3142
|
if (d < best.d) best = { c: a.c, d };
|
|
3139
3143
|
}
|
|
3140
3144
|
if (best.d <= tolerance) return [];
|
|
3141
|
-
const nearest = palette.map((c) => ({ c, d:
|
|
3145
|
+
const nearest = palette.map((c) => ({ c, d: _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, c) ? _chunkWRZ6C4TUcjs.chartColorDistance.call(void 0, rgb, _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, c)) : Infinity })).sort((a, b) => a.d - b.d)[0].c;
|
|
3142
3146
|
return [{ severity: "error", message: `${label} uses ${color}, which is not in the house palette; use ${nearest} or another palette colour (${palette.join(", ")}).`, target }];
|
|
3143
3147
|
});
|
|
3144
3148
|
}
|
|
@@ -3152,8 +3156,8 @@ var distinguishable = {
|
|
|
3152
3156
|
additionalProperties: false
|
|
3153
3157
|
},
|
|
3154
3158
|
run(spec, _profile, { minDistance = 0.08 }) {
|
|
3155
|
-
const colors = chartColors(spec).filter((c) => c.target.kind !== "point" ||
|
|
3156
|
-
const result =
|
|
3159
|
+
const colors = chartColors(spec).filter((c) => c.target.kind !== "point" || _chunkWRZ6C4TUcjs.chartColorsByCategory.call(void 0, spec.type));
|
|
3160
|
+
const result = _chunkWRZ6C4TUcjs.checkChartColors.call(void 0, colors.map((c) => c.color), { minDistance, minContrast: 0 });
|
|
3157
3161
|
const findings = [];
|
|
3158
3162
|
for (const [vision, pair] of Object.entries(result.closest)) {
|
|
3159
3163
|
if (!pair || pair.distance >= minDistance) continue;
|
|
@@ -3179,7 +3183,7 @@ var minContrast = {
|
|
|
3179
3183
|
const theme = _nullishCoalesce(profile.theme, () => ( {}));
|
|
3180
3184
|
const background = theme.background && theme.background !== "transparent" ? theme.background : _nullishCoalesce(theme.surface, () => ( "#ffffff"));
|
|
3181
3185
|
return chartColors(spec).flatMap(({ color, label, target }) => {
|
|
3182
|
-
const r =
|
|
3186
|
+
const r = _chunkWRZ6C4TUcjs.chartContrastRatio.call(void 0, color, background);
|
|
3183
3187
|
if (r === null || r >= ratio) return [];
|
|
3184
3188
|
return [{ severity: "warning", message: `${label} (${color}) has contrast ${Math.round(r * 100) / 100}:1 against the background ${background}; want at least ${ratio}:1, so use a darker or lighter palette colour.`, target }];
|
|
3185
3189
|
});
|
|
@@ -3208,8 +3212,8 @@ var chartStyleDomain = {
|
|
|
3208
3212
|
type: "object",
|
|
3209
3213
|
properties: {
|
|
3210
3214
|
palette: { type: "array", items: COLOR, minItems: 1, description: "Series colours in order." },
|
|
3211
|
-
colorSchemes: { type: "array", items: { type: "string", enum:
|
|
3212
|
-
layouts: { type: "array", items: { type: "string", enum:
|
|
3215
|
+
colorSchemes: { type: "array", items: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map((s) => s.id) }, description: "Colour scheme ids allowed besides the palette (empty: none)." },
|
|
3216
|
+
layouts: { type: "array", items: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map((p) => p.id) }, description: "Layout preset ids allowed." },
|
|
3213
3217
|
theme: {
|
|
3214
3218
|
type: "object",
|
|
3215
3219
|
properties: {
|
|
@@ -3495,4 +3499,5 @@ function createChartStyleToolProvider(controller, styles, options = {}) {
|
|
|
3495
3499
|
|
|
3496
3500
|
|
|
3497
3501
|
|
|
3498
|
-
exports.CHART_AXIS_KINDS = _chunkOUO3DSRTcjs.CHART_AXIS_KINDS; exports.CHART_AXIS_SCALES = _chunkOUO3DSRTcjs.CHART_AXIS_SCALES; exports.CHART_COLOR_SCHEMES = _chunkGXEC4FS6cjs.CHART_COLOR_SCHEMES; exports.CHART_CURVES = _chunkOUO3DSRTcjs.CHART_CURVES; exports.CHART_DATE_STEPS = _chunkTUXKLM5Wcjs.CHART_DATE_STEPS; exports.CHART_ERROR_BAR_DIRECTIONS = _chunkOUO3DSRTcjs.CHART_ERROR_BAR_DIRECTIONS; exports.CHART_ERROR_BAR_LABELS = _chunkOUO3DSRTcjs.CHART_ERROR_BAR_LABELS; exports.CHART_ERROR_BAR_TYPES = _chunkOUO3DSRTcjs.CHART_ERROR_BAR_TYPES; exports.CHART_LABEL_POSITIONS = _chunkOUO3DSRTcjs.CHART_LABEL_POSITIONS; exports.CHART_LAYOUT_PRESETS = _chunkGXEC4FS6cjs.CHART_LAYOUT_PRESETS; exports.CHART_LEGEND_POSITIONS = _chunkOUO3DSRTcjs.CHART_LEGEND_POSITIONS; exports.CHART_LIKERT_NEUTRALS = _chunkOUO3DSRTcjs.CHART_LIKERT_NEUTRALS; exports.CHART_LIKERT_SORTS = _chunkOUO3DSRTcjs.CHART_LIKERT_SORTS; exports.CHART_MARKERS = _chunkOUO3DSRTcjs.CHART_MARKERS; exports.CHART_MERMAID_META_PREFIX = _chunkGXEC4FS6cjs.CHART_MERMAID_META_PREFIX; exports.CHART_NUMBER_STYLES = _chunkOUO3DSRTcjs.CHART_NUMBER_STYLES; exports.CHART_OOXML_CONTENT_TYPE = _chunkVKHJJUBKcjs.CHART_OOXML_CONTENT_TYPE; exports.CHART_OOXML_NS = _chunkVKHJJUBKcjs.CHART_OOXML_NS; exports.CHART_OOXML_RELATIONSHIP = _chunkVKHJJUBKcjs.CHART_OOXML_RELATIONSHIP; exports.CHART_ORIENTATIONS = _chunkOUO3DSRTcjs.CHART_ORIENTATIONS; exports.CHART_PALETTE_SHADES = _chunkOUO3DSRTcjs.CHART_PALETTE_SHADES; exports.CHART_PRESENCE_COLORS = CHART_PRESENCE_COLORS; exports.CHART_RADAR_GRATICULES = _chunkOUO3DSRTcjs.CHART_RADAR_GRATICULES; exports.CHART_RASTER_MAX_SIZE = CHART_RASTER_MAX_SIZE; exports.CHART_REFERENCE_AXES = _chunkOUO3DSRTcjs.CHART_REFERENCE_AXES; exports.CHART_SANKEY_LINK_COLORS = _chunkOUO3DSRTcjs.CHART_SANKEY_LINK_COLORS; exports.CHART_SERIES_TYPES = _chunkOUO3DSRTcjs.CHART_SERIES_TYPES; exports.CHART_STACKINGS = _chunkOUO3DSRTcjs.CHART_STACKINGS; exports.CHART_TRENDLINE_TYPES = _chunkOUO3DSRTcjs.CHART_TRENDLINE_TYPES; exports.CHART_TYPES = _chunkOUO3DSRTcjs.CHART_TYPES; exports.CHART_TYPE_LABELS = _chunkOUO3DSRTcjs.CHART_TYPE_LABELS; exports.CSS_VARIABLE_CHART_THEME = _chunkOUO3DSRTcjs.CSS_VARIABLE_CHART_THEME; exports.ChartController = _chunkGXEC4FS6cjs.ChartController; exports.ChartDirector = ChartDirector; exports.ChartPresence = ChartPresence; exports.ChartStream = ChartStream; exports.DEFAULT_CHART_PALETTE = _chunkOUO3DSRTcjs.DEFAULT_CHART_PALETTE; exports.DEFAULT_CHART_THEME = _chunkOUO3DSRTcjs.DEFAULT_CHART_THEME; exports.MAX_CHART_DATA_LABELS = _chunkTUXKLM5Wcjs.MAX_CHART_DATA_LABELS; exports.MAX_CHART_LINE_POINTS = _chunkTUXKLM5Wcjs.MAX_CHART_LINE_POINTS; exports.MAX_CHART_LINKS = _chunkOUO3DSRTcjs.MAX_CHART_LINKS; exports.MAX_CHART_MARKERS = _chunkTUXKLM5Wcjs.MAX_CHART_MARKERS; exports.MAX_CHART_TREE_DEPTH = _chunkOUO3DSRTcjs.MAX_CHART_TREE_DEPTH; exports.MAX_CHART_TREE_NODES = _chunkOUO3DSRTcjs.MAX_CHART_TREE_NODES; exports.OfficeChartsError = OfficeChartsError; exports.RENDER_CHART_INSTRUCTIONS = RENDER_CHART_INSTRUCTIONS; exports.addChartLink = _chunkOUO3DSRTcjs.addChartLink; exports.addChartTreeRow = _chunkOUO3DSRTcjs.addChartTreeRow; exports.analyzeChartTable = analyzeChartTable; exports.blendChartScenes = blendChartScenes; exports.canDragChartPoint = canDragChartPoint; exports.chartBoxStats = _chunkTUXKLM5Wcjs.chartBoxStats; exports.chartCategoryAtPoint = _chunkTUXKLM5Wcjs.chartCategoryAtPoint; exports.chartClientToScene = chartClientToScene; exports.chartColorDistance = _chunkOUO3DSRTcjs.chartColorDistance; exports.chartColorInputValue = _chunkOUO3DSRTcjs.chartColorInputValue; exports.chartColorsByCategory = _chunkOUO3DSRTcjs.chartColorsByCategory; exports.chartContrastRatio = _chunkOUO3DSRTcjs.chartContrastRatio; exports.chartDataFromTable = _chunkOUO3DSRTcjs.chartDataFromTable; exports.chartDataToTable = _chunkOUO3DSRTcjs.chartDataToTable; exports.chartDateLabels = _chunkTUXKLM5Wcjs.chartDateLabels; exports.chartDateToSerial = _chunkTUXKLM5Wcjs.chartDateToSerial; exports.chartErrorAmounts = _chunkOUO3DSRTcjs.chartErrorAmounts; exports.chartErrorBarsOfType = _chunkOUO3DSRTcjs.chartErrorBarsOfType; exports.chartFamily = _chunkOUO3DSRTcjs.chartFamily; exports.chartFileName = chartFileName; exports.chartFormatToCode = _chunkVKHJJUBKcjs.chartFormatToCode; exports.chartFromMermaid = _chunkGXEC4FS6cjs.chartFromMermaid; exports.chartFromOoxml = _chunkVKHJJUBKcjs.chartFromOoxml; exports.chartFromTable = chartFromTable; exports.chartHistogram = _chunkTUXKLM5Wcjs.chartHistogram; exports.chartHitTest = chartHitTest; exports.chartLikertColor = _chunkOUO3DSRTcjs.chartLikertColor; exports.chartLinksFromTable = _chunkOUO3DSRTcjs.chartLinksFromTable; exports.chartLuminance = _chunkOUO3DSRTcjs.chartLuminance; exports.chartMapBreaks = _chunkTUXKLM5Wcjs.chartMapBreaks; exports.chartMapClass = _chunkTUXKLM5Wcjs.chartMapClass; exports.chartMapRamp = _chunkTUXKLM5Wcjs.chartMapRamp; exports.chartMermaidFamily = _chunkGXEC4FS6cjs.chartMermaidFamily; exports.chartMovingAverage = _chunkTUXKLM5Wcjs.chartMovingAverage; exports.chartPointAnchor = chartPointAnchor; exports.chartPointColor = _chunkOUO3DSRTcjs.chartPointColor; exports.chartPointRef = chartPointRef; exports.chartPresetPatch = _chunkGXEC4FS6cjs.chartPresetPatch; exports.chartQuantile = _chunkTUXKLM5Wcjs.chartQuantile; exports.chartRaceMoment = _chunkTUXKLM5Wcjs.chartRaceMoment; exports.chartRaceRanking = _chunkTUXKLM5Wcjs.chartRaceRanking; exports.chartRaceValueAt = _chunkTUXKLM5Wcjs.chartRaceValueAt; exports.chartRasterSize = chartRasterSize; exports.chartRgbToHex = _chunkOUO3DSRTcjs.chartRgbToHex; exports.chartRgbToOklab = _chunkOUO3DSRTcjs.chartRgbToOklab; exports.chartSankeyNodeValues = _chunkOUO3DSRTcjs.chartSankeyNodeValues; exports.chartSankeyNodes = _chunkOUO3DSRTcjs.chartSankeyNodes; exports.chartScaleFromPixel = _chunkTUXKLM5Wcjs.chartScaleFromPixel; exports.chartScaleToPixel = _chunkTUXKLM5Wcjs.chartScaleToPixel; exports.chartSceneToDomSpec = _chunkGXEC4FS6cjs.chartSceneToDomSpec; exports.chartSceneToSvg = _chunkGXEC4FS6cjs.chartSceneToSvg; exports.chartSerialToDate = _chunkTUXKLM5Wcjs.chartSerialToDate; exports.chartSeriesColor = _chunkOUO3DSRTcjs.chartSeriesColor; exports.chartSeriesType = _chunkOUO3DSRTcjs.chartSeriesType; exports.chartSliceColor = _chunkOUO3DSRTcjs.chartSliceColor; exports.chartSpecColorsByCategory = _chunkOUO3DSRTcjs.chartSpecColorsByCategory; exports.chartSquarify = _chunkTUXKLM5Wcjs.chartSquarify; exports.chartStyleDomain = chartStyleDomain; exports.chartStylePatch = chartStylePatch; exports.chartSupportsTrendlines = _chunkTUXKLM5Wcjs.chartSupportsTrendlines; exports.chartTextBaseline = _chunkGXEC4FS6cjs.chartTextBaseline; exports.chartTextOn = _chunkOUO3DSRTcjs.chartTextOn; exports.chartTextTransform = _chunkGXEC4FS6cjs.chartTextTransform; exports.chartToMermaid = _chunkGXEC4FS6cjs.chartToMermaid; exports.chartToOoxml = _chunkVKHJJUBKcjs.chartToOoxml; exports.chartToSvg = _chunkGXEC4FS6cjs.chartToSvg; exports.chartTooltipAt = chartTooltipAt; exports.chartTooltipFor = chartTooltipFor; exports.chartTreeColumnLabels = _chunkOUO3DSRTcjs.chartTreeColumnLabels; exports.chartTreeDepth = _chunkOUO3DSRTcjs.chartTreeDepth; exports.chartTreeFromRows = _chunkOUO3DSRTcjs.chartTreeFromRows; exports.chartTreeFromSeries = _chunkOUO3DSRTcjs.chartTreeFromSeries; exports.chartTreeFromTable = _chunkOUO3DSRTcjs.chartTreeFromTable; exports.chartTreeToRows = _chunkOUO3DSRTcjs.chartTreeToRows; exports.chartTreeTotal = _chunkOUO3DSRTcjs.chartTreeTotal; exports.chartTrendlineName = _chunkTUXKLM5Wcjs.chartTrendlineName; exports.chartValueAtPoint = _chunkTUXKLM5Wcjs.chartValueAtPoint; exports.chartVariesColors = _chunkOUO3DSRTcjs.chartVariesColors; exports.chartXAtPoint = _chunkTUXKLM5Wcjs.chartXAtPoint; exports.checkChartColors = _chunkOUO3DSRTcjs.checkChartColors; exports.cloneChartSeries = _chunkOUO3DSRTcjs.cloneChartSeries; exports.cloneChartSpec = _chunkOUO3DSRTcjs.cloneChartSpec; exports.cloneChartTree = _chunkOUO3DSRTcjs.cloneChartTree; exports.compileChartFormatCode = _chunkTUXKLM5Wcjs.compileChartFormatCode; exports.contrastingTextColor = _chunkTUXKLM5Wcjs.contrastingTextColor; exports.createChartCommands = createChartCommands; exports.createChartController = _chunkGXEC4FS6cjs.createChartController; exports.createChartEditorDocument = createChartEditorDocument; exports.createChartRasterizer = createChartRasterizer; exports.createChartSpec = _chunkOUO3DSRTcjs.createChartSpec; exports.createChartStyleToolProvider = createChartStyleToolProvider; exports.createChartToolProvider = createChartToolProvider; exports.createInstantChartClock = createInstantChartClock; exports.createOfficeChartToolProvider = createOfficeChartToolProvider; exports.cyclePaletteColor = _chunkOUO3DSRTcjs.cyclePaletteColor; exports.decimateChartPoints = _chunkTUXKLM5Wcjs.decimateChartPoints; exports.defaultChartAxis = _chunkOUO3DSRTcjs.defaultChartAxis; exports.defaultChartErrorBarValue = _chunkOUO3DSRTcjs.defaultChartErrorBarValue; exports.describeChart = _chunkGXEC4FS6cjs.describeChart; exports.describeChartErrorBars = _chunkOUO3DSRTcjs.describeChartErrorBars; exports.describeChartSelection = describeChartSelection; exports.describeOfficeChartPlace = describeOfficeChartPlace; exports.downloadChartPng = downloadChartPng; exports.easeChartTween = easeChartTween; exports.estimateChartTextWidth = _chunkTUXKLM5Wcjs.estimateChartTextWidth; exports.extractDocxCharts = extractDocxCharts; exports.extractOfficeCharts = extractOfficeCharts; exports.extractPptxCharts = extractPptxCharts; exports.extractXlsxCharts = extractXlsxCharts; exports.findChartTreeNode = _chunkOUO3DSRTcjs.findChartTreeNode; exports.findMermaidCharts = _chunkGXEC4FS6cjs.findMermaidCharts; exports.fitChartTrendline = _chunkTUXKLM5Wcjs.fitChartTrendline; exports.formatChartAmountList = _chunkOUO3DSRTcjs.formatChartAmountList; exports.formatChartDate = _chunkTUXKLM5Wcjs.formatChartDate; exports.formatChartNumber = _chunkTUXKLM5Wcjs.formatChartNumber; exports.formatChartValueWithCode = _chunkTUXKLM5Wcjs.formatChartValueWithCode; exports.getChartMap = _chunkTUXKLM5Wcjs.getChartMap; exports.handleChartKey = handleChartKey; exports.isCartesianChart = _chunkOUO3DSRTcjs.isCartesianChart; exports.isXyChart = _chunkOUO3DSRTcjs.isXyChart; exports.layoutChart = _chunkTUXKLM5Wcjs.layoutChart; exports.layoutSparkline = _chunkGXEC4FS6cjs.layoutSparkline; exports.linearMap = _chunkTUXKLM5Wcjs.linearMap; exports.listChartMaps = _chunkTUXKLM5Wcjs.listChartMaps; exports.locateChartPoint = locateChartPoint; exports.matchChartMapRegions = _chunkTUXKLM5Wcjs.matchChartMapRegions; exports.monochromeChartPalette = _chunkGXEC4FS6cjs.monochromeChartPalette; exports.niceLogScale = _chunkTUXKLM5Wcjs.niceLogScale; exports.niceScale = _chunkTUXKLM5Wcjs.niceScale; exports.niceStep = _chunkTUXKLM5Wcjs.niceStep; exports.normalizeChartAxis = _chunkOUO3DSRTcjs.normalizeChartAxis; exports.normalizeChartErrorBars = _chunkOUO3DSRTcjs.normalizeChartErrorBars; exports.normalizeChartLinks = _chunkOUO3DSRTcjs.normalizeChartLinks; exports.normalizeChartReferenceBand = _chunkOUO3DSRTcjs.normalizeChartReferenceBand; exports.normalizeChartReferenceLine = _chunkOUO3DSRTcjs.normalizeChartReferenceLine; exports.normalizeChartSpec = _chunkOUO3DSRTcjs.normalizeChartSpec; exports.normalizeChartTree = _chunkOUO3DSRTcjs.normalizeChartTree; exports.normalizeChartTrendline = _chunkOUO3DSRTcjs.normalizeChartTrendline; exports.normalizeChartValues = _chunkOUO3DSRTcjs.normalizeChartValues; exports.parseChartAmountList = _chunkOUO3DSRTcjs.parseChartAmountList; exports.parseChartColor = _chunkOUO3DSRTcjs.parseChartColor; exports.parseChartDate = _chunkTUXKLM5Wcjs.parseChartDate; exports.parseChartValue = _chunkOUO3DSRTcjs.parseChartValue; exports.parsePartialChartJson = parsePartialChartJson; exports.planChartCommand = planChartCommand; exports.planChartToolPlayback = planChartToolPlayback; exports.rasterizeChartSvg = rasterizeChartSvg; exports.realChartClock = realChartClock; exports.recommendChartTypes = recommendChartTypes; exports.recommendForShape = recommendForShape; exports.registerChartMap = _chunkTUXKLM5Wcjs.registerChartMap; exports.removeChartTreeRow = _chunkOUO3DSRTcjs.removeChartTreeRow; exports.resolveChartSvgPaints = resolveChartSvgPaints; exports.sameChartSelection = _chunkTUXKLM5Wcjs.sameChartSelection; exports.sameChartTooltip = sameChartTooltip; exports.setChartLinkField = _chunkOUO3DSRTcjs.setChartLinkField; exports.setChartTreeRowName = _chunkOUO3DSRTcjs.setChartTreeRowName; exports.setChartTreeRowValue = _chunkOUO3DSRTcjs.setChartTreeRowValue; exports.shadeChartColor = _chunkOUO3DSRTcjs.shadeChartColor; exports.simulateChartVision = _chunkOUO3DSRTcjs.simulateChartVision; exports.snapChartDragValue = snapChartDragValue; exports.snapChartValue = _chunkTUXKLM5Wcjs.snapChartValue; exports.sparklineToSvg = _chunkGXEC4FS6cjs.sparklineToSvg; exports.startChartPointDrag = startChartPointDrag; exports.stepDecimals = _chunkTUXKLM5Wcjs.stepDecimals; exports.suggestChartReferences = _chunkTUXKLM5Wcjs.suggestChartReferences; exports.summarizeChart = _chunkGXEC4FS6cjs.summarizeChart; exports.summarizeChartSeries = _chunkTUXKLM5Wcjs.summarizeChartSeries; exports.trendNumberText = _chunkTUXKLM5Wcjs.trendNumberText; exports.uniqueChartSeriesId = _chunkOUO3DSRTcjs.uniqueChartSeriesId; exports.withChartPlayback = withChartPlayback;
|
|
3502
|
+
|
|
3503
|
+
exports.CHART_AXIS_KINDS = _chunkWRZ6C4TUcjs.CHART_AXIS_KINDS; exports.CHART_AXIS_SCALES = _chunkWRZ6C4TUcjs.CHART_AXIS_SCALES; exports.CHART_COLOR_SCHEMES = _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES; exports.CHART_CURVES = _chunkWRZ6C4TUcjs.CHART_CURVES; exports.CHART_DATE_STEPS = _chunkN76AMOKEcjs.CHART_DATE_STEPS; exports.CHART_ERROR_BAR_DIRECTIONS = _chunkWRZ6C4TUcjs.CHART_ERROR_BAR_DIRECTIONS; exports.CHART_ERROR_BAR_LABELS = _chunkWRZ6C4TUcjs.CHART_ERROR_BAR_LABELS; exports.CHART_ERROR_BAR_TYPES = _chunkWRZ6C4TUcjs.CHART_ERROR_BAR_TYPES; exports.CHART_LABEL_POSITIONS = _chunkWRZ6C4TUcjs.CHART_LABEL_POSITIONS; exports.CHART_LAYOUT_PRESETS = _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS; exports.CHART_LEGEND_POSITIONS = _chunkWRZ6C4TUcjs.CHART_LEGEND_POSITIONS; exports.CHART_LIKERT_NEUTRALS = _chunkWRZ6C4TUcjs.CHART_LIKERT_NEUTRALS; exports.CHART_LIKERT_SORTS = _chunkWRZ6C4TUcjs.CHART_LIKERT_SORTS; exports.CHART_MARKERS = _chunkWRZ6C4TUcjs.CHART_MARKERS; exports.CHART_MERMAID_META_PREFIX = _chunk5DQPDXOMcjs.CHART_MERMAID_META_PREFIX; exports.CHART_NUMBER_STYLES = _chunkWRZ6C4TUcjs.CHART_NUMBER_STYLES; exports.CHART_OOXML_CONTENT_TYPE = _chunkHUAISCUXcjs.CHART_OOXML_CONTENT_TYPE; exports.CHART_OOXML_NS = _chunkHUAISCUXcjs.CHART_OOXML_NS; exports.CHART_OOXML_RELATIONSHIP = _chunkHUAISCUXcjs.CHART_OOXML_RELATIONSHIP; exports.CHART_ORIENTATIONS = _chunkWRZ6C4TUcjs.CHART_ORIENTATIONS; exports.CHART_PALETTE_SHADES = _chunkWRZ6C4TUcjs.CHART_PALETTE_SHADES; exports.CHART_PRESENCE_COLORS = CHART_PRESENCE_COLORS; exports.CHART_RADAR_GRATICULES = _chunkWRZ6C4TUcjs.CHART_RADAR_GRATICULES; exports.CHART_RASTER_MAX_SIZE = CHART_RASTER_MAX_SIZE; exports.CHART_REFERENCE_AXES = _chunkWRZ6C4TUcjs.CHART_REFERENCE_AXES; exports.CHART_SANKEY_LINK_COLORS = _chunkWRZ6C4TUcjs.CHART_SANKEY_LINK_COLORS; exports.CHART_SERIES_TYPES = _chunkWRZ6C4TUcjs.CHART_SERIES_TYPES; exports.CHART_STACKINGS = _chunkWRZ6C4TUcjs.CHART_STACKINGS; exports.CHART_TRENDLINE_TYPES = _chunkWRZ6C4TUcjs.CHART_TRENDLINE_TYPES; exports.CHART_TYPES = _chunkWRZ6C4TUcjs.CHART_TYPES; exports.CHART_TYPE_LABELS = _chunkWRZ6C4TUcjs.CHART_TYPE_LABELS; exports.CSS_VARIABLE_CHART_THEME = _chunkWRZ6C4TUcjs.CSS_VARIABLE_CHART_THEME; exports.ChartController = _chunk5DQPDXOMcjs.ChartController; exports.ChartDirector = ChartDirector; exports.ChartPresence = ChartPresence; exports.ChartStream = ChartStream; exports.DEFAULT_CHART_PALETTE = _chunkWRZ6C4TUcjs.DEFAULT_CHART_PALETTE; exports.DEFAULT_CHART_THEME = _chunkWRZ6C4TUcjs.DEFAULT_CHART_THEME; exports.MAX_CHART_DATA_LABELS = _chunkN76AMOKEcjs.MAX_CHART_DATA_LABELS; exports.MAX_CHART_LINE_POINTS = _chunkN76AMOKEcjs.MAX_CHART_LINE_POINTS; exports.MAX_CHART_LINKS = _chunkWRZ6C4TUcjs.MAX_CHART_LINKS; exports.MAX_CHART_MARKERS = _chunkN76AMOKEcjs.MAX_CHART_MARKERS; exports.MAX_CHART_TREE_DEPTH = _chunkWRZ6C4TUcjs.MAX_CHART_TREE_DEPTH; exports.MAX_CHART_TREE_NODES = _chunkWRZ6C4TUcjs.MAX_CHART_TREE_NODES; exports.OfficeChartsError = OfficeChartsError; exports.RENDER_CHART_INSTRUCTIONS = RENDER_CHART_INSTRUCTIONS; exports.addChartLink = _chunkWRZ6C4TUcjs.addChartLink; exports.addChartTreeRow = _chunkWRZ6C4TUcjs.addChartTreeRow; exports.analyzeChartTable = analyzeChartTable; exports.blendChartScenes = blendChartScenes; exports.canDragChartPoint = canDragChartPoint; exports.chartBoxStats = _chunkN76AMOKEcjs.chartBoxStats; exports.chartCategoryAtPoint = _chunkN76AMOKEcjs.chartCategoryAtPoint; exports.chartClientToScene = chartClientToScene; exports.chartColorDistance = _chunkWRZ6C4TUcjs.chartColorDistance; exports.chartColorInputValue = _chunkWRZ6C4TUcjs.chartColorInputValue; exports.chartColorsByCategory = _chunkWRZ6C4TUcjs.chartColorsByCategory; exports.chartContrastRatio = _chunkWRZ6C4TUcjs.chartContrastRatio; exports.chartDataFromTable = _chunkWRZ6C4TUcjs.chartDataFromTable; exports.chartDataToTable = _chunkWRZ6C4TUcjs.chartDataToTable; exports.chartDateLabels = _chunkN76AMOKEcjs.chartDateLabels; exports.chartDateToSerial = _chunkN76AMOKEcjs.chartDateToSerial; exports.chartErrorAmounts = _chunkWRZ6C4TUcjs.chartErrorAmounts; exports.chartErrorBarsOfType = _chunkWRZ6C4TUcjs.chartErrorBarsOfType; exports.chartFamily = _chunkWRZ6C4TUcjs.chartFamily; exports.chartFileName = chartFileName; exports.chartFormatToCode = _chunkHUAISCUXcjs.chartFormatToCode; exports.chartFromMermaid = _chunk5DQPDXOMcjs.chartFromMermaid; exports.chartFromOoxml = _chunkHUAISCUXcjs.chartFromOoxml; exports.chartFromTable = chartFromTable; exports.chartHistogram = _chunkN76AMOKEcjs.chartHistogram; exports.chartHitTest = chartHitTest; exports.chartLikertColor = _chunkWRZ6C4TUcjs.chartLikertColor; exports.chartLinksFromTable = _chunkWRZ6C4TUcjs.chartLinksFromTable; exports.chartLuminance = _chunkWRZ6C4TUcjs.chartLuminance; exports.chartMapBreaks = _chunkN76AMOKEcjs.chartMapBreaks; exports.chartMapClass = _chunkN76AMOKEcjs.chartMapClass; exports.chartMapRamp = _chunkN76AMOKEcjs.chartMapRamp; exports.chartMermaidFamily = _chunk5DQPDXOMcjs.chartMermaidFamily; exports.chartMovingAverage = _chunkN76AMOKEcjs.chartMovingAverage; exports.chartPointAnchor = chartPointAnchor; exports.chartPointColor = _chunkWRZ6C4TUcjs.chartPointColor; exports.chartPointRef = chartPointRef; exports.chartPresetPatch = _chunk5DQPDXOMcjs.chartPresetPatch; exports.chartQuantile = _chunkN76AMOKEcjs.chartQuantile; exports.chartRaceMoment = _chunkN76AMOKEcjs.chartRaceMoment; exports.chartRaceRanking = _chunkN76AMOKEcjs.chartRaceRanking; exports.chartRaceValueAt = _chunkN76AMOKEcjs.chartRaceValueAt; exports.chartRasterSize = chartRasterSize; exports.chartRgbToHex = _chunkWRZ6C4TUcjs.chartRgbToHex; exports.chartRgbToOklab = _chunkWRZ6C4TUcjs.chartRgbToOklab; exports.chartSankeyNodeValues = _chunkWRZ6C4TUcjs.chartSankeyNodeValues; exports.chartSankeyNodes = _chunkWRZ6C4TUcjs.chartSankeyNodes; exports.chartScaleFromPixel = _chunkN76AMOKEcjs.chartScaleFromPixel; exports.chartScaleToPixel = _chunkN76AMOKEcjs.chartScaleToPixel; exports.chartSceneToDomSpec = _chunk5DQPDXOMcjs.chartSceneToDomSpec; exports.chartSceneToSvg = _chunk5DQPDXOMcjs.chartSceneToSvg; exports.chartSerialToDate = _chunkN76AMOKEcjs.chartSerialToDate; exports.chartSeriesColor = _chunkWRZ6C4TUcjs.chartSeriesColor; exports.chartSeriesType = _chunkWRZ6C4TUcjs.chartSeriesType; exports.chartSliceColor = _chunkWRZ6C4TUcjs.chartSliceColor; exports.chartSpecColorsByCategory = _chunkWRZ6C4TUcjs.chartSpecColorsByCategory; exports.chartSquarify = _chunkN76AMOKEcjs.chartSquarify; exports.chartStyleDomain = chartStyleDomain; exports.chartStylePatch = chartStylePatch; exports.chartSupportsTrendlines = _chunkN76AMOKEcjs.chartSupportsTrendlines; exports.chartTextBaseline = _chunk5DQPDXOMcjs.chartTextBaseline; exports.chartTextOn = _chunkWRZ6C4TUcjs.chartTextOn; exports.chartTextTransform = _chunk5DQPDXOMcjs.chartTextTransform; exports.chartToMermaid = _chunk5DQPDXOMcjs.chartToMermaid; exports.chartToOoxml = _chunkHUAISCUXcjs.chartToOoxml; exports.chartToSvg = _chunk5DQPDXOMcjs.chartToSvg; exports.chartTooltipAt = chartTooltipAt; exports.chartTooltipFor = chartTooltipFor; exports.chartTreeColumnLabels = _chunkWRZ6C4TUcjs.chartTreeColumnLabels; exports.chartTreeDepth = _chunkWRZ6C4TUcjs.chartTreeDepth; exports.chartTreeFromRows = _chunkWRZ6C4TUcjs.chartTreeFromRows; exports.chartTreeFromSeries = _chunkWRZ6C4TUcjs.chartTreeFromSeries; exports.chartTreeFromTable = _chunkWRZ6C4TUcjs.chartTreeFromTable; exports.chartTreeToRows = _chunkWRZ6C4TUcjs.chartTreeToRows; exports.chartTreeTotal = _chunkWRZ6C4TUcjs.chartTreeTotal; exports.chartTrendlineName = _chunkN76AMOKEcjs.chartTrendlineName; exports.chartValueAtPoint = _chunkN76AMOKEcjs.chartValueAtPoint; exports.chartVariesColors = _chunkWRZ6C4TUcjs.chartVariesColors; exports.chartXAtPoint = _chunkN76AMOKEcjs.chartXAtPoint; exports.checkChartColors = _chunkWRZ6C4TUcjs.checkChartColors; exports.cloneChartSeries = _chunkWRZ6C4TUcjs.cloneChartSeries; exports.cloneChartSpec = _chunkWRZ6C4TUcjs.cloneChartSpec; exports.cloneChartTree = _chunkWRZ6C4TUcjs.cloneChartTree; exports.compileChartFormatCode = _chunkN76AMOKEcjs.compileChartFormatCode; exports.contrastingTextColor = _chunkN76AMOKEcjs.contrastingTextColor; exports.createChartCommands = createChartCommands; exports.createChartController = _chunk5DQPDXOMcjs.createChartController; exports.createChartEditorDocument = createChartEditorDocument; exports.createChartRasterizer = createChartRasterizer; exports.createChartSpec = _chunkWRZ6C4TUcjs.createChartSpec; exports.createChartStyleToolProvider = createChartStyleToolProvider; exports.createChartToolProvider = createChartToolProvider; exports.createInstantChartClock = createInstantChartClock; exports.createOfficeChartToolProvider = createOfficeChartToolProvider; exports.cyclePaletteColor = _chunkWRZ6C4TUcjs.cyclePaletteColor; exports.decimateChartPoints = _chunkN76AMOKEcjs.decimateChartPoints; exports.defaultChartAxis = _chunkWRZ6C4TUcjs.defaultChartAxis; exports.defaultChartErrorBarValue = _chunkWRZ6C4TUcjs.defaultChartErrorBarValue; exports.describeChart = _chunk5DQPDXOMcjs.describeChart; exports.describeChartErrorBars = _chunkWRZ6C4TUcjs.describeChartErrorBars; exports.describeChartSelection = describeChartSelection; exports.describeOfficeChartPlace = describeOfficeChartPlace; exports.downloadChartPng = downloadChartPng; exports.easeChartTween = easeChartTween; exports.estimateChartTextWidth = _chunkN76AMOKEcjs.estimateChartTextWidth; exports.extractDocxCharts = extractDocxCharts; exports.extractOfficeCharts = extractOfficeCharts; exports.extractPptxCharts = extractPptxCharts; exports.extractXlsxCharts = extractXlsxCharts; exports.findChartTreeNode = _chunkWRZ6C4TUcjs.findChartTreeNode; exports.findMermaidCharts = _chunk5DQPDXOMcjs.findMermaidCharts; exports.fitChartTrendline = _chunkN76AMOKEcjs.fitChartTrendline; exports.formatChartAmountList = _chunkWRZ6C4TUcjs.formatChartAmountList; exports.formatChartDate = _chunkN76AMOKEcjs.formatChartDate; exports.formatChartNumber = _chunkN76AMOKEcjs.formatChartNumber; exports.formatChartValueWithCode = _chunkN76AMOKEcjs.formatChartValueWithCode; exports.getChartMap = _chunkN76AMOKEcjs.getChartMap; exports.handleChartKey = handleChartKey; exports.isCartesianChart = _chunkWRZ6C4TUcjs.isCartesianChart; exports.isXyChart = _chunkWRZ6C4TUcjs.isXyChart; exports.layoutChart = _chunkN76AMOKEcjs.layoutChart; exports.layoutSparkline = _chunk5DQPDXOMcjs.layoutSparkline; exports.layoutStreamgraph = _chunkN76AMOKEcjs.layoutStreamgraph; exports.linearMap = _chunkN76AMOKEcjs.linearMap; exports.listChartMaps = _chunkN76AMOKEcjs.listChartMaps; exports.locateChartPoint = locateChartPoint; exports.matchChartMapRegions = _chunkN76AMOKEcjs.matchChartMapRegions; exports.monochromeChartPalette = _chunk5DQPDXOMcjs.monochromeChartPalette; exports.niceLogScale = _chunkN76AMOKEcjs.niceLogScale; exports.niceScale = _chunkN76AMOKEcjs.niceScale; exports.niceStep = _chunkN76AMOKEcjs.niceStep; exports.normalizeChartAxis = _chunkWRZ6C4TUcjs.normalizeChartAxis; exports.normalizeChartErrorBars = _chunkWRZ6C4TUcjs.normalizeChartErrorBars; exports.normalizeChartLinks = _chunkWRZ6C4TUcjs.normalizeChartLinks; exports.normalizeChartReferenceBand = _chunkWRZ6C4TUcjs.normalizeChartReferenceBand; exports.normalizeChartReferenceLine = _chunkWRZ6C4TUcjs.normalizeChartReferenceLine; exports.normalizeChartSpec = _chunkWRZ6C4TUcjs.normalizeChartSpec; exports.normalizeChartTree = _chunkWRZ6C4TUcjs.normalizeChartTree; exports.normalizeChartTrendline = _chunkWRZ6C4TUcjs.normalizeChartTrendline; exports.normalizeChartValues = _chunkWRZ6C4TUcjs.normalizeChartValues; exports.parseChartAmountList = _chunkWRZ6C4TUcjs.parseChartAmountList; exports.parseChartColor = _chunkWRZ6C4TUcjs.parseChartColor; exports.parseChartDate = _chunkN76AMOKEcjs.parseChartDate; exports.parseChartValue = _chunkWRZ6C4TUcjs.parseChartValue; exports.parsePartialChartJson = parsePartialChartJson; exports.planChartCommand = planChartCommand; exports.planChartToolPlayback = planChartToolPlayback; exports.rasterizeChartSvg = rasterizeChartSvg; exports.realChartClock = realChartClock; exports.recommendChartTypes = recommendChartTypes; exports.recommendForShape = recommendForShape; exports.registerChartMap = _chunkN76AMOKEcjs.registerChartMap; exports.removeChartTreeRow = _chunkWRZ6C4TUcjs.removeChartTreeRow; exports.resolveChartSvgPaints = resolveChartSvgPaints; exports.sameChartSelection = _chunkN76AMOKEcjs.sameChartSelection; exports.sameChartTooltip = sameChartTooltip; exports.setChartLinkField = _chunkWRZ6C4TUcjs.setChartLinkField; exports.setChartTreeRowName = _chunkWRZ6C4TUcjs.setChartTreeRowName; exports.setChartTreeRowValue = _chunkWRZ6C4TUcjs.setChartTreeRowValue; exports.shadeChartColor = _chunkWRZ6C4TUcjs.shadeChartColor; exports.simulateChartVision = _chunkWRZ6C4TUcjs.simulateChartVision; exports.snapChartDragValue = snapChartDragValue; exports.snapChartValue = _chunkN76AMOKEcjs.snapChartValue; exports.sparklineToSvg = _chunk5DQPDXOMcjs.sparklineToSvg; exports.startChartPointDrag = startChartPointDrag; exports.stepDecimals = _chunkN76AMOKEcjs.stepDecimals; exports.suggestChartReferences = _chunkN76AMOKEcjs.suggestChartReferences; exports.summarizeChart = _chunk5DQPDXOMcjs.summarizeChart; exports.summarizeChartSeries = _chunkN76AMOKEcjs.summarizeChartSeries; exports.trendNumberText = _chunkN76AMOKEcjs.trendNumberText; exports.uniqueChartSeriesId = _chunkWRZ6C4TUcjs.uniqueChartSeriesId; exports.withChartPlayback = withChartPlayback;
|