@acorex-platform/module-report-management-client 0.0.15
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/fesm2022/acorex-platform-module-report-management-client-contracts.mjs +221 -0
- package/fesm2022/acorex-platform-module-report-management-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-report-management-client-report-drill-popup.component-CvfwhlEp.mjs +59 -0
- package/fesm2022/acorex-platform-module-report-management-client-report-drill-popup.component-CvfwhlEp.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-report-management-client-report-runner-root-page.component-DgvoIHsK.mjs +504 -0
- package/fesm2022/acorex-platform-module-report-management-client-report-runner-root-page.component-DgvoIHsK.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-report-management-client.mjs +3586 -0
- package/fesm2022/acorex-platform-module-report-management-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-report-management-client-contracts.d.ts +554 -0
- package/types/acorex-platform-module-report-management-client.d.ts +849 -0
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@acorex-platform/module-report-management-client",
|
|
3
|
+
"version": "0.0.15",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"peerDependencies": {
|
|
6
|
+
"@angular/common": "^21.0.0",
|
|
7
|
+
"@angular/core": "^21.0.0"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"module": "fesm2022/acorex-platform-module-report-management-client.mjs",
|
|
13
|
+
"typings": "types/acorex-platform-module-report-management-client.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./types/acorex-platform-module-report-management-client.d.ts",
|
|
20
|
+
"default": "./fesm2022/acorex-platform-module-report-management-client.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./contracts": {
|
|
23
|
+
"types": "./types/acorex-platform-module-report-management-client-contracts.d.ts",
|
|
24
|
+
"default": "./fesm2022/acorex-platform-module-report-management-client-contracts.mjs"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"type": "module"
|
|
28
|
+
}
|
|
@@ -0,0 +1,554 @@
|
|
|
1
|
+
import { AXPWidgetColumnNode } from '@acorex-platform/framework-shared/widget-core';
|
|
2
|
+
import { AXPCommand } from '@acorex-platform/framework-shared/runtime';
|
|
3
|
+
import { AXPQuerySort, AXPEntity } from '@acorex-platform/framework-shared/entity';
|
|
4
|
+
import { AXPFilterClause, AXPActionMenuItem, AXPSystemActionType, AXPCategoryEntity, AXPWidgetNode, AXPExportOptions } from '@acorex-platform/framework-shared/core';
|
|
5
|
+
|
|
6
|
+
declare const AXPReportManagementFeatureKeys: {
|
|
7
|
+
readonly ReportBuilder: "ReportManagement:Feature:ReportBuilder";
|
|
8
|
+
readonly SavedReports: "ReportManagement:Feature:SavedReports";
|
|
9
|
+
readonly ScheduledReports: "ReportManagement:Feature:ScheduledReports";
|
|
10
|
+
readonly BackgroundReports: "ReportManagement:Feature:BackgroundReports";
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare const AXPReportManagementMenuKeys: {
|
|
14
|
+
readonly Root: "report-management:menu";
|
|
15
|
+
readonly Reports: "report-management:menu:reports";
|
|
16
|
+
readonly Categories: "report-management:menu:categories";
|
|
17
|
+
readonly DataSets: "report-management:menu:data-sets";
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
declare const AXMPermissionsKeys: {
|
|
21
|
+
ReportManagement: {
|
|
22
|
+
Management: string;
|
|
23
|
+
Report: {
|
|
24
|
+
Management: string;
|
|
25
|
+
View: string;
|
|
26
|
+
Create: string;
|
|
27
|
+
Update: string;
|
|
28
|
+
Delete: string;
|
|
29
|
+
};
|
|
30
|
+
Category: {
|
|
31
|
+
Management: string;
|
|
32
|
+
View: string;
|
|
33
|
+
Create: string;
|
|
34
|
+
Update: string;
|
|
35
|
+
Delete: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
declare const RootConfig: {
|
|
41
|
+
readonly config: {
|
|
42
|
+
i18n: string;
|
|
43
|
+
module: string;
|
|
44
|
+
};
|
|
45
|
+
readonly module: {
|
|
46
|
+
readonly route: "report-management";
|
|
47
|
+
readonly name: string;
|
|
48
|
+
readonly title: `@${string}:module.title`;
|
|
49
|
+
readonly icon: "fa-light fa-chart-bar";
|
|
50
|
+
};
|
|
51
|
+
readonly entities: {
|
|
52
|
+
readonly dataSet: {
|
|
53
|
+
readonly name: "DataSet";
|
|
54
|
+
readonly title: `t("dataSet", { scope: "${string}" })`;
|
|
55
|
+
readonly titlePlural: `t("dataSetPlural", { scope: "${string}" })`;
|
|
56
|
+
readonly icon: "fa-light fa-default";
|
|
57
|
+
};
|
|
58
|
+
readonly category: {
|
|
59
|
+
readonly name: "Category";
|
|
60
|
+
readonly fullName: `${string}.Category`;
|
|
61
|
+
readonly title: `@${string}:reports.entities.category.title`;
|
|
62
|
+
readonly titlePlural: `@${string}:reports.entities.category.plural`;
|
|
63
|
+
readonly icon: "fa-light fa-folder";
|
|
64
|
+
};
|
|
65
|
+
readonly report: {
|
|
66
|
+
readonly name: "Report";
|
|
67
|
+
readonly fullName: `${string}.Report`;
|
|
68
|
+
readonly title: `@${string}:reports.entities.report.title`;
|
|
69
|
+
readonly titlePlural: `@${string}:reports.entities.report.plural`;
|
|
70
|
+
readonly icon: "fa-light fa-file-chart-pie";
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
type AXPReportLayoutType = 'table' | 'chart' | 'cards' | 'custom' | 'pdf';
|
|
76
|
+
/**
|
|
77
|
+
* Report Category - Extends AXPCategoryEntity for consistency and performance
|
|
78
|
+
*
|
|
79
|
+
* Inherited properties from AXPCategoryEntity:
|
|
80
|
+
* - id: string - Unique identifier
|
|
81
|
+
* - title: string - Display name
|
|
82
|
+
* - description?: string - Category description
|
|
83
|
+
* - parentId?: string - Parent category ID
|
|
84
|
+
* - childrenCount: number - Direct child categories count (enables lazy loading)
|
|
85
|
+
* - itemsCount?: number - Direct reports count (replaces hasReport boolean)
|
|
86
|
+
* - totalChildrenCount?: number - Total nested categories (optional, for analytics)
|
|
87
|
+
* - totalItemsCount?: number - Total reports in tree (optional, for analytics)
|
|
88
|
+
*
|
|
89
|
+
* Performance benefits:
|
|
90
|
+
* - Lazy loading support (childrenCount > 0 shows expand icon)
|
|
91
|
+
* - Report count display (itemsCount shows "5 reports" badge)
|
|
92
|
+
* - Efficient queries (no need to query to know if expandable)
|
|
93
|
+
*/
|
|
94
|
+
interface AXPReportCategory extends AXPCategoryEntity {
|
|
95
|
+
}
|
|
96
|
+
interface AXPReportDefinition {
|
|
97
|
+
id: string;
|
|
98
|
+
title: string;
|
|
99
|
+
description?: string;
|
|
100
|
+
categoryIds: string[];
|
|
101
|
+
parameterGroups: AXPReportParameterGroup[];
|
|
102
|
+
permissions?: string[];
|
|
103
|
+
layouts: AXPReportLayoutDefinition[];
|
|
104
|
+
defaultLayoutId: string;
|
|
105
|
+
}
|
|
106
|
+
type AXPReportLayoutAction = AXPActionMenuItem & {
|
|
107
|
+
priority: 'primary' | 'secondary';
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Layout Definition - Associates a layout with metadata
|
|
111
|
+
*/
|
|
112
|
+
interface AXPReportLayoutDefinition {
|
|
113
|
+
id: string;
|
|
114
|
+
title: string;
|
|
115
|
+
description?: string;
|
|
116
|
+
icon?: string;
|
|
117
|
+
layout: AXPReportLayout;
|
|
118
|
+
dataSource?: AXPReportDataSource;
|
|
119
|
+
isDefault?: boolean;
|
|
120
|
+
actions?: AXPReportLayoutAction[];
|
|
121
|
+
export?: AXPExportOptions;
|
|
122
|
+
}
|
|
123
|
+
interface AXPReportParameterGroup {
|
|
124
|
+
name: string;
|
|
125
|
+
title: string;
|
|
126
|
+
description?: string;
|
|
127
|
+
parameters: AXPReportParameter[];
|
|
128
|
+
}
|
|
129
|
+
interface AXPReportParameter {
|
|
130
|
+
path: string;
|
|
131
|
+
title: string;
|
|
132
|
+
description?: string;
|
|
133
|
+
widget: AXPWidgetNode;
|
|
134
|
+
}
|
|
135
|
+
type AXPReportDataSource = AXPQueryDataSource | AXPCustomDataSource | AXPAggregatedDataSource | AXPTransformedDataSource;
|
|
136
|
+
/**
|
|
137
|
+
* Query Data Source - Used for executing predefined queries (AXPQuery)
|
|
138
|
+
*/
|
|
139
|
+
interface AXPQueryDataSource {
|
|
140
|
+
type: 'query';
|
|
141
|
+
name: string;
|
|
142
|
+
description?: string;
|
|
143
|
+
inputs?: AXPReportParameterBinding[];
|
|
144
|
+
sortFields?: AXPQuerySort[];
|
|
145
|
+
pagination?: boolean;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Custom Data Source - Used for fetching data from custom providers like REST APIs or external services
|
|
149
|
+
*/
|
|
150
|
+
interface AXPCustomDataSource {
|
|
151
|
+
type: 'custom';
|
|
152
|
+
provider: string;
|
|
153
|
+
description?: string;
|
|
154
|
+
inputs?: AXPReportParameterBinding[];
|
|
155
|
+
options?: {
|
|
156
|
+
[key: string]: any;
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Parameter Binding - Maps report-level parameters to actual query/command input structure
|
|
161
|
+
*/
|
|
162
|
+
interface AXPReportParameterBinding {
|
|
163
|
+
parameterKey: string;
|
|
164
|
+
bindTo: string;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Aggregated Data Source - Used for pre-aggregated data optimized for charts
|
|
168
|
+
*/
|
|
169
|
+
interface AXPAggregatedDataSource {
|
|
170
|
+
type: 'aggregated';
|
|
171
|
+
baseQuery: string;
|
|
172
|
+
description?: string;
|
|
173
|
+
groupBy: string[];
|
|
174
|
+
aggregations: AXPAggregation[];
|
|
175
|
+
inputs?: AXPReportParameterBinding[];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Transformed Data Source - Applies transformations to existing data sources
|
|
179
|
+
*/
|
|
180
|
+
interface AXPTransformedDataSource {
|
|
181
|
+
type: 'transformed';
|
|
182
|
+
baseDataSource: AXPReportDataSource;
|
|
183
|
+
description?: string;
|
|
184
|
+
transformations: AXPDataTransformation[];
|
|
185
|
+
inputs?: AXPReportParameterBinding[];
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Aggregation operation for aggregated data sources
|
|
189
|
+
*/
|
|
190
|
+
interface AXPAggregation {
|
|
191
|
+
field: string;
|
|
192
|
+
operation: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'distinct';
|
|
193
|
+
alias?: string;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Data transformation operation
|
|
197
|
+
*/
|
|
198
|
+
interface AXPDataTransformation {
|
|
199
|
+
type: 'filter' | 'sort' | 'group' | 'pivot' | 'format';
|
|
200
|
+
config: Record<string, any>;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Drill-down target for a grouped report row.
|
|
204
|
+
* When reportId is omitted, the current report is used.
|
|
205
|
+
*/
|
|
206
|
+
interface AXPReportDrillDownConfig {
|
|
207
|
+
reportId?: string;
|
|
208
|
+
layoutId?: string;
|
|
209
|
+
title?: string;
|
|
210
|
+
parameters?: Record<string, string>;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Declares how a summary report is grouped and which detail view opens on drill-down.
|
|
214
|
+
* Multiple definitions allow alternative drill paths (e.g. by brand vs by category).
|
|
215
|
+
*/
|
|
216
|
+
interface AXPReportGroupByDefinition {
|
|
217
|
+
fields: string[];
|
|
218
|
+
displayField?: string;
|
|
219
|
+
/** When true (default), `displayField` renders as a link instead of a row command column. */
|
|
220
|
+
linkDisplay?: boolean;
|
|
221
|
+
title?: string;
|
|
222
|
+
default?: boolean;
|
|
223
|
+
priority?: 'primary' | 'secondary';
|
|
224
|
+
drillDown: AXPReportDrillDownConfig;
|
|
225
|
+
}
|
|
226
|
+
type AXPReportLayout = AXPReportTableLayout | AXPReportChartLayout | AXPReportPdfLayout;
|
|
227
|
+
/**
|
|
228
|
+
* Table Layout - Displays data in tabular format
|
|
229
|
+
*/
|
|
230
|
+
interface AXPReportTableLayoutRowAction extends AXPActionMenuItem {
|
|
231
|
+
priority: 'primary' | 'secondary';
|
|
232
|
+
type: AXPSystemActionType | string;
|
|
233
|
+
default?: boolean;
|
|
234
|
+
}
|
|
235
|
+
interface AXPReportTableLayout {
|
|
236
|
+
type: 'table';
|
|
237
|
+
columns: AXPReportColumn[];
|
|
238
|
+
actions?: AXPReportTableLayoutRowAction[];
|
|
239
|
+
options?: AXPTableOptions;
|
|
240
|
+
groupBy?: AXPReportGroupByDefinition[];
|
|
241
|
+
conditionalFormatting?: AXPConditionalFormatRule[];
|
|
242
|
+
summary?: AXPReportSummaryOptions[];
|
|
243
|
+
header?: AXPReportHeaderFooter;
|
|
244
|
+
footer?: AXPReportHeaderFooter;
|
|
245
|
+
}
|
|
246
|
+
interface AXPTableOptions {
|
|
247
|
+
pagination?: boolean;
|
|
248
|
+
stickyHeader?: boolean;
|
|
249
|
+
stripedRows?: boolean;
|
|
250
|
+
sorting?: AXPQuerySort[];
|
|
251
|
+
selectable?: {
|
|
252
|
+
mode: 'single' | 'multiple' | 'none';
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Chart Layout - Displays data in various chart formats
|
|
257
|
+
*/
|
|
258
|
+
interface AXPReportChartLayout {
|
|
259
|
+
type: 'chart';
|
|
260
|
+
options: AXPReportChartOptions;
|
|
261
|
+
header?: AXPReportHeaderFooter;
|
|
262
|
+
footer?: AXPReportHeaderFooter;
|
|
263
|
+
}
|
|
264
|
+
interface AXPReportChartOptions {
|
|
265
|
+
chartType: 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter' | 'radar' | 'mixed';
|
|
266
|
+
dataMapping: AXPChartDataMapping;
|
|
267
|
+
styling?: AXPChartStyling;
|
|
268
|
+
interactivity?: AXPChartInteractivity;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Chart Data Mapping Configuration
|
|
272
|
+
*/
|
|
273
|
+
interface AXPChartDataMapping {
|
|
274
|
+
xField: string;
|
|
275
|
+
yFields: string | string[];
|
|
276
|
+
groupBy?: string;
|
|
277
|
+
seriesField?: string;
|
|
278
|
+
sizeField?: string;
|
|
279
|
+
colorField?: string;
|
|
280
|
+
labelField?: string;
|
|
281
|
+
aggregation?: {
|
|
282
|
+
method: 'sum' | 'avg' | 'count' | 'min' | 'max';
|
|
283
|
+
field: string;
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Chart Visual Styling Configuration
|
|
288
|
+
*/
|
|
289
|
+
interface AXPChartStyling {
|
|
290
|
+
colorScheme?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'custom';
|
|
291
|
+
customColors?: string[];
|
|
292
|
+
gridLines?: boolean;
|
|
293
|
+
legend?: {
|
|
294
|
+
show: boolean;
|
|
295
|
+
position: 'top' | 'bottom' | 'left' | 'right';
|
|
296
|
+
};
|
|
297
|
+
xAxis?: AXPChartAxisConfig;
|
|
298
|
+
yAxis?: AXPChartAxisConfig;
|
|
299
|
+
animation?: {
|
|
300
|
+
enabled: boolean;
|
|
301
|
+
duration?: number;
|
|
302
|
+
};
|
|
303
|
+
chartSpecific?: {
|
|
304
|
+
bar?: {
|
|
305
|
+
orientation: 'vertical' | 'horizontal';
|
|
306
|
+
mode: 'grouped' | 'stacked';
|
|
307
|
+
barWidth?: number;
|
|
308
|
+
};
|
|
309
|
+
line?: {
|
|
310
|
+
style: 'straight' | 'curved' | 'stepped';
|
|
311
|
+
showPoints?: boolean;
|
|
312
|
+
tension?: number;
|
|
313
|
+
};
|
|
314
|
+
area?: {
|
|
315
|
+
mode: 'normal' | 'stacked' | 'percentage';
|
|
316
|
+
opacity?: number;
|
|
317
|
+
};
|
|
318
|
+
pie?: {
|
|
319
|
+
startAngle?: number;
|
|
320
|
+
innerRadius?: number;
|
|
321
|
+
showLabels?: boolean;
|
|
322
|
+
};
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Chart Axis Configuration
|
|
327
|
+
*/
|
|
328
|
+
interface AXPChartAxisConfig {
|
|
329
|
+
title?: string;
|
|
330
|
+
show?: boolean;
|
|
331
|
+
type?: 'linear' | 'logarithmic' | 'datetime' | 'category';
|
|
332
|
+
min?: number | string;
|
|
333
|
+
max?: number | string;
|
|
334
|
+
format?: string;
|
|
335
|
+
gridLines?: boolean;
|
|
336
|
+
tickInterval?: number;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Chart Interactivity Configuration
|
|
340
|
+
*/
|
|
341
|
+
interface AXPChartInteractivity {
|
|
342
|
+
zoom?: {
|
|
343
|
+
enabled: boolean;
|
|
344
|
+
mode?: 'x' | 'y' | 'xy';
|
|
345
|
+
};
|
|
346
|
+
tooltips?: {
|
|
347
|
+
enabled: boolean;
|
|
348
|
+
format?: string;
|
|
349
|
+
showOnHover?: boolean;
|
|
350
|
+
};
|
|
351
|
+
onClick?: {
|
|
352
|
+
enabled: boolean;
|
|
353
|
+
action?: 'drill-down' | 'filter' | 'custom';
|
|
354
|
+
};
|
|
355
|
+
selection?: {
|
|
356
|
+
enabled: boolean;
|
|
357
|
+
mode?: 'single' | 'multiple';
|
|
358
|
+
};
|
|
359
|
+
export?: {
|
|
360
|
+
enabled: boolean;
|
|
361
|
+
formats?: ('png' | 'jpg' | 'pdf' | 'svg')[];
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* PDF Layout - Displays PDF documents
|
|
366
|
+
*/
|
|
367
|
+
interface AXPReportPdfLayout {
|
|
368
|
+
type: 'pdf';
|
|
369
|
+
options?: AXPReportPdfOptions;
|
|
370
|
+
header?: AXPReportHeaderFooter;
|
|
371
|
+
footer?: AXPReportHeaderFooter;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* PDF Layout Options
|
|
375
|
+
*/
|
|
376
|
+
interface AXPReportPdfOptions {
|
|
377
|
+
showDownloadButton?: boolean;
|
|
378
|
+
showPrintButton?: boolean;
|
|
379
|
+
showZoomControls?: boolean;
|
|
380
|
+
showFullscreenButton?: boolean;
|
|
381
|
+
defaultZoom?: number;
|
|
382
|
+
height?: string;
|
|
383
|
+
}
|
|
384
|
+
interface AXPReportColumn {
|
|
385
|
+
field: string;
|
|
386
|
+
title?: string;
|
|
387
|
+
visible?: boolean;
|
|
388
|
+
width?: number | 'auto';
|
|
389
|
+
align?: 'left' | 'center' | 'right';
|
|
390
|
+
/** When true, column header supports interactive sort (opt-in). */
|
|
391
|
+
sortable?: boolean;
|
|
392
|
+
/** Pin column to the start or end of the table (definition-only). */
|
|
393
|
+
pin?: 'start' | 'end';
|
|
394
|
+
widget?: AXPWidgetColumnNode;
|
|
395
|
+
/**
|
|
396
|
+
* Optional cell interactivity. When omitted, group-by `displayField` columns
|
|
397
|
+
* can still render as drill links automatically in report table view.
|
|
398
|
+
*/
|
|
399
|
+
interactivity?: AXPReportColumnInteractivity;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Column cell interaction — link triggers a command with the current row as context.
|
|
403
|
+
* Platform widgets may mirror this via column `options.displayAs: 'link'` in the future.
|
|
404
|
+
*/
|
|
405
|
+
interface AXPReportColumnInteractivity {
|
|
406
|
+
type: 'link';
|
|
407
|
+
command: {
|
|
408
|
+
name: string;
|
|
409
|
+
options?: Record<string, unknown>;
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
/** Server-computed report footer totals keyed by column field. */
|
|
413
|
+
type AXPReportTableSummaryResult = Record<string, number | null>;
|
|
414
|
+
interface AXPReportSummaryOptions {
|
|
415
|
+
field: string;
|
|
416
|
+
operation: 'sum' | 'avg' | 'count' | 'min' | 'max';
|
|
417
|
+
displayIn: 'groupFooter' | 'reportFooter';
|
|
418
|
+
}
|
|
419
|
+
interface AXPConditionalFormatRule {
|
|
420
|
+
field: string;
|
|
421
|
+
condition: '>' | '<' | '=' | '!=' | 'contains';
|
|
422
|
+
value: any;
|
|
423
|
+
style: {
|
|
424
|
+
color?: string;
|
|
425
|
+
backgroundColor?: string;
|
|
426
|
+
fontWeight?: 'normal' | 'bold';
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
interface AXPReportHeaderFooter {
|
|
430
|
+
title?: string;
|
|
431
|
+
logoUrl?: string;
|
|
432
|
+
showDate?: boolean;
|
|
433
|
+
showParameters?: boolean;
|
|
434
|
+
customHtml?: string;
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Layout switcher options for UI components
|
|
438
|
+
*/
|
|
439
|
+
interface AXPLayoutSwitcherOption {
|
|
440
|
+
id: string;
|
|
441
|
+
title: string;
|
|
442
|
+
icon?: string;
|
|
443
|
+
type: AXPReportLayoutType;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Runtime layout selection state
|
|
447
|
+
*/
|
|
448
|
+
interface AXPReportLayoutState {
|
|
449
|
+
reportId: string;
|
|
450
|
+
activeLayoutId: string;
|
|
451
|
+
availableLayouts: AXPLayoutSwitcherOption[];
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Layout validation result
|
|
455
|
+
*/
|
|
456
|
+
interface AXPLayoutValidationResult {
|
|
457
|
+
isValid: boolean;
|
|
458
|
+
errors: string[];
|
|
459
|
+
layoutId: string;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Data source resolution result for a specific layout
|
|
463
|
+
*/
|
|
464
|
+
interface AXPLayoutDataSourceResolution {
|
|
465
|
+
layoutId: string;
|
|
466
|
+
dataSource: AXPReportDataSource;
|
|
467
|
+
source: 'layout' | 'report' | 'none';
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Layout execution context with resolved data source
|
|
471
|
+
*/
|
|
472
|
+
interface AXPLayoutExecutionContext {
|
|
473
|
+
reportId: string;
|
|
474
|
+
layoutId: string;
|
|
475
|
+
dataSource: AXPReportDataSource;
|
|
476
|
+
filters: AXPFilterClause;
|
|
477
|
+
skip?: number;
|
|
478
|
+
take?: number;
|
|
479
|
+
/** Runtime/user sort — platform shape `{ name, dir }`. */
|
|
480
|
+
sort?: AXPQuerySort[];
|
|
481
|
+
}
|
|
482
|
+
type AXPExecutionReportResult = {
|
|
483
|
+
type: 'table';
|
|
484
|
+
items: Record<string, unknown>[];
|
|
485
|
+
total: number;
|
|
486
|
+
summary?: AXPReportTableSummaryResult;
|
|
487
|
+
} | {
|
|
488
|
+
type: 'chart';
|
|
489
|
+
data: Record<string, unknown>;
|
|
490
|
+
} | {
|
|
491
|
+
type: 'cards';
|
|
492
|
+
items: Record<string, unknown>[];
|
|
493
|
+
} | {
|
|
494
|
+
type: 'custom';
|
|
495
|
+
data: unknown;
|
|
496
|
+
} | {
|
|
497
|
+
type: 'pdf';
|
|
498
|
+
url?: string;
|
|
499
|
+
base64?: string;
|
|
500
|
+
blob?: Blob;
|
|
501
|
+
filename?: string;
|
|
502
|
+
};
|
|
503
|
+
type AXPExecutionReportCommandResult = AXPReportLayout & {
|
|
504
|
+
data: AXPExecutionReportResult;
|
|
505
|
+
};
|
|
506
|
+
interface AXPExecutionReportCommand extends AXPCommand<AXPLayoutExecutionContext, AXPExecutionReportCommandResult> {
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Report execution status and metadata
|
|
510
|
+
*/
|
|
511
|
+
interface AXPReportExecutionStatus {
|
|
512
|
+
reportId: string;
|
|
513
|
+
layoutId: string;
|
|
514
|
+
status: 'pending' | 'executing' | 'completed' | 'failed' | 'cancelled';
|
|
515
|
+
startTime: Date;
|
|
516
|
+
endTime?: Date;
|
|
517
|
+
duration?: number;
|
|
518
|
+
recordCount?: number;
|
|
519
|
+
error?: AXPReportExecutionError;
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Detailed error information for report execution
|
|
523
|
+
*/
|
|
524
|
+
interface AXPReportExecutionError {
|
|
525
|
+
code: string;
|
|
526
|
+
message: string;
|
|
527
|
+
details?: Record<string, unknown>;
|
|
528
|
+
stack?: string;
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Report execution request with options
|
|
532
|
+
*/
|
|
533
|
+
interface AXPReportExecutionRequest {
|
|
534
|
+
reportId: string;
|
|
535
|
+
layoutId: string;
|
|
536
|
+
parameters: Record<string, unknown>;
|
|
537
|
+
options?: AXPReportExecutionOptions;
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Options for report execution
|
|
541
|
+
*/
|
|
542
|
+
interface AXPReportExecutionOptions {
|
|
543
|
+
timeout?: number;
|
|
544
|
+
priority?: 'low' | 'normal' | 'high';
|
|
545
|
+
cache?: boolean;
|
|
546
|
+
cacheTimeout?: number;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
declare function reportEntityFactory(): Promise<AXPEntity | null>;
|
|
550
|
+
|
|
551
|
+
declare function reportCategoryEntityFactory(): Promise<AXPEntity | null>;
|
|
552
|
+
|
|
553
|
+
export { AXMPermissionsKeys, AXPReportManagementFeatureKeys, AXPReportManagementMenuKeys, RootConfig, reportCategoryEntityFactory, reportEntityFactory };
|
|
554
|
+
export type { AXPAggregatedDataSource, AXPAggregation, AXPChartAxisConfig, AXPChartDataMapping, AXPChartInteractivity, AXPChartStyling, AXPConditionalFormatRule, AXPCustomDataSource, AXPDataTransformation, AXPExecutionReportCommand, AXPExecutionReportCommandResult, AXPExecutionReportResult, AXPLayoutDataSourceResolution, AXPLayoutExecutionContext, AXPLayoutSwitcherOption, AXPLayoutValidationResult, AXPQueryDataSource, AXPReportCategory, AXPReportChartLayout, AXPReportChartOptions, AXPReportColumn, AXPReportColumnInteractivity, AXPReportDataSource, AXPReportDefinition, AXPReportDrillDownConfig, AXPReportExecutionError, AXPReportExecutionOptions, AXPReportExecutionRequest, AXPReportExecutionStatus, AXPReportGroupByDefinition, AXPReportHeaderFooter, AXPReportLayout, AXPReportLayoutAction, AXPReportLayoutDefinition, AXPReportLayoutState, AXPReportLayoutType, AXPReportParameter, AXPReportParameterBinding, AXPReportParameterGroup, AXPReportPdfLayout, AXPReportPdfOptions, AXPReportSummaryOptions, AXPReportTableLayout, AXPReportTableLayoutRowAction, AXPReportTableSummaryResult, AXPTableOptions, AXPTransformedDataSource };
|