@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
|
@@ -0,0 +1,849 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { Injector } from '@angular/core';
|
|
3
|
+
import * as i1 from '@acorex-platform/framework-client/domain';
|
|
4
|
+
import * as i2 from '@acorex-platform/framework-client/runtime';
|
|
5
|
+
import { AXPCommandService } from '@acorex-platform/framework-client/runtime';
|
|
6
|
+
import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
|
|
7
|
+
import { AXPExecuteCommandResult, AXPContextData, AXPFilterClause, AXPGridLayoutOptions, AXPBreadcrumbItem, AXPActionMenuItem, AXPBackButton, AXPExecuteCommand } from '@acorex-platform/framework-shared/core';
|
|
8
|
+
import { AXPCommand } from '@acorex-platform/framework-shared/runtime';
|
|
9
|
+
import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex-platform/framework-client/auth';
|
|
10
|
+
import * as _acorex_cdk_common from '@acorex/cdk/common';
|
|
11
|
+
import { AXDataSourceQuery, AXDataSource } from '@acorex/cdk/common';
|
|
12
|
+
import * as node_modules__acorex_platform_framework_shared_entity_src_lib from 'node_modules/@acorex-platform/framework-shared/entity/src/lib';
|
|
13
|
+
import * as _acorex_platform_framework_shared_widget_core from '@acorex-platform/framework-shared/widget-core';
|
|
14
|
+
import { AXPWidgetColumnNode, AXPPageStatus } from '@acorex-platform/framework-shared/widget-core';
|
|
15
|
+
import * as _acorex_platform_framework_client_layout_builder from '@acorex-platform/framework-client/layout/builder';
|
|
16
|
+
import { AXPDynamicFormDefinition } from '@acorex-platform/framework-client/layout/builder';
|
|
17
|
+
import * as _acorex_platform_module_report_management_client from '@acorex-platform/module-report-management-client';
|
|
18
|
+
import * as _ngrx_signals from '@ngrx/signals';
|
|
19
|
+
import * as _acorex_platform_framework_client_themes_shared from '@acorex-platform/framework-client/themes/shared';
|
|
20
|
+
import { AXPDeviceService } from '@acorex-platform/framework-client/core';
|
|
21
|
+
import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
|
|
22
|
+
import { AXPQuerySort } from '@acorex-platform/framework-shared/entity';
|
|
23
|
+
import { AXPReportCategory, AXPReportDefinition, AXPReportLayoutType, AXPReportLayoutAction, AXPReportLayoutDefinition, AXPLayoutExecutionContext, AXPExecutionReportCommandResult, AXPLayoutSwitcherOption, AXPReportTableLayout, AXPReportChartLayout, AXPReportPdfLayout, AXPReportTableSummaryResult, AXPReportTableLayoutRowAction } from '@acorex-platform/module-report-management-client/contracts';
|
|
24
|
+
export * from '@acorex-platform/module-report-management-client/contracts';
|
|
25
|
+
import * as dist_libs_framework_client_types_acorex_platform_framework_client_layout_builder from 'dist/libs/framework/client/types/acorex-platform-framework-client-layout-builder';
|
|
26
|
+
import * as node_modules__acorex_platform_framework_shared_core_src_lib from 'node_modules/@acorex-platform/framework-shared/core/src/lib';
|
|
27
|
+
import { AXBarChartValue, AXBarChartOption } from '@acorex/charts/bar-chart';
|
|
28
|
+
import { AXChartLegendOptions } from '@acorex/charts/chart-legend';
|
|
29
|
+
import { AXRowCommandItemClickEvent, AXDataTableRowDbClick, onColumnSizeChangedEvent, AXColumnsOrderChangedEvent, AXRowCommandItem } from '@acorex/components/data-table';
|
|
30
|
+
import { AXDataPagerChangedEvent } from '@acorex/components/data-pager';
|
|
31
|
+
import { AXDonutChartValue } from '@acorex/charts/donut-chart';
|
|
32
|
+
import { AXLineChartValue } from '@acorex/charts/line-chart';
|
|
33
|
+
|
|
34
|
+
declare class AXMReportManagementModule {
|
|
35
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMReportManagementModule, never>;
|
|
36
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMReportManagementModule, never, [typeof i1.AXPDomainModule, typeof i2.AXPRuntimeModule], never>;
|
|
37
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMReportManagementModule>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface AXPDrillToReportCommandInput {
|
|
41
|
+
reportId?: string;
|
|
42
|
+
layoutId?: string;
|
|
43
|
+
title?: string;
|
|
44
|
+
parameters?: Record<string, unknown>;
|
|
45
|
+
hideColumnFields?: string[];
|
|
46
|
+
__context__?: {
|
|
47
|
+
options?: Partial<AXPDrillToReportCommandInput>;
|
|
48
|
+
data?: Record<string, unknown>;
|
|
49
|
+
};
|
|
50
|
+
options?: Partial<AXPDrillToReportCommandInput>;
|
|
51
|
+
}
|
|
52
|
+
declare class AXPDrillToReportCommand implements AXPCommand<AXPDrillToReportCommandInput | Record<string, unknown>, void> {
|
|
53
|
+
private readonly popupService;
|
|
54
|
+
private readonly expressionEvaluator;
|
|
55
|
+
private readonly translate;
|
|
56
|
+
execute(input: AXPDrillToReportCommandInput | Record<string, unknown>): Promise<AXPExecuteCommandResult<void>>;
|
|
57
|
+
private resolveRowData;
|
|
58
|
+
private resolveOptions;
|
|
59
|
+
private resolvePopupTitle;
|
|
60
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDrillToReportCommand, never>;
|
|
61
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDrillToReportCommand>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
declare class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {
|
|
65
|
+
private injector;
|
|
66
|
+
private readonly translateService;
|
|
67
|
+
constructor(injector: Injector);
|
|
68
|
+
define(context: AXPPermissionDefinitionProviderContext): Promise<void>;
|
|
69
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMPermissionDefinitionProvider, never>;
|
|
70
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMPermissionDefinitionProvider>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
interface AXPReportTableColumnUserState {
|
|
74
|
+
field: string;
|
|
75
|
+
width?: number;
|
|
76
|
+
}
|
|
77
|
+
interface AXPReportTableLayoutUserState {
|
|
78
|
+
columns?: AXPReportTableColumnUserState[];
|
|
79
|
+
sorts?: AXPQuerySort[];
|
|
80
|
+
pageSize?: number;
|
|
81
|
+
}
|
|
82
|
+
interface AXPReportViewerUserSettings {
|
|
83
|
+
activeLayoutId?: string;
|
|
84
|
+
layouts?: Record<string, {
|
|
85
|
+
table?: AXPReportTableLayoutUserState;
|
|
86
|
+
}>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Report Viewer Service
|
|
91
|
+
*
|
|
92
|
+
* Handles report definition retrieval, caching, and layout actions.
|
|
93
|
+
*
|
|
94
|
+
* Performance optimizations:
|
|
95
|
+
* 1. Uses childrenCount to determine if category has children (no query needed)
|
|
96
|
+
* 2. Uses itemsCount to determine if category has reports (no query needed)
|
|
97
|
+
* 3. Aggressive caching prevents duplicate API calls
|
|
98
|
+
* 4. Single pending request per resource prevents race conditions
|
|
99
|
+
* 5. Lazy loading - only loads data when needed
|
|
100
|
+
*/
|
|
101
|
+
declare class AXPReportViewerService {
|
|
102
|
+
private readonly entityService;
|
|
103
|
+
private readonly reportCategoryService;
|
|
104
|
+
private readonly reportDefinitionService;
|
|
105
|
+
/** Cache for categories by id - O(1) lookup */
|
|
106
|
+
private categoriesById;
|
|
107
|
+
/** Cache for categories by parentId - O(1) lookup */
|
|
108
|
+
private categoriesByParentId;
|
|
109
|
+
/** Cache for report definitions by categoryId - O(1) lookup */
|
|
110
|
+
private definitionsByCategory;
|
|
111
|
+
/** Cache for individual report definitions by id - O(1) lookup */
|
|
112
|
+
private definitionsById;
|
|
113
|
+
/** Pending API requests to prevent duplicate calls */
|
|
114
|
+
private pendingCategoriesRequests;
|
|
115
|
+
private pendingDefinitionsRequests;
|
|
116
|
+
private pendingReportRequests;
|
|
117
|
+
/**
|
|
118
|
+
* Get categories by parentId with aggressive caching
|
|
119
|
+
*
|
|
120
|
+
* Optimization: Returns cached result immediately if available,
|
|
121
|
+
* preventing unnecessary API calls during navigation
|
|
122
|
+
*
|
|
123
|
+
* @param parentId - Parent category ID (undefined = root categories)
|
|
124
|
+
* @returns Array of categories with count metadata (childrenCount, itemsCount)
|
|
125
|
+
*/
|
|
126
|
+
getCategories(parentId?: string): Promise<AXPReportCategory[]>;
|
|
127
|
+
/**
|
|
128
|
+
* Get single category by ID with O(1) lookup
|
|
129
|
+
*
|
|
130
|
+
* Optimization: Uses Map for instant retrieval, falls back to
|
|
131
|
+
* searching cache, then providers if not found
|
|
132
|
+
*/
|
|
133
|
+
getCategoryById(categoryId: string): Promise<AXPReportCategory | undefined>;
|
|
134
|
+
/**
|
|
135
|
+
* Get category path from root to specified category
|
|
136
|
+
*
|
|
137
|
+
* Optimization: Builds path using cached categories only
|
|
138
|
+
*/
|
|
139
|
+
getCategoriesPathById(categoryId: string): Promise<AXPReportCategory[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Get report definitions for a category with smart caching
|
|
142
|
+
*
|
|
143
|
+
* Optimization: Checks itemsCount before querying
|
|
144
|
+
* - If itemsCount = 0, returns empty array (no API call)
|
|
145
|
+
* - If itemsCount > 0, loads and caches reports
|
|
146
|
+
* - Returns cached result on subsequent calls
|
|
147
|
+
*
|
|
148
|
+
* @param categoryId - Category ID to get reports from
|
|
149
|
+
* @returns Array of report definitions
|
|
150
|
+
*/
|
|
151
|
+
getReportsByCategoryId(categoryId: string): Promise<AXPReportDefinition[]>;
|
|
152
|
+
/**
|
|
153
|
+
* Get single report definition by ID with O(1) lookup
|
|
154
|
+
*
|
|
155
|
+
* Optimization: Uses Map for instant retrieval
|
|
156
|
+
*/
|
|
157
|
+
getReportById(id: string): Promise<AXPReportDefinition | undefined>;
|
|
158
|
+
/**
|
|
159
|
+
* Get category ID containing a specific report
|
|
160
|
+
*
|
|
161
|
+
* Optimization: Searches cache first, loads on-demand if needed
|
|
162
|
+
*/
|
|
163
|
+
getCategoryIdByReportId(reportId: string): Promise<string | undefined>;
|
|
164
|
+
/**
|
|
165
|
+
* Get category path for a report
|
|
166
|
+
*/
|
|
167
|
+
getCategoriesPathByReportId(reportId: string): Promise<AXPReportCategory[]>;
|
|
168
|
+
/**
|
|
169
|
+
* Get general actions list for a layout type
|
|
170
|
+
* Override in connectivity layer (mock/API) to provide general actions
|
|
171
|
+
* Base implementation returns empty array
|
|
172
|
+
*
|
|
173
|
+
* @param layoutType - The layout type
|
|
174
|
+
* @returns Array of general actions for the layout type
|
|
175
|
+
*/
|
|
176
|
+
getGeneralActionsList(layoutType: AXPReportLayoutType): AXPReportLayoutAction[];
|
|
177
|
+
/**
|
|
178
|
+
* Get merged actions for a layout definition
|
|
179
|
+
* Combines general actions (from getGeneralActionsList) with layout-specific actions
|
|
180
|
+
* Layout-specific actions take precedence (by name) over general actions
|
|
181
|
+
*
|
|
182
|
+
* @param layoutDefinition - The layout definition
|
|
183
|
+
* @returns Merged array of actions (general + custom)
|
|
184
|
+
*/
|
|
185
|
+
getMergedActions(layoutDefinition: AXPReportLayoutDefinition): AXPReportLayoutAction[];
|
|
186
|
+
/**
|
|
187
|
+
* Get primary actions for a layout definition
|
|
188
|
+
*/
|
|
189
|
+
getPrimaryActions(layoutDefinition: AXPReportLayoutDefinition): AXPReportLayoutAction[];
|
|
190
|
+
/**
|
|
191
|
+
* Get secondary actions for a layout definition
|
|
192
|
+
*/
|
|
193
|
+
getSecondaryActions(layoutDefinition: AXPReportLayoutDefinition): AXPReportLayoutAction[];
|
|
194
|
+
/**
|
|
195
|
+
* Load categories from entity service and cache results
|
|
196
|
+
* Can be overridden in extended services (e.g., API layer)
|
|
197
|
+
*/
|
|
198
|
+
protected loadCategories(parentId?: string): Promise<AXPReportCategory[]>;
|
|
199
|
+
/**
|
|
200
|
+
* Load report definitions from entity service and cache results
|
|
201
|
+
* Can be overridden in extended services (e.g., API layer)
|
|
202
|
+
*/
|
|
203
|
+
protected loadReports(categoryId: string): Promise<AXPReportDefinition[]>;
|
|
204
|
+
/**
|
|
205
|
+
* Load single report from entity service and cache result
|
|
206
|
+
* Can be overridden in extended services (e.g., API layer)
|
|
207
|
+
*/
|
|
208
|
+
protected loadReport(id: string): Promise<AXPReportDefinition | undefined>;
|
|
209
|
+
/**
|
|
210
|
+
* Breadth-first search through category hierarchy
|
|
211
|
+
*/
|
|
212
|
+
private searchCategoryInHierarchy;
|
|
213
|
+
/**
|
|
214
|
+
* Check if category has children (uses cached count)
|
|
215
|
+
*/
|
|
216
|
+
categoryHasChildren(categoryId: string): boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Check if category has reports (uses cached count)
|
|
219
|
+
*/
|
|
220
|
+
categoryHasReports(categoryId: string): boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Protected: Check if categories are cached for a parentId
|
|
223
|
+
* Used by extended services (e.g., mock) to determine if logging is needed
|
|
224
|
+
*/
|
|
225
|
+
protected isCategoriesCached(parentId?: string): boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Protected: Check if a category is cached by ID
|
|
228
|
+
* Used by extended services (e.g., mock) to determine if logging is needed
|
|
229
|
+
*/
|
|
230
|
+
protected isCategoryCached(categoryId: string): boolean;
|
|
231
|
+
/**
|
|
232
|
+
* Protected: Check if reports are cached for a categoryId
|
|
233
|
+
* Used by extended services (e.g., mock) to determine if logging is needed
|
|
234
|
+
*/
|
|
235
|
+
protected isReportsCached(categoryId: string): boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Protected: Check if a report is cached by ID
|
|
238
|
+
* Used by extended services (e.g., mock) to determine if logging is needed
|
|
239
|
+
*/
|
|
240
|
+
protected isReportCached(reportId: string): boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Clear all caches
|
|
243
|
+
*/
|
|
244
|
+
clearAllCache(): void;
|
|
245
|
+
/**
|
|
246
|
+
* Clear categories cache only
|
|
247
|
+
*/
|
|
248
|
+
clearCategoriesCache(): void;
|
|
249
|
+
/**
|
|
250
|
+
* Clear reports cache only
|
|
251
|
+
*/
|
|
252
|
+
clearReportsCache(): void;
|
|
253
|
+
/**
|
|
254
|
+
* Execute report with given context
|
|
255
|
+
* Override in connectivity layer (mock/API) to implement report execution
|
|
256
|
+
*
|
|
257
|
+
* @param context - Layout execution context with reportId, layoutId, dataSource, and filters
|
|
258
|
+
* @returns Report execution result with layout and data
|
|
259
|
+
*/
|
|
260
|
+
executeReport(context: AXPLayoutExecutionContext): Promise<AXPExecutionReportCommandResult>;
|
|
261
|
+
/**
|
|
262
|
+
* Execute action by command name
|
|
263
|
+
* Override in connectivity layer (mock/API) to implement action execution
|
|
264
|
+
*
|
|
265
|
+
* @param commandName - Command name (e.g., 'download-report', 'print-report', 'export-report')
|
|
266
|
+
* @param options - Command options (e.g., { format: 'excel', pdfData: {...}, reportData: {...} })
|
|
267
|
+
*/
|
|
268
|
+
executeAction(commandName: string, options?: Record<string, unknown>): Promise<void>;
|
|
269
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPReportViewerService, never>;
|
|
270
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPReportViewerService>;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
declare function AXPieChartReportMapper(data: Record<string, number>): AXDonutChartValue;
|
|
274
|
+
declare function AXBarChartReportMapper(data: Record<string, number>): AXBarChartValue;
|
|
275
|
+
declare function AXLineChartReportMapper(data: Record<string, number>): AXLineChartValue;
|
|
276
|
+
/**
|
|
277
|
+
* Converts AXPContextData (filter context) to AXPFilterClause format
|
|
278
|
+
*
|
|
279
|
+
* Input format:
|
|
280
|
+
* {
|
|
281
|
+
* "fieldName": {
|
|
282
|
+
* "operation": { "type": "between" },
|
|
283
|
+
* "value": { "from": "...", "to": "..." }
|
|
284
|
+
* }
|
|
285
|
+
* }
|
|
286
|
+
*
|
|
287
|
+
* Output format:
|
|
288
|
+
* {
|
|
289
|
+
* logic: 'and',
|
|
290
|
+
* filters: [
|
|
291
|
+
* {
|
|
292
|
+
* field: 'fieldName',
|
|
293
|
+
* operator: { type: 'between' },
|
|
294
|
+
* value: { from: "...", to: "..." }
|
|
295
|
+
* }
|
|
296
|
+
* ]
|
|
297
|
+
* }
|
|
298
|
+
*/
|
|
299
|
+
declare function convertContextDataToFilterClause(context: AXPContextData): AXPFilterClause;
|
|
300
|
+
|
|
301
|
+
interface AXPReportTableColumnViewModel {
|
|
302
|
+
field: string;
|
|
303
|
+
title: string;
|
|
304
|
+
width: number | 'auto';
|
|
305
|
+
visible: boolean;
|
|
306
|
+
align: 'left' | 'center' | 'right';
|
|
307
|
+
sortable: boolean;
|
|
308
|
+
pin?: 'start' | 'end';
|
|
309
|
+
widget: AXPWidgetColumnNode;
|
|
310
|
+
isGroupByDrillLink?: boolean;
|
|
311
|
+
drillDisplayField?: string;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
declare class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
|
|
315
|
+
protected layoutService: {
|
|
316
|
+
currentMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPThemeMode>;
|
|
317
|
+
currentPalette: _angular_core.Signal<string>;
|
|
318
|
+
systemThemeMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPThemeMode>;
|
|
319
|
+
font: _ngrx_signals.DeepSignal<{
|
|
320
|
+
family: string;
|
|
321
|
+
size: string;
|
|
322
|
+
}>;
|
|
323
|
+
overlayLoading: _angular_core.Signal<boolean>;
|
|
324
|
+
navigationLoading: _angular_core.Signal<boolean>;
|
|
325
|
+
overlayLoadingTaskCount: _angular_core.Signal<number>;
|
|
326
|
+
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
327
|
+
sideMenuState: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPSideMenuState>;
|
|
328
|
+
overlaySideMenuOpen: _angular_core.Signal<boolean>;
|
|
329
|
+
sideMenuWidth: _angular_core.Signal<number>;
|
|
330
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
331
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
|
|
332
|
+
menuOrientation: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuOrientation>;
|
|
333
|
+
isPrinting: _angular_core.Signal<boolean>;
|
|
334
|
+
isDarkMode: _angular_core.Signal<boolean>;
|
|
335
|
+
isLightMode: _angular_core.Signal<boolean>;
|
|
336
|
+
isSystemMode: _angular_core.Signal<boolean>;
|
|
337
|
+
isSideMenuOpen: _angular_core.Signal<boolean>;
|
|
338
|
+
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
339
|
+
overlayTaskCount: _angular_core.Signal<number>;
|
|
340
|
+
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
341
|
+
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
342
|
+
effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
|
|
343
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
344
|
+
changeThemeMode: (theme: _acorex_platform_framework_client_themes_shared.AXPThemeMode) => void;
|
|
345
|
+
openSideMenu: () => void;
|
|
346
|
+
closeSideMenu: () => void;
|
|
347
|
+
setSideMenuWidth: (width: number) => void;
|
|
348
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
349
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
350
|
+
toggleSideMenu: () => void;
|
|
351
|
+
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
352
|
+
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
353
|
+
clearOverlayLoading: () => void;
|
|
354
|
+
loadSettings: () => Promise<void>;
|
|
355
|
+
} & _ngrx_signals.StateSource<{
|
|
356
|
+
currentMode: _acorex_platform_framework_client_themes_shared.AXPThemeMode;
|
|
357
|
+
currentPalette: string;
|
|
358
|
+
systemThemeMode: _acorex_platform_framework_client_themes_shared.AXPThemeMode;
|
|
359
|
+
font: {
|
|
360
|
+
family: string;
|
|
361
|
+
size: string;
|
|
362
|
+
};
|
|
363
|
+
overlayLoading: boolean;
|
|
364
|
+
navigationLoading: boolean;
|
|
365
|
+
overlayLoadingTaskCount: number;
|
|
366
|
+
navigationLoadingTaskCount: number;
|
|
367
|
+
sideMenuState: _acorex_platform_framework_client_themes_shared.AXPSideMenuState;
|
|
368
|
+
overlaySideMenuOpen: boolean;
|
|
369
|
+
sideMenuWidth: number;
|
|
370
|
+
sideMenuCompactWidth: number;
|
|
371
|
+
menuVerticalMode: _acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode;
|
|
372
|
+
menuOrientation: _acorex_platform_framework_client_themes_shared.AXPMenuOrientation;
|
|
373
|
+
isPrinting: boolean;
|
|
374
|
+
}>;
|
|
375
|
+
protected readonly deviceService: AXPDeviceService;
|
|
376
|
+
private readonly route;
|
|
377
|
+
private unsubscriber;
|
|
378
|
+
private readonly loadingDialog;
|
|
379
|
+
private readonly destroyRef;
|
|
380
|
+
private readonly reportViewerService;
|
|
381
|
+
reportId: _angular_core.InputSignal<string | undefined>;
|
|
382
|
+
reportParameters: _angular_core.InputSignal<Record<string, any>>;
|
|
383
|
+
private filtersForm;
|
|
384
|
+
protected readonly vm: {
|
|
385
|
+
reportDefinition: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportDefinition | null>;
|
|
386
|
+
currentLayout: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null>;
|
|
387
|
+
filterContext: _angular_core.Signal<AXPContextData>;
|
|
388
|
+
categoriesPath: _angular_core.Signal<any[]>;
|
|
389
|
+
allowFetchData: _angular_core.Signal<boolean>;
|
|
390
|
+
shouldExecuteReport: _angular_core.Signal<boolean>;
|
|
391
|
+
executionRequestId: _angular_core.Signal<number>;
|
|
392
|
+
lastAppliedFilterContext: _angular_core.Signal<AXPContextData | null>;
|
|
393
|
+
hasBeenExecuted: _angular_core.Signal<boolean>;
|
|
394
|
+
status: _angular_core.Signal<_acorex_platform_framework_shared_widget_core.AXPPageStatus>;
|
|
395
|
+
error: _angular_core.Signal<string | null>;
|
|
396
|
+
showRowIndexColumn: _angular_core.Signal<boolean>;
|
|
397
|
+
reportUserSettings: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportViewerUserSettings | null>;
|
|
398
|
+
availableLayouts: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPLayoutSwitcherOption[]>;
|
|
399
|
+
defaultLayout: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null>;
|
|
400
|
+
activeLayoutId: _angular_core.Signal<string | null>;
|
|
401
|
+
layoutType: _angular_core.Signal<"table" | "chart" | "pdf" | null>;
|
|
402
|
+
tableLayoutConfig: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportTableLayout | null>;
|
|
403
|
+
chartLayoutConfig: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportChartLayout | null>;
|
|
404
|
+
pdfLayoutConfig: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportPdfLayout | null>;
|
|
405
|
+
isLoading: _angular_core.Signal<boolean>;
|
|
406
|
+
isExecuting: _angular_core.Signal<boolean>;
|
|
407
|
+
hasError: _angular_core.Signal<boolean>;
|
|
408
|
+
canExecute: _angular_core.Signal<boolean>;
|
|
409
|
+
hasMultipleLayouts: _angular_core.Signal<boolean>;
|
|
410
|
+
title: _angular_core.Signal<string>;
|
|
411
|
+
description: _angular_core.Signal<string | null>;
|
|
412
|
+
formDefinition: _angular_core.Signal<_acorex_platform_framework_client_layout_builder.AXPDynamicFormDefinition>;
|
|
413
|
+
isTableLayout: _angular_core.Signal<boolean>;
|
|
414
|
+
isChartLayout: _angular_core.Signal<boolean>;
|
|
415
|
+
isPdfLayout: _angular_core.Signal<boolean>;
|
|
416
|
+
hasUnappliedFilters: _angular_core.Signal<boolean>;
|
|
417
|
+
canSwitchLayout: _angular_core.Signal<boolean>;
|
|
418
|
+
canSelectRows: _angular_core.Signal<boolean | undefined>;
|
|
419
|
+
tableLayoutUserSettings: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportTableLayoutUserState | null>;
|
|
420
|
+
reportId: _angular_core.Signal<string | null>;
|
|
421
|
+
loadReport: (reportId: string) => Promise<void>;
|
|
422
|
+
switchLayout: (layoutId: string) => void;
|
|
423
|
+
saveTableColumnOrder: (columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
424
|
+
saveTableColumnWidth: (field: string, width: number, columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
425
|
+
saveTableSorts: (sorts: node_modules__acorex_platform_framework_shared_entity_src_lib.AXPQuerySort[]) => Promise<void>;
|
|
426
|
+
saveTablePageSize: (pageSize: number) => Promise<void>;
|
|
427
|
+
executeReport: () => Promise<void>;
|
|
428
|
+
fetchData: (query?: _acorex_cdk_common.AXDataSourceQuery) => Promise<_acorex_platform_module_report_management_client.AXPExecutionReportCommandResult | null>;
|
|
429
|
+
applyDrillView: (options: {
|
|
430
|
+
hideColumnFields: string[];
|
|
431
|
+
}) => void;
|
|
432
|
+
updateFilterContext: (context: Record<string, any>) => void;
|
|
433
|
+
clearFilters: () => void;
|
|
434
|
+
resetFilters: () => void;
|
|
435
|
+
exportReport: (format: string) => Promise<void>;
|
|
436
|
+
refresh: () => Promise<void>;
|
|
437
|
+
clearError: () => void;
|
|
438
|
+
clearExecutionState: () => void;
|
|
439
|
+
cancel: () => void;
|
|
440
|
+
reset: () => void;
|
|
441
|
+
} & _ngrx_signals.StateSource<{
|
|
442
|
+
reportDefinition: _acorex_platform_module_report_management_client.AXPReportDefinition | null;
|
|
443
|
+
currentLayout: _acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null;
|
|
444
|
+
filterContext: AXPContextData;
|
|
445
|
+
categoriesPath: any[];
|
|
446
|
+
allowFetchData: boolean;
|
|
447
|
+
shouldExecuteReport: boolean;
|
|
448
|
+
executionRequestId: number;
|
|
449
|
+
lastAppliedFilterContext: AXPContextData | null;
|
|
450
|
+
hasBeenExecuted: boolean;
|
|
451
|
+
status: _acorex_platform_framework_shared_widget_core.AXPPageStatus;
|
|
452
|
+
error: string | null;
|
|
453
|
+
showRowIndexColumn: boolean;
|
|
454
|
+
reportUserSettings: _acorex_platform_module_report_management_client.AXPReportViewerUserSettings | null;
|
|
455
|
+
}>;
|
|
456
|
+
private readonly watchNavigationLoading;
|
|
457
|
+
private loadingDialogRef;
|
|
458
|
+
private isDialogOpening;
|
|
459
|
+
constructor();
|
|
460
|
+
protected showFiltersPanel: () => boolean;
|
|
461
|
+
protected showReportDisplay: () => boolean;
|
|
462
|
+
private baseRoutes;
|
|
463
|
+
protected defaultLayout: () => AXPGridLayoutOptions;
|
|
464
|
+
protected compactLayout: () => AXPGridLayoutOptions;
|
|
465
|
+
ngOnInit(): Promise<void>;
|
|
466
|
+
/**
|
|
467
|
+
* Effect to handle data fetching when chart configuration changes
|
|
468
|
+
*/
|
|
469
|
+
private loadReportAndRefresh;
|
|
470
|
+
private openContentLoading;
|
|
471
|
+
private closeContentLoading;
|
|
472
|
+
/**
|
|
473
|
+
* Synchronizes filter context to URL query parameters using dot notation
|
|
474
|
+
* @param filterContext The current filter context to sync
|
|
475
|
+
*/
|
|
476
|
+
private syncFiltersToUrl;
|
|
477
|
+
/**
|
|
478
|
+
* Checks if a filter value is considered empty
|
|
479
|
+
*/
|
|
480
|
+
private isFilterValueEmpty;
|
|
481
|
+
/**
|
|
482
|
+
* Flattens filter context to dot notation query parameters
|
|
483
|
+
* Only includes operation.type and value - skips displayText and other fields
|
|
484
|
+
* Example: { operation: { type: 'in' }, value: ['POST', 'GET'] }
|
|
485
|
+
* -> { 'fieldName.operation.type': 'in', 'fieldName.value': 'POST,GET' }
|
|
486
|
+
*/
|
|
487
|
+
private flattenToDotNotation;
|
|
488
|
+
/**
|
|
489
|
+
* Flattens a value object (for nested objects in value field)
|
|
490
|
+
*/
|
|
491
|
+
private flattenValueObject;
|
|
492
|
+
/**
|
|
493
|
+
* Reconstructs filter context from dot notation query parameters
|
|
494
|
+
* Only parses operation.type and value - ignores other fields
|
|
495
|
+
* Example: { 'fieldName.operation.type': 'in', 'fieldName.value': 'POST,GET' }
|
|
496
|
+
* -> { fieldName: { operation: { type: 'in' }, value: ['POST', 'GET'] } }
|
|
497
|
+
*/
|
|
498
|
+
private parseFilterContextFromUrl;
|
|
499
|
+
/**
|
|
500
|
+
* Sets a value in a nested object using a path array
|
|
501
|
+
*/
|
|
502
|
+
private setNestedValue;
|
|
503
|
+
/**
|
|
504
|
+
* Parses a string value, handling arrays (comma-separated) and primitives
|
|
505
|
+
*/
|
|
506
|
+
private parseValue;
|
|
507
|
+
/**
|
|
508
|
+
* Parses a primitive value
|
|
509
|
+
* For query params, we keep everything as string to match user requirement
|
|
510
|
+
* Arrays are handled separately in parseValue
|
|
511
|
+
*/
|
|
512
|
+
private parsePrimitive;
|
|
513
|
+
protected handleFiltersChange(event: AXPContextData): void;
|
|
514
|
+
protected handleFiltersInitiated(event: AXPContextData): void;
|
|
515
|
+
protected handleExecuteReport(): Promise<void>;
|
|
516
|
+
protected handleRefresh(): void;
|
|
517
|
+
protected handleClearFilters(): void;
|
|
518
|
+
/**
|
|
519
|
+
* Handle download report action
|
|
520
|
+
* Gets PDF data from viewmodel and calls service executeAction method
|
|
521
|
+
*/
|
|
522
|
+
protected handleDownloadReport(): Promise<void>;
|
|
523
|
+
/**
|
|
524
|
+
* Handle print report action
|
|
525
|
+
* Gets PDF data from viewmodel and calls service executeAction method
|
|
526
|
+
*/
|
|
527
|
+
protected handlePrintReport(): Promise<void>;
|
|
528
|
+
/**
|
|
529
|
+
* Handle export report action
|
|
530
|
+
* Gets report data from viewmodel and calls service executeAction method
|
|
531
|
+
* @param format - Export format (excel, csv, pdf, image)
|
|
532
|
+
*/
|
|
533
|
+
protected handleExportReport(format?: string): Promise<void>;
|
|
534
|
+
protected getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]>;
|
|
535
|
+
getPageTitle(): Promise<string>;
|
|
536
|
+
getPageDescription(): Promise<string | null>;
|
|
537
|
+
protected getPageIcon(): string | null;
|
|
538
|
+
protected getTitleActions(): AXPActionMenuItem[] | Promise<AXPActionMenuItem[]>;
|
|
539
|
+
getBackButton(): Promise<AXPBackButton | null>;
|
|
540
|
+
onBackButtonClick(): Promise<void>;
|
|
541
|
+
getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
|
|
542
|
+
getSecondaryMenuItems(): Promise<AXPActionMenuItem[]>;
|
|
543
|
+
execute(command: AXPExecuteCommand): Promise<void>;
|
|
544
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPReportViewerPageComponent, never>;
|
|
545
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPReportViewerPageComponent, "axp-report-viewer-page", never, { "reportId": { "alias": "reportId"; "required": false; "isSignal": true; }; "reportParameters": { "alias": "reportParameters"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
declare const AXPReportViewerViewModel: _angular_core.Type<{
|
|
549
|
+
reportDefinition: _angular_core.Signal<AXPReportDefinition | null>;
|
|
550
|
+
currentLayout: _angular_core.Signal<AXPReportLayoutDefinition | null>;
|
|
551
|
+
filterContext: _angular_core.Signal<AXPContextData>;
|
|
552
|
+
categoriesPath: _angular_core.Signal<any[]>;
|
|
553
|
+
allowFetchData: _angular_core.Signal<boolean>;
|
|
554
|
+
shouldExecuteReport: _angular_core.Signal<boolean>;
|
|
555
|
+
executionRequestId: _angular_core.Signal<number>;
|
|
556
|
+
lastAppliedFilterContext: _angular_core.Signal<AXPContextData | null>;
|
|
557
|
+
hasBeenExecuted: _angular_core.Signal<boolean>;
|
|
558
|
+
status: _angular_core.Signal<AXPPageStatus>;
|
|
559
|
+
error: _angular_core.Signal<string | null>;
|
|
560
|
+
showRowIndexColumn: _angular_core.Signal<boolean>;
|
|
561
|
+
reportUserSettings: _angular_core.Signal<AXPReportViewerUserSettings | null>;
|
|
562
|
+
availableLayouts: _angular_core.Signal<AXPLayoutSwitcherOption[]>;
|
|
563
|
+
defaultLayout: _angular_core.Signal<AXPReportLayoutDefinition | null>;
|
|
564
|
+
activeLayoutId: _angular_core.Signal<string | null>;
|
|
565
|
+
layoutType: _angular_core.Signal<"table" | "chart" | "pdf" | null>;
|
|
566
|
+
tableLayoutConfig: _angular_core.Signal<AXPReportTableLayout | null>;
|
|
567
|
+
chartLayoutConfig: _angular_core.Signal<AXPReportChartLayout | null>;
|
|
568
|
+
pdfLayoutConfig: _angular_core.Signal<AXPReportPdfLayout | null>;
|
|
569
|
+
isLoading: _angular_core.Signal<boolean>;
|
|
570
|
+
isExecuting: _angular_core.Signal<boolean>;
|
|
571
|
+
hasError: _angular_core.Signal<boolean>;
|
|
572
|
+
canExecute: _angular_core.Signal<boolean>;
|
|
573
|
+
hasMultipleLayouts: _angular_core.Signal<boolean>;
|
|
574
|
+
title: _angular_core.Signal<string>;
|
|
575
|
+
description: _angular_core.Signal<string | null>;
|
|
576
|
+
formDefinition: _angular_core.Signal<AXPDynamicFormDefinition>;
|
|
577
|
+
isTableLayout: _angular_core.Signal<boolean>;
|
|
578
|
+
isChartLayout: _angular_core.Signal<boolean>;
|
|
579
|
+
isPdfLayout: _angular_core.Signal<boolean>;
|
|
580
|
+
hasUnappliedFilters: _angular_core.Signal<boolean>;
|
|
581
|
+
canSwitchLayout: _angular_core.Signal<boolean>;
|
|
582
|
+
canSelectRows: _angular_core.Signal<boolean | undefined>;
|
|
583
|
+
tableLayoutUserSettings: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportTableLayoutUserState | null>;
|
|
584
|
+
reportId: _angular_core.Signal<string | null>;
|
|
585
|
+
loadReport: (reportId: string) => Promise<void>;
|
|
586
|
+
switchLayout: (layoutId: string) => void;
|
|
587
|
+
saveTableColumnOrder: (columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
588
|
+
saveTableColumnWidth: (field: string, width: number, columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
589
|
+
saveTableSorts: (sorts: AXPQuerySort[]) => Promise<void>;
|
|
590
|
+
saveTablePageSize: (pageSize: number) => Promise<void>;
|
|
591
|
+
executeReport: () => Promise<void>;
|
|
592
|
+
fetchData: (query?: AXDataSourceQuery) => Promise<AXPExecutionReportCommandResult | null>;
|
|
593
|
+
applyDrillView: (options: {
|
|
594
|
+
hideColumnFields: string[];
|
|
595
|
+
}) => void;
|
|
596
|
+
updateFilterContext: (context: Record<string, any>) => void;
|
|
597
|
+
clearFilters: () => void;
|
|
598
|
+
resetFilters: () => void;
|
|
599
|
+
exportReport: (format: string) => Promise<void>;
|
|
600
|
+
refresh: () => Promise<void>;
|
|
601
|
+
clearError: () => void;
|
|
602
|
+
clearExecutionState: () => void;
|
|
603
|
+
cancel: () => void;
|
|
604
|
+
reset: () => void;
|
|
605
|
+
} & _ngrx_signals.StateSource<{
|
|
606
|
+
reportDefinition: AXPReportDefinition | null;
|
|
607
|
+
currentLayout: AXPReportLayoutDefinition | null;
|
|
608
|
+
filterContext: AXPContextData;
|
|
609
|
+
categoriesPath: any[];
|
|
610
|
+
allowFetchData: boolean;
|
|
611
|
+
shouldExecuteReport: boolean;
|
|
612
|
+
executionRequestId: number;
|
|
613
|
+
lastAppliedFilterContext: AXPContextData | null;
|
|
614
|
+
hasBeenExecuted: boolean;
|
|
615
|
+
status: AXPPageStatus;
|
|
616
|
+
error: string | null;
|
|
617
|
+
showRowIndexColumn: boolean;
|
|
618
|
+
reportUserSettings: AXPReportViewerUserSettings | null;
|
|
619
|
+
}>>;
|
|
620
|
+
|
|
621
|
+
declare class AXPReportBarChartViewComponent {
|
|
622
|
+
#private;
|
|
623
|
+
protected readonly vm: {
|
|
624
|
+
reportDefinition: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportDefinition | null>;
|
|
625
|
+
currentLayout: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null>;
|
|
626
|
+
filterContext: _angular_core.Signal<node_modules__acorex_platform_framework_shared_core_src_lib.AXPContextData>;
|
|
627
|
+
categoriesPath: _angular_core.Signal<any[]>;
|
|
628
|
+
allowFetchData: _angular_core.Signal<boolean>;
|
|
629
|
+
shouldExecuteReport: _angular_core.Signal<boolean>;
|
|
630
|
+
executionRequestId: _angular_core.Signal<number>;
|
|
631
|
+
lastAppliedFilterContext: _angular_core.Signal<node_modules__acorex_platform_framework_shared_core_src_lib.AXPContextData | null>;
|
|
632
|
+
hasBeenExecuted: _angular_core.Signal<boolean>;
|
|
633
|
+
status: _angular_core.Signal<AXPPageStatus>;
|
|
634
|
+
error: _angular_core.Signal<string | null>;
|
|
635
|
+
showRowIndexColumn: _angular_core.Signal<boolean>;
|
|
636
|
+
reportUserSettings: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportViewerUserSettings | null>;
|
|
637
|
+
availableLayouts: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPLayoutSwitcherOption[]>;
|
|
638
|
+
defaultLayout: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null>;
|
|
639
|
+
activeLayoutId: _angular_core.Signal<string | null>;
|
|
640
|
+
layoutType: _angular_core.Signal<"table" | "chart" | "pdf" | null>;
|
|
641
|
+
tableLayoutConfig: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportTableLayout | null>;
|
|
642
|
+
chartLayoutConfig: _angular_core.Signal<AXPReportChartLayout | null>;
|
|
643
|
+
pdfLayoutConfig: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportPdfLayout | null>;
|
|
644
|
+
isLoading: _angular_core.Signal<boolean>;
|
|
645
|
+
isExecuting: _angular_core.Signal<boolean>;
|
|
646
|
+
hasError: _angular_core.Signal<boolean>;
|
|
647
|
+
canExecute: _angular_core.Signal<boolean>;
|
|
648
|
+
hasMultipleLayouts: _angular_core.Signal<boolean>;
|
|
649
|
+
title: _angular_core.Signal<string>;
|
|
650
|
+
description: _angular_core.Signal<string | null>;
|
|
651
|
+
formDefinition: _angular_core.Signal<dist_libs_framework_client_types_acorex_platform_framework_client_layout_builder.AXPDynamicFormDefinition>;
|
|
652
|
+
isTableLayout: _angular_core.Signal<boolean>;
|
|
653
|
+
isChartLayout: _angular_core.Signal<boolean>;
|
|
654
|
+
isPdfLayout: _angular_core.Signal<boolean>;
|
|
655
|
+
hasUnappliedFilters: _angular_core.Signal<boolean>;
|
|
656
|
+
canSwitchLayout: _angular_core.Signal<boolean>;
|
|
657
|
+
canSelectRows: _angular_core.Signal<boolean | undefined>;
|
|
658
|
+
tableLayoutUserSettings: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportTableLayoutUserState | null>;
|
|
659
|
+
reportId: _angular_core.Signal<string | null>;
|
|
660
|
+
loadReport: (reportId: string) => Promise<void>;
|
|
661
|
+
switchLayout: (layoutId: string) => void;
|
|
662
|
+
saveTableColumnOrder: (columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
663
|
+
saveTableColumnWidth: (field: string, width: number, columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
664
|
+
saveTableSorts: (sorts: node_modules__acorex_platform_framework_shared_entity_src_lib.AXPQuerySort[]) => Promise<void>;
|
|
665
|
+
saveTablePageSize: (pageSize: number) => Promise<void>;
|
|
666
|
+
executeReport: () => Promise<void>;
|
|
667
|
+
fetchData: (query?: _acorex_cdk_common.AXDataSourceQuery) => Promise<_acorex_platform_module_report_management_client.AXPExecutionReportCommandResult | null>;
|
|
668
|
+
applyDrillView: (options: {
|
|
669
|
+
hideColumnFields: string[];
|
|
670
|
+
}) => void;
|
|
671
|
+
updateFilterContext: (context: Record<string, any>) => void;
|
|
672
|
+
clearFilters: () => void;
|
|
673
|
+
resetFilters: () => void;
|
|
674
|
+
exportReport: (format: string) => Promise<void>;
|
|
675
|
+
refresh: () => Promise<void>;
|
|
676
|
+
clearError: () => void;
|
|
677
|
+
clearExecutionState: () => void;
|
|
678
|
+
cancel: () => void;
|
|
679
|
+
reset: () => void;
|
|
680
|
+
} & _ngrx_signals.StateSource<{
|
|
681
|
+
reportDefinition: _acorex_platform_module_report_management_client.AXPReportDefinition | null;
|
|
682
|
+
currentLayout: _acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null;
|
|
683
|
+
filterContext: node_modules__acorex_platform_framework_shared_core_src_lib.AXPContextData;
|
|
684
|
+
categoriesPath: any[];
|
|
685
|
+
allowFetchData: boolean;
|
|
686
|
+
shouldExecuteReport: boolean;
|
|
687
|
+
executionRequestId: number;
|
|
688
|
+
lastAppliedFilterContext: node_modules__acorex_platform_framework_shared_core_src_lib.AXPContextData | null;
|
|
689
|
+
hasBeenExecuted: boolean;
|
|
690
|
+
status: AXPPageStatus;
|
|
691
|
+
error: string | null;
|
|
692
|
+
showRowIndexColumn: boolean;
|
|
693
|
+
reportUserSettings: _acorex_platform_module_report_management_client.AXPReportViewerUserSettings | null;
|
|
694
|
+
}>;
|
|
695
|
+
protected readonly AXPPageStatus: typeof AXPPageStatus;
|
|
696
|
+
/**
|
|
697
|
+
* Current chart layout configuration
|
|
698
|
+
*/
|
|
699
|
+
protected readonly chartLayout: _angular_core.Signal<AXPReportChartLayout | null>;
|
|
700
|
+
/**
|
|
701
|
+
* Chart configuration options
|
|
702
|
+
*/
|
|
703
|
+
protected readonly chartOptions: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportChartOptions | null>;
|
|
704
|
+
/**
|
|
705
|
+
* Chart type for rendering
|
|
706
|
+
*/
|
|
707
|
+
protected readonly chartType: _angular_core.Signal<"bar" | "line" | "pie" | "doughnut" | "area" | "scatter" | "radar" | "mixed">;
|
|
708
|
+
/**
|
|
709
|
+
* Data mapping configuration
|
|
710
|
+
*/
|
|
711
|
+
protected readonly dataMapping: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPChartDataMapping | null>;
|
|
712
|
+
/**
|
|
713
|
+
* Handle chart click events
|
|
714
|
+
*/
|
|
715
|
+
protected handleChartClick(event: any): void;
|
|
716
|
+
/**
|
|
717
|
+
* Handle chart data point selection
|
|
718
|
+
*/
|
|
719
|
+
protected handleDataPointSelect(event: any): void;
|
|
720
|
+
/**
|
|
721
|
+
* Check if chart is ready to render
|
|
722
|
+
*/
|
|
723
|
+
protected isChartReady(): boolean;
|
|
724
|
+
/**
|
|
725
|
+
* Get chart configuration for rendering
|
|
726
|
+
*/
|
|
727
|
+
protected getChartConfig(): any;
|
|
728
|
+
protected barChartData: _angular_core.WritableSignal<AXBarChartValue>;
|
|
729
|
+
protected barChartOptions: _angular_core.WritableSignal<AXBarChartOption>;
|
|
730
|
+
protected legendOptions: _angular_core.WritableSignal<AXChartLegendOptions>;
|
|
731
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPReportBarChartViewComponent, never>;
|
|
732
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPReportBarChartViewComponent, "axp-report-bar-chart-view", never, {}, {}, never, never, true, never>;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
declare class AXPReportTableViewComponent {
|
|
736
|
+
#private;
|
|
737
|
+
protected readonly vm: {
|
|
738
|
+
reportDefinition: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportDefinition | null>;
|
|
739
|
+
currentLayout: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null>;
|
|
740
|
+
filterContext: _angular_core.Signal<_acorex_platform_framework_shared_core.AXPContextData>;
|
|
741
|
+
categoriesPath: _angular_core.Signal<any[]>;
|
|
742
|
+
allowFetchData: _angular_core.Signal<boolean>;
|
|
743
|
+
shouldExecuteReport: _angular_core.Signal<boolean>;
|
|
744
|
+
executionRequestId: _angular_core.Signal<number>;
|
|
745
|
+
lastAppliedFilterContext: _angular_core.Signal<_acorex_platform_framework_shared_core.AXPContextData | null>;
|
|
746
|
+
hasBeenExecuted: _angular_core.Signal<boolean>;
|
|
747
|
+
status: _angular_core.Signal<_acorex_platform_framework_shared_widget_core.AXPPageStatus>;
|
|
748
|
+
error: _angular_core.Signal<string | null>;
|
|
749
|
+
showRowIndexColumn: _angular_core.Signal<boolean>;
|
|
750
|
+
reportUserSettings: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportViewerUserSettings | null>;
|
|
751
|
+
availableLayouts: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPLayoutSwitcherOption[]>;
|
|
752
|
+
defaultLayout: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null>;
|
|
753
|
+
activeLayoutId: _angular_core.Signal<string | null>;
|
|
754
|
+
layoutType: _angular_core.Signal<"table" | "chart" | "pdf" | null>;
|
|
755
|
+
tableLayoutConfig: _angular_core.Signal<AXPReportTableLayout | null>;
|
|
756
|
+
chartLayoutConfig: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportChartLayout | null>;
|
|
757
|
+
pdfLayoutConfig: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportPdfLayout | null>;
|
|
758
|
+
isLoading: _angular_core.Signal<boolean>;
|
|
759
|
+
isExecuting: _angular_core.Signal<boolean>;
|
|
760
|
+
hasError: _angular_core.Signal<boolean>;
|
|
761
|
+
canExecute: _angular_core.Signal<boolean>;
|
|
762
|
+
hasMultipleLayouts: _angular_core.Signal<boolean>;
|
|
763
|
+
title: _angular_core.Signal<string>;
|
|
764
|
+
description: _angular_core.Signal<string | null>;
|
|
765
|
+
formDefinition: _angular_core.Signal<dist_libs_framework_client_types_acorex_platform_framework_client_layout_builder.AXPDynamicFormDefinition>;
|
|
766
|
+
isTableLayout: _angular_core.Signal<boolean>;
|
|
767
|
+
isChartLayout: _angular_core.Signal<boolean>;
|
|
768
|
+
isPdfLayout: _angular_core.Signal<boolean>;
|
|
769
|
+
hasUnappliedFilters: _angular_core.Signal<boolean>;
|
|
770
|
+
canSwitchLayout: _angular_core.Signal<boolean>;
|
|
771
|
+
canSelectRows: _angular_core.Signal<boolean | undefined>;
|
|
772
|
+
tableLayoutUserSettings: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportTableLayoutUserState | null>;
|
|
773
|
+
reportId: _angular_core.Signal<string | null>;
|
|
774
|
+
loadReport: (reportId: string) => Promise<void>;
|
|
775
|
+
switchLayout: (layoutId: string) => void;
|
|
776
|
+
saveTableColumnOrder: (columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
777
|
+
saveTableColumnWidth: (field: string, width: number, columns: AXPReportTableColumnViewModel[]) => Promise<void>;
|
|
778
|
+
saveTableSorts: (sorts: AXPQuerySort[]) => Promise<void>;
|
|
779
|
+
saveTablePageSize: (pageSize: number) => Promise<void>;
|
|
780
|
+
executeReport: () => Promise<void>;
|
|
781
|
+
fetchData: (query?: AXDataSourceQuery) => Promise<_acorex_platform_module_report_management_client.AXPExecutionReportCommandResult | null>;
|
|
782
|
+
applyDrillView: (options: {
|
|
783
|
+
hideColumnFields: string[];
|
|
784
|
+
}) => void;
|
|
785
|
+
updateFilterContext: (context: Record<string, any>) => void;
|
|
786
|
+
clearFilters: () => void;
|
|
787
|
+
resetFilters: () => void;
|
|
788
|
+
exportReport: (format: string) => Promise<void>;
|
|
789
|
+
refresh: () => Promise<void>;
|
|
790
|
+
clearError: () => void;
|
|
791
|
+
clearExecutionState: () => void;
|
|
792
|
+
cancel: () => void;
|
|
793
|
+
reset: () => void;
|
|
794
|
+
} & _ngrx_signals.StateSource<{
|
|
795
|
+
reportDefinition: _acorex_platform_module_report_management_client.AXPReportDefinition | null;
|
|
796
|
+
currentLayout: _acorex_platform_module_report_management_client.AXPReportLayoutDefinition | null;
|
|
797
|
+
filterContext: _acorex_platform_framework_shared_core.AXPContextData;
|
|
798
|
+
categoriesPath: any[];
|
|
799
|
+
allowFetchData: boolean;
|
|
800
|
+
shouldExecuteReport: boolean;
|
|
801
|
+
executionRequestId: number;
|
|
802
|
+
lastAppliedFilterContext: _acorex_platform_framework_shared_core.AXPContextData | null;
|
|
803
|
+
hasBeenExecuted: boolean;
|
|
804
|
+
status: _acorex_platform_framework_shared_widget_core.AXPPageStatus;
|
|
805
|
+
error: string | null;
|
|
806
|
+
showRowIndexColumn: boolean;
|
|
807
|
+
reportUserSettings: _acorex_platform_module_report_management_client.AXPReportViewerUserSettings | null;
|
|
808
|
+
}>;
|
|
809
|
+
protected readonly commandService: AXPCommandService;
|
|
810
|
+
private readonly expressionEvaluator;
|
|
811
|
+
private readonly grid;
|
|
812
|
+
protected readonly columns: _angular_core.WritableSignal<AXPReportTableColumnViewModel[]>;
|
|
813
|
+
protected readonly sortedFields: _angular_core.WritableSignal<AXPQuerySort[]>;
|
|
814
|
+
protected readonly tableSummary: _angular_core.WritableSignal<AXPReportTableSummaryResult | null>;
|
|
815
|
+
private handledExecutionRequestId;
|
|
816
|
+
private lastDataSourcePreferencesKey;
|
|
817
|
+
protected handleRowClick(event: AXRowCommandItemClickEvent): void;
|
|
818
|
+
protected handleDbRowClick(event: AXDataTableRowDbClick): void;
|
|
819
|
+
protected handleGroupByDrill(displayField: string, data: unknown): Promise<void>;
|
|
820
|
+
protected handleRowAction(name: string, data: unknown): Promise<void>;
|
|
821
|
+
private evaluateActionOptions;
|
|
822
|
+
protected handleColumnSort(columnField: string): void;
|
|
823
|
+
protected onColumnSizeChanged(event: onColumnSizeChangedEvent): void;
|
|
824
|
+
protected onColumnsOrderChanged(event: AXColumnsOrderChangedEvent): void;
|
|
825
|
+
protected onPageChanged(event: AXDataPagerChangedEvent): void;
|
|
826
|
+
protected readonly layout: _angular_core.Signal<AXPReportTableLayout>;
|
|
827
|
+
protected readonly dataSource: AXDataSource<unknown>;
|
|
828
|
+
protected readonly visibleColumns: _angular_core.Signal<AXPReportTableColumnViewModel[]>;
|
|
829
|
+
protected readonly paginationEnabled: _angular_core.Signal<boolean>;
|
|
830
|
+
protected readonly hasReportFooterSummary: _angular_core.Signal<boolean>;
|
|
831
|
+
protected readonly rowActions: _angular_core.Signal<AXPReportTableLayoutRowAction[]>;
|
|
832
|
+
protected readonly primaryRowAction: _angular_core.Signal<AXRowCommandItem[]>;
|
|
833
|
+
protected readonly hasPrimaryRowAction: _angular_core.Signal<boolean>;
|
|
834
|
+
protected readonly secondaryRowAction: _angular_core.Signal<AXRowCommandItem[]>;
|
|
835
|
+
protected readonly hasSecondaryRowAction: _angular_core.Signal<boolean>;
|
|
836
|
+
protected readonly defaultGroupByDrillDefinition: _angular_core.Signal<_acorex_platform_module_report_management_client.AXPReportGroupByDefinition | null>;
|
|
837
|
+
protected readonly defaultRowAction: _angular_core.Signal<AXRowCommandItem | null>;
|
|
838
|
+
protected resolveColumnSortDirection(columnField: string): 'asc' | 'desc' | undefined;
|
|
839
|
+
protected getSummaryDisplayValue(field: string): string | null;
|
|
840
|
+
protected isFirstVisibleColumn(field: string): boolean;
|
|
841
|
+
protected leadingColumnCount(): number;
|
|
842
|
+
private applySortToDataSource;
|
|
843
|
+
protected convertToRowCommandItem(action: AXPReportTableLayoutRowAction): AXRowCommandItem;
|
|
844
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPReportTableViewComponent, never>;
|
|
845
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPReportTableViewComponent, "axp-report-table-view", never, {}, {}, never, never, true, never>;
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
export { AXBarChartReportMapper, AXLineChartReportMapper, AXMPermissionDefinitionProvider, AXMReportManagementModule, AXPDrillToReportCommand, AXPReportBarChartViewComponent, AXPReportTableViewComponent, AXPReportViewerPageComponent, AXPReportViewerService, AXPReportViewerViewModel, AXPieChartReportMapper, convertContextDataToFilterClause };
|
|
849
|
+
export type { AXPDrillToReportCommandInput, AXPReportTableColumnUserState, AXPReportTableLayoutUserState, AXPReportViewerUserSettings };
|