@rowsncolumns/charts 27.0.34 → 28.1.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/cjs/atoms/pivot-chart.atom.d.ts +14 -0
- package/dist/cjs/atoms/pivot-chart.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/pivot-chart.atom.js +9 -0
- package/dist/cjs/basic-chart/basic-chart.d.ts +1 -1
- package/dist/cjs/basic-chart/basic-chart.d.ts.map +1 -1
- package/dist/cjs/basic-chart/basic-chart.js +863 -371
- package/dist/cjs/components/dialogs/pivot-chart-dialog.d.ts +39 -0
- package/dist/cjs/components/dialogs/pivot-chart-dialog.d.ts.map +1 -0
- package/dist/cjs/components/dialogs/pivot-chart-dialog.js +100 -0
- package/dist/cjs/components/editors/chart-editor.d.ts +13 -1
- package/dist/cjs/components/editors/chart-editor.d.ts.map +1 -1
- package/dist/cjs/components/editors/chart-editor.js +225 -59
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +149 -12
- package/dist/cjs/hooks/use-charts.d.ts +21 -6
- package/dist/cjs/hooks/use-charts.d.ts.map +1 -1
- package/dist/cjs/hooks/use-charts.js +13 -1
- package/dist/cjs/hooks/use-on-create-chart.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-create-chart.js +7 -1
- package/dist/cjs/hooks/use-on-move-chart-to-sheet.d.ts +12 -0
- package/dist/cjs/hooks/use-on-move-chart-to-sheet.d.ts.map +1 -0
- package/dist/cjs/hooks/use-on-move-chart-to-sheet.js +26 -0
- package/dist/cjs/hooks/use-on-move-chart.d.ts +1 -1
- package/dist/cjs/hooks/use-on-move-chart.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-chart.js +2 -2
- package/dist/cjs/hooks/use-on-resize-chart.d.ts +1 -1
- package/dist/cjs/hooks/use-on-resize-chart.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-resize-chart.js +2 -2
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +34 -1
- package/dist/cjs/interface/create-chart.d.ts.map +1 -1
- package/dist/cjs/interface/create-chart.js +33 -42
- package/dist/cjs/interface/delete-chart.d.ts.map +1 -1
- package/dist/cjs/interface/delete-chart.js +4 -0
- package/dist/cjs/interface/move-chart-to-sheet.d.ts +13 -0
- package/dist/cjs/interface/move-chart-to-sheet.d.ts.map +1 -0
- package/dist/cjs/interface/move-chart-to-sheet.js +136 -0
- package/dist/cjs/interface/move-chart.d.ts +2 -2
- package/dist/cjs/interface/move-chart.d.ts.map +1 -1
- package/dist/cjs/interface/move-chart.js +7 -1
- package/dist/cjs/interface/resize-chart.d.ts +2 -2
- package/dist/cjs/interface/resize-chart.d.ts.map +1 -1
- package/dist/cjs/interface/resize-chart.js +7 -1
- package/dist/cjs/interface/update-chart.d.ts.map +1 -1
- package/dist/cjs/interface/update-chart.js +4 -0
- package/dist/cjs/plotly/basic-chart/basic-chart.d.ts +1 -1
- package/dist/cjs/plotly/basic-chart/basic-chart.d.ts.map +1 -1
- package/dist/cjs/plotly/basic-chart/basic-chart.js +970 -585
- package/dist/cjs/plotly/basic-chart/helpers.d.ts.map +1 -1
- package/dist/cjs/plotly/basic-chart/helpers.js +3 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +7 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/axis-number-format.d.ts +69 -0
- package/dist/cjs/utils/axis-number-format.d.ts.map +1 -0
- package/dist/cjs/utils/axis-number-format.js +217 -0
- package/dist/cjs/utils/category-levels.d.ts +27 -0
- package/dist/cjs/utils/category-levels.d.ts.map +1 -0
- package/dist/cjs/utils/category-levels.js +80 -0
- package/dist/cjs/utils/chart-image.d.ts +8 -0
- package/dist/cjs/utils/chart-image.d.ts.map +1 -0
- package/dist/cjs/utils/chart-image.js +28 -0
- package/dist/cjs/utils/chart-orientation.d.ts +67 -0
- package/dist/cjs/utils/chart-orientation.d.ts.map +1 -0
- package/dist/cjs/utils/chart-orientation.js +265 -0
- package/dist/cjs/utils/chart-spec-utils.d.ts +3 -0
- package/dist/cjs/utils/chart-spec-utils.d.ts.map +1 -1
- package/dist/cjs/utils/chart-spec-utils.js +12 -4
- package/dist/cjs/utils/chart-styles.d.ts +75 -0
- package/dist/cjs/utils/chart-styles.d.ts.map +1 -0
- package/dist/cjs/utils/chart-styles.js +283 -0
- package/dist/cjs/utils/empty-cells.d.ts +30 -0
- package/dist/cjs/utils/empty-cells.d.ts.map +1 -0
- package/dist/cjs/utils/empty-cells.js +91 -0
- package/dist/cjs/utils/overrides.d.ts +6 -1
- package/dist/cjs/utils/overrides.d.ts.map +1 -1
- package/dist/cjs/utils/overrides.js +19 -7
- package/dist/cjs/utils/pie-explosion.d.ts +30 -0
- package/dist/cjs/utils/pie-explosion.d.ts.map +1 -0
- package/dist/cjs/utils/pie-explosion.js +55 -0
- package/dist/cjs/utils/plotly-click.d.ts +34 -0
- package/dist/cjs/utils/plotly-click.d.ts.map +1 -0
- package/dist/cjs/utils/plotly-click.js +49 -0
- package/dist/cjs/utils/plotly-surface.d.ts +14 -0
- package/dist/cjs/utils/plotly-surface.d.ts.map +1 -0
- package/dist/cjs/utils/plotly-surface.js +64 -0
- package/dist/cjs/utils/plotly-title.d.ts +12 -0
- package/dist/cjs/utils/plotly-title.d.ts.map +1 -0
- package/dist/cjs/utils/plotly-title.js +24 -0
- package/dist/cjs/utils/series-click.d.ts +39 -0
- package/dist/cjs/utils/series-click.d.ts.map +1 -0
- package/dist/cjs/utils/series-click.js +75 -0
- package/dist/cjs/utils/three-d.d.ts +17 -1
- package/dist/cjs/utils/three-d.d.ts.map +1 -1
- package/dist/cjs/utils/three-d.js +32 -4
- package/dist/esm/atoms/pivot-chart.atom.d.ts +14 -0
- package/dist/esm/atoms/pivot-chart.atom.d.ts.map +1 -0
- package/dist/esm/atoms/pivot-chart.atom.js +4 -0
- package/dist/esm/basic-chart/basic-chart.d.ts +1 -1
- package/dist/esm/basic-chart/basic-chart.d.ts.map +1 -1
- package/dist/esm/basic-chart/basic-chart.js +680 -178
- package/dist/esm/components/dialogs/pivot-chart-dialog.d.ts +39 -0
- package/dist/esm/components/dialogs/pivot-chart-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialogs/pivot-chart-dialog.js +89 -0
- package/dist/esm/components/editors/chart-editor.d.ts +13 -1
- package/dist/esm/components/editors/chart-editor.d.ts.map +1 -1
- package/dist/esm/components/editors/chart-editor.js +164 -20
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +149 -12
- package/dist/esm/hooks/use-charts.d.ts +21 -6
- package/dist/esm/hooks/use-charts.d.ts.map +1 -1
- package/dist/esm/hooks/use-charts.js +13 -1
- package/dist/esm/hooks/use-on-create-chart.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-create-chart.js +7 -1
- package/dist/esm/hooks/use-on-move-chart-to-sheet.d.ts +12 -0
- package/dist/esm/hooks/use-on-move-chart-to-sheet.d.ts.map +1 -0
- package/dist/esm/hooks/use-on-move-chart-to-sheet.js +19 -0
- package/dist/esm/hooks/use-on-move-chart.d.ts +1 -1
- package/dist/esm/hooks/use-on-move-chart.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-chart.js +2 -2
- package/dist/esm/hooks/use-on-resize-chart.d.ts +1 -1
- package/dist/esm/hooks/use-on-resize-chart.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-resize-chart.js +2 -2
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +14 -0
- package/dist/esm/interface/create-chart.d.ts.map +1 -1
- package/dist/esm/interface/create-chart.js +36 -58
- package/dist/esm/interface/delete-chart.d.ts.map +1 -1
- package/dist/esm/interface/delete-chart.js +4 -0
- package/dist/esm/interface/move-chart-to-sheet.d.ts +13 -0
- package/dist/esm/interface/move-chart-to-sheet.d.ts.map +1 -0
- package/dist/esm/interface/move-chart-to-sheet.js +126 -0
- package/dist/esm/interface/move-chart.d.ts +2 -2
- package/dist/esm/interface/move-chart.d.ts.map +1 -1
- package/dist/esm/interface/move-chart.js +7 -1
- package/dist/esm/interface/resize-chart.d.ts +2 -2
- package/dist/esm/interface/resize-chart.d.ts.map +1 -1
- package/dist/esm/interface/resize-chart.js +7 -1
- package/dist/esm/interface/update-chart.d.ts.map +1 -1
- package/dist/esm/interface/update-chart.js +4 -0
- package/dist/esm/plotly/basic-chart/basic-chart.d.ts +1 -1
- package/dist/esm/plotly/basic-chart/basic-chart.d.ts.map +1 -1
- package/dist/esm/plotly/basic-chart/basic-chart.js +858 -463
- package/dist/esm/plotly/basic-chart/helpers.d.ts.map +1 -1
- package/dist/esm/plotly/basic-chart/helpers.js +3 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +7 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/axis-number-format.d.ts +69 -0
- package/dist/esm/utils/axis-number-format.d.ts.map +1 -0
- package/dist/esm/utils/axis-number-format.js +170 -0
- package/dist/esm/utils/category-levels.d.ts +27 -0
- package/dist/esm/utils/category-levels.d.ts.map +1 -0
- package/dist/esm/utils/category-levels.js +65 -0
- package/dist/esm/utils/chart-image.d.ts +8 -0
- package/dist/esm/utils/chart-image.d.ts.map +1 -0
- package/dist/esm/utils/chart-image.js +24 -0
- package/dist/esm/utils/chart-orientation.d.ts +67 -0
- package/dist/esm/utils/chart-orientation.d.ts.map +1 -0
- package/dist/esm/utils/chart-orientation.js +234 -0
- package/dist/esm/utils/chart-spec-utils.d.ts +3 -0
- package/dist/esm/utils/chart-spec-utils.d.ts.map +1 -1
- package/dist/esm/utils/chart-spec-utils.js +10 -2
- package/dist/esm/utils/chart-styles.d.ts +75 -0
- package/dist/esm/utils/chart-styles.d.ts.map +1 -0
- package/dist/esm/utils/chart-styles.js +357 -0
- package/dist/esm/utils/empty-cells.d.ts +30 -0
- package/dist/esm/utils/empty-cells.d.ts.map +1 -0
- package/dist/esm/utils/empty-cells.js +67 -0
- package/dist/esm/utils/overrides.d.ts +6 -1
- package/dist/esm/utils/overrides.d.ts.map +1 -1
- package/dist/esm/utils/overrides.js +14 -2
- package/dist/esm/utils/pie-explosion.d.ts +30 -0
- package/dist/esm/utils/pie-explosion.d.ts.map +1 -0
- package/dist/esm/utils/pie-explosion.js +43 -0
- package/dist/esm/utils/plotly-click.d.ts +34 -0
- package/dist/esm/utils/plotly-click.d.ts.map +1 -0
- package/dist/esm/utils/plotly-click.js +44 -0
- package/dist/esm/utils/plotly-surface.d.ts +14 -0
- package/dist/esm/utils/plotly-surface.d.ts.map +1 -0
- package/dist/esm/utils/plotly-surface.js +45 -0
- package/dist/esm/utils/plotly-title.d.ts +12 -0
- package/dist/esm/utils/plotly-title.d.ts.map +1 -0
- package/dist/esm/utils/plotly-title.js +20 -0
- package/dist/esm/utils/series-click.d.ts +39 -0
- package/dist/esm/utils/series-click.d.ts.map +1 -0
- package/dist/esm/utils/series-click.js +66 -0
- package/dist/esm/utils/three-d.d.ts +17 -1
- package/dist/esm/utils/three-d.d.ts.map +1 -1
- package/dist/esm/utils/three-d.js +29 -3
- package/package.json +16 -12
|
@@ -13,7 +13,9 @@ var editing_chart_atom_1 = require("../../atoms/editing-chart.atom");
|
|
|
13
13
|
var chart_range_input_1 = require("./chart-range-input");
|
|
14
14
|
var config_1 = require("../../config");
|
|
15
15
|
var utils_1 = require("@rowsncolumns/utils");
|
|
16
|
+
var chart_orientation_1 = require("../../utils/chart-orientation");
|
|
16
17
|
var chart_spec_utils_1 = require("../../utils/chart-spec-utils");
|
|
18
|
+
var chart_styles_1 = require("../../utils/chart-styles");
|
|
17
19
|
var AGGREGATE_OPTIONS = [
|
|
18
20
|
{ label: "Sum", value: "SUM" },
|
|
19
21
|
{ label: "Average", value: "AVERAGE" },
|
|
@@ -22,6 +24,21 @@ var AGGREGATE_OPTIONS = [
|
|
|
22
24
|
{ label: "Min", value: "MIN" },
|
|
23
25
|
{ label: "Max", value: "MAX" },
|
|
24
26
|
];
|
|
27
|
+
/** Swatch for the theme-accent palette tile (the theme itself is resolved at render time). */
|
|
28
|
+
var THEME_PALETTE_PREVIEW = [
|
|
29
|
+
"#4472C4",
|
|
30
|
+
"#ED7D31",
|
|
31
|
+
"#A5A5A5",
|
|
32
|
+
"#FFC000",
|
|
33
|
+
"#5B9BD5",
|
|
34
|
+
"#70AD47",
|
|
35
|
+
];
|
|
36
|
+
/** Excel's placement modes, in the order its Properties pane lists them. */
|
|
37
|
+
var CHART_PLACEMENT_OPTIONS = [
|
|
38
|
+
{ label: "Move and size with cells", value: "moveAndSize" },
|
|
39
|
+
{ label: "Move but don't size with cells", value: "moveOnly" },
|
|
40
|
+
{ label: "Don't move or size with cells", value: "absolute" },
|
|
41
|
+
];
|
|
25
42
|
var Section = function (_a) {
|
|
26
43
|
var title = _a.title, _b = _a.defaultOpen, defaultOpen = _b === void 0 ? false : _b, children = _a.children;
|
|
27
44
|
return (react_1.default.createElement("details", { open: defaultOpen, className: "group border border-rnc-border border-solid rounded-md mb-2 px-3" },
|
|
@@ -31,8 +48,8 @@ var Section = function (_a) {
|
|
|
31
48
|
react_1.default.createElement("div", { className: "flex flex-col gap-2 pb-3" }, children)));
|
|
32
49
|
};
|
|
33
50
|
var ChartEditor = function (_a) {
|
|
34
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22;
|
|
35
|
-
var chart = _a.chart, sheetId = _a.sheetId, onSubmit = _a.onSubmit;
|
|
51
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39;
|
|
52
|
+
var chart = _a.chart, sheetId = _a.sheetId, onSubmit = _a.onSubmit, onRequestMoveChart = _a.onRequestMoveChart, getFormattedValue = _a.getFormattedValue;
|
|
36
53
|
var setChartDialogState = (0, editing_chart_atom_1.useSetChartEditorDialogState)();
|
|
37
54
|
// Close dialog
|
|
38
55
|
var closeDialog = function () { return setChartDialogState(false); };
|
|
@@ -51,17 +68,19 @@ var ChartEditor = function (_a) {
|
|
|
51
68
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
52
69
|
[chart === null || chart === void 0 ? void 0 : chart.chartId]);
|
|
53
70
|
// Formik
|
|
54
|
-
var
|
|
71
|
+
var _40 = (0, formik_1.useFormik)({
|
|
55
72
|
initialValues: initialValues,
|
|
56
73
|
enableReinitialize: true,
|
|
57
74
|
onSubmit: function (values) {
|
|
58
75
|
// Submit against the live position so edits do not revert a
|
|
59
|
-
// chart moved or resized while the editor was open
|
|
60
|
-
|
|
76
|
+
// chart moved or resized while the editor was open; the placement
|
|
77
|
+
// mode is the one property of the position the form owns.
|
|
78
|
+
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(chart
|
|
79
|
+
? tslib_1.__assign(tslib_1.__assign({}, values), { position: tslib_1.__assign(tslib_1.__assign({}, chart.position), { overlayPosition: tslib_1.__assign(tslib_1.__assign({}, chart.position.overlayPosition), { placement: values.position.overlayPosition.placement }) }) }) : values);
|
|
61
80
|
// Close dialog
|
|
62
81
|
closeDialog();
|
|
63
82
|
},
|
|
64
|
-
}), handleSubmit =
|
|
83
|
+
}), handleSubmit = _40.handleSubmit, setFieldValue = _40.setFieldValue, resetForm = _40.resetForm, values = _40.values;
|
|
65
84
|
var onCancelForm = function () {
|
|
66
85
|
resetForm();
|
|
67
86
|
closeDialog();
|
|
@@ -85,6 +104,19 @@ var ChartEditor = function (_a) {
|
|
|
85
104
|
var isBarOrColumnBasic = basicSpec
|
|
86
105
|
? basicSpec.chartType === "bar" || basicSpec.chartType === "column"
|
|
87
106
|
: false;
|
|
107
|
+
// Customize → "Chart options": each control names the chart types it
|
|
108
|
+
// applies to and the section renders when any of them does, so a chart type
|
|
109
|
+
// is never left out by a separately maintained list (pie was, until #783).
|
|
110
|
+
var chartOptionControls = {
|
|
111
|
+
binCount: (basicSpec === null || basicSpec === void 0 ? void 0 : basicSpec.chartType) === "histogram",
|
|
112
|
+
radarStyle: (basicSpec === null || basicSpec === void 0 ? void 0 : basicSpec.chartType) === "radar",
|
|
113
|
+
stockVariant: (basicSpec === null || basicSpec === void 0 ? void 0 : basicSpec.chartType) === "stock",
|
|
114
|
+
doughnutHoleSize: (basicSpec === null || basicSpec === void 0 ? void 0 : basicSpec.chartType) === "doughnut",
|
|
115
|
+
explosion: (basicSpec === null || basicSpec === void 0 ? void 0 : basicSpec.chartType) === "pie" || (basicSpec === null || basicSpec === void 0 ? void 0 : basicSpec.chartType) === "doughnut",
|
|
116
|
+
gapWidth: isBarOrColumnBasic,
|
|
117
|
+
overlap: isBarOrColumnBasic,
|
|
118
|
+
};
|
|
119
|
+
var showChartOptions = Object.values(chartOptionControls).some(Boolean);
|
|
88
120
|
// Check aggregate
|
|
89
121
|
var isAggregateType = basicSpec
|
|
90
122
|
? basicSpec.series.some(function (serie) { return serie.aggregateType; })
|
|
@@ -138,13 +170,27 @@ var ChartEditor = function (_a) {
|
|
|
138
170
|
}))))),
|
|
139
171
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
140
172
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Chart data range"),
|
|
141
|
-
|
|
173
|
+
((_b = values.spec) === null || _b === void 0 ? void 0 : _b.pivotTableId) != null ? (
|
|
174
|
+
// A PivotChart's range follows its pivot's data area; it is not
|
|
175
|
+
// editable here (Excel greys the range on a PivotChart too).
|
|
176
|
+
react_1.default.createElement("span", { className: "font-system text-xs text-rnc-muted-foreground" }, "Bound to PivotTable \u2014 the data range follows the pivot.")) : (react_1.default.createElement(chart_range_input_1.ChartRangeInput, { key: values.chartId, sheetId: sheetId, range: (_d = (_c = values.spec) === null || _c === void 0 ? void 0 : _c.dataRange) !== null && _d !== void 0 ? _d : undefined, onChangeRange: function (range) {
|
|
142
177
|
setFieldValue("spec.dataRange", range);
|
|
143
|
-
}, required: true, placeholder: "Select a range", className: "mb-0" })),
|
|
178
|
+
}, required: true, placeholder: "Select a range", className: "mb-0" }))),
|
|
179
|
+
basicSpec ? (react_1.default.createElement(ui_1.Stack, { direction: "horizontal", className: "gap-2 pb-2 items-center" },
|
|
180
|
+
react_1.default.createElement(ui_1.Button, { type: "button", variant: "outline", size: "xs", disabled: !(0, chart_orientation_1.canSwitchRowColumn)(values.spec), onClick: function () {
|
|
181
|
+
var next = (0, chart_orientation_1.switchRowColumn)(values.spec, {
|
|
182
|
+
getFormattedValue: getFormattedValue,
|
|
183
|
+
});
|
|
184
|
+
if (next)
|
|
185
|
+
setFieldValue("spec", next);
|
|
186
|
+
} }, "Switch Row/Column"),
|
|
187
|
+
react_1.default.createElement("span", { className: "font-system text-xs text-rnc-muted-foreground" },
|
|
188
|
+
"Series in ",
|
|
189
|
+
(0, chart_orientation_1.inferSeriesOrientation)(values.spec)))) : null,
|
|
144
190
|
basicSpec ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
145
191
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
146
192
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Horizontal (category) axis labels"),
|
|
147
|
-
((
|
|
193
|
+
((_e = basicSpec.domains) !== null && _e !== void 0 ? _e : []).map(function (domain, i) {
|
|
148
194
|
return domain.sources.map(function (source, idx) {
|
|
149
195
|
return (react_1.default.createElement(chart_range_input_1.ChartRangeInput, { key: "".concat(values.chartId, "-domains-").concat(basicSpec.domains.length, "-").concat(i, "-").concat(idx), sheetId: sheetId, range: source, onChangeRange: function (range) {
|
|
150
196
|
setFieldValue("spec.domains[".concat(i, "].sources[").concat(idx, "]"), range);
|
|
@@ -322,9 +368,9 @@ var ChartEditor = function (_a) {
|
|
|
322
368
|
} }),
|
|
323
369
|
"Use first row as headers"),
|
|
324
370
|
bubbleSpec.chartType === "bubble"
|
|
325
|
-
? renderChartDataSection("Bubble labels", "bubbleLabels", (
|
|
371
|
+
? renderChartDataSection("Bubble labels", "bubbleLabels", (_f = bubbleSpec.bubbleLabels) !== null && _f !== void 0 ? _f : [], "Select the cells containing labels for each bubble.")
|
|
326
372
|
: null,
|
|
327
|
-
renderChartDataSection("X values", "domains", (
|
|
373
|
+
renderChartDataSection("X values", "domains", (_g = bubbleSpec.domains) !== null && _g !== void 0 ? _g : [], "Choose the numeric values for the horizontal axis."),
|
|
328
374
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-2 pb-2" },
|
|
329
375
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Legend entries (series)"),
|
|
330
376
|
bubbleSpec.series.map(function (seriesEntry, i) {
|
|
@@ -402,9 +448,24 @@ var ChartEditor = function (_a) {
|
|
|
402
448
|
return setFieldValue("spec.useFirstRowAsHeaders", e.target.checked);
|
|
403
449
|
} }),
|
|
404
450
|
"Use first row as headers"),
|
|
405
|
-
renderChartDataSection("Labels", "labels", (
|
|
406
|
-
renderChartDataSection("Parent labels", "parentLabels", (
|
|
407
|
-
renderChartDataSection("Size data", "sizeData", (
|
|
451
|
+
renderChartDataSection("Labels", "labels", (_h = treemapSpec.labels) !== null && _h !== void 0 ? _h : [], "Select the cells that contain node labels."),
|
|
452
|
+
renderChartDataSection("Parent labels", "parentLabels", (_j = treemapSpec.parentLabels) !== null && _j !== void 0 ? _j : [], "Choose the cells that define each node's parent label."),
|
|
453
|
+
renderChartDataSection("Size data", "sizeData", (_k = treemapSpec.sizeData) !== null && _k !== void 0 ? _k : [], "Provide numeric values to determine each node's size."))) : null,
|
|
454
|
+
basicSpec ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
455
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2 w-56" },
|
|
456
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Show empty cells as"),
|
|
457
|
+
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent", "aria-label": "Show empty cells as", value: (_l = values.spec.emptyCells) !== null && _l !== void 0 ? _l : "gaps", onChange: function (event) {
|
|
458
|
+
var emptyCells = event.target.value;
|
|
459
|
+
setFieldValue("spec.emptyCells", emptyCells === "gaps" ? undefined : emptyCells);
|
|
460
|
+
} },
|
|
461
|
+
react_1.default.createElement("option", { value: "gaps" }, "Gaps"),
|
|
462
|
+
react_1.default.createElement("option", { value: "zero" }, "Zero"),
|
|
463
|
+
react_1.default.createElement("option", { value: "connect" }, "Connect data points with line"))),
|
|
464
|
+
react_1.default.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
465
|
+
react_1.default.createElement("input", { type: "checkbox", checked: values.spec.showNaAsEmpty !== false, onChange: function (e) {
|
|
466
|
+
setFieldValue("spec.showNaAsEmpty", e.target.checked ? undefined : false);
|
|
467
|
+
} }),
|
|
468
|
+
"Show #N/A as an empty cell"))) : null,
|
|
408
469
|
react_1.default.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
409
470
|
react_1.default.createElement("input", { type: "checkbox", checked: values.spec.hiddenDimensionStrategy === "SHOW_ALL", name: "showColumnStripes", onChange: function (e) {
|
|
410
471
|
setFieldValue("spec.hiddenDimensionStrategy", e.target.checked
|
|
@@ -416,12 +477,96 @@ var ChartEditor = function (_a) {
|
|
|
416
477
|
react_1.default.createElement(Section, { title: "Chart style", defaultOpen: true },
|
|
417
478
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
418
479
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Chart title"),
|
|
419
|
-
react_1.default.createElement(ui_1.Input, { value: (
|
|
480
|
+
react_1.default.createElement(ui_1.Input, { value: (_m = values === null || values === void 0 ? void 0 : values.spec.title) !== null && _m !== void 0 ? _m : "", type: "text", onChange: function (e) { return setFieldValue("spec.title", e.target.value); }, className: "text-xs", placeholder: "Enter chart title" })),
|
|
481
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
482
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Style"),
|
|
483
|
+
react_1.default.createElement("div", { className: "grid grid-cols-4 gap-1", role: "radiogroup" }, chart_styles_1.CHART_STYLES.map(function (style) {
|
|
484
|
+
var isActive = values.spec.chartStyle === style.id;
|
|
485
|
+
return (react_1.default.createElement("button", { key: style.id, type: "button", role: "radio", "aria-checked": isActive, "aria-label": style.label, title: style.label, onClick: function () {
|
|
486
|
+
return setFieldValue("spec", (0, chart_styles_1.applyChartStyle)(values.spec, style));
|
|
487
|
+
}, className: "flex items-end justify-center gap-0.5 h-8 rounded-sm border border-solid p-1 ".concat(isActive
|
|
488
|
+
? "border-rnc-primary"
|
|
489
|
+
: "border-rnc-border"), style: { background: style.preview.background } }, style.preview.bars.map(function (color, i) { return (react_1.default.createElement("span", { key: "".concat(style.id, "-").concat(i), className: "w-1.5 rounded-[1px]", style: { height: 6 + i * 4, background: color } })); })));
|
|
490
|
+
}))),
|
|
491
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
492
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Colors"),
|
|
493
|
+
react_1.default.createElement("div", { className: "flex flex-col gap-1", role: "radiogroup" }, chart_styles_1.CHART_COLOR_PALETTES.map(function (palette) {
|
|
494
|
+
var _a, _b;
|
|
495
|
+
var current = (_a = values.spec.palette) !== null && _a !== void 0 ? _a : undefined;
|
|
496
|
+
var isActive = palette.colors
|
|
497
|
+
? !!current &&
|
|
498
|
+
current.length === palette.colors.length &&
|
|
499
|
+
current.every(function (c, i) { var _a; return c === ((_a = palette.colors) === null || _a === void 0 ? void 0 : _a[i]); })
|
|
500
|
+
: !current || current.length === 0;
|
|
501
|
+
return (react_1.default.createElement("button", { key: palette.id, type: "button", role: "radio", "aria-checked": isActive, "aria-label": palette.label, title: palette.label, onClick: function () {
|
|
502
|
+
return setFieldValue("spec", (0, chart_styles_1.applyChartColorPalette)(values.spec, palette));
|
|
503
|
+
}, className: "flex items-center gap-1 rounded-sm border border-solid px-1 py-0.5 ".concat(isActive ? "border-rnc-primary" : "border-rnc-border") },
|
|
504
|
+
((_b = palette.colors) !== null && _b !== void 0 ? _b : THEME_PALETTE_PREVIEW).map(function (color, i) { return (react_1.default.createElement("span", { key: "".concat(palette.id, "-").concat(i), className: "h-3 w-3 rounded-[1px]", style: { background: color } })); }),
|
|
505
|
+
react_1.default.createElement("span", { className: "font-system text-xs text-rnc-text-weak" }, palette.label)));
|
|
506
|
+
}))),
|
|
507
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
508
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Quick layout"),
|
|
509
|
+
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent w-32", value: "", "aria-label": "Quick layout", onChange: function (e) {
|
|
510
|
+
var layout = chart_styles_1.CHART_QUICK_LAYOUTS.find(function (entry) { return String(entry.id) === e.target.value; });
|
|
511
|
+
if (layout) {
|
|
512
|
+
setFieldValue("spec", (0, chart_styles_1.applyChartQuickLayout)(values.spec, layout));
|
|
513
|
+
}
|
|
514
|
+
} },
|
|
515
|
+
react_1.default.createElement("option", { value: "" }, "Choose a layout\u2026"),
|
|
516
|
+
chart_styles_1.CHART_QUICK_LAYOUTS.map(function (layout) { return (react_1.default.createElement("option", { key: layout.id, value: layout.id }, layout.label)); }))),
|
|
517
|
+
react_1.default.createElement("div", null,
|
|
518
|
+
react_1.default.createElement(ui_1.Button, { type: "button", size: "xs", onClick: function () {
|
|
519
|
+
return setFieldValue("spec", (0, chart_styles_1.resetChartToMatchStyle)(values.spec));
|
|
520
|
+
} }, "Reset to match style")),
|
|
521
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
522
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Title font"),
|
|
523
|
+
react_1.default.createElement("div", { className: "flex items-center gap-1 flex-wrap" },
|
|
524
|
+
react_1.default.createElement(ui_1.Input, { value: (_p = (_o = values.spec.titleTextFormat) === null || _o === void 0 ? void 0 : _o.fontFamily) !== null && _p !== void 0 ? _p : "", type: "text", onChange: function (e) {
|
|
525
|
+
return setFieldValue("spec.titleTextFormat.fontFamily", e.target.value || undefined);
|
|
526
|
+
}, className: "text-xs w-32", placeholder: "Font family", "aria-label": "Title font family" }),
|
|
527
|
+
react_1.default.createElement(ui_1.Input, { value: (_r = (_q = values.spec.titleTextFormat) === null || _q === void 0 ? void 0 : _q.fontSize) !== null && _r !== void 0 ? _r : "", type: "number", min: 1, onChange: function (e) {
|
|
528
|
+
return setFieldValue("spec.titleTextFormat.fontSize", e.target.value === "" ? undefined : Number(e.target.value));
|
|
529
|
+
}, className: "text-xs w-16", placeholder: "Size", "aria-label": "Title font size" }),
|
|
530
|
+
react_1.default.createElement("input", { type: "color", value: (_t = (_s = values.spec.titleTextFormat) === null || _s === void 0 ? void 0 : _s.color) !== null && _t !== void 0 ? _t : "#000000", onChange: function (e) {
|
|
531
|
+
return setFieldValue("spec.titleTextFormat.color", e.target.value);
|
|
532
|
+
}, className: "h-6 w-8 p-0 border border-rnc-border rounded-sm bg-transparent cursor-pointer", "aria-label": "Title color" }),
|
|
533
|
+
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
534
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_u = values.spec.titleTextFormat) === null || _u === void 0 ? void 0 : _u.bold), onChange: function (e) {
|
|
535
|
+
return setFieldValue("spec.titleTextFormat.bold", e.target.checked);
|
|
536
|
+
} }),
|
|
537
|
+
"Bold"),
|
|
538
|
+
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
539
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_v = values.spec.titleTextFormat) === null || _v === void 0 ? void 0 : _v.italic), onChange: function (e) {
|
|
540
|
+
return setFieldValue("spec.titleTextFormat.italic", e.target.checked);
|
|
541
|
+
} }),
|
|
542
|
+
"Italic")))),
|
|
543
|
+
react_1.default.createElement(Section, { title: "Chart area" },
|
|
544
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
545
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Fill"),
|
|
546
|
+
react_1.default.createElement("div", { className: "flex items-center gap-1" },
|
|
547
|
+
react_1.default.createElement("input", { type: "color", value: (_w = values.spec.backgroundColor) !== null && _w !== void 0 ? _w : "#FFFFFF", onChange: function (e) {
|
|
548
|
+
return setFieldValue("spec.backgroundColor", e.target.value);
|
|
549
|
+
}, className: "h-6 w-8 p-0 border border-rnc-border rounded-sm bg-transparent cursor-pointer", "aria-label": "Chart area fill" }),
|
|
550
|
+
values.spec.backgroundColor ? (react_1.default.createElement(ui_1.IconButton, { type: "button", onClick: function () {
|
|
551
|
+
return setFieldValue("spec.backgroundColor", undefined);
|
|
552
|
+
}, "aria-label": "No fill", title: "No fill" },
|
|
553
|
+
react_1.default.createElement(icons_1.CrossCircledIcon, null))) : (react_1.default.createElement("span", { className: "font-system text-xs text-rnc-text-weak" }, "Automatic")))),
|
|
554
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
555
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Border"),
|
|
556
|
+
react_1.default.createElement("div", { className: "flex items-center gap-1" },
|
|
557
|
+
react_1.default.createElement("input", { type: "color", value: (_x = values.borderColor) !== null && _x !== void 0 ? _x : "#D9D9D9", onChange: function (e) { return setFieldValue("borderColor", e.target.value); }, className: "h-6 w-8 p-0 border border-rnc-border rounded-sm bg-transparent cursor-pointer", "aria-label": "Chart area border" }),
|
|
558
|
+
values.borderColor ? (react_1.default.createElement(ui_1.IconButton, { type: "button", onClick: function () { return setFieldValue("borderColor", undefined); }, "aria-label": "No border", title: "No border" },
|
|
559
|
+
react_1.default.createElement(icons_1.CrossCircledIcon, null))) : (react_1.default.createElement("span", { className: "font-system text-xs text-rnc-text-weak" }, "None")))),
|
|
560
|
+
react_1.default.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
561
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean(values.spec.roundedCorners), onChange: function (e) {
|
|
562
|
+
return setFieldValue("spec.roundedCorners", e.target.checked);
|
|
563
|
+
} }),
|
|
564
|
+
"Rounded corners")),
|
|
420
565
|
basicSpec ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
421
566
|
react_1.default.createElement(Section, { title: "Legend" },
|
|
422
567
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
423
568
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Legend"),
|
|
424
|
-
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent w-32", value: (
|
|
569
|
+
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent w-32", value: (_z = (_y = values === null || values === void 0 ? void 0 : values.spec.legend) === null || _y === void 0 ? void 0 : _y.position) !== null && _z !== void 0 ? _z : "", onChange: function (e) {
|
|
425
570
|
return setFieldValue("spec.legend.position", e.target.value || undefined);
|
|
426
571
|
} },
|
|
427
572
|
react_1.default.createElement("option", { value: "" }, "Auto"),
|
|
@@ -433,7 +578,7 @@ var ChartEditor = function (_a) {
|
|
|
433
578
|
react_1.default.createElement(Section, { title: "Vertical axis" },
|
|
434
579
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
435
580
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Vertical axis title"),
|
|
436
|
-
react_1.default.createElement(ui_1.Input, { value: (
|
|
581
|
+
react_1.default.createElement(ui_1.Input, { value: (_0 = values === null || values === void 0 ? void 0 : values.spec.verticalAxisTitle) !== null && _0 !== void 0 ? _0 : "", type: "text", onChange: function (e) {
|
|
437
582
|
return setFieldValue("spec.verticalAxisTitle", e.target.value);
|
|
438
583
|
}, className: "text-xs", placeholder: "Vertical axis title" })),
|
|
439
584
|
isCartesianBasic ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-2 pb-2" },
|
|
@@ -441,104 +586,112 @@ var ChartEditor = function (_a) {
|
|
|
441
586
|
react_1.default.createElement("div", { className: "flex flex-wrap gap-2 items-end" },
|
|
442
587
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 w-20" },
|
|
443
588
|
react_1.default.createElement("label", { className: "font-system text-xs" }, "Min"),
|
|
444
|
-
react_1.default.createElement(ui_1.Input, { type: "number", value: (
|
|
589
|
+
react_1.default.createElement(ui_1.Input, { type: "number", value: (_2 = (_1 = values === null || values === void 0 ? void 0 : values.spec.valueAxisOptions) === null || _1 === void 0 ? void 0 : _1.min) !== null && _2 !== void 0 ? _2 : "", onChange: function (e) {
|
|
445
590
|
return setFieldValue("spec.valueAxisOptions.min", e.target.value === ""
|
|
446
591
|
? undefined
|
|
447
592
|
: Number(e.target.value));
|
|
448
593
|
}, className: "text-xs", placeholder: "Auto" })),
|
|
449
594
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 w-20" },
|
|
450
595
|
react_1.default.createElement("label", { className: "font-system text-xs" }, "Max"),
|
|
451
|
-
react_1.default.createElement(ui_1.Input, { type: "number", value: (
|
|
596
|
+
react_1.default.createElement(ui_1.Input, { type: "number", value: (_4 = (_3 = values === null || values === void 0 ? void 0 : values.spec.valueAxisOptions) === null || _3 === void 0 ? void 0 : _3.max) !== null && _4 !== void 0 ? _4 : "", onChange: function (e) {
|
|
452
597
|
return setFieldValue("spec.valueAxisOptions.max", e.target.value === ""
|
|
453
598
|
? undefined
|
|
454
599
|
: Number(e.target.value));
|
|
455
600
|
}, className: "text-xs", placeholder: "Auto" }))),
|
|
456
601
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
457
|
-
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((
|
|
602
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_5 = values === null || values === void 0 ? void 0 : values.spec.valueAxisOptions) === null || _5 === void 0 ? void 0 : _5.logarithmic), onChange: function (e) {
|
|
458
603
|
return setFieldValue("spec.valueAxisOptions.logarithmic", e.target.checked || undefined);
|
|
459
604
|
} }),
|
|
460
605
|
"Logarithmic scale"),
|
|
461
606
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
462
|
-
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((
|
|
607
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_6 = values === null || values === void 0 ? void 0 : values.spec.valueAxisOptions) === null || _6 === void 0 ? void 0 : _6.reverse), onChange: function (e) {
|
|
463
608
|
return setFieldValue("spec.valueAxisOptions.reverse", e.target.checked || undefined);
|
|
464
609
|
} }),
|
|
465
610
|
"Reverse direction"),
|
|
466
611
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
467
|
-
react_1.default.createElement("input", { type: "checkbox", checked: ((
|
|
612
|
+
react_1.default.createElement("input", { type: "checkbox", checked: ((_7 = values === null || values === void 0 ? void 0 : values.spec.valueAxisOptions) === null || _7 === void 0 ? void 0 : _7.showMajorGridlines) !==
|
|
468
613
|
false, onChange: function (e) {
|
|
469
614
|
return setFieldValue("spec.valueAxisOptions.showMajorGridlines", e.target.checked);
|
|
470
615
|
} }),
|
|
471
616
|
"Gridlines"),
|
|
617
|
+
react_1.default.createElement("label", { className: "font-system text-xs" }, "Number format"),
|
|
618
|
+
react_1.default.createElement(ui_1.Input, { value: (_9 = (_8 = values === null || values === void 0 ? void 0 : values.spec.valueAxisOptions) === null || _8 === void 0 ? void 0 : _8.numberFormatPattern) !== null && _9 !== void 0 ? _9 : "", type: "text", onChange: function (e) {
|
|
619
|
+
return setFieldValue("spec.valueAxisOptions.numberFormatPattern", e.target.value || undefined);
|
|
620
|
+
}, className: "text-xs w-32", placeholder: "Linked to source" }),
|
|
472
621
|
basicSpec.series.some(function (s) { return s.useSecondaryAxis; }) ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
473
622
|
react_1.default.createElement("label", { className: "font-system text-sm pt-1" }, "Secondary value axis"),
|
|
474
623
|
react_1.default.createElement("div", { className: "flex flex-wrap gap-2 items-end" },
|
|
475
624
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 w-20" },
|
|
476
625
|
react_1.default.createElement("label", { className: "font-system text-xs" }, "Min"),
|
|
477
|
-
react_1.default.createElement(ui_1.Input, { type: "number", value: (
|
|
626
|
+
react_1.default.createElement(ui_1.Input, { type: "number", value: (_11 = (_10 = values === null || values === void 0 ? void 0 : values.spec.secondaryValueAxisOptions) === null || _10 === void 0 ? void 0 : _10.min) !== null && _11 !== void 0 ? _11 : "", onChange: function (e) {
|
|
478
627
|
return setFieldValue("spec.secondaryValueAxisOptions.min", e.target.value === ""
|
|
479
628
|
? undefined
|
|
480
629
|
: Number(e.target.value));
|
|
481
630
|
}, className: "text-xs", placeholder: "Auto" })),
|
|
482
631
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 w-20" },
|
|
483
632
|
react_1.default.createElement("label", { className: "font-system text-xs" }, "Max"),
|
|
484
|
-
react_1.default.createElement(ui_1.Input, { type: "number", value: (
|
|
633
|
+
react_1.default.createElement(ui_1.Input, { type: "number", value: (_13 = (_12 = values === null || values === void 0 ? void 0 : values.spec.secondaryValueAxisOptions) === null || _12 === void 0 ? void 0 : _12.max) !== null && _13 !== void 0 ? _13 : "", onChange: function (e) {
|
|
485
634
|
return setFieldValue("spec.secondaryValueAxisOptions.max", e.target.value === ""
|
|
486
635
|
? undefined
|
|
487
636
|
: Number(e.target.value));
|
|
488
637
|
}, className: "text-xs", placeholder: "Auto" }))),
|
|
489
638
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
490
|
-
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((
|
|
639
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_14 = values === null || values === void 0 ? void 0 : values.spec.secondaryValueAxisOptions) === null || _14 === void 0 ? void 0 : _14.logarithmic), onChange: function (e) {
|
|
491
640
|
return setFieldValue("spec.secondaryValueAxisOptions.logarithmic", e.target.checked || undefined);
|
|
492
641
|
} }),
|
|
493
642
|
"Logarithmic scale"),
|
|
494
643
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
495
|
-
react_1.default.createElement("input", { type: "checkbox", checked: ((
|
|
644
|
+
react_1.default.createElement("input", { type: "checkbox", checked: ((_15 = values === null || values === void 0 ? void 0 : values.spec.secondaryValueAxisOptions) === null || _15 === void 0 ? void 0 : _15.showMajorGridlines) !== false, onChange: function (e) {
|
|
496
645
|
return setFieldValue("spec.secondaryValueAxisOptions.showMajorGridlines", e.target.checked);
|
|
497
646
|
} }),
|
|
498
|
-
"Gridlines")
|
|
647
|
+
"Gridlines"),
|
|
648
|
+
react_1.default.createElement("label", { className: "font-system text-xs" }, "Number format"),
|
|
649
|
+
react_1.default.createElement(ui_1.Input, { value: (_17 = (_16 = values === null || values === void 0 ? void 0 : values.spec.secondaryValueAxisOptions) === null || _16 === void 0 ? void 0 : _16.numberFormatPattern) !== null && _17 !== void 0 ? _17 : "", type: "text", onChange: function (e) {
|
|
650
|
+
return setFieldValue("spec.secondaryValueAxisOptions.numberFormatPattern", e.target.value || undefined);
|
|
651
|
+
}, className: "text-xs w-32", placeholder: "Linked to source" }))) : null)) : null),
|
|
499
652
|
react_1.default.createElement(Section, { title: "Horizontal axis" },
|
|
500
653
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
501
654
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Horizontal axis title"),
|
|
502
|
-
react_1.default.createElement(ui_1.Input, { value: (
|
|
655
|
+
react_1.default.createElement(ui_1.Input, { value: (_18 = values === null || values === void 0 ? void 0 : values.spec.horizontalAxisTitle) !== null && _18 !== void 0 ? _18 : "", type: "text", onChange: function (e) {
|
|
503
656
|
return setFieldValue("spec.horizontalAxisTitle", e.target.value);
|
|
504
657
|
}, className: "text-xs", placeholder: "Horizontal axis title" })),
|
|
505
658
|
isCartesianBasic ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
506
659
|
react_1.default.createElement("label", { className: "font-system text-sm pt-1" }, "Category axis"),
|
|
507
660
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
508
|
-
react_1.default.createElement("input", { type: "checkbox", checked: ((
|
|
661
|
+
react_1.default.createElement("input", { type: "checkbox", checked: ((_19 = values === null || values === void 0 ? void 0 : values.spec.categoryAxisOptions) === null || _19 === void 0 ? void 0 : _19.showMajorGridlines) === true, onChange: function (e) {
|
|
509
662
|
return setFieldValue("spec.categoryAxisOptions.showMajorGridlines", e.target.checked);
|
|
510
663
|
} }),
|
|
511
664
|
"Gridlines"))) : null),
|
|
512
665
|
react_1.default.createElement(Section, { title: "Data labels" },
|
|
513
666
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
514
667
|
react_1.default.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
|
|
515
|
-
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((
|
|
668
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_20 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _20 === void 0 ? void 0 : _20.show), onChange: function (e) {
|
|
516
669
|
return setFieldValue("spec.dataLabels.show", e.target.checked);
|
|
517
670
|
} }),
|
|
518
671
|
"Show data labels"),
|
|
519
|
-
((
|
|
672
|
+
((_21 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _21 === void 0 ? void 0 : _21.show) ? (react_1.default.createElement("div", { className: "pl-4 flex flex-col gap-1" },
|
|
520
673
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
521
|
-
react_1.default.createElement("input", { type: "checkbox", checked: ((
|
|
674
|
+
react_1.default.createElement("input", { type: "checkbox", checked: ((_22 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _22 === void 0 ? void 0 : _22.showValue) !== false, onChange: function (e) {
|
|
522
675
|
return setFieldValue("spec.dataLabels.showValue", e.target.checked);
|
|
523
676
|
} }),
|
|
524
677
|
"Value"),
|
|
525
678
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
526
|
-
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((
|
|
679
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_23 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _23 === void 0 ? void 0 : _23.showCategoryName), onChange: function (e) {
|
|
527
680
|
return setFieldValue("spec.dataLabels.showCategoryName", e.target.checked);
|
|
528
681
|
} }),
|
|
529
682
|
"Category name"),
|
|
530
683
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
531
|
-
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((
|
|
684
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_24 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _24 === void 0 ? void 0 : _24.showSeriesName), onChange: function (e) {
|
|
532
685
|
return setFieldValue("spec.dataLabels.showSeriesName", e.target.checked);
|
|
533
686
|
} }),
|
|
534
687
|
"Series name"),
|
|
535
688
|
react_1.default.createElement("label", { className: "font-system text-xs flex items-center gap-1" },
|
|
536
|
-
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((
|
|
689
|
+
react_1.default.createElement("input", { type: "checkbox", checked: Boolean((_25 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _25 === void 0 ? void 0 : _25.showPercent), onChange: function (e) {
|
|
537
690
|
return setFieldValue("spec.dataLabels.showPercent", e.target.checked);
|
|
538
691
|
} }),
|
|
539
692
|
"Percentage"),
|
|
540
693
|
react_1.default.createElement("label", { className: "font-system text-xs" }, "Label position"),
|
|
541
|
-
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent w-32", value: (
|
|
694
|
+
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent w-32", value: (_27 = (_26 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _26 === void 0 ? void 0 : _26.position) !== null && _27 !== void 0 ? _27 : "outside", onChange: function (e) {
|
|
542
695
|
return setFieldValue("spec.dataLabels.position", e.target.value);
|
|
543
696
|
} },
|
|
544
697
|
react_1.default.createElement("option", { value: "center" }, "Center"),
|
|
@@ -548,55 +701,57 @@ var ChartEditor = function (_a) {
|
|
|
548
701
|
react_1.default.createElement("option", { value: "outsideEnd" }, "Outside end"),
|
|
549
702
|
react_1.default.createElement("option", { value: "bestFit" }, "Best fit")),
|
|
550
703
|
react_1.default.createElement("label", { className: "font-system text-xs" }, "Number format pattern"),
|
|
551
|
-
react_1.default.createElement(ui_1.Input, { value: (
|
|
704
|
+
react_1.default.createElement(ui_1.Input, { value: (_29 = (_28 = values === null || values === void 0 ? void 0 : values.spec.dataLabels) === null || _28 === void 0 ? void 0 : _28.numberFormatPattern) !== null && _29 !== void 0 ? _29 : "", type: "text", onChange: function (e) {
|
|
552
705
|
return setFieldValue("spec.dataLabels.numberFormatPattern", e.target.value || undefined);
|
|
553
706
|
}, className: "text-xs w-32", placeholder: "#,##0.00" }))) : null)),
|
|
554
|
-
basicSpec &&
|
|
555
|
-
(
|
|
556
|
-
basicSpec.chartType === "radar" ||
|
|
557
|
-
basicSpec.chartType === "stock" ||
|
|
558
|
-
basicSpec.chartType === "doughnut" ||
|
|
559
|
-
isBarOrColumnBasic) ? (react_1.default.createElement(Section, { title: "Chart options" },
|
|
560
|
-
basicSpec.chartType === "histogram" ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
707
|
+
basicSpec && showChartOptions ? (react_1.default.createElement(Section, { title: "Chart options" },
|
|
708
|
+
chartOptionControls.binCount ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
561
709
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Bins (leave blank for auto)"),
|
|
562
|
-
react_1.default.createElement(ui_1.Input, { value: (
|
|
710
|
+
react_1.default.createElement(ui_1.Input, { value: (_30 = basicSpec.binCount) !== null && _30 !== void 0 ? _30 : "", type: "number", min: 1, onChange: function (e) {
|
|
563
711
|
var raw = e.target.value;
|
|
564
712
|
setFieldValue("spec.binCount", raw === "" ? undefined : Number(raw));
|
|
565
713
|
}, className: "text-xs", placeholder: "Auto (Sturges)" }))) : null,
|
|
566
|
-
|
|
714
|
+
chartOptionControls.radarStyle ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
567
715
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Radar style"),
|
|
568
|
-
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent", value: (
|
|
716
|
+
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent", value: (_31 = basicSpec.radarStyle) !== null && _31 !== void 0 ? _31 : "standard", onChange: function (e) {
|
|
569
717
|
return setFieldValue("spec.radarStyle", e.target.value);
|
|
570
718
|
} },
|
|
571
719
|
react_1.default.createElement("option", { value: "standard" }, "Standard"),
|
|
572
720
|
react_1.default.createElement("option", { value: "marker" }, "With markers"),
|
|
573
721
|
react_1.default.createElement("option", { value: "filled" }, "Filled")))) : null,
|
|
574
|
-
|
|
722
|
+
chartOptionControls.stockVariant ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
575
723
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Stock variant"),
|
|
576
|
-
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent", value: (
|
|
724
|
+
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent", value: (_32 = basicSpec.stockVariant) !== null && _32 !== void 0 ? _32 : "HLC", onChange: function (e) {
|
|
577
725
|
return setFieldValue("spec.stockVariant", e.target.value);
|
|
578
726
|
} },
|
|
579
727
|
react_1.default.createElement("option", { value: "HLC" }, "High-Low-Close"),
|
|
580
728
|
react_1.default.createElement("option", { value: "OHLC" }, "Open-High-Low-Close"),
|
|
581
729
|
react_1.default.createElement("option", { value: "VHLC" }, "Volume-High-Low-Close"),
|
|
582
730
|
react_1.default.createElement("option", { value: "VOHLC" }, "Volume-Open-High-Low-Close")))) : null,
|
|
583
|
-
|
|
731
|
+
chartOptionControls.doughnutHoleSize ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
584
732
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Doughnut hole size (0-0.9)"),
|
|
585
|
-
react_1.default.createElement(ui_1.Input, { type: "number", min: 0, max: 0.9, step: 0.05, value: (
|
|
733
|
+
react_1.default.createElement(ui_1.Input, { type: "number", min: 0, max: 0.9, step: 0.05, value: (_33 = basicSpec.doughnutHoleSize) !== null && _33 !== void 0 ? _33 : "", onChange: function (e) {
|
|
586
734
|
return setFieldValue("spec.doughnutHoleSize", e.target.value === ""
|
|
587
735
|
? undefined
|
|
588
736
|
: Number(e.target.value));
|
|
589
737
|
}, className: "text-xs w-32", placeholder: "0.5" }))) : null,
|
|
590
|
-
|
|
738
|
+
chartOptionControls.explosion ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
739
|
+
react_1.default.createElement("label", { className: "font-system text-sm" }, "Explosion (% of radius, 0-400)"),
|
|
740
|
+
react_1.default.createElement(ui_1.Input, { type: "number", min: 0, max: 400, step: 5, "aria-label": "Explosion", value: (_34 = basicSpec.explosion) !== null && _34 !== void 0 ? _34 : "", onChange: function (e) {
|
|
741
|
+
return setFieldValue("spec.explosion", e.target.value === ""
|
|
742
|
+
? undefined
|
|
743
|
+
: Number(e.target.value));
|
|
744
|
+
}, className: "text-xs w-32", placeholder: "0" }))) : null,
|
|
745
|
+
chartOptionControls.gapWidth ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
591
746
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Gap width (0-500)"),
|
|
592
|
-
react_1.default.createElement(ui_1.Input, { type: "number", min: 0, max: 500, value: (
|
|
747
|
+
react_1.default.createElement(ui_1.Input, { type: "number", min: 0, max: 500, value: (_35 = basicSpec.gapWidth) !== null && _35 !== void 0 ? _35 : "", onChange: function (e) {
|
|
593
748
|
return setFieldValue("spec.gapWidth", e.target.value === ""
|
|
594
749
|
? undefined
|
|
595
750
|
: Number(e.target.value));
|
|
596
751
|
}, className: "text-xs w-32", placeholder: "150" }))) : null,
|
|
597
|
-
|
|
752
|
+
chartOptionControls.overlap ? (react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
598
753
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Series overlap (-100 to 100)"),
|
|
599
|
-
react_1.default.createElement(ui_1.Input, { type: "number", min: -100, max: 100, value: (
|
|
754
|
+
react_1.default.createElement(ui_1.Input, { type: "number", min: -100, max: 100, value: (_36 = basicSpec.overlap) !== null && _36 !== void 0 ? _36 : "", onChange: function (e) {
|
|
600
755
|
return setFieldValue("spec.overlap", e.target.value === ""
|
|
601
756
|
? undefined
|
|
602
757
|
: Number(e.target.value));
|
|
@@ -604,7 +759,7 @@ var ChartEditor = function (_a) {
|
|
|
604
759
|
bubbleSpec && bubbleSpec.chartType === "scatter" ? (react_1.default.createElement(Section, { title: "Chart options" },
|
|
605
760
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
606
761
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Scatter style"),
|
|
607
|
-
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent w-56", value: (
|
|
762
|
+
react_1.default.createElement("select", { className: "border border-rnc-border rounded-sm px-1 py-1 text-xs bg-transparent w-56", value: (_37 = bubbleSpec.scatterStyle) !== null && _37 !== void 0 ? _37 : "lineMarker", onChange: function (e) {
|
|
608
763
|
return setFieldValue("spec.scatterStyle", e.target.value);
|
|
609
764
|
} },
|
|
610
765
|
react_1.default.createElement("option", { value: "lineMarker" }, "Straight lines with markers"),
|
|
@@ -615,14 +770,25 @@ var ChartEditor = function (_a) {
|
|
|
615
770
|
bubbleSpec ? (react_1.default.createElement(Section, { title: "Axis titles" },
|
|
616
771
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
617
772
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Vertical axis title"),
|
|
618
|
-
react_1.default.createElement(ui_1.Input, { value: (
|
|
773
|
+
react_1.default.createElement(ui_1.Input, { value: (_38 = values === null || values === void 0 ? void 0 : values.spec.verticalAxisTitle) !== null && _38 !== void 0 ? _38 : "", type: "text", onChange: function (e) {
|
|
619
774
|
return setFieldValue("spec.verticalAxisTitle", e.target.value);
|
|
620
775
|
}, className: "text-xs", placeholder: "Vertical axis title" })),
|
|
621
776
|
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2" },
|
|
622
777
|
react_1.default.createElement("label", { className: "font-system text-sm" }, "Horizontal axis title"),
|
|
623
|
-
react_1.default.createElement(ui_1.Input, { value: (
|
|
778
|
+
react_1.default.createElement(ui_1.Input, { value: (_39 = values === null || values === void 0 ? void 0 : values.spec.horizontalAxisTitle) !== null && _39 !== void 0 ? _39 : "", type: "text", onChange: function (e) {
|
|
624
779
|
return setFieldValue("spec.horizontalAxisTitle", e.target.value);
|
|
625
|
-
}, className: "text-xs", placeholder: "Horizontal axis title" })))) : null
|
|
780
|
+
}, className: "text-xs", placeholder: "Horizontal axis title" })))) : null,
|
|
781
|
+
react_1.default.createElement(Section, { title: "Properties" },
|
|
782
|
+
react_1.default.createElement(ui_1.Stack, { direction: "vertical", className: "gap-1 pb-2", role: "radiogroup" }, CHART_PLACEMENT_OPTIONS.map(function (_a) {
|
|
783
|
+
var _b;
|
|
784
|
+
var label = _a.label, value = _a.value;
|
|
785
|
+
return (react_1.default.createElement("label", { key: value, className: "font-system text-sm flex items-center gap-1" },
|
|
786
|
+
react_1.default.createElement("input", { type: "radio", name: "placement", value: value, checked: ((_b = values.position.overlayPosition.placement) !== null && _b !== void 0 ? _b : "moveAndSize") === value, onChange: function () {
|
|
787
|
+
return setFieldValue("position.overlayPosition.placement", value);
|
|
788
|
+
} }),
|
|
789
|
+
label));
|
|
790
|
+
})),
|
|
791
|
+
onRequestMoveChart && chart ? (react_1.default.createElement(ui_1.Button, { type: "button", size: "xs", className: "mb-2", onClick: function () { return onRequestMoveChart(chart); } }, "Move chart\u2026")) : null))),
|
|
626
792
|
react_1.default.createElement("div", { className: "flex gap-1 py-2 mt-1" },
|
|
627
793
|
react_1.default.createElement(ui_1.Button, { type: "submit", variant: "primary", size: "xs" }, "Save"),
|
|
628
794
|
react_1.default.createElement(ui_1.Button, { size: "xs", onClick: onCancelForm, type: "button" }, "Cancel"))));
|
package/dist/cjs/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAqR3D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAgB1E,CAAC;AAYJ;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,OAAO,CAAC,SAAS,CAAC,KAAG,OAQzD,CAAC;AAuBF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,OAAO,CAAC,SAAS,CAAC,KAAG,MA4B9D,CAAC"}
|