@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.
@@ -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 };