x-next 1.7.0 → 1.8.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.
Files changed (88) hide show
  1. package/AI_USAGE.md +129 -4
  2. package/CHANGELOG.md +38 -0
  3. package/dist/_hooks/use-chart-size.d.ts +25 -0
  4. package/dist/_utils/chart/index.d.ts +6 -0
  5. package/dist/_utils/chart/padding.d.ts +15 -0
  6. package/dist/_utils/chart/path.d.ts +34 -0
  7. package/dist/_utils/chart/scale.d.ts +55 -0
  8. package/dist/components/_components/chart/ChartAxis.d.ts +85 -0
  9. package/dist/components/_components/chart/ChartLegend.d.ts +26 -0
  10. package/dist/components/_components/chart/ChartTooltip.d.ts +76 -0
  11. package/dist/components/_components/chart/colors.d.ts +10 -0
  12. package/dist/components/_components/chart/interface.d.ts +38 -0
  13. package/dist/components/bar-chart/BarChart.d.ts +278 -0
  14. package/dist/components/bar-chart/helpers/layout.d.ts +55 -0
  15. package/dist/components/bar-chart/index.d.ts +600 -0
  16. package/dist/components/bar-chart/interface.d.ts +74 -0
  17. package/dist/components/bar-chart/props.d.ts +145 -0
  18. package/dist/components/heatmap/Heatmap.d.ts +10 -0
  19. package/dist/components/heatmap/index.d.ts +30 -0
  20. package/dist/components/index.d.ts +3 -0
  21. package/dist/components/line-chart/LineChart.d.ts +295 -0
  22. package/dist/components/line-chart/helpers/layout.d.ts +74 -0
  23. package/dist/components/line-chart/index.d.ts +614 -0
  24. package/dist/components/line-chart/interface.d.ts +76 -0
  25. package/dist/components/line-chart/props.d.ts +173 -0
  26. package/dist/components/pie-chart/PieChart.d.ts +219 -0
  27. package/dist/components/pie-chart/index.d.ts +470 -0
  28. package/dist/components/pie-chart/interface.d.ts +58 -0
  29. package/dist/components/pie-chart/props.d.ts +107 -0
  30. package/dist/components/trend-chart/components/TrendChart.d.ts +19 -96
  31. package/dist/components/trend-chart/index.d.ts +33 -187
  32. package/dist/components/trend-chart/props.d.ts +9 -78
  33. package/dist/components/trend-chart/themes.d.ts +0 -1
  34. package/dist/es/_hooks/use-chart-size.js +25 -0
  35. package/dist/es/_styles/palette-aliases.js +5 -0
  36. package/dist/es/_utils/chart/padding.js +22 -0
  37. package/dist/es/_utils/chart/path.js +69 -0
  38. package/dist/es/_utils/chart/scale.js +77 -0
  39. package/dist/es/components/_components/chart/ChartAxis.js +79 -0
  40. package/dist/es/components/_components/chart/ChartLegend.js +53 -0
  41. package/dist/es/components/_components/chart/ChartTooltip.js +64 -0
  42. package/dist/es/components/_components/chart/colors.js +12 -0
  43. package/dist/es/components/bar-chart/BarChart.js +470 -0
  44. package/dist/es/components/bar-chart/helpers/layout.js +53 -0
  45. package/dist/es/components/bar-chart/index.js +8 -0
  46. package/dist/es/components/bar-chart/props.js +148 -0
  47. package/dist/es/components/heatmap/Heatmap.js +244 -169
  48. package/dist/es/components/index.js +132 -126
  49. package/dist/es/components/line-chart/LineChart.js +532 -0
  50. package/dist/es/components/line-chart/helpers/layout.js +80 -0
  51. package/dist/es/components/line-chart/index.js +8 -0
  52. package/dist/es/components/line-chart/props.js +178 -0
  53. package/dist/es/components/pie-chart/PieChart.js +397 -0
  54. package/dist/es/components/pie-chart/index.js +8 -0
  55. package/dist/es/components/pie-chart/props.js +104 -0
  56. package/dist/es/components/trend-chart/components/TrendChart.js +143 -183
  57. package/dist/es/components/trend-chart/components/trend-chart-curve.js +85 -81
  58. package/dist/es/components/trend-chart/props.js +28 -74
  59. package/dist/es/components/trend-chart/themes.js +30 -31
  60. package/dist/es/index.js +193 -187
  61. package/dist/es/locale/en-US.js +8 -1
  62. package/dist/es/locale/zh-CN.js +8 -1
  63. package/dist/es/style.css +1 -1
  64. package/dist/index.cjs +4 -4
  65. package/dist/index.umd.js +4 -4
  66. package/dist/locale/interface.d.ts +13 -0
  67. package/dist/style/bar-chart.css +1 -0
  68. package/dist/style/bar-chart.js +2 -0
  69. package/dist/style/base.css +1 -1
  70. package/dist/style/heatmap.css +1 -1
  71. package/dist/style/line-chart.css +1 -0
  72. package/dist/style/line-chart.js +2 -0
  73. package/dist/style/pie-chart.css +1 -0
  74. package/dist/style/pie-chart.js +2 -0
  75. package/dist/style.css +1 -1
  76. package/dist/types.d.ts +3 -0
  77. package/package.json +1 -1
  78. package/volar.d.ts +3 -0
  79. package/dist/components/trend-chart/components/trend-chart-grid.d.ts +0 -55
  80. package/dist/components/trend-chart/components/trend-chart-labels.d.ts +0 -26
  81. package/dist/components/trend-chart/helpers/genPath.d.ts +0 -8
  82. package/dist/components/trend-chart/helpers/getPadding.d.ts +0 -8
  83. package/dist/components/trend-chart/helpers/validatePadding.d.ts +0 -2
  84. package/dist/es/components/trend-chart/components/trend-chart-grid.js +0 -62
  85. package/dist/es/components/trend-chart/components/trend-chart-labels.js +0 -75
  86. package/dist/es/components/trend-chart/helpers/genPath.js +0 -22
  87. package/dist/es/components/trend-chart/helpers/getPadding.js +0 -21
  88. package/dist/es/components/trend-chart/helpers/validatePadding.js +0 -7
@@ -0,0 +1,600 @@
1
+ export declare const BarChart: {
2
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
3
+ categories: {
4
+ type: import('vue').PropType<Array<string | number>>;
5
+ default: () => never[];
6
+ };
7
+ series: {
8
+ required: boolean;
9
+ type: import('vue').PropType<import('./interface').BarChartSeries[]>;
10
+ default: () => never[];
11
+ };
12
+ stack: {
13
+ type: BooleanConstructor;
14
+ default: boolean;
15
+ };
16
+ height: {
17
+ type: import('vue').PropType<number | string>;
18
+ default: number;
19
+ };
20
+ width: {
21
+ type: import('vue').PropType<number | string>;
22
+ default: string;
23
+ };
24
+ max: {
25
+ type: NumberConstructor;
26
+ };
27
+ barWidth: {
28
+ type: NumberConstructor;
29
+ };
30
+ barRadius: {
31
+ type: NumberConstructor;
32
+ default: number;
33
+ };
34
+ padding: {
35
+ default: string;
36
+ type: import('vue').PropType<string | number>;
37
+ validator(val: string | number): boolean;
38
+ };
39
+ grid: {
40
+ default: null;
41
+ type: import('vue').PropType<import('./interface').BarChartGridOptions>;
42
+ };
43
+ labels: {
44
+ default: null;
45
+ type: import('vue').PropType<import('./interface').BarChartLabelsOptions>;
46
+ };
47
+ tooltip: {
48
+ type: BooleanConstructor;
49
+ default: boolean;
50
+ };
51
+ legend: {
52
+ type: BooleanConstructor;
53
+ default: boolean;
54
+ };
55
+ valueFormatter: {
56
+ type: import('vue').PropType<(value: number) => string>;
57
+ default: (value: number) => string;
58
+ };
59
+ loading: {
60
+ type: import('vue').PropType<boolean | Record<string, unknown>>;
61
+ default: boolean;
62
+ };
63
+ ariaLabel: {
64
+ type: StringConstructor;
65
+ };
66
+ }>> & Readonly<{
67
+ "onBar-click"?: ((data: import('./interface').BarChartClickData) => any) | undefined;
68
+ "onLegend-change"?: ((visibleIndexes: number[]) => any) | undefined;
69
+ }>, {
70
+ className: {
71
+ block: string;
72
+ element: (className: string) => string;
73
+ modifier: (className: string) => string;
74
+ is: (className: string) => string;
75
+ };
76
+ state: {
77
+ activeIndex: number | null;
78
+ keyboardActive: boolean;
79
+ hiddenIndexes: number[];
80
+ tooltipWidth: number;
81
+ };
82
+ size: {
83
+ width: number;
84
+ height: number;
85
+ };
86
+ refs: {
87
+ root: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
88
+ canvas: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
89
+ tooltip: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
90
+ };
91
+ slots: Readonly<{
92
+ tooltip?: ((props: import('./interface').BarChartTooltipSlotProps) => unknown) | undefined;
93
+ legend?: ((props: {
94
+ series: import('./interface').BarChartSeries[];
95
+ hiddenIndexes: number[];
96
+ }) => unknown) | undefined;
97
+ bar?: ((props: {
98
+ seriesIndex: number;
99
+ index: number;
100
+ value: number;
101
+ x: number;
102
+ y: number;
103
+ width: number;
104
+ height: number;
105
+ color: string;
106
+ }) => unknown) | undefined;
107
+ empty?: (() => unknown) | undefined;
108
+ }>;
109
+ t: (key: import('../..').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
110
+ fontSize: import('vue').ComputedRef<number>;
111
+ labelColor: import('vue').ComputedRef<"var(--x-chart-color-axis-text)" | import('./props').CSSColor>;
112
+ yVisible: import('vue').ComputedRef<boolean>;
113
+ xVisible: import('vue').ComputedRef<boolean>;
114
+ showHorizontalLines: import('vue').ComputedRef<boolean>;
115
+ seriesList: import('vue').ComputedRef<import('./interface').BarChartSeries[]>;
116
+ visibleSeriesIndexes: import('vue').ComputedRef<number[]>;
117
+ categoryCount: import('vue').ComputedRef<number>;
118
+ hasData: import('vue').ComputedRef<boolean>;
119
+ plot: import('vue').ComputedRef<import('./helpers/layout').BarChartPlot>;
120
+ layout: import('vue').ComputedRef<import('./helpers/layout').BarChartLayout>;
121
+ axisTicks: import('vue').ComputedRef<{
122
+ y: number;
123
+ label: string;
124
+ isBaseline: boolean;
125
+ }[]>;
126
+ axisXLabels: import('vue').ComputedRef<{
127
+ x: number;
128
+ text: string;
129
+ }[]>;
130
+ visibleBarEntries: import('vue').ComputedRef<{
131
+ color: string;
132
+ index: number;
133
+ seriesIndex: number;
134
+ value: number;
135
+ x: number;
136
+ y: number;
137
+ width: number;
138
+ height: number;
139
+ path: string;
140
+ }[]>;
141
+ activeCategory: import('vue').ComputedRef<import('./interface').BarChartActiveData | null>;
142
+ tooltipSlotProps: import('vue').ComputedRef<import('./interface').BarChartTooltipSlotProps | null>;
143
+ tooltipEntries: import('vue').ComputedRef<{
144
+ key: number;
145
+ name: string;
146
+ value: string;
147
+ color: string;
148
+ }[]>;
149
+ tooltipTotal: import('vue').ComputedRef<{
150
+ label: string;
151
+ value: string;
152
+ } | null>;
153
+ tooltipStyle: import('vue').ComputedRef<Record<string, string>>;
154
+ legendItems: import('vue').ComputedRef<{
155
+ key: number;
156
+ name: string;
157
+ color: string;
158
+ hidden: boolean;
159
+ }[]>;
160
+ categoryLabel: (index: number) => string;
161
+ formatValue: import('vue').ComputedRef<(value: number) => string>;
162
+ liveText: import('vue').ComputedRef<string>;
163
+ handleMouseMove: (ev: MouseEvent) => void;
164
+ handleClick: (ev: MouseEvent) => void;
165
+ handleKeydown: (ev: KeyboardEvent) => void;
166
+ clearActive: () => void;
167
+ toggleSeries: (index: number) => void;
168
+ setTooltipElement: (el: HTMLDivElement | null) => void;
169
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
170
+ 'bar-click': (data: import('./interface').BarChartClickData) => boolean;
171
+ 'legend-change': (visibleIndexes: number[]) => boolean;
172
+ }, import('vue').PublicProps, {
173
+ loading: boolean | Record<string, unknown>;
174
+ legend: boolean;
175
+ height: string | number;
176
+ width: string | number;
177
+ grid: import('./interface').BarChartGridOptions;
178
+ padding: string | number;
179
+ tooltip: boolean;
180
+ categories: (string | number)[];
181
+ series: import('./interface').BarChartSeries[];
182
+ stack: boolean;
183
+ barRadius: number;
184
+ labels: import('./interface').BarChartLabelsOptions;
185
+ valueFormatter: (value: number) => string;
186
+ }, true, {}, import('vue').SlotsType<{
187
+ tooltip?: (props: import('./interface').BarChartTooltipSlotProps) => unknown;
188
+ legend?: (props: {
189
+ series: import('./interface').BarChartSeries[];
190
+ hiddenIndexes: number[];
191
+ }) => unknown;
192
+ bar?: (props: {
193
+ seriesIndex: number;
194
+ index: number;
195
+ value: number;
196
+ x: number;
197
+ y: number;
198
+ width: number;
199
+ height: number;
200
+ color: string;
201
+ }) => unknown;
202
+ empty?: () => unknown;
203
+ }>, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
204
+ P: {};
205
+ B: {};
206
+ D: {};
207
+ C: {};
208
+ M: {};
209
+ Defaults: {};
210
+ }, Readonly<import('vue').ExtractPropTypes<{
211
+ categories: {
212
+ type: import('vue').PropType<Array<string | number>>;
213
+ default: () => never[];
214
+ };
215
+ series: {
216
+ required: boolean;
217
+ type: import('vue').PropType<import('./interface').BarChartSeries[]>;
218
+ default: () => never[];
219
+ };
220
+ stack: {
221
+ type: BooleanConstructor;
222
+ default: boolean;
223
+ };
224
+ height: {
225
+ type: import('vue').PropType<number | string>;
226
+ default: number;
227
+ };
228
+ width: {
229
+ type: import('vue').PropType<number | string>;
230
+ default: string;
231
+ };
232
+ max: {
233
+ type: NumberConstructor;
234
+ };
235
+ barWidth: {
236
+ type: NumberConstructor;
237
+ };
238
+ barRadius: {
239
+ type: NumberConstructor;
240
+ default: number;
241
+ };
242
+ padding: {
243
+ default: string;
244
+ type: import('vue').PropType<string | number>;
245
+ validator(val: string | number): boolean;
246
+ };
247
+ grid: {
248
+ default: null;
249
+ type: import('vue').PropType<import('./interface').BarChartGridOptions>;
250
+ };
251
+ labels: {
252
+ default: null;
253
+ type: import('vue').PropType<import('./interface').BarChartLabelsOptions>;
254
+ };
255
+ tooltip: {
256
+ type: BooleanConstructor;
257
+ default: boolean;
258
+ };
259
+ legend: {
260
+ type: BooleanConstructor;
261
+ default: boolean;
262
+ };
263
+ valueFormatter: {
264
+ type: import('vue').PropType<(value: number) => string>;
265
+ default: (value: number) => string;
266
+ };
267
+ loading: {
268
+ type: import('vue').PropType<boolean | Record<string, unknown>>;
269
+ default: boolean;
270
+ };
271
+ ariaLabel: {
272
+ type: StringConstructor;
273
+ };
274
+ }>> & Readonly<{
275
+ "onBar-click"?: ((data: import('./interface').BarChartClickData) => any) | undefined;
276
+ "onLegend-change"?: ((visibleIndexes: number[]) => any) | undefined;
277
+ }>, {
278
+ className: {
279
+ block: string;
280
+ element: (className: string) => string;
281
+ modifier: (className: string) => string;
282
+ is: (className: string) => string;
283
+ };
284
+ state: {
285
+ activeIndex: number | null;
286
+ keyboardActive: boolean;
287
+ hiddenIndexes: number[];
288
+ tooltipWidth: number;
289
+ };
290
+ size: {
291
+ width: number;
292
+ height: number;
293
+ };
294
+ refs: {
295
+ root: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
296
+ canvas: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
297
+ tooltip: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
298
+ };
299
+ slots: Readonly<{
300
+ tooltip?: ((props: import('./interface').BarChartTooltipSlotProps) => unknown) | undefined;
301
+ legend?: ((props: {
302
+ series: import('./interface').BarChartSeries[];
303
+ hiddenIndexes: number[];
304
+ }) => unknown) | undefined;
305
+ bar?: ((props: {
306
+ seriesIndex: number;
307
+ index: number;
308
+ value: number;
309
+ x: number;
310
+ y: number;
311
+ width: number;
312
+ height: number;
313
+ color: string;
314
+ }) => unknown) | undefined;
315
+ empty?: (() => unknown) | undefined;
316
+ }>;
317
+ t: (key: import('../..').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
318
+ fontSize: import('vue').ComputedRef<number>;
319
+ labelColor: import('vue').ComputedRef<"var(--x-chart-color-axis-text)" | import('./props').CSSColor>;
320
+ yVisible: import('vue').ComputedRef<boolean>;
321
+ xVisible: import('vue').ComputedRef<boolean>;
322
+ showHorizontalLines: import('vue').ComputedRef<boolean>;
323
+ seriesList: import('vue').ComputedRef<import('./interface').BarChartSeries[]>;
324
+ visibleSeriesIndexes: import('vue').ComputedRef<number[]>;
325
+ categoryCount: import('vue').ComputedRef<number>;
326
+ hasData: import('vue').ComputedRef<boolean>;
327
+ plot: import('vue').ComputedRef<import('./helpers/layout').BarChartPlot>;
328
+ layout: import('vue').ComputedRef<import('./helpers/layout').BarChartLayout>;
329
+ axisTicks: import('vue').ComputedRef<{
330
+ y: number;
331
+ label: string;
332
+ isBaseline: boolean;
333
+ }[]>;
334
+ axisXLabels: import('vue').ComputedRef<{
335
+ x: number;
336
+ text: string;
337
+ }[]>;
338
+ visibleBarEntries: import('vue').ComputedRef<{
339
+ color: string;
340
+ index: number;
341
+ seriesIndex: number;
342
+ value: number;
343
+ x: number;
344
+ y: number;
345
+ width: number;
346
+ height: number;
347
+ path: string;
348
+ }[]>;
349
+ activeCategory: import('vue').ComputedRef<import('./interface').BarChartActiveData | null>;
350
+ tooltipSlotProps: import('vue').ComputedRef<import('./interface').BarChartTooltipSlotProps | null>;
351
+ tooltipEntries: import('vue').ComputedRef<{
352
+ key: number;
353
+ name: string;
354
+ value: string;
355
+ color: string;
356
+ }[]>;
357
+ tooltipTotal: import('vue').ComputedRef<{
358
+ label: string;
359
+ value: string;
360
+ } | null>;
361
+ tooltipStyle: import('vue').ComputedRef<Record<string, string>>;
362
+ legendItems: import('vue').ComputedRef<{
363
+ key: number;
364
+ name: string;
365
+ color: string;
366
+ hidden: boolean;
367
+ }[]>;
368
+ categoryLabel: (index: number) => string;
369
+ formatValue: import('vue').ComputedRef<(value: number) => string>;
370
+ liveText: import('vue').ComputedRef<string>;
371
+ handleMouseMove: (ev: MouseEvent) => void;
372
+ handleClick: (ev: MouseEvent) => void;
373
+ handleKeydown: (ev: KeyboardEvent) => void;
374
+ clearActive: () => void;
375
+ toggleSeries: (index: number) => void;
376
+ setTooltipElement: (el: HTMLDivElement | null) => void;
377
+ }, {}, {}, {}, {
378
+ loading: boolean | Record<string, unknown>;
379
+ legend: boolean;
380
+ height: string | number;
381
+ width: string | number;
382
+ grid: import('./interface').BarChartGridOptions;
383
+ padding: string | number;
384
+ tooltip: boolean;
385
+ categories: (string | number)[];
386
+ series: import('./interface').BarChartSeries[];
387
+ stack: boolean;
388
+ barRadius: number;
389
+ labels: import('./interface').BarChartLabelsOptions;
390
+ valueFormatter: (value: number) => string;
391
+ }>;
392
+ __isFragment?: never;
393
+ __isTeleport?: never;
394
+ __isSuspense?: never;
395
+ } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
396
+ categories: {
397
+ type: import('vue').PropType<Array<string | number>>;
398
+ default: () => never[];
399
+ };
400
+ series: {
401
+ required: boolean;
402
+ type: import('vue').PropType<import('./interface').BarChartSeries[]>;
403
+ default: () => never[];
404
+ };
405
+ stack: {
406
+ type: BooleanConstructor;
407
+ default: boolean;
408
+ };
409
+ height: {
410
+ type: import('vue').PropType<number | string>;
411
+ default: number;
412
+ };
413
+ width: {
414
+ type: import('vue').PropType<number | string>;
415
+ default: string;
416
+ };
417
+ max: {
418
+ type: NumberConstructor;
419
+ };
420
+ barWidth: {
421
+ type: NumberConstructor;
422
+ };
423
+ barRadius: {
424
+ type: NumberConstructor;
425
+ default: number;
426
+ };
427
+ padding: {
428
+ default: string;
429
+ type: import('vue').PropType<string | number>;
430
+ validator(val: string | number): boolean;
431
+ };
432
+ grid: {
433
+ default: null;
434
+ type: import('vue').PropType<import('./interface').BarChartGridOptions>;
435
+ };
436
+ labels: {
437
+ default: null;
438
+ type: import('vue').PropType<import('./interface').BarChartLabelsOptions>;
439
+ };
440
+ tooltip: {
441
+ type: BooleanConstructor;
442
+ default: boolean;
443
+ };
444
+ legend: {
445
+ type: BooleanConstructor;
446
+ default: boolean;
447
+ };
448
+ valueFormatter: {
449
+ type: import('vue').PropType<(value: number) => string>;
450
+ default: (value: number) => string;
451
+ };
452
+ loading: {
453
+ type: import('vue').PropType<boolean | Record<string, unknown>>;
454
+ default: boolean;
455
+ };
456
+ ariaLabel: {
457
+ type: StringConstructor;
458
+ };
459
+ }>> & Readonly<{
460
+ "onBar-click"?: ((data: import('./interface').BarChartClickData) => any) | undefined;
461
+ "onLegend-change"?: ((visibleIndexes: number[]) => any) | undefined;
462
+ }>, {
463
+ className: {
464
+ block: string;
465
+ element: (className: string) => string;
466
+ modifier: (className: string) => string;
467
+ is: (className: string) => string;
468
+ };
469
+ state: {
470
+ activeIndex: number | null;
471
+ keyboardActive: boolean;
472
+ hiddenIndexes: number[];
473
+ tooltipWidth: number;
474
+ };
475
+ size: {
476
+ width: number;
477
+ height: number;
478
+ };
479
+ refs: {
480
+ root: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
481
+ canvas: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
482
+ tooltip: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
483
+ };
484
+ slots: Readonly<{
485
+ tooltip?: ((props: import('./interface').BarChartTooltipSlotProps) => unknown) | undefined;
486
+ legend?: ((props: {
487
+ series: import('./interface').BarChartSeries[];
488
+ hiddenIndexes: number[];
489
+ }) => unknown) | undefined;
490
+ bar?: ((props: {
491
+ seriesIndex: number;
492
+ index: number;
493
+ value: number;
494
+ x: number;
495
+ y: number;
496
+ width: number;
497
+ height: number;
498
+ color: string;
499
+ }) => unknown) | undefined;
500
+ empty?: (() => unknown) | undefined;
501
+ }>;
502
+ t: (key: import('../..').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
503
+ fontSize: import('vue').ComputedRef<number>;
504
+ labelColor: import('vue').ComputedRef<"var(--x-chart-color-axis-text)" | import('./props').CSSColor>;
505
+ yVisible: import('vue').ComputedRef<boolean>;
506
+ xVisible: import('vue').ComputedRef<boolean>;
507
+ showHorizontalLines: import('vue').ComputedRef<boolean>;
508
+ seriesList: import('vue').ComputedRef<import('./interface').BarChartSeries[]>;
509
+ visibleSeriesIndexes: import('vue').ComputedRef<number[]>;
510
+ categoryCount: import('vue').ComputedRef<number>;
511
+ hasData: import('vue').ComputedRef<boolean>;
512
+ plot: import('vue').ComputedRef<import('./helpers/layout').BarChartPlot>;
513
+ layout: import('vue').ComputedRef<import('./helpers/layout').BarChartLayout>;
514
+ axisTicks: import('vue').ComputedRef<{
515
+ y: number;
516
+ label: string;
517
+ isBaseline: boolean;
518
+ }[]>;
519
+ axisXLabels: import('vue').ComputedRef<{
520
+ x: number;
521
+ text: string;
522
+ }[]>;
523
+ visibleBarEntries: import('vue').ComputedRef<{
524
+ color: string;
525
+ index: number;
526
+ seriesIndex: number;
527
+ value: number;
528
+ x: number;
529
+ y: number;
530
+ width: number;
531
+ height: number;
532
+ path: string;
533
+ }[]>;
534
+ activeCategory: import('vue').ComputedRef<import('./interface').BarChartActiveData | null>;
535
+ tooltipSlotProps: import('vue').ComputedRef<import('./interface').BarChartTooltipSlotProps | null>;
536
+ tooltipEntries: import('vue').ComputedRef<{
537
+ key: number;
538
+ name: string;
539
+ value: string;
540
+ color: string;
541
+ }[]>;
542
+ tooltipTotal: import('vue').ComputedRef<{
543
+ label: string;
544
+ value: string;
545
+ } | null>;
546
+ tooltipStyle: import('vue').ComputedRef<Record<string, string>>;
547
+ legendItems: import('vue').ComputedRef<{
548
+ key: number;
549
+ name: string;
550
+ color: string;
551
+ hidden: boolean;
552
+ }[]>;
553
+ categoryLabel: (index: number) => string;
554
+ formatValue: import('vue').ComputedRef<(value: number) => string>;
555
+ liveText: import('vue').ComputedRef<string>;
556
+ handleMouseMove: (ev: MouseEvent) => void;
557
+ handleClick: (ev: MouseEvent) => void;
558
+ handleKeydown: (ev: KeyboardEvent) => void;
559
+ clearActive: () => void;
560
+ toggleSeries: (index: number) => void;
561
+ setTooltipElement: (el: HTMLDivElement | null) => void;
562
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
563
+ 'bar-click': (data: import('./interface').BarChartClickData) => boolean;
564
+ 'legend-change': (visibleIndexes: number[]) => boolean;
565
+ }, string, {
566
+ loading: boolean | Record<string, unknown>;
567
+ legend: boolean;
568
+ height: string | number;
569
+ width: string | number;
570
+ grid: import('./interface').BarChartGridOptions;
571
+ padding: string | number;
572
+ tooltip: boolean;
573
+ categories: (string | number)[];
574
+ series: import('./interface').BarChartSeries[];
575
+ stack: boolean;
576
+ barRadius: number;
577
+ labels: import('./interface').BarChartLabelsOptions;
578
+ valueFormatter: (value: number) => string;
579
+ }, {}, string, import('vue').SlotsType<{
580
+ tooltip?: (props: import('./interface').BarChartTooltipSlotProps) => unknown;
581
+ legend?: (props: {
582
+ series: import('./interface').BarChartSeries[];
583
+ hiddenIndexes: number[];
584
+ }) => unknown;
585
+ bar?: (props: {
586
+ seriesIndex: number;
587
+ index: number;
588
+ value: number;
589
+ x: number;
590
+ y: number;
591
+ width: number;
592
+ height: number;
593
+ color: string;
594
+ }) => unknown;
595
+ empty?: () => unknown;
596
+ }>, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & {
597
+ install(app: import('vue').App): void;
598
+ };
599
+ export { BarChart as default };
600
+ export type { BarChartActiveData, BarChartClickData, BarChartGridOptions, BarChartLabelsOptions, BarChartSeries, BarChartTooltipItem, BarChartTooltipSlotProps, } from './interface';
@@ -0,0 +1,74 @@
1
+ import { CSSColor } from '../../_props/css';
2
+ /**
3
+ * 一个数据系列。
4
+ *
5
+ * `data` 与 `categories` 按下标一一对应;`null` / `undefined` / 负数按 0 处理,
6
+ * 用于表达「当天没有数据」这类缺测日。
7
+ */
8
+ export interface BarChartSeries {
9
+ /** 系列名,用于悬浮提示与多系列区分 */
10
+ name?: string;
11
+ /** 该系列按 categories 顺序排列的值 */
12
+ data: Array<number | null | undefined>;
13
+ /** 该系列的颜色,默认取内置分类色板(按系列下标循环) */
14
+ color?: CSSColor;
15
+ }
16
+ /** 横向网格线配置 */
17
+ export interface BarChartGridOptions {
18
+ /** 是否显示横向网格线,默认 true */
19
+ horizontalLines?: boolean;
20
+ /** 横向网格线数量(含基线),默认 4 */
21
+ horizontalLinesNumber?: number;
22
+ }
23
+ /** 坐标轴标签配置 */
24
+ export interface BarChartLabelsOptions {
25
+ /** 是否显示类目标签,默认 true */
26
+ xVisible?: boolean;
27
+ /** 是否显示数值轴标签,默认 true */
28
+ yVisible?: boolean;
29
+ /** 类目标签格式化 */
30
+ xFormatter?: (label: string, index: number) => string;
31
+ /** 数值轴刻度格式化 */
32
+ yFormatter?: (value: number) => string;
33
+ /** 轴标签字号,默认 12 */
34
+ fontSize?: number;
35
+ /** 轴标签颜色,默认取组件文字 token */
36
+ color?: CSSColor;
37
+ }
38
+ /** 悬浮提示中的一行(一个系列) */
39
+ export interface BarChartTooltipItem {
40
+ /** 系列下标 */
41
+ seriesIndex: number;
42
+ /** 系列名,未提供时为 undefined */
43
+ name?: string;
44
+ /** 该系列在当前类目的值 */
45
+ value: number;
46
+ /**
47
+ * 该系列生效的颜色:业务传入值原样返回,未传入时是内置色板的
48
+ * `var(--x-bar-chart-color-series-N)` 引用,可直接用于 style 背景色。
49
+ */
50
+ color: string;
51
+ }
52
+ /** 悬浮或点击时命中的类目数据 */
53
+ export interface BarChartActiveData {
54
+ /** 类目下标 */
55
+ index: number;
56
+ /** 类目标签(已应用 labels.xFormatter) */
57
+ label: string;
58
+ /** 各类目的系列值 */
59
+ items: BarChartTooltipItem[];
60
+ /** 所有系列的合计值;stack 时为堆叠总值 */
61
+ total: number;
62
+ }
63
+ /** bar-click 事件的载荷,在类目数据之外带上命中的具体柱体 */
64
+ export interface BarChartClickData extends BarChartActiveData {
65
+ /** 命中的系列下标;点击落在空白或零值类目时为 null */
66
+ seriesIndex: number | null;
67
+ /** 命中的柱体值;未命中时为 null */
68
+ value: number | null;
69
+ }
70
+ /** tooltip 插槽的入参 */
71
+ export interface BarChartTooltipSlotProps extends BarChartActiveData {
72
+ /** 组件当前的数值格式化函数,供自定义内容保持一致 */
73
+ formatValue: (value: number) => string;
74
+ }