@acorex/modules 20.0.11 → 20.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/calendar-management/README.md +271 -0
  2. package/calendar-management/index.d.ts +156 -0
  3. package/contact-management/README.md +150 -0
  4. package/contact-management/index.d.ts +15 -4
  5. package/fesm2022/acorex-modules-calendar-management.mjs +1509 -0
  6. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -0
  7. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs +128 -0
  8. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs.map +1 -0
  9. package/fesm2022/acorex-modules-common.mjs +2 -2
  10. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs +2548 -0
  11. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs.map +1 -0
  12. package/fesm2022/{acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs → acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs} +65 -38
  13. package/fesm2022/acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs.map +1 -0
  14. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs → acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs} +49 -95
  15. package/fesm2022/acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs.map +1 -0
  16. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs → acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs} +67 -69
  17. package/fesm2022/acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs.map +1 -0
  18. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs → acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs} +34 -63
  19. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs → acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs} +67 -40
  21. package/fesm2022/acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs.map +1 -0
  22. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs +680 -0
  23. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs.map +1 -0
  24. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs +1062 -0
  25. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs.map +1 -0
  26. package/fesm2022/acorex-modules-contact-management.mjs +1 -2331
  27. package/fesm2022/acorex-modules-contact-management.mjs.map +1 -1
  28. package/fesm2022/acorex-modules-content-management.mjs +23 -0
  29. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  30. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs.map +1 -1
  31. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-TWTBqgn6.mjs → acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs} +29 -5
  32. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs.map +1 -0
  33. package/fesm2022/{acorex-modules-platform-management-list-version.component-DQ3Gp9kl.mjs → acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs} +2 -2
  34. package/fesm2022/{acorex-modules-platform-management-list-version.component-DQ3Gp9kl.mjs.map → acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs.map} +1 -1
  35. package/fesm2022/{acorex-modules-platform-management-settings.provider-FXMK1_44.mjs → acorex-modules-platform-management-settings.provider-intHn3XI.mjs} +2 -2
  36. package/fesm2022/{acorex-modules-platform-management-settings.provider-FXMK1_44.mjs.map → acorex-modules-platform-management-settings.provider-intHn3XI.mjs.map} +1 -1
  37. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  38. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs} +4 -4
  39. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs.map → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs → acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs} +41 -24
  41. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs.map +1 -0
  42. package/fesm2022/acorex-modules-report-management.mjs +670 -8
  43. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  44. package/fesm2022/acorex-modules-security-management.mjs +4 -2
  45. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  46. package/package.json +9 -5
  47. package/report-management/index.d.ts +303 -5
  48. package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs +0 -128
  49. package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs.map +0 -1
  50. package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs.map +0 -1
  51. package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs.map +0 -1
  52. package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs.map +0 -1
  53. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs.map +0 -1
  54. package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs.map +0 -1
  55. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-TWTBqgn6.mjs.map +0 -1
  56. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/modules",
3
- "version": "20.0.11",
3
+ "version": "20.0.13",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=19.0.0",
6
6
  "@angular/core": ">=19.0.0",
@@ -30,6 +30,10 @@
30
30
  "types": "./auth/index.d.ts",
31
31
  "default": "./fesm2022/acorex-modules-auth.mjs"
32
32
  },
33
+ "./calendar-management": {
34
+ "types": "./calendar-management/index.d.ts",
35
+ "default": "./fesm2022/acorex-modules-calendar-management.mjs"
36
+ },
33
37
  "./common": {
34
38
  "types": "./common/index.d.ts",
35
39
  "default": "./fesm2022/acorex-modules-common.mjs"
@@ -94,14 +98,14 @@
94
98
  "types": "./scheduler-job-management/index.d.ts",
95
99
  "default": "./fesm2022/acorex-modules-scheduler-job-management.mjs"
96
100
  },
97
- "./security-management": {
98
- "types": "./security-management/index.d.ts",
99
- "default": "./fesm2022/acorex-modules-security-management.mjs"
100
- },
101
101
  "./settings-management": {
102
102
  "types": "./settings-management/index.d.ts",
103
103
  "default": "./fesm2022/acorex-modules-settings-management.mjs"
104
104
  },
105
+ "./security-management": {
106
+ "types": "./security-management/index.d.ts",
107
+ "default": "./fesm2022/acorex-modules-security-management.mjs"
108
+ },
105
109
  "./text-template-management": {
106
110
  "types": "./text-template-management/index.d.ts",
107
111
  "default": "./fesm2022/acorex-modules-text-template-management.mjs"
@@ -1,11 +1,25 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import * as i1 from '@acorex/platform/domain';
3
3
  import * as i2 from '@acorex/platform/workflow';
4
+ import * as _ngrx_signals from '@ngrx/signals';
5
+ import * as _acorex_platform_core from '@acorex/platform/core';
6
+ import { AXPBreadcrumbItem, AXPBackButton, AXPActionMenuItem, AXPExecuteCommand } from '@acorex/platform/core';
7
+ import * as _acorex_platform_common from '@acorex/platform/common';
8
+ import { AXPReportDefinition, AXPTableLayout } from '@acorex/platform/common';
9
+ import * as _acorex_platform_layout_builder from '@acorex/platform/layout/builder';
10
+ import { AXPPageStatus, AXPLayoutContextChangeEvent } from '@acorex/platform/layout/builder';
11
+ import * as _acorex_platform_layout_components from '@acorex/platform/layout/components';
12
+ import { AXPDynamicFormDefinition } from '@acorex/platform/layout/components';
13
+ import * as _acorex_cdk_common from '@acorex/cdk/common';
14
+ import { AXDataSource } from '@acorex/cdk/common';
15
+ import * as _acorex_platform_themes_shared from '@acorex/platform/themes/shared';
16
+ import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';
17
+ import { AXDataTableRowClick } from '@acorex/components/data-table';
4
18
 
5
19
  declare class AXMReportManagementModule {
6
- static ɵfac: i0.ɵɵFactoryDeclaration<AXMReportManagementModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXMReportManagementModule, never, [typeof i1.AXPDomainModule, typeof i2.AXPWorkflowModule], never>;
8
- static ɵinj: i0.ɵɵInjectorDeclaration<AXMReportManagementModule>;
20
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMReportManagementModule, never>;
21
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMReportManagementModule, never, [typeof i1.AXPDomainModule, typeof i2.AXPWorkflowModule], never>;
22
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMReportManagementModule>;
9
23
  }
10
24
 
11
25
  declare const RootConfig: {
@@ -43,4 +57,288 @@ declare const RootConfig: {
43
57
  };
44
58
  };
45
59
 
46
- export { AXMReportManagementModule, RootConfig };
60
+ declare const AXPReportViewerViewModel: _angular_core.Type<{
61
+ reportDefinition: _angular_core.Signal<AXPReportDefinition | null>;
62
+ reportData: _angular_core.Signal<any[]>;
63
+ filterContext: _angular_core.Signal<Record<string, any>>;
64
+ previousFilterContext: _angular_core.Signal<Record<string, any>>;
65
+ categoriesPath: _angular_core.Signal<any[]>;
66
+ status: _angular_core.Signal<AXPPageStatus>;
67
+ totalRecords: _angular_core.Signal<number>;
68
+ currentPage: _angular_core.Signal<number>;
69
+ pageSize: _angular_core.Signal<number>;
70
+ error: _angular_core.Signal<string | null>;
71
+ layoutType: _angular_core.Signal<"table" | "custom" | "chart" | "cards" | undefined>;
72
+ tableLayoutConfig: _angular_core.Signal<AXPTableLayout | null>;
73
+ isLoading: _angular_core.Signal<boolean>;
74
+ isExecuting: _angular_core.Signal<boolean>;
75
+ hasData: _angular_core.Signal<boolean>;
76
+ hasError: _angular_core.Signal<boolean>;
77
+ title: _angular_core.Signal<string>;
78
+ description: _angular_core.Signal<string | null>;
79
+ formDefinition: _angular_core.Signal<AXPDynamicFormDefinition>;
80
+ dataSource: _angular_core.Signal<AXDataSource<any>>;
81
+ isTableLayout: _angular_core.Signal<boolean>;
82
+ isChartLayout: _angular_core.Signal<boolean>;
83
+ isCardsLayout: _angular_core.Signal<boolean>;
84
+ isCustomLayout: _angular_core.Signal<boolean>;
85
+ columns: _angular_core.Signal<{
86
+ field: string;
87
+ title: string;
88
+ width: string | number;
89
+ visible: boolean;
90
+ align: "left" | "center" | "right";
91
+ widget: {
92
+ type: string;
93
+ options?: _acorex_platform_core.AXPOptionsData;
94
+ } | undefined;
95
+ }[]>;
96
+ paginationEnabled: _angular_core.Signal<boolean>;
97
+ canExecute: _angular_core.Signal<boolean>;
98
+ loadReport: (reportId: string) => Promise<void>;
99
+ executeReport: () => Promise<void>;
100
+ updateFilterContext: (context: Record<string, any>) => void;
101
+ clearFilters: () => void;
102
+ resetFilters: () => void;
103
+ changePage: (page: number) => void;
104
+ changePageSize: (pageSize: number) => void;
105
+ refresh: () => void;
106
+ clearError: () => void;
107
+ reset: () => void;
108
+ } & _ngrx_signals.StateSource<{
109
+ reportDefinition: AXPReportDefinition | null;
110
+ reportData: any[];
111
+ filterContext: Record<string, any>;
112
+ previousFilterContext: Record<string, any>;
113
+ categoriesPath: any[];
114
+ status: AXPPageStatus;
115
+ totalRecords: number;
116
+ currentPage: number;
117
+ pageSize: number;
118
+ error: string | null;
119
+ }>>;
120
+
121
+ declare class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
122
+ protected layoutService: {
123
+ currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
124
+ currentPalette: _angular_core.Signal<string>;
125
+ systemThemeMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
126
+ font: _ngrx_signals.DeepSignal<{
127
+ family: string;
128
+ size: string;
129
+ }>;
130
+ screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
131
+ deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
132
+ isTouchDevice: _angular_core.Signal<boolean>;
133
+ overlayLoading: _angular_core.Signal<boolean>;
134
+ navigationLoading: _angular_core.Signal<boolean>;
135
+ overlayLoadingTaskCount: _angular_core.Signal<number>;
136
+ navigationLoadingTaskCount: _angular_core.Signal<number>;
137
+ sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
138
+ sideMenuWidth: _angular_core.Signal<number>;
139
+ menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
140
+ isDarkMode: _angular_core.Signal<boolean>;
141
+ isLightMode: _angular_core.Signal<boolean>;
142
+ isSystemMode: _angular_core.Signal<boolean>;
143
+ isSideMenuOpen: _angular_core.Signal<boolean>;
144
+ isSideMenuOverlay: _angular_core.Signal<boolean>;
145
+ isSmall: _angular_core.Signal<boolean>;
146
+ isMedium: _angular_core.Signal<boolean>;
147
+ isLarge: _angular_core.Signal<boolean>;
148
+ isMobileDevice: _angular_core.Signal<boolean>;
149
+ isTabletDevice: _angular_core.Signal<boolean>;
150
+ isDesktopDevice: _angular_core.Signal<boolean>;
151
+ isTouchScreen: _angular_core.Signal<boolean>;
152
+ isOverlayLoading: _angular_core.Signal<boolean>;
153
+ isNavigationLoading: _angular_core.Signal<boolean>;
154
+ isMenuHorizontal: _angular_core.Signal<boolean>;
155
+ changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
156
+ openSideMenu: () => void;
157
+ closeSideMenu: () => void;
158
+ setSideMenuWidth: (width: number) => void;
159
+ toggleSideMenu: () => void;
160
+ setNavigationLoading: (value: boolean, delay?: number) => void;
161
+ setOverlayLoading: (value: boolean, delay?: number) => void;
162
+ loadSettings: () => Promise<void>;
163
+ } & _ngrx_signals.StateSource<{
164
+ currentMode: _acorex_platform_themes_shared.AXPThemeMode;
165
+ currentPalette: string;
166
+ systemThemeMode: _acorex_platform_themes_shared.AXPThemeMode;
167
+ font: {
168
+ family: string;
169
+ size: string;
170
+ };
171
+ screenSize: _acorex_platform_themes_shared.AXPScreenSize;
172
+ deviceType: _acorex_platform_themes_shared.AXPDeviceType;
173
+ isTouchDevice: boolean;
174
+ overlayLoading: boolean;
175
+ navigationLoading: boolean;
176
+ overlayLoadingTaskCount: number;
177
+ navigationLoadingTaskCount: number;
178
+ sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
179
+ sideMenuWidth: number;
180
+ menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
181
+ }>;
182
+ private readonly route;
183
+ private readonly router;
184
+ private readonly reportDefinitionService;
185
+ private unsubscriber;
186
+ reportId: _angular_core.InputSignal<string | undefined>;
187
+ reportParameters: _angular_core.InputSignal<Record<string, any>>;
188
+ reportExecuted: _angular_core.OutputEmitterRef<any>;
189
+ private filtersForm;
190
+ private mobileFiltersForm;
191
+ protected readonly vm: {
192
+ reportDefinition: _angular_core.Signal<_acorex_platform_common.AXPReportDefinition | null>;
193
+ reportData: _angular_core.Signal<any[]>;
194
+ filterContext: _angular_core.Signal<Record<string, any>>;
195
+ previousFilterContext: _angular_core.Signal<Record<string, any>>;
196
+ categoriesPath: _angular_core.Signal<any[]>;
197
+ status: _angular_core.Signal<_acorex_platform_layout_builder.AXPPageStatus>;
198
+ totalRecords: _angular_core.Signal<number>;
199
+ currentPage: _angular_core.Signal<number>;
200
+ pageSize: _angular_core.Signal<number>;
201
+ error: _angular_core.Signal<string | null>;
202
+ layoutType: _angular_core.Signal<"table" | "custom" | "chart" | "cards" | undefined>;
203
+ tableLayoutConfig: _angular_core.Signal<_acorex_platform_common.AXPTableLayout | null>;
204
+ isLoading: _angular_core.Signal<boolean>;
205
+ isExecuting: _angular_core.Signal<boolean>;
206
+ hasData: _angular_core.Signal<boolean>;
207
+ hasError: _angular_core.Signal<boolean>;
208
+ title: _angular_core.Signal<string>;
209
+ description: _angular_core.Signal<string | null>;
210
+ formDefinition: _angular_core.Signal<_acorex_platform_layout_components.AXPDynamicFormDefinition>;
211
+ dataSource: _angular_core.Signal<_acorex_cdk_common.AXDataSource<any>>;
212
+ isTableLayout: _angular_core.Signal<boolean>;
213
+ isChartLayout: _angular_core.Signal<boolean>;
214
+ isCardsLayout: _angular_core.Signal<boolean>;
215
+ isCustomLayout: _angular_core.Signal<boolean>;
216
+ columns: _angular_core.Signal<{
217
+ field: string;
218
+ title: string;
219
+ width: string | number;
220
+ visible: boolean;
221
+ align: "left" | "center" | "right";
222
+ widget: {
223
+ type: string;
224
+ options?: _acorex_platform_core.AXPOptionsData;
225
+ } | undefined;
226
+ }[]>;
227
+ paginationEnabled: _angular_core.Signal<boolean>;
228
+ canExecute: _angular_core.Signal<boolean>;
229
+ loadReport: (reportId: string) => Promise<void>;
230
+ executeReport: () => Promise<void>;
231
+ updateFilterContext: (context: Record<string, any>) => void;
232
+ clearFilters: () => void;
233
+ resetFilters: () => void;
234
+ changePage: (page: number) => void;
235
+ changePageSize: (pageSize: number) => void;
236
+ refresh: () => void;
237
+ clearError: () => void;
238
+ reset: () => void;
239
+ } & _ngrx_signals.StateSource<{
240
+ reportDefinition: _acorex_platform_common.AXPReportDefinition | null;
241
+ reportData: any[];
242
+ filterContext: Record<string, any>;
243
+ previousFilterContext: Record<string, any>;
244
+ categoriesPath: any[];
245
+ status: _acorex_platform_layout_builder.AXPPageStatus;
246
+ totalRecords: number;
247
+ currentPage: number;
248
+ pageSize: number;
249
+ error: string | null;
250
+ }>;
251
+ protected showFiltersPanel: () => boolean;
252
+ private baseRoutes;
253
+ protected defaultLayout: () => {
254
+ positions: {
255
+ default: {
256
+ colSpan: number;
257
+ };
258
+ md: {
259
+ colSpan: number;
260
+ };
261
+ lg: {
262
+ colSpan: number;
263
+ };
264
+ };
265
+ };
266
+ protected compactLayout: () => {
267
+ positions: {
268
+ default: {
269
+ colSpan: number;
270
+ };
271
+ sm: {
272
+ colSpan: number;
273
+ };
274
+ md: {
275
+ colSpan: number;
276
+ };
277
+ lg: {
278
+ colSpan: number;
279
+ };
280
+ };
281
+ };
282
+ ngOnInit(): Promise<void>;
283
+ protected handleFiltersChange(event: AXPLayoutContextChangeEvent): void;
284
+ protected handleFiltersInitiated(event: AXPLayoutContextChangeEvent): void;
285
+ protected handleExecuteReport(): Promise<void>;
286
+ protected handleRefresh(): void;
287
+ protected handleClearFilters(): void;
288
+ protected handleRowClick(rowData: any): void;
289
+ protected handleActionClick(event: {
290
+ action: string;
291
+ data: any;
292
+ }): void;
293
+ protected getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]>;
294
+ getPageTitle(): Promise<string>;
295
+ getPageDescription(): Promise<string | null>;
296
+ getBackButton(): Promise<AXPBackButton | null>;
297
+ onBackButtonClick(): Promise<void>;
298
+ getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
299
+ getSecondaryMenuItems(): Promise<AXPActionMenuItem[]>;
300
+ execute(command: AXPExecuteCommand): Promise<void>;
301
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPReportViewerPageComponent, never>;
302
+ 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; }; }, { "reportExecuted": "reportExecuted"; }, never, never, true, never>;
303
+ }
304
+
305
+ declare class AXPReportTableViewComponent {
306
+ dataSource: _angular_core.InputSignal<AXDataSource<unknown>>;
307
+ columns: _angular_core.InputSignal<any[]>;
308
+ isLoading: _angular_core.InputSignal<boolean>;
309
+ hasError: _angular_core.InputSignal<boolean>;
310
+ errorMessage: _angular_core.InputSignal<string | null>;
311
+ hasData: _angular_core.InputSignal<boolean>;
312
+ paginationEnabled: _angular_core.InputSignal<boolean>;
313
+ rowClick: _angular_core.OutputEmitterRef<AXDataTableRowClick>;
314
+ actionClick: _angular_core.OutputEmitterRef<{
315
+ action: string;
316
+ data: any;
317
+ }>;
318
+ protected handleRowClick(event: AXDataTableRowClick): void;
319
+ protected getStatusColor(status: string): string;
320
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPReportTableViewComponent, never>;
321
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPReportTableViewComponent, "axp-report-table-view", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hasData": { "alias": "hasData"; "required": false; "isSignal": true; }; "paginationEnabled": { "alias": "paginationEnabled"; "required": false; "isSignal": true; }; }, { "rowClick": "rowClick"; "actionClick": "actionClick"; }, never, never, true, never>;
322
+ }
323
+
324
+ interface AXMReportExecuteCommandInput {
325
+ reportId: string;
326
+ parameters: Record<string, any>;
327
+ page?: number;
328
+ pageSize?: number;
329
+ }
330
+ interface AXMReportExecuteCommandOutput {
331
+ data: any[];
332
+ total: number;
333
+ page: number;
334
+ pageSize: number;
335
+ }
336
+ declare class AXMReportExecuteCommand {
337
+ execute(input: AXMReportExecuteCommandInput): Promise<AXMReportExecuteCommandOutput>;
338
+ private generateMockData;
339
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMReportExecuteCommand, never>;
340
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMReportExecuteCommand>;
341
+ }
342
+
343
+ export { AXMReportExecuteCommand, AXMReportManagementModule, AXPReportTableViewComponent, AXPReportViewerPageComponent, AXPReportViewerViewModel, RootConfig };
344
+ export type { AXMReportExecuteCommandInput, AXMReportExecuteCommandOutput };
@@ -1,128 +0,0 @@
1
- import * as i7 from '@acorex/cdk/list-navigation';
2
- import { AXListNavigationDirective, AXListNavigationItemDirective, AXListNavigationModule } from '@acorex/cdk/list-navigation';
3
- import * as i3$1 from '@acorex/components/button';
4
- import { AXButtonModule } from '@acorex/components/button';
5
- import { AXChipsModule } from '@acorex/components/chips';
6
- import * as i4 from '@acorex/cdk/common';
7
- import { AXCommonModule } from '@acorex/cdk/common';
8
- import * as i4$1 from '@acorex/components/decorators';
9
- import { AXDecoratorModule } from '@acorex/components/decorators';
10
- import { AXBasePageComponent } from '@acorex/components/page';
11
- import * as i3 from '@acorex/components/search-box';
12
- import { AXSearchBoxComponent, AXSearchBoxModule } from '@acorex/components/search-box';
13
- import * as i9 from '@acorex/components/skeleton';
14
- import { AXSkeletonModule } from '@acorex/components/skeleton';
15
- import * as i4$2 from '@acorex/core/translation';
16
- import { AXTranslationModule } from '@acorex/core/translation';
17
- import { AXPThemeLayoutBlockComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutHeaderComponent } from '@acorex/platform/layout/components';
18
- import * as i1 from '@angular/common';
19
- import { CommonModule } from '@angular/common';
20
- import * as i0 from '@angular/core';
21
- import { inject, viewChild, viewChildren, ChangeDetectionStrategy, Component } from '@angular/core';
22
- import * as i2 from '@angular/forms';
23
- import { FormsModule } from '@angular/forms';
24
- import { first } from 'rxjs';
25
- import { AXPGlobalSearchViewModel } from './acorex-modules-common.mjs';
26
-
27
- class AXPGlobalSearchPopupComponent extends AXBasePageComponent {
28
- constructor() {
29
- super(...arguments);
30
- this.i18nScope = 'global-search';
31
- this.vm = inject(AXPGlobalSearchViewModel);
32
- this.text = null;
33
- this.list = viewChild(AXListNavigationDirective);
34
- this.searchBox = viewChild(AXSearchBoxComponent);
35
- this.items = viewChildren(AXListNavigationItemDirective);
36
- }
37
- async handleTextChanged(e) {
38
- if (e.isUserInteraction) {
39
- await this.vm.search(e.value);
40
- }
41
- }
42
- ngOnInit() {
43
- super.ngOnInit();
44
- //
45
- this.vm.onItemSelected.pipe(first()).subscribe((item) => {
46
- this.close(item);
47
- });
48
- }
49
- handleSearchKeyDown(e) {
50
- const event = e.nativeEvent;
51
- switch (event.code) {
52
- case 'ArrowDown':
53
- const item = this.items()[0];
54
- if (item && this.list()) {
55
- this.list()?.navigateTo(item);
56
- }
57
- event.preventDefault();
58
- event.stopPropagation();
59
- break;
60
- }
61
- }
62
- handleClearClick($event) {
63
- this.vm.clearRecentItems();
64
- }
65
- handleListKeyDown(e) {
66
- switch (e.code) {
67
- case 'ArrowUp': {
68
- const item = this.items()[0];
69
- if (item && this.list() && item.isActive()) {
70
- this.searchBox()?.focus();
71
- }
72
- break;
73
- }
74
- case 'Escape': {
75
- this.searchBox()?.focus();
76
- e.preventDefault();
77
- e.stopPropagation();
78
- break;
79
- }
80
- }
81
- }
82
- handleItemKeyDown(e, item) {
83
- switch (e.code) {
84
- case 'Enter':
85
- case 'Space': {
86
- e.preventDefault();
87
- e.stopPropagation();
88
- this.vm.execute(item);
89
- break;
90
- }
91
- }
92
- }
93
- handlePinClick(e, item) {
94
- e.stopPropagation();
95
- this.vm.togglePin(item);
96
- }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPGlobalSearchPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPGlobalSearchPopupComponent, isStandalone: true, selector: "ng-component", providers: [AXPGlobalSearchViewModel], viewQueries: [{ propertyName: "list", first: true, predicate: AXListNavigationDirective, descendants: true, isSignal: true }, { propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, isSignal: true }, { propertyName: "items", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-layout-content *translate=\"let t\">\n <axp-layout-header class=\"ax-lg\">\n <ax-search-box\n [axAutoFocus]\n [look]=\"'none'\"\n [ngModel]=\"vm.text()\"\n (onValueChanged)=\"handleTextChanged($event)\"\n [placeholder]=\"t('search-anything', { scope: i18nScope }) | async\"\n (onKeyDown)=\"handleSearchKeyDown($event)\"\n ></ax-search-box>\n <div class=\"__close-button\">\n <ax-button [look]=\"'blank'\" class=\"ax-rounded-full\" (onClick)=\"close()\">\n <ax-icon icon=\"fa-light fa-xmark fa-sm\"></ax-icon>\n </ax-button>\n </div>\n </axp-layout-header>\n\n <!-- Results Area -->\n <axp-layout-body>\n @if(vm.isBusy()) {\n <ng-container *ngTemplateOutlet=\"skeleton\"></ng-container>\n } @else if(vm.isEmpty()) {\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n } @else if(vm.isWelcome()) {\n <ng-container *ngTemplateOutlet=\"welcome\"></ng-container>\n } @else if(vm.isStart()) {\n <ng-container *ngTemplateOutlet=\"start\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"result\"></ng-container>\n }\n </axp-layout-body>\n\n <!-- Skeleton Template -->\n <ng-template #skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-10 ax-p-8\">\n @for (item of [1,2,3,4,5]; track $index) {\n <div class=\"ax-flex ax-items-center ax-gap-4\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-4 ax-h-4 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-flex-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/4 ax-h-2 ax-rounded\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-2 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n </ng-template>\n\n <!-- Empty Template -->\n <ng-template #empty>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-rounded-md ax-p-8\">\n <!-- Icon -->\n <div class=\"ax-mb-4\">\n <i class=\"fas fa-search ax-text-gray-400 ax-text-4xl\"></i>\n </div>\n <!-- Message -->\n <div class=\"ax-text-center\">\n <h2 class=\"ax-text-lg ax-font-semibold\">{{ t('no-result.title', { scope: i18nScope }) | async }}</h2>\n <p class=\"ax-mt-2 ax-leading-relaxed\">\n {{ t('no-result.message', { scope: i18nScope }) | async }}\n </p>\n </div>\n </div>\n </ng-template>\n\n <!-- Welcome Template -->\n <ng-template #welcome>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-rounded-md ax-p-8\">\n <!-- Icon -->\n <div class=\"ax-mb-4\">\n <i class=\"fas fa-search ax-text-gray-400 ax-text-4xl\"></i>\n </div>\n <!-- Message -->\n <div class=\"ax-text-center\">\n <h2 class=\"ax-text-lg ax-font-semibold\">{{ t('start.title', { scope: i18nScope }) | async }}</h2>\n <p class=\"ax-mt-2\">{{ t('start.message', { scope: i18nScope }) | async }}</p>\n </div>\n </div>\n </ng-template>\n\n <!-- Start Template -->\n <ng-template #start>\n <!-- Pinned Items -->\n <axp-layout-list\n *translate=\"let t\"\n class=\"ax-p-4 ax-divide-none\"\n (keydown)=\"handleListKeyDown($event)\"\n axListNavigation\n #list=\"axListNavigation\"\n >\n @if(vm.pinnedItems().length>0) {\n <axp-layout-list-group>\n <axp-layout-title>{{ t('pinned', { scope: i18nScope }) | async }}</axp-layout-title>\n @for (item of vm.pinnedItems(); track $index) {\n <axp-layout-list-item\n (click)=\"vm.execute(item)\"\n (keydown)=\"handleItemKeyDown($event, item)\"\n class=\"ax-group\"\n axListNavigationItem\n #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\"\n >\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n }\n <!-- Recent Items -->\n @if(vm.recentItems().length>0) {\n <axp-layout-list-group>\n <axp-layout-header>\n <axp-layout-prefix>\n <axp-layout-title>{{ t('recent', { scope: i18nScope }) | async }}</axp-layout-title>\n </axp-layout-prefix>\n <axp-layout-prefix class=\"ax-xs\">\n <ax-button\n [text]=\"t('clear', { scope: i18nScope }) | async\"\n look=\"blank\"\n [color]=\"'default'\"\n (onClick)=\"handleClearClick($event)\"\n ></ax-button>\n </axp-layout-prefix>\n </axp-layout-header>\n @for (item of vm.recentItems(); track $index) {\n <axp-layout-list-item\n (click)=\"vm.execute(item)\"\n (keydown)=\"handleItemKeyDown($event, item)\"\n class=\"ax-group\"\n axListNavigationItem\n #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\"\n >\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n }\n </axp-layout-list>\n </ng-template>\n\n <!-- Result Template -->\n <ng-template #result>\n <axp-layout-list\n class=\"ax-p-4 ax-divide-none\"\n (keydown)=\"handleListKeyDown($event)\"\n axListNavigation\n #list=\"axListNavigation\"\n >\n @for (group of vm.results(); track $index) {\n <axp-layout-list-group>\n <axp-layout-title> {{ t(group.title) | async }}</axp-layout-title>\n @for (item of group.children; track $index) {\n <axp-layout-list-item\n (click)=\"vm.execute(item)\"\n (keydown)=\"handleItemKeyDown($event, item)\"\n class=\"ax-group\"\n axListNavigationItem\n #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\"\n >\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n }\n </axp-layout-list>\n </ng-template>\n\n <ng-template #listItem let-item=\"item\">\n <axp-layout-prefix>\n <ax-icon icon=\"fal {{ item.icon }}\"></ax-icon>\n </axp-layout-prefix>\n <axp-layout-content>\n <axp-layout-title class=\"ax-group\">\n <span>{{ t(item.title) | async }}</span>\n <span class=\"ax-ms-3\" (click)=\"handlePinClick($event, item)\">\n <i\n [class.ax-invisible]=\"!vm.isPinned(item)\"\n class=\"fa-light fa-thumbtack ax-rotate-45 group-hover:!ax-visible\"\n [class.fa-solid]=\"vm.isPinned(item)\"\n ></i>\n </span>\n </axp-layout-title>\n @if(item.parent) {\n <axp-layout-description>\n {{ t(item.parent.title) | async }}\n </axp-layout-description>\n }@else if (item.description) {\n <axp-layout-description>\n {{ t(item.description) | async }}\n </axp-layout-description>\n }\n </axp-layout-content>\n <axp-layout-suffix>\n <i class=\"far fa-chevron-right rtl:ax-rotate-180\"></i>\n </axp-layout-suffix>\n </ng-template>\n</axp-layout-content>\n", styles: [":host .ax-editor-container:focus-within{outline-style:none}:host>axp-layout-content{display:flex;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));width:90vw;max-width:36rem}@media (min-width: 640px){:host>axp-layout-content{width:80vw}}@media (min-width: 768px){:host>axp-layout-content{width:60vw}}@media (min-width: 1024px){:host>axp-layout-content{width:40vw}}@media (min-width: 1280px){:host>axp-layout-content{width:30vw}}:host>axp-layout-content>axp-layout-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}:host>axp-layout-content>axp-layout-header>.__close-button{position:absolute;inset-inline-end:1rem;top:1rem;--ax-sys-size-base: 2rem}:host>axp-layout-content>axp-layout-body{display:flex;flex-direction:column}:host>axp-layout-content>axp-layout-body>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}:host>axp-layout-content>axp-layout-body{overflow-y:auto;border-radius:.375rem;max-height:50vh;min-height:30vh}@media (min-width: 640px){:host>axp-layout-content>axp-layout-body{max-height:60vh;min-height:40vh}}@media (min-width: 768px){:host>axp-layout-content>axp-layout-body{max-height:70vh;min-height:50vh}}@media (min-width: 1024px){:host>axp-layout-content>axp-layout-body{max-height:80vh;min-height:40vh}}:host>axp-layout-content>axp-layout-body .axp-search-recent{display:flex;flex-direction:column;padding:1rem}:host>axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-header{margin-bottom:.5rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;font-weight:600}:host>axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-body{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;border-radius:.375rem}:host>axp-layout-content axp-layout-list-item axp-layout-prefix ax-icon{display:flex;height:2.25rem;width:2.25rem;align-items:center;justify-content:center;border-radius:.375rem;background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>axp-layout-content axp-layout-list-item axp-layout-prefix ax-icon:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-darker-surface));color:rgb(var(--ax-sys-color-on-darker-surface));border-color:rgb(var(--ax-sys-color-border-darker-surface))}:host>axp-layout-content axp-layout-list-item axp-layout-prefix ax-icon{font-size:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type:
99
- //
100
- AXSearchBoxModule }, { kind: "component", type: i3.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i4.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4$2.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXListNavigationModule }, { kind: "directive", type: i7.AXListNavigationDirective, selector: "[axListNavigation]", inputs: ["orientation"], outputs: ["onNavigationChanged", "onPressEnterOrSpace"], exportAs: ["axListNavigation"] }, { kind: "directive", type: i7.AXListNavigationItemDirective, selector: "[axListNavigationItem]", exportAs: ["axListNavigationItem"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type:
101
- //
102
- AXSkeletonModule }, { kind: "component", type: i9.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXChipsModule }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutListComponent, selector: "axp-layout-list" }, { kind: "component", type: AXPThemeLayoutListItemComponent, selector: "axp-layout-list-item" }, { kind: "component", type: AXPThemeLayoutListItemsGroupComponent, selector: "axp-layout-list-group" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPGlobalSearchPopupComponent, decorators: [{
105
- type: Component,
106
- args: [{ imports: [
107
- CommonModule,
108
- FormsModule,
109
- //
110
- AXSearchBoxModule,
111
- AXCommonModule,
112
- AXDecoratorModule,
113
- AXTranslationModule,
114
- AXListNavigationModule,
115
- AXButtonModule,
116
- //
117
- AXSkeletonModule,
118
- AXChipsModule,
119
- AXPThemeLayoutBlockComponent,
120
- AXPThemeLayoutListComponent,
121
- AXPThemeLayoutListItemComponent,
122
- AXPThemeLayoutListItemsGroupComponent,
123
- AXPThemeLayoutHeaderComponent,
124
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPGlobalSearchViewModel], template: "<axp-layout-content *translate=\"let t\">\n <axp-layout-header class=\"ax-lg\">\n <ax-search-box\n [axAutoFocus]\n [look]=\"'none'\"\n [ngModel]=\"vm.text()\"\n (onValueChanged)=\"handleTextChanged($event)\"\n [placeholder]=\"t('search-anything', { scope: i18nScope }) | async\"\n (onKeyDown)=\"handleSearchKeyDown($event)\"\n ></ax-search-box>\n <div class=\"__close-button\">\n <ax-button [look]=\"'blank'\" class=\"ax-rounded-full\" (onClick)=\"close()\">\n <ax-icon icon=\"fa-light fa-xmark fa-sm\"></ax-icon>\n </ax-button>\n </div>\n </axp-layout-header>\n\n <!-- Results Area -->\n <axp-layout-body>\n @if(vm.isBusy()) {\n <ng-container *ngTemplateOutlet=\"skeleton\"></ng-container>\n } @else if(vm.isEmpty()) {\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n } @else if(vm.isWelcome()) {\n <ng-container *ngTemplateOutlet=\"welcome\"></ng-container>\n } @else if(vm.isStart()) {\n <ng-container *ngTemplateOutlet=\"start\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"result\"></ng-container>\n }\n </axp-layout-body>\n\n <!-- Skeleton Template -->\n <ng-template #skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-10 ax-p-8\">\n @for (item of [1,2,3,4,5]; track $index) {\n <div class=\"ax-flex ax-items-center ax-gap-4\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-4 ax-h-4 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-flex-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/4 ax-h-2 ax-rounded\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-2 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n </ng-template>\n\n <!-- Empty Template -->\n <ng-template #empty>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-rounded-md ax-p-8\">\n <!-- Icon -->\n <div class=\"ax-mb-4\">\n <i class=\"fas fa-search ax-text-gray-400 ax-text-4xl\"></i>\n </div>\n <!-- Message -->\n <div class=\"ax-text-center\">\n <h2 class=\"ax-text-lg ax-font-semibold\">{{ t('no-result.title', { scope: i18nScope }) | async }}</h2>\n <p class=\"ax-mt-2 ax-leading-relaxed\">\n {{ t('no-result.message', { scope: i18nScope }) | async }}\n </p>\n </div>\n </div>\n </ng-template>\n\n <!-- Welcome Template -->\n <ng-template #welcome>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-rounded-md ax-p-8\">\n <!-- Icon -->\n <div class=\"ax-mb-4\">\n <i class=\"fas fa-search ax-text-gray-400 ax-text-4xl\"></i>\n </div>\n <!-- Message -->\n <div class=\"ax-text-center\">\n <h2 class=\"ax-text-lg ax-font-semibold\">{{ t('start.title', { scope: i18nScope }) | async }}</h2>\n <p class=\"ax-mt-2\">{{ t('start.message', { scope: i18nScope }) | async }}</p>\n </div>\n </div>\n </ng-template>\n\n <!-- Start Template -->\n <ng-template #start>\n <!-- Pinned Items -->\n <axp-layout-list\n *translate=\"let t\"\n class=\"ax-p-4 ax-divide-none\"\n (keydown)=\"handleListKeyDown($event)\"\n axListNavigation\n #list=\"axListNavigation\"\n >\n @if(vm.pinnedItems().length>0) {\n <axp-layout-list-group>\n <axp-layout-title>{{ t('pinned', { scope: i18nScope }) | async }}</axp-layout-title>\n @for (item of vm.pinnedItems(); track $index) {\n <axp-layout-list-item\n (click)=\"vm.execute(item)\"\n (keydown)=\"handleItemKeyDown($event, item)\"\n class=\"ax-group\"\n axListNavigationItem\n #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\"\n >\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n }\n <!-- Recent Items -->\n @if(vm.recentItems().length>0) {\n <axp-layout-list-group>\n <axp-layout-header>\n <axp-layout-prefix>\n <axp-layout-title>{{ t('recent', { scope: i18nScope }) | async }}</axp-layout-title>\n </axp-layout-prefix>\n <axp-layout-prefix class=\"ax-xs\">\n <ax-button\n [text]=\"t('clear', { scope: i18nScope }) | async\"\n look=\"blank\"\n [color]=\"'default'\"\n (onClick)=\"handleClearClick($event)\"\n ></ax-button>\n </axp-layout-prefix>\n </axp-layout-header>\n @for (item of vm.recentItems(); track $index) {\n <axp-layout-list-item\n (click)=\"vm.execute(item)\"\n (keydown)=\"handleItemKeyDown($event, item)\"\n class=\"ax-group\"\n axListNavigationItem\n #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\"\n >\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n }\n </axp-layout-list>\n </ng-template>\n\n <!-- Result Template -->\n <ng-template #result>\n <axp-layout-list\n class=\"ax-p-4 ax-divide-none\"\n (keydown)=\"handleListKeyDown($event)\"\n axListNavigation\n #list=\"axListNavigation\"\n >\n @for (group of vm.results(); track $index) {\n <axp-layout-list-group>\n <axp-layout-title> {{ t(group.title) | async }}</axp-layout-title>\n @for (item of group.children; track $index) {\n <axp-layout-list-item\n (click)=\"vm.execute(item)\"\n (keydown)=\"handleItemKeyDown($event, item)\"\n class=\"ax-group\"\n axListNavigationItem\n #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\"\n >\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n }\n </axp-layout-list>\n </ng-template>\n\n <ng-template #listItem let-item=\"item\">\n <axp-layout-prefix>\n <ax-icon icon=\"fal {{ item.icon }}\"></ax-icon>\n </axp-layout-prefix>\n <axp-layout-content>\n <axp-layout-title class=\"ax-group\">\n <span>{{ t(item.title) | async }}</span>\n <span class=\"ax-ms-3\" (click)=\"handlePinClick($event, item)\">\n <i\n [class.ax-invisible]=\"!vm.isPinned(item)\"\n class=\"fa-light fa-thumbtack ax-rotate-45 group-hover:!ax-visible\"\n [class.fa-solid]=\"vm.isPinned(item)\"\n ></i>\n </span>\n </axp-layout-title>\n @if(item.parent) {\n <axp-layout-description>\n {{ t(item.parent.title) | async }}\n </axp-layout-description>\n }@else if (item.description) {\n <axp-layout-description>\n {{ t(item.description) | async }}\n </axp-layout-description>\n }\n </axp-layout-content>\n <axp-layout-suffix>\n <i class=\"far fa-chevron-right rtl:ax-rotate-180\"></i>\n </axp-layout-suffix>\n </ng-template>\n</axp-layout-content>\n", styles: [":host .ax-editor-container:focus-within{outline-style:none}:host>axp-layout-content{display:flex;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));width:90vw;max-width:36rem}@media (min-width: 640px){:host>axp-layout-content{width:80vw}}@media (min-width: 768px){:host>axp-layout-content{width:60vw}}@media (min-width: 1024px){:host>axp-layout-content{width:40vw}}@media (min-width: 1280px){:host>axp-layout-content{width:30vw}}:host>axp-layout-content>axp-layout-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}:host>axp-layout-content>axp-layout-header>.__close-button{position:absolute;inset-inline-end:1rem;top:1rem;--ax-sys-size-base: 2rem}:host>axp-layout-content>axp-layout-body{display:flex;flex-direction:column}:host>axp-layout-content>axp-layout-body>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}:host>axp-layout-content>axp-layout-body{overflow-y:auto;border-radius:.375rem;max-height:50vh;min-height:30vh}@media (min-width: 640px){:host>axp-layout-content>axp-layout-body{max-height:60vh;min-height:40vh}}@media (min-width: 768px){:host>axp-layout-content>axp-layout-body{max-height:70vh;min-height:50vh}}@media (min-width: 1024px){:host>axp-layout-content>axp-layout-body{max-height:80vh;min-height:40vh}}:host>axp-layout-content>axp-layout-body .axp-search-recent{display:flex;flex-direction:column;padding:1rem}:host>axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-header{margin-bottom:.5rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;font-weight:600}:host>axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-body{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;border-radius:.375rem}:host>axp-layout-content axp-layout-list-item axp-layout-prefix ax-icon{display:flex;height:2.25rem;width:2.25rem;align-items:center;justify-content:center;border-radius:.375rem;background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>axp-layout-content axp-layout-list-item axp-layout-prefix ax-icon:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-darker-surface));color:rgb(var(--ax-sys-color-on-darker-surface));border-color:rgb(var(--ax-sys-color-border-darker-surface))}:host>axp-layout-content axp-layout-list-item axp-layout-prefix ax-icon{font-size:1rem}\n"] }]
125
- }] });
126
-
127
- export { AXPGlobalSearchPopupComponent };
128
- //# sourceMappingURL=acorex-modules-common-search-popup.component-CNh7TFpe.mjs.map