@rowsncolumns/charts 28.0.0 → 28.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +13 -9
package/dist/esm/config.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_PIE_EXPLOSION } from "./utils/pie-explosion";
|
|
1
2
|
// Excel's 3-D chart classes degrade to a 2-D chartType with the authored
|
|
2
3
|
// class kept as `sourceChartType` (BAR_3D, LINE_3D, PIE_3D, AREA_3D,
|
|
3
4
|
// SURFACE, SURFACE_3D). The renderer draws BAR_3D / LINE_3D / AREA_3D /
|
|
@@ -5,14 +6,85 @@
|
|
|
5
6
|
// 2-D pie) and both exporters write the matching `<c:…3DChart>` element.
|
|
6
7
|
// A 2-D preset in the same family carries no token, and mergeChartSpec
|
|
7
8
|
// clears a picker-authored one on that pick.
|
|
9
|
+
//
|
|
10
|
+
// Every preset in a family sets every field that distinguishes its
|
|
11
|
+
// siblings (PRESET_DISCRIMINATORS): a preset that omits one keeps whatever
|
|
12
|
+
// the previous pick left behind — rowsncolumns/spreadsheet#85 was "Line"
|
|
13
|
+
// staying stacked after "Stacked line" because it never wrote stackedType.
|
|
8
14
|
const LINE_CHART_TYPES = [
|
|
9
|
-
[
|
|
15
|
+
[
|
|
16
|
+
"Line",
|
|
17
|
+
{
|
|
18
|
+
chartType: "line",
|
|
19
|
+
smooth: false,
|
|
20
|
+
stackedType: "UNSTACKED",
|
|
21
|
+
showMarkers: false,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
10
24
|
[
|
|
11
25
|
"Stacked line",
|
|
12
|
-
{
|
|
26
|
+
{
|
|
27
|
+
chartType: "line",
|
|
28
|
+
smooth: false,
|
|
29
|
+
stackedType: "STACKED",
|
|
30
|
+
showMarkers: false,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
"100% stacked line",
|
|
35
|
+
{
|
|
36
|
+
chartType: "line",
|
|
37
|
+
smooth: false,
|
|
38
|
+
stackedType: "PERCENT_STACKED",
|
|
39
|
+
showMarkers: false,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
[
|
|
43
|
+
"Line with markers",
|
|
44
|
+
{
|
|
45
|
+
chartType: "line",
|
|
46
|
+
smooth: false,
|
|
47
|
+
stackedType: "UNSTACKED",
|
|
48
|
+
showMarkers: true,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
[
|
|
52
|
+
"Stacked line with markers",
|
|
53
|
+
{
|
|
54
|
+
chartType: "line",
|
|
55
|
+
smooth: false,
|
|
56
|
+
stackedType: "STACKED",
|
|
57
|
+
showMarkers: true,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
"100% stacked line with markers",
|
|
62
|
+
{
|
|
63
|
+
chartType: "line",
|
|
64
|
+
smooth: false,
|
|
65
|
+
stackedType: "PERCENT_STACKED",
|
|
66
|
+
showMarkers: true,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
"Smooth line",
|
|
71
|
+
{
|
|
72
|
+
chartType: "line",
|
|
73
|
+
smooth: true,
|
|
74
|
+
stackedType: "UNSTACKED",
|
|
75
|
+
showMarkers: false,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
"3-D Line",
|
|
80
|
+
{
|
|
81
|
+
chartType: "line",
|
|
82
|
+
smooth: false,
|
|
83
|
+
stackedType: "UNSTACKED",
|
|
84
|
+
showMarkers: false,
|
|
85
|
+
sourceChartType: "LINE_3D",
|
|
86
|
+
},
|
|
13
87
|
],
|
|
14
|
-
["Smooth line", { chartType: "line", smooth: true }],
|
|
15
|
-
["3-D Line", { chartType: "line", smooth: false, sourceChartType: "LINE_3D" }],
|
|
16
88
|
];
|
|
17
89
|
const COLUMN_CHART_TYPES = [
|
|
18
90
|
["Clustered Column", { chartType: "column", stackedType: "UNSTACKED" }],
|
|
@@ -25,6 +97,18 @@ const COLUMN_CHART_TYPES = [
|
|
|
25
97
|
"3-D Column",
|
|
26
98
|
{ chartType: "column", stackedType: "UNSTACKED", sourceChartType: "BAR_3D" },
|
|
27
99
|
],
|
|
100
|
+
[
|
|
101
|
+
"3-D Stacked column",
|
|
102
|
+
{ chartType: "column", stackedType: "STACKED", sourceChartType: "BAR_3D" },
|
|
103
|
+
],
|
|
104
|
+
[
|
|
105
|
+
"3-D 100% stacked column",
|
|
106
|
+
{
|
|
107
|
+
chartType: "column",
|
|
108
|
+
stackedType: "PERCENT_STACKED",
|
|
109
|
+
sourceChartType: "BAR_3D",
|
|
110
|
+
},
|
|
111
|
+
],
|
|
28
112
|
];
|
|
29
113
|
const BAR_CHART_TYPES = [
|
|
30
114
|
["Clustered Bar", { chartType: "bar", stackedType: "UNSTACKED" }],
|
|
@@ -34,6 +118,18 @@ const BAR_CHART_TYPES = [
|
|
|
34
118
|
"3-D Bar",
|
|
35
119
|
{ chartType: "bar", stackedType: "UNSTACKED", sourceChartType: "BAR_3D" },
|
|
36
120
|
],
|
|
121
|
+
[
|
|
122
|
+
"3-D Stacked Bar",
|
|
123
|
+
{ chartType: "bar", stackedType: "STACKED", sourceChartType: "BAR_3D" },
|
|
124
|
+
],
|
|
125
|
+
[
|
|
126
|
+
"3-D 100% stacked Bar",
|
|
127
|
+
{
|
|
128
|
+
chartType: "bar",
|
|
129
|
+
stackedType: "PERCENT_STACKED",
|
|
130
|
+
sourceChartType: "BAR_3D",
|
|
131
|
+
},
|
|
132
|
+
],
|
|
37
133
|
];
|
|
38
134
|
const AREA_CHART_TYPES = [
|
|
39
135
|
["Area", { chartType: "area", stackedType: "UNSTACKED" }],
|
|
@@ -50,16 +146,43 @@ const SURFACE_CHART_TYPES = [
|
|
|
50
146
|
["3-D Surface", { chartType: "area", sourceChartType: "SURFACE_3D" }],
|
|
51
147
|
["Contour", { chartType: "area", sourceChartType: "SURFACE" }],
|
|
52
148
|
];
|
|
149
|
+
// Pie presets set `explosion` explicitly (0 vs Excel's 25) so picking
|
|
150
|
+
// "2D Pie" after "Exploded pie" pulls the slices back together.
|
|
53
151
|
const PIE_CHART_TYPES = [
|
|
54
152
|
[
|
|
55
153
|
"2D Pie",
|
|
56
|
-
{
|
|
154
|
+
{
|
|
155
|
+
chartType: "pie",
|
|
156
|
+
stackedType: "UNSTACKED",
|
|
157
|
+
radius: [0, "75%"],
|
|
158
|
+
explosion: 0,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
[
|
|
162
|
+
"Exploded pie",
|
|
163
|
+
{
|
|
164
|
+
chartType: "pie",
|
|
165
|
+
stackedType: "UNSTACKED",
|
|
166
|
+
radius: [0, "75%"],
|
|
167
|
+
explosion: DEFAULT_PIE_EXPLOSION,
|
|
168
|
+
},
|
|
57
169
|
],
|
|
58
170
|
// A first-class doughnut token. The hole is controlled by
|
|
59
171
|
// spec.doughnutHoleSize (0-1 fraction, renderer default 0.5) via the
|
|
60
172
|
// editor's "Chart options" section; the preset deliberately omits it
|
|
61
173
|
// so re-picking "Doughnut" never clobbers an authored hole size.
|
|
62
|
-
[
|
|
174
|
+
[
|
|
175
|
+
"Doughnut",
|
|
176
|
+
{ chartType: "doughnut", stackedType: "UNSTACKED", explosion: 0 },
|
|
177
|
+
],
|
|
178
|
+
[
|
|
179
|
+
"Exploded doughnut",
|
|
180
|
+
{
|
|
181
|
+
chartType: "doughnut",
|
|
182
|
+
stackedType: "UNSTACKED",
|
|
183
|
+
explosion: DEFAULT_PIE_EXPLOSION,
|
|
184
|
+
},
|
|
185
|
+
],
|
|
63
186
|
[
|
|
64
187
|
"3-D Pie",
|
|
65
188
|
{
|
|
@@ -123,9 +246,13 @@ const RADAR_CHART_TYPES = [
|
|
|
123
246
|
["Radar with markers", { chartType: "radar", radarStyle: "marker" }],
|
|
124
247
|
["Filled radar", { chartType: "radar", radarStyle: "filled" }],
|
|
125
248
|
];
|
|
249
|
+
// Excel's four stock layouts, named by the series they take in order.
|
|
250
|
+
// The V-variants lead with a volume series drawn as a column sub-pane.
|
|
126
251
|
const STOCK_CHART_TYPES = [
|
|
127
252
|
["Stock (HLC)", { chartType: "stock", stockVariant: "HLC" }],
|
|
128
253
|
["Stock (OHLC)", { chartType: "stock", stockVariant: "OHLC" }],
|
|
254
|
+
["Stock (VHLC)", { chartType: "stock", stockVariant: "VHLC" }],
|
|
255
|
+
["Stock (VOHLC)", { chartType: "stock", stockVariant: "VOHLC" }],
|
|
129
256
|
];
|
|
130
257
|
export const CHART_TYPES = [
|
|
131
258
|
["Bar", BAR_CHART_TYPES],
|
|
@@ -175,16 +302,20 @@ export const isDoughnutSpec = (spec) => {
|
|
|
175
302
|
/**
|
|
176
303
|
* Fields that distinguish presets sharing a chartType, with the value
|
|
177
304
|
* an absent field is equivalent to (e.g. no stackedType renders
|
|
178
|
-
* unstacked, so `{ chartType: "column" }` is "Clustered Column").
|
|
305
|
+
* unstacked, so `{ chartType: "column" }` is "Clustered Column"). An
|
|
306
|
+
* optional normalizer folds a range of authored values onto the preset's
|
|
307
|
+
* (any explosion percentage is "exploded").
|
|
179
308
|
*/
|
|
180
309
|
const PRESET_DISCRIMINATORS = [
|
|
181
310
|
["stackedType", "UNSTACKED"],
|
|
182
311
|
["smooth", false],
|
|
312
|
+
["showMarkers", false],
|
|
183
313
|
["radarStyle", "standard"],
|
|
184
314
|
["stockVariant", "HLC"],
|
|
185
315
|
// 3-D / of-pie variants share a chartType with their 2-D preset.
|
|
186
316
|
["sourceChartType", undefined],
|
|
187
317
|
["ofPieType", "pie"],
|
|
318
|
+
["explosion", 0, (value) => typeof value === "number" && value > 0],
|
|
188
319
|
];
|
|
189
320
|
/**
|
|
190
321
|
* Derive the picker label for an existing spec — the inverse of the
|
|
@@ -194,20 +325,26 @@ const PRESET_DISCRIMINATORS = [
|
|
|
194
325
|
* Falls back to the capitalized chartType when no preset matches.
|
|
195
326
|
*/
|
|
196
327
|
export const getChartPresetLabel = (spec) => {
|
|
328
|
+
const loose = spec;
|
|
197
329
|
// Doughnut first — it has several encodings (see isDoughnutSpec) and
|
|
198
330
|
// the legacy pie-based ones would otherwise match the pie presets.
|
|
199
|
-
if (isDoughnutSpec(spec))
|
|
200
|
-
|
|
201
|
-
|
|
331
|
+
if (isDoughnutSpec(spec)) {
|
|
332
|
+
const explosion = loose.explosion;
|
|
333
|
+
return typeof explosion === "number" && explosion > 0
|
|
334
|
+
? "Exploded doughnut"
|
|
335
|
+
: "Doughnut";
|
|
336
|
+
}
|
|
202
337
|
for (const [, presets] of CHART_TYPES) {
|
|
203
338
|
for (const [name, config] of presets) {
|
|
204
339
|
if (config.chartType !== spec.chartType)
|
|
205
340
|
continue;
|
|
206
341
|
const looseConfig = config;
|
|
207
|
-
const matches = PRESET_DISCRIMINATORS.every(([key, absentValue]) => {
|
|
342
|
+
const matches = PRESET_DISCRIMINATORS.every(([key, absentValue, normalize]) => {
|
|
208
343
|
const presetValue = looseConfig[key] ?? absentValue;
|
|
209
344
|
const specValue = loose[key] ?? absentValue;
|
|
210
|
-
return
|
|
345
|
+
return normalize
|
|
346
|
+
? normalize(presetValue) === normalize(specValue)
|
|
347
|
+
: presetValue === specValue;
|
|
211
348
|
});
|
|
212
349
|
if (matches)
|
|
213
350
|
return name;
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import type { EmbeddedChart } from "@rowsncolumns/spreadsheet";
|
|
2
|
-
import type { UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
|
|
3
|
-
export type UseChartsProps = {
|
|
1
|
+
import type { EmbeddedChart, Sheet } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
import type { GeneratedNames, UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
|
|
3
|
+
export type UseChartsProps<S extends Sheet = Sheet> = {
|
|
4
4
|
/**
|
|
5
5
|
* Callback when chart state is changed
|
|
6
6
|
*/
|
|
7
7
|
onChangeCharts?: React.Dispatch<React.SetStateAction<EmbeddedChart[]>>;
|
|
8
|
+
/**
|
|
9
|
+
* Callback when sheets change. Required for `onMoveChartToSheet` (Excel's
|
|
10
|
+
* "Move Chart…"), which adds / removes chartsheets.
|
|
11
|
+
*/
|
|
12
|
+
onChangeSheets?: React.Dispatch<React.SetStateAction<S[]>>;
|
|
13
|
+
/**
|
|
14
|
+
* Switch the active sheet — `onMoveChartToSheet` follows the chart to its
|
|
15
|
+
* destination sheet like Excel.
|
|
16
|
+
*/
|
|
17
|
+
onChangeActiveSheet?: (sheetId: number) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Generated-name formatters (`Chart1` for a new chartsheet).
|
|
20
|
+
*/
|
|
21
|
+
generatedNames?: GeneratedNames;
|
|
8
22
|
/**
|
|
9
23
|
* Create a spreadsheet history
|
|
10
24
|
*/
|
|
@@ -22,14 +36,15 @@ export type UseChartsProps = {
|
|
|
22
36
|
*/
|
|
23
37
|
idCreationStrategy?: UseSpreadsheetProps["idCreationStrategy"];
|
|
24
38
|
};
|
|
25
|
-
export declare const useCharts: ({ onChangeCharts, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, }: UseChartsProps) => {
|
|
39
|
+
export declare const useCharts: <S extends Sheet = Sheet>({ onChangeCharts, onChangeSheets, onChangeActiveSheet, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, generatedNames, }: UseChartsProps<S>) => {
|
|
26
40
|
selectedChart: EmbeddedChart | undefined;
|
|
27
41
|
onRequestEditChart: (chart: EmbeddedChart) => void;
|
|
28
42
|
updateSelectedChartPosition: (chartId: string | number, overlayPosition: Partial<import("@rowsncolumns/spreadsheet").OverlayPosition>) => void;
|
|
29
43
|
onCreateChart: (sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, selections: import("@rowsncolumns/grid").SelectionArea<import("@rowsncolumns/spreadsheet").SelectionAttributes>[], chartSpec?: EmbeddedChart) => EmbeddedChart;
|
|
30
44
|
onDeleteChart: (chartId: string | number) => void;
|
|
31
|
-
onMoveChart: (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number) => void;
|
|
32
|
-
|
|
45
|
+
onMoveChart: (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, toAnchor?: import("@rowsncolumns/spreadsheet").OverlayToAnchor) => void;
|
|
46
|
+
onMoveChartToSheet: ((chart: EmbeddedChart, target: import("@rowsncolumns/spreadsheet").MoveChartTarget) => number | undefined) | undefined;
|
|
47
|
+
onResizeChart: (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number, toAnchor?: import("@rowsncolumns/spreadsheet").OverlayToAnchor) => void;
|
|
33
48
|
onUpdateChart: (chart: EmbeddedChart) => void;
|
|
34
49
|
};
|
|
35
50
|
//# sourceMappingURL=use-charts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-charts.d.ts","sourceRoot":"","sources":["../../../hooks/use-charts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"use-charts.d.ts","sourceRoot":"","sources":["../../../hooks/use-charts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAWzC,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACvE;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;OAEG;IACH,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACvE;;OAEG;IACH,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB;;OAEG;IACH,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;CAChE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,mJAShD,cAAc,CAAC,CAAC,CAAC;;;;;;;;;;CAwFnB,CAAC"}
|
|
@@ -2,10 +2,11 @@ import { useCallback } from "react";
|
|
|
2
2
|
import { useChartEditor } from "./use-chart-editor";
|
|
3
3
|
import { useOnDeleteChart } from "./use-on-delete-chart";
|
|
4
4
|
import { useOnMoveChart } from "./use-on-move-chart";
|
|
5
|
+
import { useOnMoveChartToSheet } from "./use-on-move-chart-to-sheet";
|
|
5
6
|
import { useOnResizeChart } from "./use-on-resize-chart";
|
|
6
7
|
import { useOnUpdateChart } from "./use-on-update-chart";
|
|
7
8
|
import { useOnCreateChart } from "./use-on-create-chart";
|
|
8
|
-
export const useCharts = ({ onChangeCharts, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, }) => {
|
|
9
|
+
export const useCharts = ({ onChangeCharts, onChangeSheets, onChangeActiveSheet, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, generatedNames, }) => {
|
|
9
10
|
const { selectedChart, onRequestEditChart, updateSelectedChartPosition } = useChartEditor();
|
|
10
11
|
const onDeleteChart = useOnDeleteChart({
|
|
11
12
|
onChangeCharts,
|
|
@@ -42,6 +43,15 @@ export const useCharts = ({ onChangeCharts, getFormattedValue, getEffectiveValue
|
|
|
42
43
|
onChangeCharts,
|
|
43
44
|
createHistory,
|
|
44
45
|
});
|
|
46
|
+
const handleMoveChartToSheet = useOnMoveChartToSheet({
|
|
47
|
+
onChangeCharts,
|
|
48
|
+
onChangeSheets: onChangeSheets ?? noopDispatch,
|
|
49
|
+
onChangeActiveSheet,
|
|
50
|
+
createHistory,
|
|
51
|
+
idCreationStrategy,
|
|
52
|
+
generatedNames,
|
|
53
|
+
});
|
|
54
|
+
const onMoveChartToSheet = onChangeSheets ? handleMoveChartToSheet : undefined;
|
|
45
55
|
const onCreateChart = useOnCreateChart({
|
|
46
56
|
onChangeCharts,
|
|
47
57
|
createHistory,
|
|
@@ -56,7 +66,9 @@ export const useCharts = ({ onChangeCharts, getFormattedValue, getEffectiveValue
|
|
|
56
66
|
onCreateChart,
|
|
57
67
|
onDeleteChart,
|
|
58
68
|
onMoveChart,
|
|
69
|
+
onMoveChartToSheet,
|
|
59
70
|
onResizeChart,
|
|
60
71
|
onUpdateChart,
|
|
61
72
|
};
|
|
62
73
|
};
|
|
74
|
+
const noopDispatch = () => { };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-create-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-create-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,KAAK,QAAQ,EACb,mBAAmB,EACnB,aAAa,
|
|
1
|
+
{"version":3,"file":"use-on-create-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-create-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,KAAK,QAAQ,EACb,mBAAmB,EACnB,aAAa,EAEd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACvE,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB,kBAAkB,CAAC,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;CAC3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,8FAMlD,qBAAqB,CAAC,CAAC,CAAC,eAIZ,MAAM,cACH,aAAa,cACb,aAAa,CAAC,mBAAmB,CAAC,EAAE,cACpC,aAAa,kBAsB9B,CAAC"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
|
+
import { useFocusEmbedOrChart, } from "@rowsncolumns/spreadsheet";
|
|
1
2
|
import { useCallback } from "react";
|
|
2
3
|
import { createChart } from "../interface/create-chart";
|
|
3
4
|
export const useOnCreateChart = ({ onChangeCharts, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, }) => {
|
|
5
|
+
const focusEmbedOrChart = useFocusEmbedOrChart();
|
|
4
6
|
return useCallback((sheetId, activeCell, selections, chartSpec) => {
|
|
5
|
-
|
|
7
|
+
const chart = createChart({
|
|
6
8
|
onChangeCharts,
|
|
7
9
|
getFormattedValue,
|
|
8
10
|
getEffectiveValue,
|
|
9
11
|
createHistory,
|
|
10
12
|
idCreationStrategy,
|
|
11
13
|
})(sheetId, activeCell, selections, chartSpec);
|
|
14
|
+
// Excel selects a freshly inserted chart.
|
|
15
|
+
focusEmbedOrChart(chart.chartId);
|
|
16
|
+
return chart;
|
|
12
17
|
}, [
|
|
13
18
|
onChangeCharts,
|
|
14
19
|
getFormattedValue,
|
|
15
20
|
getEffectiveValue,
|
|
16
21
|
createHistory,
|
|
17
22
|
idCreationStrategy,
|
|
23
|
+
focusEmbedOrChart,
|
|
18
24
|
]);
|
|
19
25
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CellData, EmbeddedChart, MoveChartTarget, Sheet } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
import type { GeneratedNames, UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
|
|
3
|
+
export type UseOnMoveChartToSheetProps<T extends CellData, S extends Sheet = Sheet> = {
|
|
4
|
+
onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
|
|
5
|
+
onChangeSheets: React.Dispatch<React.SetStateAction<S[]>>;
|
|
6
|
+
onChangeActiveSheet?: (sheetId: number) => void;
|
|
7
|
+
createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
|
|
8
|
+
idCreationStrategy?: UseSpreadsheetProps<T>["idCreationStrategy"];
|
|
9
|
+
generatedNames?: GeneratedNames;
|
|
10
|
+
};
|
|
11
|
+
export declare const useOnMoveChartToSheet: <T extends CellData, S extends Sheet = Sheet>({ onChangeCharts, onChangeSheets, onChangeActiveSheet, createHistory, idCreationStrategy, generatedNames, }: UseOnMoveChartToSheetProps<T, S>) => (chart: EmbeddedChart, target: MoveChartTarget) => number | undefined;
|
|
12
|
+
//# sourceMappingURL=use-on-move-chart-to-sheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-on-move-chart-to-sheet.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-chart-to-sheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EACf,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,0BAA0B,CACpC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,GAAG,KAAK,IACrB;IACF,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACvE,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAClE,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,6GAOC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,aAEvB,aAAa,UAAU,eAAe,uBAkBjD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { moveChartToSheet } from "../interface/move-chart-to-sheet";
|
|
3
|
+
export const useOnMoveChartToSheet = ({ onChangeCharts, onChangeSheets, onChangeActiveSheet, createHistory, idCreationStrategy, generatedNames, }) => {
|
|
4
|
+
return useCallback((chart, target) => moveChartToSheet({
|
|
5
|
+
onChangeCharts,
|
|
6
|
+
onChangeSheets,
|
|
7
|
+
onChangeActiveSheet,
|
|
8
|
+
createHistory,
|
|
9
|
+
idCreationStrategy,
|
|
10
|
+
generatedNames,
|
|
11
|
+
})(chart, target), [
|
|
12
|
+
onChangeCharts,
|
|
13
|
+
onChangeSheets,
|
|
14
|
+
onChangeActiveSheet,
|
|
15
|
+
createHistory,
|
|
16
|
+
idCreationStrategy,
|
|
17
|
+
generatedNames,
|
|
18
|
+
]);
|
|
19
|
+
};
|
|
@@ -4,5 +4,5 @@ export type UseOnMoveChartProps<T extends CellData> = {
|
|
|
4
4
|
onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
|
|
5
5
|
createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
|
|
6
6
|
};
|
|
7
|
-
export declare const useOnMoveChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnMoveChartProps<T>) => (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number) => void;
|
|
7
|
+
export declare const useOnMoveChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnMoveChartProps<T>) => (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, toAnchor?: import("@rowsncolumns/spreadsheet").OverlayToAnchor) => void;
|
|
8
8
|
//# sourceMappingURL=use-on-move-chart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-move-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACpD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGhD,mBAAmB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"use-on-move-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACpD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGhD,mBAAmB,CAAC,CAAC,CAAC,6MAUxB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
2
|
import { moveChart } from "../interface/move-chart";
|
|
3
3
|
export const useOnMoveChart = ({ onChangeCharts, createHistory, }) => {
|
|
4
|
-
return useCallback((chartId, anchorCell, offsetXPixels, offsetYPixels) => {
|
|
4
|
+
return useCallback((chartId, anchorCell, offsetXPixels, offsetYPixels, toAnchor) => {
|
|
5
5
|
moveChart({
|
|
6
6
|
onChangeCharts,
|
|
7
7
|
createHistory,
|
|
8
|
-
})(chartId, anchorCell, offsetXPixels, offsetYPixels);
|
|
8
|
+
})(chartId, anchorCell, offsetXPixels, offsetYPixels, toAnchor);
|
|
9
9
|
}, [onChangeCharts, createHistory]);
|
|
10
10
|
};
|
|
@@ -4,5 +4,5 @@ export type UseOnResizeChartProps<T extends CellData> = {
|
|
|
4
4
|
onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
|
|
5
5
|
createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
|
|
6
6
|
};
|
|
7
|
-
export declare const useOnResizeChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnResizeChartProps<T>) => (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number) => void;
|
|
7
|
+
export declare const useOnResizeChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnResizeChartProps<T>) => (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number, toAnchor?: import("@rowsncolumns/spreadsheet").OverlayToAnchor) => void;
|
|
8
8
|
//# sourceMappingURL=use-on-resize-chart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-resize-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-resize-chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGlD,qBAAqB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"use-on-resize-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-resize-chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGlD,qBAAqB,CAAC,CAAC,CAAC,4OA0B1B,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
2
|
import { resizeChart } from "../interface/resize-chart";
|
|
3
3
|
export const useOnResizeChart = ({ onChangeCharts, createHistory, }) => {
|
|
4
|
-
return useCallback((chartId, anchorCell, offsetXPixels, offsetYPixels, width, height) => {
|
|
4
|
+
return useCallback((chartId, anchorCell, offsetXPixels, offsetYPixels, width, height, toAnchor) => {
|
|
5
5
|
resizeChart({
|
|
6
6
|
onChangeCharts,
|
|
7
7
|
createHistory,
|
|
8
|
-
})(chartId, anchorCell, offsetXPixels, offsetYPixels, width, height);
|
|
8
|
+
})(chartId, anchorCell, offsetXPixels, offsetYPixels, width, height, toAnchor);
|
|
9
9
|
}, [onChangeCharts, createHistory]);
|
|
10
10
|
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,11 +2,22 @@ export * from "./hooks/use-charts";
|
|
|
2
2
|
export * from "./components/dialogs/chart-editor-dialog";
|
|
3
3
|
export * from "./components/editors/chart-editor";
|
|
4
4
|
export * from "./basic-chart";
|
|
5
|
+
export { canSwitchRowColumn, deriveChartSeriesFromRange, inferSeriesOrientation, pickSeriesOrientationForRange, switchRowColumn, } from "./utils/chart-orientation";
|
|
6
|
+
export type { ChartCellLabelGetter, SeriesOrientation, } from "./utils/chart-orientation";
|
|
7
|
+
export { applyEmptyCellsPolicy, connectsAcrossEmptyCells, getEmptyCellsPolicy, } from "./utils/empty-cells";
|
|
8
|
+
export type { EmptyCellsPolicy } from "./utils/empty-cells";
|
|
5
9
|
export { registerChartGeoMap } from "./utils/region-map-loader";
|
|
6
10
|
export * from "./interface/create-chart";
|
|
7
11
|
export * from "./interface/delete-chart";
|
|
8
12
|
export * from "./interface/move-chart";
|
|
13
|
+
export * from "./interface/move-chart-to-sheet";
|
|
14
|
+
export * from "./hooks/use-on-move-chart-to-sheet";
|
|
9
15
|
export * from "./interface/resize-chart";
|
|
10
16
|
export * from "./interface/shift-chart-ranges";
|
|
11
17
|
export * from "./interface/update-chart";
|
|
18
|
+
export { applyChartColorPalette, applyChartQuickLayout, applyChartStyle, CHART_COLOR_PALETTES, CHART_QUICK_LAYOUTS, CHART_STYLES, getChartPalette, resetChartToMatchStyle, } from "./utils/chart-styles";
|
|
19
|
+
export type { ChartColorPalette, ChartQuickLayout, ChartStylePreset, } from "./utils/chart-styles";
|
|
20
|
+
export * from "./components/dialogs/pivot-chart-dialog";
|
|
21
|
+
export { pivotChartRequestAtom, usePivotChartRequest, useSetPivotChartRequest, } from "./atoms/pivot-chart.atom";
|
|
22
|
+
export type { PivotChartRequest } from "./atoms/pivot-chart.atom";
|
|
12
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAI9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAI9B,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,EAC7B,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AAKzC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAI9B,cAAc,yCAAyC,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,6 +2,10 @@ export * from "./hooks/use-charts";
|
|
|
2
2
|
export * from "./components/dialogs/chart-editor-dialog";
|
|
3
3
|
export * from "./components/editors/chart-editor";
|
|
4
4
|
export * from "./basic-chart";
|
|
5
|
+
// Series orientation (Excel's Switch Row/Column) and the "Hidden and
|
|
6
|
+
// Empty Cells" policy — pure spec utilities hosts can drive themselves.
|
|
7
|
+
export { canSwitchRowColumn, deriveChartSeriesFromRange, inferSeriesOrientation, pickSeriesOrientationForRange, switchRowColumn, } from "./utils/chart-orientation";
|
|
8
|
+
export { applyEmptyCellsPolicy, connectsAcrossEmptyCells, getEmptyCellsPolicy, } from "./utils/empty-cells";
|
|
5
9
|
// Region-map (filled map / choropleth) host API — register additional
|
|
6
10
|
// geo scopes (e.g. a US-states GeoJSON) for `chartType: "regionMap"`.
|
|
7
11
|
export { registerChartGeoMap } from "./utils/region-map-loader";
|
|
@@ -9,6 +13,16 @@ export { registerChartGeoMap } from "./utils/region-map-loader";
|
|
|
9
13
|
export * from "./interface/create-chart";
|
|
10
14
|
export * from "./interface/delete-chart";
|
|
11
15
|
export * from "./interface/move-chart";
|
|
16
|
+
export * from "./interface/move-chart-to-sheet";
|
|
17
|
+
export * from "./hooks/use-on-move-chart-to-sheet";
|
|
12
18
|
export * from "./interface/resize-chart";
|
|
13
19
|
export * from "./interface/shift-chart-ranges";
|
|
14
20
|
export * from "./interface/update-chart";
|
|
21
|
+
// Excel's Chart Design tab as spec transforms — Chart Styles, Change
|
|
22
|
+
// Colors, Quick Layouts, Reset to Match Style — and the palette both
|
|
23
|
+
// renderers resolve series colours through.
|
|
24
|
+
export { applyChartColorPalette, applyChartQuickLayout, applyChartStyle, CHART_COLOR_PALETTES, CHART_QUICK_LAYOUTS, CHART_STYLES, getChartPalette, resetChartToMatchStyle, } from "./utils/chart-styles";
|
|
25
|
+
// Excel's Insert → PivotChart: the pick-a-pivot dialog and the request atom
|
|
26
|
+
// hosts drive it with (#668 C-23).
|
|
27
|
+
export * from "./components/dialogs/pivot-chart-dialog";
|
|
28
|
+
export { pivotChartRequestAtom, usePivotChartRequest, useSetPivotChartRequest, } from "./atoms/pivot-chart.atom";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-chart.d.ts","sourceRoot":"","sources":["../../../interface/create-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,KAAK,QAAQ,EACb,mBAAmB,EACnB,aAAa,EAKd,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-chart.d.ts","sourceRoot":"","sources":["../../../interface/create-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,KAAK,QAAQ,EACb,mBAAmB,EACnB,aAAa,EAKd,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAiB1E;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,GAAG,SAAS,EAC5B,UAAU,MAAM,KACf,MAAkF,CAAC;AAEtF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,8FAM7C,qBAAqB,CAAC,CAAC,CAAC,MAEvB,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAChD,YAAY,aAAa,kBAuH5B,CAAC"}
|