@adminforth/dashboard 1.4.2 → 1.6.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 (60) hide show
  1. package/custom/api/dashboardApi.ts +137 -5
  2. package/custom/model/dashboard.types.ts +32 -22
  3. package/custom/runtime/DashboardRuntime.vue +2 -3
  4. package/custom/skills/adminforth-dashboard/SKILL.md +165 -179
  5. package/custom/widgets/KpiCardWidget.vue +172 -9
  6. package/custom/widgets/chart/ChartWidget.vue +5 -5
  7. package/custom/widgets/registry.ts +4 -4
  8. package/dist/custom/api/dashboardApi.d.ts +46 -2
  9. package/dist/custom/api/dashboardApi.js +90 -5
  10. package/dist/custom/api/dashboardApi.ts +137 -5
  11. package/dist/custom/model/dashboard.types.d.ts +30 -14
  12. package/dist/custom/model/dashboard.types.js +2 -2
  13. package/dist/custom/model/dashboard.types.ts +32 -22
  14. package/dist/custom/queries/useDashboardConfig.d.ts +106 -104
  15. package/dist/custom/queries/useWidgetData.d.ts +106 -104
  16. package/dist/custom/runtime/DashboardRuntime.vue +2 -3
  17. package/dist/custom/skills/adminforth-dashboard/SKILL.md +165 -179
  18. package/dist/custom/widgets/KpiCardWidget.vue +172 -9
  19. package/dist/custom/widgets/chart/ChartWidget.vue +5 -5
  20. package/dist/custom/widgets/registry.js +4 -4
  21. package/dist/custom/widgets/registry.ts +4 -4
  22. package/dist/endpoint/dashboard.d.ts +2 -4
  23. package/dist/endpoint/dashboard.js +1 -21
  24. package/dist/endpoint/groups.d.ts +1 -0
  25. package/dist/endpoint/groups.js +61 -48
  26. package/dist/endpoint/widgets.d.ts +1 -0
  27. package/dist/endpoint/widgets.js +167 -64
  28. package/dist/schema/api.d.ts +11710 -2785
  29. package/dist/schema/api.js +118 -26
  30. package/dist/schema/widget.d.ts +425 -1980
  31. package/dist/schema/widget.js +13 -374
  32. package/dist/schema/widgets/charts.d.ts +1689 -0
  33. package/dist/schema/widgets/charts.js +92 -0
  34. package/dist/schema/widgets/common.d.ts +275 -0
  35. package/dist/schema/widgets/common.js +171 -0
  36. package/dist/schema/widgets/gauge-card.d.ts +172 -0
  37. package/dist/schema/widgets/gauge-card.js +28 -0
  38. package/dist/schema/widgets/kpi-card.d.ts +212 -0
  39. package/dist/schema/widgets/kpi-card.js +43 -0
  40. package/dist/schema/widgets/pivot-table.d.ts +196 -0
  41. package/dist/schema/widgets/pivot-table.js +17 -0
  42. package/dist/schema/widgets/table.d.ts +130 -0
  43. package/dist/schema/widgets/table.js +12 -0
  44. package/dist/services/dashboardConfigService.d.ts +4 -0
  45. package/dist/services/dashboardConfigService.js +46 -0
  46. package/dist/services/widgetDataService.js +96 -2
  47. package/endpoint/dashboard.ts +2 -33
  48. package/endpoint/groups.ts +91 -72
  49. package/endpoint/widgets.ts +260 -87
  50. package/package.json +1 -1
  51. package/schema/api.ts +148 -28
  52. package/schema/widget.ts +43 -425
  53. package/schema/widgets/charts.ts +113 -0
  54. package/schema/widgets/common.ts +194 -0
  55. package/schema/widgets/gauge-card.ts +34 -0
  56. package/schema/widgets/kpi-card.ts +49 -0
  57. package/schema/widgets/pivot-table.ts +24 -0
  58. package/schema/widgets/table.ts +18 -0
  59. package/services/dashboardConfigService.ts +73 -0
  60. package/services/widgetDataService.ts +129 -3
@@ -1,4 +1,4 @@
1
- import type { DashboardConfig, EditableDashboardGroupConfig, DashboardGroupMoveDirection, DashboardWidgetConfig, DashboardWidgetConfigValidationError, DashboardWidgetMoveDirection } from '../model/dashboard.types.js';
1
+ import type { DashboardConfig, EditableDashboardGroupConfig, DashboardGroupMoveDirection, ChartDashboardWidgetConfig, DashboardWidgetConfig, DashboardWidgetConfigValidationError, DashboardWidgetMoveDirection, GaugeCardWidgetConfig, KpiCardWidgetConfig, PivotTableWidgetConfig, TableWidgetConfig } from '../model/dashboard.types.js';
2
2
  export type DashboardResponse = {
3
3
  id: string;
4
4
  slug: string;
@@ -16,13 +16,47 @@ export type DashboardWidgetDataRequest = {
16
16
  pageSize: number;
17
17
  };
18
18
  };
19
+ export type ConfigurableTableWidgetConfig = Omit<TableWidgetConfig, 'id' | 'group_id' | 'order'>;
20
+ export type ConfigurableKpiCardWidgetConfig = Omit<KpiCardWidgetConfig, 'id' | 'group_id' | 'order'>;
21
+ export type ConfigurableGaugeCardWidgetConfig = Omit<GaugeCardWidgetConfig, 'id' | 'group_id' | 'order'>;
22
+ export type ConfigurableChartWidgetConfig = Omit<ChartDashboardWidgetConfig, 'id' | 'group_id' | 'order'>;
23
+ export type ConfigurableLineChartWidgetConfig = ConfigurableChartWidgetConfig & {
24
+ chart: {
25
+ type: 'line';
26
+ };
27
+ };
28
+ export type ConfigurableBarChartWidgetConfig = ConfigurableChartWidgetConfig & {
29
+ chart: {
30
+ type: 'bar';
31
+ };
32
+ };
33
+ export type ConfigurableStackedBarChartWidgetConfig = ConfigurableChartWidgetConfig & {
34
+ chart: {
35
+ type: 'stacked_bar';
36
+ };
37
+ };
38
+ export type ConfigurablePieChartWidgetConfig = ConfigurableChartWidgetConfig & {
39
+ chart: {
40
+ type: 'pie';
41
+ };
42
+ };
43
+ export type ConfigurableHistogramChartWidgetConfig = ConfigurableChartWidgetConfig & {
44
+ chart: {
45
+ type: 'histogram';
46
+ };
47
+ };
48
+ export type ConfigurableFunnelChartWidgetConfig = ConfigurableChartWidgetConfig & {
49
+ chart: {
50
+ type: 'funnel';
51
+ };
52
+ };
53
+ export type ConfigurablePivotTableWidgetConfig = Omit<PivotTableWidgetConfig, 'id' | 'group_id' | 'order'>;
19
54
  export declare class DashboardApiError extends Error {
20
55
  validationErrors: DashboardWidgetConfigValidationError[];
21
56
  constructor(message: string, validationErrors?: DashboardWidgetConfigValidationError[]);
22
57
  }
23
58
  export declare const dashboardApi: {
24
59
  getDashboardConfig(slug: string): Promise<DashboardResponse>;
25
- setDashboardConfig(slug: string, config: unknown): Promise<DashboardResponse>;
26
60
  addDashboardGroup(slug: string): Promise<DashboardResponse>;
27
61
  moveDashboardGroup(slug: string, groupId: string, direction: DashboardGroupMoveDirection): Promise<DashboardResponse>;
28
62
  removeDashboardGroup(slug: string, groupId: string): Promise<DashboardResponse>;
@@ -31,5 +65,15 @@ export declare const dashboardApi: {
31
65
  moveDashboardWidget(slug: string, widgetId: string, direction: DashboardWidgetMoveDirection): Promise<DashboardResponse>;
32
66
  removeDashboardWidget(slug: string, widgetId: string): Promise<DashboardResponse>;
33
67
  setWidgetConfig(slug: string, widgetId: string, config: unknown): Promise<DashboardResponse>;
68
+ configureTableWidget(slug: string, widgetId: string, config: ConfigurableTableWidgetConfig): Promise<DashboardResponse>;
69
+ configureKpiCardWidget(slug: string, widgetId: string, config: ConfigurableKpiCardWidgetConfig): Promise<DashboardResponse>;
70
+ configureGaugeCardWidget(slug: string, widgetId: string, config: ConfigurableGaugeCardWidgetConfig): Promise<DashboardResponse>;
71
+ configureLineChartWidget(slug: string, widgetId: string, config: ConfigurableLineChartWidgetConfig): Promise<DashboardResponse>;
72
+ configureBarChartWidget(slug: string, widgetId: string, config: ConfigurableBarChartWidgetConfig): Promise<DashboardResponse>;
73
+ configureStackedBarChartWidget(slug: string, widgetId: string, config: ConfigurableStackedBarChartWidgetConfig): Promise<DashboardResponse>;
74
+ configurePieChartWidget(slug: string, widgetId: string, config: ConfigurablePieChartWidgetConfig): Promise<DashboardResponse>;
75
+ configureHistogramChartWidget(slug: string, widgetId: string, config: ConfigurableHistogramChartWidgetConfig): Promise<DashboardResponse>;
76
+ configureFunnelChartWidget(slug: string, widgetId: string, config: ConfigurableFunnelChartWidgetConfig): Promise<DashboardResponse>;
77
+ configurePivotTableWidget(slug: string, widgetId: string, config: ConfigurablePivotTableWidgetConfig): Promise<DashboardResponse>;
34
78
  getDashboardWidgetData(slug: string, widgetId: string, request?: DashboardWidgetDataRequest): Promise<DashboardWidgetDataResponse>;
35
79
  };
@@ -99,11 +99,6 @@ export const dashboardApi = {
99
99
  return callDashboardApi('/adminapi/v1/dashboard/get-config', { slug });
100
100
  });
101
101
  },
102
- setDashboardConfig(slug, config) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- return callDashboardApi('/adminapi/v1/dashboard/set_dashboard_config', { slug, config });
105
- });
106
- },
107
102
  addDashboardGroup(slug) {
108
103
  return __awaiter(this, void 0, void 0, function* () {
109
104
  return callDashboardApi('/adminapi/v1/dashboard/add_dashboard_group', { slug });
@@ -169,6 +164,96 @@ export const dashboardApi = {
169
164
  });
170
165
  });
171
166
  },
167
+ configureTableWidget(slug, widgetId, config) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ return callDashboardApi('/adminapi/v1/dashboard/configure_table_widget', {
170
+ slug,
171
+ widgetId,
172
+ config,
173
+ });
174
+ });
175
+ },
176
+ configureKpiCardWidget(slug, widgetId, config) {
177
+ return __awaiter(this, void 0, void 0, function* () {
178
+ return callDashboardApi('/adminapi/v1/dashboard/configure_kpi_card_widget', {
179
+ slug,
180
+ widgetId,
181
+ config,
182
+ });
183
+ });
184
+ },
185
+ configureGaugeCardWidget(slug, widgetId, config) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ return callDashboardApi('/adminapi/v1/dashboard/configure_gauge_card_widget', {
188
+ slug,
189
+ widgetId,
190
+ config,
191
+ });
192
+ });
193
+ },
194
+ configureLineChartWidget(slug, widgetId, config) {
195
+ return __awaiter(this, void 0, void 0, function* () {
196
+ return callDashboardApi('/adminapi/v1/dashboard/configure_line_chart_widget', {
197
+ slug,
198
+ widgetId,
199
+ config,
200
+ });
201
+ });
202
+ },
203
+ configureBarChartWidget(slug, widgetId, config) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ return callDashboardApi('/adminapi/v1/dashboard/configure_bar_chart_widget', {
206
+ slug,
207
+ widgetId,
208
+ config,
209
+ });
210
+ });
211
+ },
212
+ configureStackedBarChartWidget(slug, widgetId, config) {
213
+ return __awaiter(this, void 0, void 0, function* () {
214
+ return callDashboardApi('/adminapi/v1/dashboard/configure_stacked_bar_chart_widget', {
215
+ slug,
216
+ widgetId,
217
+ config,
218
+ });
219
+ });
220
+ },
221
+ configurePieChartWidget(slug, widgetId, config) {
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ return callDashboardApi('/adminapi/v1/dashboard/configure_pie_chart_widget', {
224
+ slug,
225
+ widgetId,
226
+ config,
227
+ });
228
+ });
229
+ },
230
+ configureHistogramChartWidget(slug, widgetId, config) {
231
+ return __awaiter(this, void 0, void 0, function* () {
232
+ return callDashboardApi('/adminapi/v1/dashboard/configure_histogram_chart_widget', {
233
+ slug,
234
+ widgetId,
235
+ config,
236
+ });
237
+ });
238
+ },
239
+ configureFunnelChartWidget(slug, widgetId, config) {
240
+ return __awaiter(this, void 0, void 0, function* () {
241
+ return callDashboardApi('/adminapi/v1/dashboard/configure_funnel_chart_widget', {
242
+ slug,
243
+ widgetId,
244
+ config,
245
+ });
246
+ });
247
+ },
248
+ configurePivotTableWidget(slug, widgetId, config) {
249
+ return __awaiter(this, void 0, void 0, function* () {
250
+ return callDashboardApi('/adminapi/v1/dashboard/configure_pivot_table_widget', {
251
+ slug,
252
+ widgetId,
253
+ config,
254
+ });
255
+ });
256
+ },
172
257
  getDashboardWidgetData(slug_1, widgetId_1) {
173
258
  return __awaiter(this, arguments, void 0, function* (slug, widgetId, request = {}) {
174
259
  return callDashboardWidgetDataApi('/adminapi/v1/dashboard/get_dashboard_widget_data', Object.assign({ slug,
@@ -1,11 +1,15 @@
1
1
  import type {
2
2
  DashboardConfig,
3
3
  EditableDashboardGroupConfig,
4
- EditableDashboardWidgetConfig,
5
4
  DashboardGroupMoveDirection,
5
+ ChartDashboardWidgetConfig,
6
6
  DashboardWidgetConfig,
7
7
  DashboardWidgetConfigValidationError,
8
8
  DashboardWidgetMoveDirection,
9
+ GaugeCardWidgetConfig,
10
+ KpiCardWidgetConfig,
11
+ PivotTableWidgetConfig,
12
+ TableWidgetConfig,
9
13
  } from '../model/dashboard.types.js'
10
14
 
11
15
  export type DashboardResponse = {
@@ -28,6 +32,18 @@ export type DashboardWidgetDataRequest = {
28
32
  }
29
33
  }
30
34
 
35
+ export type ConfigurableTableWidgetConfig = Omit<TableWidgetConfig, 'id' | 'group_id' | 'order'>
36
+ export type ConfigurableKpiCardWidgetConfig = Omit<KpiCardWidgetConfig, 'id' | 'group_id' | 'order'>
37
+ export type ConfigurableGaugeCardWidgetConfig = Omit<GaugeCardWidgetConfig, 'id' | 'group_id' | 'order'>
38
+ export type ConfigurableChartWidgetConfig = Omit<ChartDashboardWidgetConfig, 'id' | 'group_id' | 'order'>
39
+ export type ConfigurableLineChartWidgetConfig = ConfigurableChartWidgetConfig & { chart: { type: 'line' } }
40
+ export type ConfigurableBarChartWidgetConfig = ConfigurableChartWidgetConfig & { chart: { type: 'bar' } }
41
+ export type ConfigurableStackedBarChartWidgetConfig = ConfigurableChartWidgetConfig & { chart: { type: 'stacked_bar' } }
42
+ export type ConfigurablePieChartWidgetConfig = ConfigurableChartWidgetConfig & { chart: { type: 'pie' } }
43
+ export type ConfigurableHistogramChartWidgetConfig = ConfigurableChartWidgetConfig & { chart: { type: 'histogram' } }
44
+ export type ConfigurableFunnelChartWidgetConfig = ConfigurableChartWidgetConfig & { chart: { type: 'funnel' } }
45
+ export type ConfigurablePivotTableWidgetConfig = Omit<PivotTableWidgetConfig, 'id' | 'group_id' | 'order'>
46
+
31
47
  export class DashboardApiError extends Error {
32
48
  validationErrors: DashboardWidgetConfigValidationError[]
33
49
 
@@ -140,10 +156,6 @@ export const dashboardApi = {
140
156
  return callDashboardApi('/adminapi/v1/dashboard/get-config', { slug })
141
157
  },
142
158
 
143
- async setDashboardConfig(slug: string, config: unknown): Promise<DashboardResponse> {
144
- return callDashboardApi('/adminapi/v1/dashboard/set_dashboard_config', { slug, config })
145
- },
146
-
147
159
  async addDashboardGroup(slug: string): Promise<DashboardResponse> {
148
160
  return callDashboardApi('/adminapi/v1/dashboard/add_dashboard_group', { slug })
149
161
  },
@@ -209,6 +221,126 @@ export const dashboardApi = {
209
221
  })
210
222
  },
211
223
 
224
+ async configureTableWidget(
225
+ slug: string,
226
+ widgetId: string,
227
+ config: ConfigurableTableWidgetConfig,
228
+ ): Promise<DashboardResponse> {
229
+ return callDashboardApi('/adminapi/v1/dashboard/configure_table_widget', {
230
+ slug,
231
+ widgetId,
232
+ config,
233
+ })
234
+ },
235
+
236
+ async configureKpiCardWidget(
237
+ slug: string,
238
+ widgetId: string,
239
+ config: ConfigurableKpiCardWidgetConfig,
240
+ ): Promise<DashboardResponse> {
241
+ return callDashboardApi('/adminapi/v1/dashboard/configure_kpi_card_widget', {
242
+ slug,
243
+ widgetId,
244
+ config,
245
+ })
246
+ },
247
+
248
+ async configureGaugeCardWidget(
249
+ slug: string,
250
+ widgetId: string,
251
+ config: ConfigurableGaugeCardWidgetConfig,
252
+ ): Promise<DashboardResponse> {
253
+ return callDashboardApi('/adminapi/v1/dashboard/configure_gauge_card_widget', {
254
+ slug,
255
+ widgetId,
256
+ config,
257
+ })
258
+ },
259
+
260
+ async configureLineChartWidget(
261
+ slug: string,
262
+ widgetId: string,
263
+ config: ConfigurableLineChartWidgetConfig,
264
+ ): Promise<DashboardResponse> {
265
+ return callDashboardApi('/adminapi/v1/dashboard/configure_line_chart_widget', {
266
+ slug,
267
+ widgetId,
268
+ config,
269
+ })
270
+ },
271
+
272
+ async configureBarChartWidget(
273
+ slug: string,
274
+ widgetId: string,
275
+ config: ConfigurableBarChartWidgetConfig,
276
+ ): Promise<DashboardResponse> {
277
+ return callDashboardApi('/adminapi/v1/dashboard/configure_bar_chart_widget', {
278
+ slug,
279
+ widgetId,
280
+ config,
281
+ })
282
+ },
283
+
284
+ async configureStackedBarChartWidget(
285
+ slug: string,
286
+ widgetId: string,
287
+ config: ConfigurableStackedBarChartWidgetConfig,
288
+ ): Promise<DashboardResponse> {
289
+ return callDashboardApi('/adminapi/v1/dashboard/configure_stacked_bar_chart_widget', {
290
+ slug,
291
+ widgetId,
292
+ config,
293
+ })
294
+ },
295
+
296
+ async configurePieChartWidget(
297
+ slug: string,
298
+ widgetId: string,
299
+ config: ConfigurablePieChartWidgetConfig,
300
+ ): Promise<DashboardResponse> {
301
+ return callDashboardApi('/adminapi/v1/dashboard/configure_pie_chart_widget', {
302
+ slug,
303
+ widgetId,
304
+ config,
305
+ })
306
+ },
307
+
308
+ async configureHistogramChartWidget(
309
+ slug: string,
310
+ widgetId: string,
311
+ config: ConfigurableHistogramChartWidgetConfig,
312
+ ): Promise<DashboardResponse> {
313
+ return callDashboardApi('/adminapi/v1/dashboard/configure_histogram_chart_widget', {
314
+ slug,
315
+ widgetId,
316
+ config,
317
+ })
318
+ },
319
+
320
+ async configureFunnelChartWidget(
321
+ slug: string,
322
+ widgetId: string,
323
+ config: ConfigurableFunnelChartWidgetConfig,
324
+ ): Promise<DashboardResponse> {
325
+ return callDashboardApi('/adminapi/v1/dashboard/configure_funnel_chart_widget', {
326
+ slug,
327
+ widgetId,
328
+ config,
329
+ })
330
+ },
331
+
332
+ async configurePivotTableWidget(
333
+ slug: string,
334
+ widgetId: string,
335
+ config: ConfigurablePivotTableWidgetConfig,
336
+ ): Promise<DashboardResponse> {
337
+ return callDashboardApi('/adminapi/v1/dashboard/configure_pivot_table_widget', {
338
+ slug,
339
+ widgetId,
340
+ config,
341
+ })
342
+ },
343
+
212
344
  async getDashboardWidgetData(
213
345
  slug: string,
214
346
  widgetId: string,
@@ -24,7 +24,7 @@ export type DashboardWidgetConfigValidationError = {
24
24
  };
25
25
  export type QueryAggregateOperation = 'sum' | 'count' | 'count_distinct' | 'avg' | 'min' | 'max' | 'median';
26
26
  export type TimeGrain = 'day' | 'week' | 'month' | 'year';
27
- export type ValueFormat = 'number' | 'compact_number' | 'currency' | 'percent' | 'percent_delta' | 'number_delta' | 'currency_delta';
27
+ export type ValueFormat = 'number' | 'integer' | 'compact_number' | 'currency' | 'percent' | 'percent_delta' | 'number_delta' | 'currency_delta';
28
28
  export type WidgetLayout = {
29
29
  size?: DashboardWidgetSize;
30
30
  width?: number;
@@ -90,21 +90,17 @@ export type QueryOrderByItem = {
90
90
  export type QueryConfig = {
91
91
  resource: string;
92
92
  select?: QuerySelectItem[];
93
+ sparkline?: {
94
+ field: string;
95
+ grain: TimeGrain;
96
+ as: string;
97
+ fill_missing?: Record<string, JsonValue>;
98
+ };
93
99
  filters?: FilterExpression;
94
100
  group_by?: QueryGroupByItem[];
95
101
  order_by?: QueryOrderByItem[];
96
102
  limit?: number;
97
103
  offset?: number;
98
- time_series?: {
99
- field: string;
100
- grain: TimeGrain;
101
- timezone?: string;
102
- };
103
- period?: {
104
- field: string;
105
- gte?: JsonValue;
106
- lt?: JsonValue;
107
- };
108
104
  bucket?: {
109
105
  field: string;
110
106
  buckets: Array<{
@@ -148,8 +144,29 @@ export type KpiCardViewConfig = {
148
144
  text?: string;
149
145
  field?: string;
150
146
  };
151
- comparison?: JsonValue;
152
- sparkline?: JsonValue;
147
+ comparison?: {
148
+ field: string;
149
+ format?: ValueFormat;
150
+ positive_is_good?: boolean;
151
+ compact?: {
152
+ show?: boolean;
153
+ template?: string;
154
+ };
155
+ tooltip?: {
156
+ label?: string;
157
+ template?: string;
158
+ };
159
+ };
160
+ sparkline?: {
161
+ type?: 'line';
162
+ field: string;
163
+ x: string;
164
+ show_axes?: boolean;
165
+ show_labels?: boolean;
166
+ fill?: {
167
+ type?: 'gradient' | 'solid';
168
+ };
169
+ };
153
170
  };
154
171
  export type GaugeCardViewConfig = {
155
172
  title?: string;
@@ -211,7 +228,6 @@ export type PivotTableWidgetConfig = WidgetBaseConfig & {
211
228
  query: QueryConfig;
212
229
  };
213
230
  export type DashboardWidgetConfig = EmptyWidgetConfig | TableWidgetConfig | ChartDashboardWidgetConfig | KpiCardWidgetConfig | GaugeCardWidgetConfig | PivotTableWidgetConfig;
214
- export type EditableDashboardWidgetConfig = Omit<EmptyWidgetConfig, 'id' | 'group_id' | 'order'> | Omit<TableWidgetConfig, 'id' | 'group_id' | 'order'> | Omit<ChartDashboardWidgetConfig, 'id' | 'group_id' | 'order'> | Omit<KpiCardWidgetConfig, 'id' | 'group_id' | 'order'> | Omit<GaugeCardWidgetConfig, 'id' | 'group_id' | 'order'> | Omit<PivotTableWidgetConfig, 'id' | 'group_id' | 'order'>;
215
231
  export type DashboardWidgetTableData = {
216
232
  kind?: 'table';
217
233
  columns: string[];
@@ -10,8 +10,8 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  export function serializeDashboardWidgetConfigForEditor(widget) {
13
- const { id: _id, group_id: _groupId, order: _order } = widget, editableWidget = __rest(widget, ["id", "group_id", "order"]);
14
- return editableWidget;
13
+ const { id: _id, group_id: _groupId, order: _order } = widget, editableWidgetConfig = __rest(widget, ["id", "group_id", "order"]);
14
+ return editableWidgetConfig;
15
15
  }
16
16
  export function getFieldRefField(value) {
17
17
  return typeof value === 'string' ? value : value === null || value === void 0 ? void 0 : value.field;
@@ -36,6 +36,7 @@ export type QueryAggregateOperation = 'sum' | 'count' | 'count_distinct' | 'avg'
36
36
  export type TimeGrain = 'day' | 'week' | 'month' | 'year'
37
37
  export type ValueFormat =
38
38
  | 'number'
39
+ | 'integer'
39
40
  | 'compact_number'
40
41
  | 'currency'
41
42
  | 'percent'
@@ -119,21 +120,17 @@ export type QueryOrderByItem = {
119
120
  export type QueryConfig = {
120
121
  resource: string
121
122
  select?: QuerySelectItem[]
123
+ sparkline?: {
124
+ field: string
125
+ grain: TimeGrain
126
+ as: string
127
+ fill_missing?: Record<string, JsonValue>
128
+ }
122
129
  filters?: FilterExpression
123
130
  group_by?: QueryGroupByItem[]
124
131
  order_by?: QueryOrderByItem[]
125
132
  limit?: number
126
133
  offset?: number
127
- time_series?: {
128
- field: string
129
- grain: TimeGrain
130
- timezone?: string
131
- }
132
- period?: {
133
- field: string
134
- gte?: JsonValue
135
- lt?: JsonValue
136
- }
137
134
  bucket?: {
138
135
  field: string
139
136
  buckets: Array<{ label: string, min?: number, max?: number }>
@@ -178,8 +175,29 @@ export type KpiCardViewConfig = {
178
175
  text?: string
179
176
  field?: string
180
177
  }
181
- comparison?: JsonValue
182
- sparkline?: JsonValue
178
+ comparison?: {
179
+ field: string
180
+ format?: ValueFormat
181
+ positive_is_good?: boolean
182
+ compact?: {
183
+ show?: boolean
184
+ template?: string
185
+ }
186
+ tooltip?: {
187
+ label?: string
188
+ template?: string
189
+ }
190
+ }
191
+ sparkline?: {
192
+ type?: 'line'
193
+ field: string
194
+ x: string
195
+ show_axes?: boolean
196
+ show_labels?: boolean
197
+ fill?: {
198
+ type?: 'gradient' | 'solid'
199
+ }
200
+ }
183
201
  }
184
202
 
185
203
  export type GaugeCardViewConfig = {
@@ -257,14 +275,6 @@ export type DashboardWidgetConfig =
257
275
  | GaugeCardWidgetConfig
258
276
  | PivotTableWidgetConfig
259
277
 
260
- export type EditableDashboardWidgetConfig =
261
- | Omit<EmptyWidgetConfig, 'id' | 'group_id' | 'order'>
262
- | Omit<TableWidgetConfig, 'id' | 'group_id' | 'order'>
263
- | Omit<ChartDashboardWidgetConfig, 'id' | 'group_id' | 'order'>
264
- | Omit<KpiCardWidgetConfig, 'id' | 'group_id' | 'order'>
265
- | Omit<GaugeCardWidgetConfig, 'id' | 'group_id' | 'order'>
266
- | Omit<PivotTableWidgetConfig, 'id' | 'group_id' | 'order'>
267
-
268
278
  export type DashboardWidgetTableData = {
269
279
  kind?: 'table'
270
280
  columns: string[]
@@ -299,10 +309,10 @@ export function serializeDashboardWidgetConfigForEditor(
299
309
  id: _id,
300
310
  group_id: _groupId,
301
311
  order: _order,
302
- ...editableWidget
312
+ ...editableWidgetConfig
303
313
  } = widget
304
314
 
305
- return editableWidget
315
+ return editableWidgetConfig
306
316
  }
307
317
 
308
318
  export function getFieldRefField(value: FieldRef | undefined) {