@acorex/platform 21.0.0-next.65 → 21.0.0-next.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-common.mjs +94 -18
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +42 -1
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +29 -7
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +282 -108
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-BaTS183I.mjs +383 -0
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-BaTS183I.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs → acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs} +15 -18
- package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +3339 -301
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +0 -1
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +1377 -4
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +9214 -11991
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs → acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs → acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +685 -287
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-BgXYCFia.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +29 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +94 -24
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +176 -26
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-common.d.ts +73 -9
- package/types/acorex-platform-core.d.ts +63 -2
- package/types/acorex-platform-layout-builder.d.ts +7 -1
- package/types/acorex-platform-layout-components.d.ts +162 -36
- package/types/acorex-platform-layout-entity.d.ts +704 -14
- package/types/acorex-platform-layout-views.d.ts +28 -0
- package/types/acorex-platform-layout-widget-core.d.ts +156 -3
- package/types/acorex-platform-layout-widgets.d.ts +29 -393
- package/types/acorex-platform-themes-default.d.ts +137 -30
- package/types/acorex-platform-themes-shared.d.ts +23 -1
- package/types/acorex-platform-workflow.d.ts +89 -4
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BgXYCFia.mjs.map +0 -1
|
@@ -10,8 +10,8 @@ import * as _acorex_platform_core from '@acorex/platform/core';
|
|
|
10
10
|
import { AXPDeviceService, AXPBreadcrumbItem, AXPActionMenuItem, AXPExecuteCommand } from '@acorex/platform/core';
|
|
11
11
|
import { AXPEntityCommandTriggerViewModel, AXPEntityDetailListViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewSortPropViewModel } from '@acorex/platform/layout/entity';
|
|
12
12
|
import { AXPlatform } from '@acorex/core/platform';
|
|
13
|
-
import { AXDataPagerChangedEvent } from '@acorex/components/data-pager';
|
|
14
13
|
import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';
|
|
14
|
+
import { AXDataPagerChangedEvent } from '@acorex/components/data-pager';
|
|
15
15
|
import * as _acorex_platform_common from '@acorex/platform/common';
|
|
16
16
|
import { AXPMenuItem, AXPSettingsService, AXPMenuVisibilityService } from '@acorex/platform/common';
|
|
17
17
|
import { AXPTaskBadgeService } from '@acorex/platform/layout/components';
|
|
@@ -36,6 +36,8 @@ declare class AXPEntityDetailListViewComponent {
|
|
|
36
36
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
37
37
|
sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
38
38
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
39
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
40
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
39
41
|
menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
40
42
|
isPrinting: _angular_core.Signal<boolean>;
|
|
41
43
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -45,10 +47,13 @@ declare class AXPEntityDetailListViewComponent {
|
|
|
45
47
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
46
48
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
47
49
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
50
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
48
51
|
changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
|
|
49
52
|
openSideMenu: () => void;
|
|
50
53
|
closeSideMenu: () => void;
|
|
51
54
|
setSideMenuWidth: (width: number) => void;
|
|
55
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
56
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
52
57
|
toggleSideMenu: () => void;
|
|
53
58
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
54
59
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -67,6 +72,8 @@ declare class AXPEntityDetailListViewComponent {
|
|
|
67
72
|
navigationLoadingTaskCount: number;
|
|
68
73
|
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
69
74
|
sideMenuWidth: number;
|
|
75
|
+
sideMenuCompactWidth: number;
|
|
76
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
70
77
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
71
78
|
isPrinting: boolean;
|
|
72
79
|
}>;
|
|
@@ -95,6 +102,29 @@ declare class AXPEntityDetailListViewComponent {
|
|
|
95
102
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailListViewComponent, "axp-entity-detail-list-view", never, { "vm": { "alias": "viewModel"; "required": false; }; }, {}, never, never, true, never>;
|
|
96
103
|
}
|
|
97
104
|
|
|
105
|
+
declare class AXPEntityMasterListDataTableComponent {
|
|
106
|
+
vm: _angular_core.InputSignal<AXPEntityMasterListViewModel>;
|
|
107
|
+
pageChanged: _angular_core.OutputEmitterRef<AXDataPagerChangedEvent>;
|
|
108
|
+
private gridRef;
|
|
109
|
+
/** Exposed for parent refresh and expanded-row persistence. */
|
|
110
|
+
grid(): AXDataTableComponent | undefined;
|
|
111
|
+
private commandRowItems;
|
|
112
|
+
protected onColumnSizeChanged(e: onColumnSizeChangedEvent): void;
|
|
113
|
+
protected onPageChanged(e: AXDataPagerChangedEvent): void;
|
|
114
|
+
protected onColumnsOrderChanged(e: AXColumnsOrderChangedEvent): void;
|
|
115
|
+
protected handleRowDbClick(e: AXDataTableRowDbClick): Promise<void>;
|
|
116
|
+
protected getDropdownRowItems: (rowData: unknown) => Promise<AXRowCommandItem[]>;
|
|
117
|
+
protected getCommandRowItems: () => AXRowCommandItem[];
|
|
118
|
+
protected handleRowCommandClick(e: AXRowCommandItemClickEvent): Promise<void>;
|
|
119
|
+
protected handleSelectedRowsChange(rows: unknown[]): void;
|
|
120
|
+
protected handleColumnSort(columnName: string, event: MouseEvent): void;
|
|
121
|
+
protected resolveColumnSortDirection(sortedFields: AXPEntityMasterListViewSortPropViewModel[], columnName: string): 'asc' | 'desc' | undefined;
|
|
122
|
+
protected resolveColumnSortIndex(sortedFields: AXPEntityMasterListViewSortPropViewModel[], columnName: string): number | undefined;
|
|
123
|
+
private dropdownRowItems;
|
|
124
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityMasterListDataTableComponent, never>;
|
|
125
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityMasterListDataTableComponent, "axp-entity-master-list-data-table", never, { "vm": { "alias": "vm"; "required": true; "isSignal": true; }; }, { "pageChanged": "pageChanged"; }, never, never, true, never>;
|
|
126
|
+
}
|
|
127
|
+
|
|
98
128
|
declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
|
|
99
129
|
protected platform: AXPlatform;
|
|
100
130
|
private activeRoute;
|
|
@@ -114,6 +144,8 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
|
|
|
114
144
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
115
145
|
sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
116
146
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
147
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
148
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
117
149
|
menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
118
150
|
isPrinting: _angular_core.Signal<boolean>;
|
|
119
151
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -123,10 +155,13 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
|
|
|
123
155
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
124
156
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
125
157
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
158
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
126
159
|
changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
|
|
127
160
|
openSideMenu: () => void;
|
|
128
161
|
closeSideMenu: () => void;
|
|
129
162
|
setSideMenuWidth: (width: number) => void;
|
|
163
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
164
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
130
165
|
toggleSideMenu: () => void;
|
|
131
166
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
132
167
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -145,13 +180,15 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
|
|
|
145
180
|
navigationLoadingTaskCount: number;
|
|
146
181
|
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
147
182
|
sideMenuWidth: number;
|
|
183
|
+
sideMenuCompactWidth: number;
|
|
184
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
148
185
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
149
186
|
isPrinting: boolean;
|
|
150
187
|
}>;
|
|
151
188
|
protected searchBarShown: _angular_core.WritableSignal<boolean>;
|
|
152
189
|
protected activeEndSideView: _angular_core.WritableSignal<"sort" | "filter" | "column">;
|
|
153
190
|
protected categorySearchValue: _angular_core.WritableSignal<string>;
|
|
154
|
-
protected
|
|
191
|
+
protected dataTable: _angular_core.Signal<AXPEntityMasterListDataTableComponent | undefined>;
|
|
155
192
|
private queryParamSub?;
|
|
156
193
|
private initializedFromRoute;
|
|
157
194
|
private lastEvaluatedViewName;
|
|
@@ -161,37 +198,14 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
|
|
|
161
198
|
constructor(platform: AXPlatform);
|
|
162
199
|
ngOnInit(): Promise<void>;
|
|
163
200
|
ngAfterViewInit(): Promise<void>;
|
|
164
|
-
|
|
165
|
-
protected
|
|
166
|
-
protected
|
|
167
|
-
protected dropdownRowItems(rowData: any): Promise<AXRowCommandItem[]>;
|
|
168
|
-
private commandRowItems;
|
|
169
|
-
protected handleRowDbClick(e: AXDataTableRowDbClick): Promise<void>;
|
|
170
|
-
protected getDropdownRowItems: (rowData: unknown) => Promise<AXRowCommandItem[]>;
|
|
171
|
-
protected getCommandRowItems: () => AXRowCommandItem[];
|
|
172
|
-
protected handleRowCommandClick(e: AXRowCommandItemClickEvent): Promise<void>;
|
|
173
|
-
protected handleSelectedRowsChange(rows: unknown[]): Promise<void>;
|
|
174
|
-
/**
|
|
175
|
-
* After refreshing a row's children (e.g. when a new child was created), update the parent row's
|
|
176
|
-
* hasChild so the expand icon is shown. The list query sets hasChild from childrenCount only on
|
|
177
|
-
* initial load; refreshItemChildren does not re-fetch the parent, so we patch it here.
|
|
178
|
-
*/
|
|
179
|
-
private updateParentHasChildAfterRefresh;
|
|
180
|
-
private findItemById;
|
|
201
|
+
ngOnDestroy(): void;
|
|
202
|
+
protected onListPageChanged(): void;
|
|
203
|
+
protected handleUnselectAll(): void;
|
|
181
204
|
protected makeResponsive<t>(value: t): t | string;
|
|
182
205
|
protected toggleSideBar(sideBar?: 'column' | 'filter' | 'sort'): void;
|
|
183
206
|
protected toggleSearchBar(): void;
|
|
184
207
|
protected handleResetClick(sideBar: 'filter' | 'sort' | 'column'): void;
|
|
185
208
|
protected handleApplyClick(sideBar: 'filter' | 'sort' | 'column'): void;
|
|
186
|
-
protected handleColumnSort(columnName: string, event: MouseEvent): void;
|
|
187
|
-
protected resolveColumnSortDirection(sortedFields: AXPEntityMasterListViewSortPropViewModel[], columnName: string): 'asc' | 'desc' | undefined;
|
|
188
|
-
protected resolveColumnSortIndex(sortedFields: AXPEntityMasterListViewSortPropViewModel[], columnName: string): number | undefined;
|
|
189
|
-
ngOnDestroy(): void;
|
|
190
|
-
private bindExpandedRowPersistence;
|
|
191
|
-
private scheduleSyncGridPagerUi;
|
|
192
|
-
private syncGridPagerUi;
|
|
193
|
-
private scheduleRestoreExpandedRows;
|
|
194
|
-
private restoreExpandedRows;
|
|
195
209
|
toggleCategoryDrawer(): void;
|
|
196
210
|
getPageTitle(): string;
|
|
197
211
|
getPageDescription(): Promise<string>;
|
|
@@ -199,7 +213,15 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
|
|
|
199
213
|
getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
|
|
200
214
|
getSecondaryMenuItems(): Promise<AXPActionMenuItem[]>;
|
|
201
215
|
execute(command: AXPExecuteCommand): Promise<void>;
|
|
202
|
-
|
|
216
|
+
private reloadListData;
|
|
217
|
+
private grid;
|
|
218
|
+
private updateParentHasChildAfterRefresh;
|
|
219
|
+
private findItemById;
|
|
220
|
+
private bindExpandedRowPersistence;
|
|
221
|
+
private scheduleSyncGridPagerUi;
|
|
222
|
+
private syncGridPagerUi;
|
|
223
|
+
private scheduleRestoreExpandedRows;
|
|
224
|
+
private restoreExpandedRows;
|
|
203
225
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityMasterListViewComponent, never>;
|
|
204
226
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityMasterListViewComponent, "axp-entity-master-list", never, {}, {}, never, never, true, never>;
|
|
205
227
|
}
|
|
@@ -225,6 +247,8 @@ declare class AXPRootLayoutHeaderComponent {
|
|
|
225
247
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
226
248
|
sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
227
249
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
250
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
251
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
228
252
|
menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
229
253
|
isPrinting: _angular_core.Signal<boolean>;
|
|
230
254
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -234,10 +258,13 @@ declare class AXPRootLayoutHeaderComponent {
|
|
|
234
258
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
235
259
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
236
260
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
261
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
237
262
|
changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
|
|
238
263
|
openSideMenu: () => void;
|
|
239
264
|
closeSideMenu: () => void;
|
|
240
265
|
setSideMenuWidth: (width: number) => void;
|
|
266
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
267
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
241
268
|
toggleSideMenu: () => void;
|
|
242
269
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
243
270
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -256,6 +283,8 @@ declare class AXPRootLayoutHeaderComponent {
|
|
|
256
283
|
navigationLoadingTaskCount: number;
|
|
257
284
|
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
258
285
|
sideMenuWidth: number;
|
|
286
|
+
sideMenuCompactWidth: number;
|
|
287
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
259
288
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
260
289
|
isPrinting: boolean;
|
|
261
290
|
}>;
|
|
@@ -302,7 +331,63 @@ declare class AXPRootLayoutMenuComponent {
|
|
|
302
331
|
protected badgeService: AXPTaskBadgeService;
|
|
303
332
|
protected settingsService: AXPSettingsService;
|
|
304
333
|
protected visibilityService: AXPMenuVisibilityService;
|
|
334
|
+
protected themeStore: {
|
|
335
|
+
currentMode: Signal<_acorex_platform_themes_shared.AXPThemeMode>;
|
|
336
|
+
currentPalette: Signal<string>;
|
|
337
|
+
systemThemeMode: Signal<_acorex_platform_themes_shared.AXPThemeMode>;
|
|
338
|
+
font: _ngrx_signals.DeepSignal<{
|
|
339
|
+
family: string;
|
|
340
|
+
size: string;
|
|
341
|
+
}>;
|
|
342
|
+
overlayLoading: Signal<boolean>;
|
|
343
|
+
navigationLoading: Signal<boolean>;
|
|
344
|
+
overlayLoadingTaskCount: Signal<number>;
|
|
345
|
+
navigationLoadingTaskCount: Signal<number>;
|
|
346
|
+
sideMenuState: Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
347
|
+
sideMenuWidth: Signal<number>;
|
|
348
|
+
sideMenuCompactWidth: Signal<number>;
|
|
349
|
+
menuVerticalMode: Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
350
|
+
menuOrientation: Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
351
|
+
isPrinting: Signal<boolean>;
|
|
352
|
+
isDarkMode: Signal<boolean>;
|
|
353
|
+
isLightMode: Signal<boolean>;
|
|
354
|
+
isSystemMode: Signal<boolean>;
|
|
355
|
+
isSideMenuOpen: Signal<boolean>;
|
|
356
|
+
isOverlayLoading: Signal<boolean>;
|
|
357
|
+
isNavigationLoading: Signal<boolean>;
|
|
358
|
+
isMenuHorizontal: Signal<boolean>;
|
|
359
|
+
sideMenuDrawerWidth: Signal<number>;
|
|
360
|
+
changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
|
|
361
|
+
openSideMenu: () => void;
|
|
362
|
+
closeSideMenu: () => void;
|
|
363
|
+
setSideMenuWidth: (width: number) => void;
|
|
364
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
365
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
366
|
+
toggleSideMenu: () => void;
|
|
367
|
+
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
368
|
+
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
369
|
+
loadSettings: () => Promise<void>;
|
|
370
|
+
} & _ngrx_signals.StateSource<{
|
|
371
|
+
currentMode: _acorex_platform_themes_shared.AXPThemeMode;
|
|
372
|
+
currentPalette: string;
|
|
373
|
+
systemThemeMode: _acorex_platform_themes_shared.AXPThemeMode;
|
|
374
|
+
font: {
|
|
375
|
+
family: string;
|
|
376
|
+
size: string;
|
|
377
|
+
};
|
|
378
|
+
overlayLoading: boolean;
|
|
379
|
+
navigationLoading: boolean;
|
|
380
|
+
overlayLoadingTaskCount: number;
|
|
381
|
+
navigationLoadingTaskCount: number;
|
|
382
|
+
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
383
|
+
sideMenuWidth: number;
|
|
384
|
+
sideMenuCompactWidth: number;
|
|
385
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
386
|
+
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
387
|
+
isPrinting: boolean;
|
|
388
|
+
}>;
|
|
305
389
|
protected badgeVisible: _angular_core.WritableSignal<boolean>;
|
|
390
|
+
protected menuMode: Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
306
391
|
constructor();
|
|
307
392
|
ngOnInit(): Promise<void>;
|
|
308
393
|
onMenuItemClick(item: AXPMenuItem, hasRouterLink?: boolean): void;
|
|
@@ -387,6 +472,8 @@ declare class AXPRootHorizontalLayoutComponent {
|
|
|
387
472
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
388
473
|
sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
389
474
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
475
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
476
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
390
477
|
menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
391
478
|
isPrinting: _angular_core.Signal<boolean>;
|
|
392
479
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -396,10 +483,13 @@ declare class AXPRootHorizontalLayoutComponent {
|
|
|
396
483
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
397
484
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
398
485
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
486
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
399
487
|
changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
|
|
400
488
|
openSideMenu: () => void;
|
|
401
489
|
closeSideMenu: () => void;
|
|
402
490
|
setSideMenuWidth: (width: number) => void;
|
|
491
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
492
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
403
493
|
toggleSideMenu: () => void;
|
|
404
494
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
405
495
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -418,6 +508,8 @@ declare class AXPRootHorizontalLayoutComponent {
|
|
|
418
508
|
navigationLoadingTaskCount: number;
|
|
419
509
|
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
420
510
|
sideMenuWidth: number;
|
|
511
|
+
sideMenuCompactWidth: number;
|
|
512
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
421
513
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
422
514
|
isPrinting: boolean;
|
|
423
515
|
}>;
|
|
@@ -428,7 +520,6 @@ declare class AXPRootHorizontalLayoutComponent {
|
|
|
428
520
|
}
|
|
429
521
|
|
|
430
522
|
declare class AXPRootVerticalLayoutComponent {
|
|
431
|
-
drawer: AXDrawerComponent;
|
|
432
523
|
private config;
|
|
433
524
|
protected logo: {
|
|
434
525
|
icon: {
|
|
@@ -458,6 +549,8 @@ declare class AXPRootVerticalLayoutComponent {
|
|
|
458
549
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
459
550
|
sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
460
551
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
552
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
553
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
461
554
|
menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
462
555
|
isPrinting: _angular_core.Signal<boolean>;
|
|
463
556
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -467,10 +560,13 @@ declare class AXPRootVerticalLayoutComponent {
|
|
|
467
560
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
468
561
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
469
562
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
563
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
470
564
|
changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
|
|
471
565
|
openSideMenu: () => void;
|
|
472
566
|
closeSideMenu: () => void;
|
|
473
567
|
setSideMenuWidth: (width: number) => void;
|
|
568
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
569
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
474
570
|
toggleSideMenu: () => void;
|
|
475
571
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
476
572
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -489,11 +585,15 @@ declare class AXPRootVerticalLayoutComponent {
|
|
|
489
585
|
navigationLoadingTaskCount: number;
|
|
490
586
|
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
491
587
|
sideMenuWidth: number;
|
|
588
|
+
sideMenuCompactWidth: number;
|
|
589
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
492
590
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
493
591
|
isPrinting: boolean;
|
|
494
592
|
}>;
|
|
495
593
|
protected deviceService: AXPDeviceService;
|
|
496
594
|
protected router: Router;
|
|
595
|
+
/** Drawer width from theme store; null on small/medium viewports (overlay sizing). */
|
|
596
|
+
protected readonly sideMenuDrawerWidthPx: _angular_core.Signal<number | null>;
|
|
497
597
|
constructor();
|
|
498
598
|
protected handleResizingEnded(e: AXValueChangedEvent<number>): void;
|
|
499
599
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootVerticalLayoutComponent, never>;
|
|
@@ -515,6 +615,8 @@ declare class AXPRootLayoutComponent {
|
|
|
515
615
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
516
616
|
sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
517
617
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
618
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
619
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
518
620
|
menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
519
621
|
isPrinting: _angular_core.Signal<boolean>;
|
|
520
622
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -524,10 +626,13 @@ declare class AXPRootLayoutComponent {
|
|
|
524
626
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
525
627
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
526
628
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
629
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
527
630
|
changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
|
|
528
631
|
openSideMenu: () => void;
|
|
529
632
|
closeSideMenu: () => void;
|
|
530
633
|
setSideMenuWidth: (width: number) => void;
|
|
634
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
635
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
531
636
|
toggleSideMenu: () => void;
|
|
532
637
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
533
638
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -546,6 +651,8 @@ declare class AXPRootLayoutComponent {
|
|
|
546
651
|
navigationLoadingTaskCount: number;
|
|
547
652
|
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
548
653
|
sideMenuWidth: number;
|
|
654
|
+
sideMenuCompactWidth: number;
|
|
655
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
549
656
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
550
657
|
isPrinting: boolean;
|
|
551
658
|
}>;
|
|
@@ -34,6 +34,12 @@ declare enum AXPMenuOrientation {
|
|
|
34
34
|
Vertical = "vertical",
|
|
35
35
|
Horizontal = "horizontal"
|
|
36
36
|
}
|
|
37
|
+
declare enum AXPMenuVerticalMode {
|
|
38
|
+
Compact = "compact",
|
|
39
|
+
Full = "full"
|
|
40
|
+
}
|
|
41
|
+
declare const AXP_SIDE_MENU_FULL_DEFAULT_WIDTH = 300;
|
|
42
|
+
declare const AXP_SIDE_MENU_COMPACT_WIDTH = 80;
|
|
37
43
|
|
|
38
44
|
declare class AXPThemeSlotComponent {
|
|
39
45
|
protected store: {
|
|
@@ -50,6 +56,8 @@ declare class AXPThemeSlotComponent {
|
|
|
50
56
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
51
57
|
sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
|
|
52
58
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
59
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
60
|
+
menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
53
61
|
menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
|
|
54
62
|
isPrinting: _angular_core.Signal<boolean>;
|
|
55
63
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -59,10 +67,13 @@ declare class AXPThemeSlotComponent {
|
|
|
59
67
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
60
68
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
61
69
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
70
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
62
71
|
changeThemeMode: (theme: AXPThemeMode) => void;
|
|
63
72
|
openSideMenu: () => void;
|
|
64
73
|
closeSideMenu: () => void;
|
|
65
74
|
setSideMenuWidth: (width: number) => void;
|
|
75
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
76
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
66
77
|
toggleSideMenu: () => void;
|
|
67
78
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
68
79
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -81,6 +92,8 @@ declare class AXPThemeSlotComponent {
|
|
|
81
92
|
navigationLoadingTaskCount: number;
|
|
82
93
|
sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
|
|
83
94
|
sideMenuWidth: number;
|
|
95
|
+
sideMenuCompactWidth: number;
|
|
96
|
+
menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
|
|
84
97
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
85
98
|
isPrinting: boolean;
|
|
86
99
|
}>;
|
|
@@ -111,6 +124,8 @@ declare const AXPLayoutThemeService: _angular_core.Type<{
|
|
|
111
124
|
navigationLoadingTaskCount: _angular_core.Signal<number>;
|
|
112
125
|
sideMenuState: _angular_core.Signal<AXPSideMenuState>;
|
|
113
126
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
127
|
+
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
128
|
+
menuVerticalMode: _angular_core.Signal<AXPMenuVerticalMode>;
|
|
114
129
|
menuOrientation: _angular_core.Signal<AXPMenuOrientation>;
|
|
115
130
|
isPrinting: _angular_core.Signal<boolean>;
|
|
116
131
|
isDarkMode: _angular_core.Signal<boolean>;
|
|
@@ -120,10 +135,13 @@ declare const AXPLayoutThemeService: _angular_core.Type<{
|
|
|
120
135
|
isOverlayLoading: _angular_core.Signal<boolean>;
|
|
121
136
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
122
137
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
138
|
+
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
123
139
|
changeThemeMode: (theme: AXPThemeMode) => void;
|
|
124
140
|
openSideMenu: () => void;
|
|
125
141
|
closeSideMenu: () => void;
|
|
126
142
|
setSideMenuWidth: (width: number) => void;
|
|
143
|
+
setSideMenuCompactWidth: (width: number) => void;
|
|
144
|
+
setSideMenuDrawerWidth: (width: number) => void;
|
|
127
145
|
toggleSideMenu: () => void;
|
|
128
146
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
129
147
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -142,6 +160,8 @@ declare const AXPLayoutThemeService: _angular_core.Type<{
|
|
|
142
160
|
navigationLoadingTaskCount: number;
|
|
143
161
|
sideMenuState: AXPSideMenuState;
|
|
144
162
|
sideMenuWidth: number;
|
|
163
|
+
sideMenuCompactWidth: number;
|
|
164
|
+
menuVerticalMode: AXPMenuVerticalMode;
|
|
145
165
|
menuOrientation: AXPMenuOrientation;
|
|
146
166
|
isPrinting: boolean;
|
|
147
167
|
}>>;
|
|
@@ -155,7 +175,9 @@ declare enum AXPThemeLayoutSetting {
|
|
|
155
175
|
Mode = "Common:Setting:Layout.Mode",
|
|
156
176
|
SideMenuStatus = "Common:Setting:Layout.SideMenu.Status",
|
|
157
177
|
SideMenuWidth = "Common:Setting:Layout.SideMenu.Width",
|
|
178
|
+
SideMenuCompactWidth = "Common:Setting:Layout.SideMenu.CompactWidth",
|
|
158
179
|
MenuOrientation = "Common:Setting:Layout.RootMenu.Direction",
|
|
180
|
+
MenuVerticalMode = "Common:Setting:Layout.RootMenu.VerticalMode",
|
|
159
181
|
MenuBadgeVisible = "Common:Setting:Layout.RootMenu.Badge"
|
|
160
182
|
}
|
|
161
183
|
|
|
@@ -166,5 +188,5 @@ declare class AXPThemesSharedModule {
|
|
|
166
188
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPThemesSharedModule>;
|
|
167
189
|
}
|
|
168
190
|
|
|
169
|
-
export { AXPLayoutThemeService, AXPMenuOrientation, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_THEME_PALETTE_PROVIDER };
|
|
191
|
+
export { AXPLayoutThemeService, AXPMenuOrientation, AXPMenuVerticalMode, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_SIDE_MENU_COMPACT_WIDTH, AXP_SIDE_MENU_FULL_DEFAULT_WIDTH, AXP_THEME_PALETTE_PROVIDER };
|
|
170
192
|
export type { AXPThemePalette, AXPThemePaletteColors, AXPThemePaletteProvider };
|
|
@@ -691,6 +691,19 @@ interface AXPWorkflowInstance {
|
|
|
691
691
|
* - 'system-activity': System/backend activity (no inbox) - automated execution
|
|
692
692
|
*/
|
|
693
693
|
type AXPTaskType = 'human-task' | 'ui-activity' | 'system-activity';
|
|
694
|
+
/**
|
|
695
|
+
* How the workflow engine should offer "continue to next step?" before an inline frontend activity.
|
|
696
|
+
* Declared on {@link AXPActivityDefinition} and copied onto {@link AXPWorkflowTask} at runtime.
|
|
697
|
+
*/
|
|
698
|
+
type AXPWorkflowContinuationBeforeInteractive = 'default'
|
|
699
|
+
/** Skip when opened from a task-board human-task primary action (e.g. start-fill, review). */
|
|
700
|
+
| 'skip-when-chained-from-human-task'
|
|
701
|
+
/** Skip for the natural assignee; initiator / reassign users still get the prompt (workflow-management). */
|
|
702
|
+
| 'skip-for-assignee';
|
|
703
|
+
/** Optional continuation UX metadata for an activity definition. */
|
|
704
|
+
interface AXPWorkflowContinuationMetadata {
|
|
705
|
+
beforeInteractive?: AXPWorkflowContinuationBeforeInteractive;
|
|
706
|
+
}
|
|
694
707
|
/**
|
|
695
708
|
* Activity Category - Extends AXPCategoryEntity for consistency and performance
|
|
696
709
|
*
|
|
@@ -787,6 +800,10 @@ interface AXPActivityDefinition {
|
|
|
787
800
|
* Default: false
|
|
788
801
|
*/
|
|
789
802
|
isContainer?: boolean;
|
|
803
|
+
/**
|
|
804
|
+
* Continuation prompt behavior when this activity runs inline in the workflow manager.
|
|
805
|
+
*/
|
|
806
|
+
workflowContinuation?: AXPWorkflowContinuationMetadata;
|
|
790
807
|
}
|
|
791
808
|
/**
|
|
792
809
|
* Query result shape for activity-definition catalog endpoints.
|
|
@@ -1002,6 +1019,10 @@ interface AXPWorkflowTask {
|
|
|
1002
1019
|
* Configuration for the activity (for frontend activities).
|
|
1003
1020
|
*/
|
|
1004
1021
|
config?: Record<string, any>;
|
|
1022
|
+
/**
|
|
1023
|
+
* Continuation UX copied from the activity definition at task creation time.
|
|
1024
|
+
*/
|
|
1025
|
+
continuation?: AXPWorkflowContinuationMetadata;
|
|
1005
1026
|
}
|
|
1006
1027
|
/**
|
|
1007
1028
|
* Request to start a workflow instance.
|
|
@@ -1205,6 +1226,21 @@ interface AXPReassignWorkflowTaskToSelfResponse {
|
|
|
1205
1226
|
error?: string;
|
|
1206
1227
|
errorCode?: string;
|
|
1207
1228
|
}
|
|
1229
|
+
/** Restore task-board visibility after the user declines a pre-interactive continuation prompt. */
|
|
1230
|
+
interface AXPRevertResumeAfterDeclinedInteractiveContinuationRequest {
|
|
1231
|
+
instanceId: string;
|
|
1232
|
+
/** Human-task / cartable step that was resumed from the task board. */
|
|
1233
|
+
suspendedStepId: string;
|
|
1234
|
+
/** Inline frontend step that was about to run when the user declined. */
|
|
1235
|
+
abortedStepId?: string;
|
|
1236
|
+
/** Bookmark id of the suspended step (when known). */
|
|
1237
|
+
bookmarkId?: string;
|
|
1238
|
+
}
|
|
1239
|
+
interface AXPRevertResumeAfterDeclinedInteractiveContinuationResponse {
|
|
1240
|
+
success: boolean;
|
|
1241
|
+
state?: AXPWorkflowInstanceState;
|
|
1242
|
+
error?: string;
|
|
1243
|
+
}
|
|
1208
1244
|
|
|
1209
1245
|
/**
|
|
1210
1246
|
* Interface for workflow engine operations.
|
|
@@ -1250,6 +1286,10 @@ interface AXPWorkflowEngine {
|
|
|
1250
1286
|
* Optional: reassign a human-task bookmark to the current user (requires permission on the engine).
|
|
1251
1287
|
*/
|
|
1252
1288
|
reassignTaskToSelf?(request: AXPReassignWorkflowTaskToSelfRequest): Promise<AXPReassignWorkflowTaskToSelfResponse>;
|
|
1289
|
+
/**
|
|
1290
|
+
* Optional: restore a suspended task-board step when the user declines a pre-interactive continuation prompt.
|
|
1291
|
+
*/
|
|
1292
|
+
revertResumeAfterDeclinedInteractiveContinuation?(request: AXPRevertResumeAfterDeclinedInteractiveContinuationRequest): Promise<AXPRevertResumeAfterDeclinedInteractiveContinuationResponse>;
|
|
1253
1293
|
/**
|
|
1254
1294
|
* Optional: terminate a non-finished instance (e.g. superseded lifecycle run).
|
|
1255
1295
|
*/
|
|
@@ -1446,6 +1486,15 @@ declare class AXPWorkflowManager {
|
|
|
1446
1486
|
* @returns Final result with nextTask (if workflow-activity:human-task) or completion status
|
|
1447
1487
|
*/
|
|
1448
1488
|
private executeInteractiveFlow;
|
|
1489
|
+
/**
|
|
1490
|
+
* Runs inline interactive activities when allowed, with an optional pre-flow continuation prompt.
|
|
1491
|
+
*/
|
|
1492
|
+
private runInteractiveFlowWithContinuation;
|
|
1493
|
+
private invokeWorkflowContinuationAfterStep;
|
|
1494
|
+
/**
|
|
1495
|
+
* Restores the suspended task-board step when the user declines a pre-interactive continuation prompt.
|
|
1496
|
+
*/
|
|
1497
|
+
private revertResumeAfterDeclinedInteractiveContinuation;
|
|
1449
1498
|
/**
|
|
1450
1499
|
* Start a new workflow instance.
|
|
1451
1500
|
*
|
|
@@ -1746,17 +1795,53 @@ interface AXPWorkflowContinuationStepContext {
|
|
|
1746
1795
|
pendingNextTask?: AXPWorkflowTask | null;
|
|
1747
1796
|
}
|
|
1748
1797
|
/**
|
|
1749
|
-
*
|
|
1798
|
+
* Result of a continuation prompt in the current start/resume cycle.
|
|
1799
|
+
* Used by {@link AXPWorkflowManager} to avoid duplicate dialogs in the same cycle.
|
|
1800
|
+
*/
|
|
1801
|
+
type AXPWorkflowContinuationOfferResult = 'not-offered' | 'confirmed' | 'declined';
|
|
1802
|
+
/**
|
|
1803
|
+
* Optional hook: offer the current user to continue to the next workflow step.
|
|
1750
1804
|
* Implemented by workflow-management (task board UX); invoked from {@link AXPWorkflowManager}.
|
|
1751
1805
|
*/
|
|
1752
1806
|
interface AXPWorkflowContinuationHook {
|
|
1753
|
-
|
|
1807
|
+
/**
|
|
1808
|
+
* Before running an inline interactive activity chain (sign-off, forms, etc.).
|
|
1809
|
+
* Return `declined` to skip executing that chain in this resume/start call.
|
|
1810
|
+
*/
|
|
1811
|
+
offerBeforeInteractiveFlow?(context: AXPWorkflowContinuationStepContext): Promise<AXPWorkflowContinuationOfferResult>;
|
|
1812
|
+
/** After resume/start when the next human-task is on the task board, or no before-offer ran. */
|
|
1813
|
+
offerAfterWorkflowStep?(context: AXPWorkflowContinuationStepContext): Promise<AXPWorkflowContinuationOfferResult | void>;
|
|
1754
1814
|
}
|
|
1755
1815
|
declare const AXP_WORKFLOW_CONTINUATION_HOOK: InjectionToken<AXPWorkflowContinuationHook>;
|
|
1756
1816
|
/** When true on resume `userInput`, skips the post-step continuation dialog (auto-advance). */
|
|
1757
1817
|
declare const AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY = "_suppressWorkflowContinuation";
|
|
1758
1818
|
declare function isWorkflowContinuationSuppressed(userInput: unknown): boolean;
|
|
1759
1819
|
|
|
1820
|
+
/**
|
|
1821
|
+
* Frontend step executed inline (dialog/popup), not suspended on the task board.
|
|
1822
|
+
* Derived from execution mode and task-board activity types — no per-activity hardcoding.
|
|
1823
|
+
*/
|
|
1824
|
+
declare function axpIsWorkflowInlineFrontendTask(task: AXPWorkflowTask | null | undefined): boolean;
|
|
1825
|
+
/** @deprecated Use {@link axpIsWorkflowInlineFrontendTask}. */
|
|
1826
|
+
declare function axpIsWorkflowInteractiveFrontendTask(task: AXPWorkflowTask | null | undefined): boolean;
|
|
1827
|
+
/** Resolved before-interactive behavior from task metadata (set by engine from activity definition). */
|
|
1828
|
+
declare function axpResolveWorkflowContinuationBeforeInteractive(task: AXPWorkflowTask | null | undefined): AXPWorkflowContinuationBeforeInteractive;
|
|
1829
|
+
/**
|
|
1830
|
+
* Whether to skip the pre-interactive "continue?" prompt based on activity metadata.
|
|
1831
|
+
* Assignee-specific rules are applied in workflow-management (needs session).
|
|
1832
|
+
*/
|
|
1833
|
+
declare function axpShouldSkipBeforeInteractiveFromMetadata(behavior: AXPWorkflowContinuationBeforeInteractive, completedWasHumanTask: boolean): boolean;
|
|
1834
|
+
/**
|
|
1835
|
+
* Whether to show a "continue?" prompt before running inline frontend activities.
|
|
1836
|
+
* Skips when the user already resumed a task-board step (primary action / resume).
|
|
1837
|
+
*/
|
|
1838
|
+
declare function axpShouldOfferBeforeInteractiveFlow(context: AXPWorkflowContinuationStepContext): boolean;
|
|
1839
|
+
/**
|
|
1840
|
+
* Whether the workflow advanced enough to consider a continuation prompt.
|
|
1841
|
+
* Includes pending interactive steps when inbox bookmarks are already consumed.
|
|
1842
|
+
*/
|
|
1843
|
+
declare function axpShouldOfferWorkflowContinuationAfterStep(context: AXPWorkflowContinuationStepContext, activeBookmarkActivityIds: string[]): boolean;
|
|
1844
|
+
|
|
1760
1845
|
/**
|
|
1761
1846
|
* Workflow Category - Extends AXPCategoryEntity for consistency and performance
|
|
1762
1847
|
*
|
|
@@ -1933,5 +2018,5 @@ declare class AXPWorkflowDefinitionService {
|
|
|
1933
2018
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowDefinitionService>;
|
|
1934
2019
|
}
|
|
1935
2020
|
|
|
1936
|
-
export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowEngineError, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_CONTINUATION_HOOK, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_ERROR_CODES, AXP_WORKFLOW_PROVIDER, AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowTaskBoardActivityType, createWorkFlowEvent, getWorkflowEngineErrorCode, getWorkflowEngineErrorInfo, isWorkflowContinuationSuppressed, ofType };
|
|
1937
|
-
export type { AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityDefinitionCategoryRef, AXPActivityDefinitionQueryResult, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPClaimWorkflowTaskRequest, AXPClaimWorkflowTaskResponse, AXPCompletionCallbackState, AXPConnection, AXPElsaWorkflowExtensions, AXPExceptionState, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPReassignWorkflowTaskToSelfRequest, AXPReassignWorkflowTaskToSelfResponse, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPTaskType, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowActivityInstance, AXPWorkflowBinding, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowContinuationHook, AXPWorkflowContinuationStepContext, AXPWorkflowDefinition, AXPWorkflowEngine, AXPWorkflowErrorCode, AXPWorkflowEvent, AXPWorkflowExtensions, AXPWorkflowFaultState, AXPWorkflowGraph, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOutputProperty, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityExecutionResult, WorkflowClaimTaskResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowReassignTaskToSelfResult, WorkflowResumeResult, WorkflowStartResult };
|
|
2021
|
+
export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowEngineError, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_CONTINUATION_HOOK, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_ERROR_CODES, AXP_WORKFLOW_PROVIDER, AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowInlineFrontendTask, axpIsWorkflowInteractiveFrontendTask, axpIsWorkflowTaskBoardActivityType, axpResolveWorkflowContinuationBeforeInteractive, axpShouldOfferBeforeInteractiveFlow, axpShouldOfferWorkflowContinuationAfterStep, axpShouldSkipBeforeInteractiveFromMetadata, createWorkFlowEvent, getWorkflowEngineErrorCode, getWorkflowEngineErrorInfo, isWorkflowContinuationSuppressed, ofType };
|
|
2022
|
+
export type { AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityDefinitionCategoryRef, AXPActivityDefinitionQueryResult, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPClaimWorkflowTaskRequest, AXPClaimWorkflowTaskResponse, AXPCompletionCallbackState, AXPConnection, AXPElsaWorkflowExtensions, AXPExceptionState, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPReassignWorkflowTaskToSelfRequest, AXPReassignWorkflowTaskToSelfResponse, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPRevertResumeAfterDeclinedInteractiveContinuationRequest, AXPRevertResumeAfterDeclinedInteractiveContinuationResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPTaskType, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowActivityInstance, AXPWorkflowBinding, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowContinuationBeforeInteractive, AXPWorkflowContinuationHook, AXPWorkflowContinuationMetadata, AXPWorkflowContinuationOfferResult, AXPWorkflowContinuationStepContext, AXPWorkflowDefinition, AXPWorkflowEngine, AXPWorkflowErrorCode, AXPWorkflowEvent, AXPWorkflowExtensions, AXPWorkflowFaultState, AXPWorkflowGraph, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOutputProperty, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityExecutionResult, WorkflowClaimTaskResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowReassignTaskToSelfResult, WorkflowResumeResult, WorkflowStartResult };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs","sources":["../../../../libs/platform/layout/widgets/src/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.ts","../../../../libs/platform/layout/widgets/src/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPContextChangeEvent, AXPFileListItem } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, input, linkedSignal } from '@angular/core';\nimport { AXPWidgetCoreModule, AXPWidgetNode } from '@acorex/platform/layout/widget-core';\n\n@Component({\n imports: [\n CommonModule,\n //\n AXLabelModule,\n AXCheckBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n //\n AXPWidgetCoreModule,\n ],\n templateUrl: './file-list-popup.component.html',\n})\nexport class AXPFileListPopupComponent extends AXBasePageComponent {\n //#region ---- Component Properties ----\n\n /** Hydrated file rows only; storage prefixes are resolved in entity/mock middleware before UI. */\n files = input<AXPFileListItem[]>([]);\n /**\n * When true, same as file-uploader `options.readonly` (no add/upload, list actions download-only).\n * Use property name `isReadonly` in popup `data` so host/popup binding resolves the input.\n */\n isReadonly = input<boolean>(false);\n multiple = input<boolean>(false);\n fileEditable = input<boolean>(true);\n accept = input<string>('*');\n maxFileSize = input<number>(1024 * 1024 * 100);\n /** Same as widget plugins (e.g. document) so hooks/actions run in popup too. */\n plugins = input<{ name: string; options?: unknown }[]>([]);\n excludePlugins = input<string[]>([]);\n /** When true, file edit dialog shows name, title and description fields. Default false. */\n enableTitleDescription = input<boolean>(false);\n /** When true, show edit dialog (name/title/description + plugin hooks) after file select. Default false. */\n showEditDialogAfterSelect = input<boolean>(false);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n /**\n * Always render the edit widget so `options` (readonly, plugins, enableTitleDescription, …) match the entity form.\n * Readonly behavior comes from `node.options.readonly`, not from view mode.\n */\n protected mode = computed(() => 'edit' as const);\n\n //#endregion\n\n //#region ---- Context & Node Management ----\n\n protected context = linkedSignal<{}>(() => ({}));\n\n protected onContextChanged(event: AXPContextChangeEvent) {\n this.context.set(event.data);\n }\n\n /** Resolves input that may be a signal (input()) or a raw value when popup injects data. */\n private resolveInput<T>(value: (() => T) | T, fallback: T): T {\n return typeof value === 'function' ? (value as () => T)() : (value ?? fallback);\n }\n\n protected node = computed<AXPWidgetNode>(() => ({\n type: 'file-uploader',\n path: 'files',\n defaultValue: Array.isArray(this.files()) ? this.files() : [],\n options: {\n readonly: this.isReadonly(),\n multiple: this.multiple(),\n accept: this.accept(),\n maxFileSize: this.maxFileSize(),\n fileEditable: this.fileEditable(),\n plugins: this.resolveInput(this.plugins, []),\n excludePlugins: this.resolveInput(this.excludePlugins, []),\n enableTitleDescription: this.enableTitleDescription(),\n showEditDialogAfterSelect: this.resolveInput(this.showEditDialogAfterSelect(), false),\n },\n }));\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n apply() {\n this.close({\n data: this.context(),\n });\n }\n\n //#endregion\n}\n","<div class=\"ax-p-2\">\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"onContextChanged($event)\">\n <ng-container axp-widget-renderer [node]=\"node()\" [mode]=\"mode()\"></ng-container>\n </axp-widgets-container>\n</div>\n<ax-footer>\n <ax-suffix>\n @if (isReadonly()) {\n <ax-button [text]=\"'@general:actions.close.title' | translate | async\" (click)=\"close()\"></ax-button>\n } @else {\n <ax-button [text]=\"'@general:actions.discard.title' | translate | async\" (click)=\"close()\"></ax-button>\n <ax-button\n [text]=\"'@general:actions.apply.title' | translate | async\"\n (click)=\"apply()\"\n [color]=\"'primary'\"\n ></ax-button>\n }\n </ax-suffix>\n</ax-footer>\n"],"names":["i1","i3","i4","i5"],"mappings":"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"}
|