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