@alfresco/adf-process-services-cloud 9.2.0-38362903178 → 9.2.0-38460477523
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.
|
@@ -3960,7 +3960,6 @@ const FilterCounterEntityType = {
|
|
|
3960
3960
|
* See the License for the specific language governing permissions and
|
|
3961
3961
|
* limitations under the License.
|
|
3962
3962
|
*/
|
|
3963
|
-
const BATCHED_COUNTERS_UNAVAILABLE_STATUSES = [404, 501];
|
|
3964
3963
|
const ENGINE_EVENTS_SUBSCRIPTION_QUERIES = {
|
|
3965
3964
|
[FilterCounterEntityType.TASK]: `
|
|
3966
3965
|
subscription {
|
|
@@ -4006,9 +4005,7 @@ class FilterCountersCloudService extends BaseCloudService {
|
|
|
4006
4005
|
this.eventRecountPerApp = new Map();
|
|
4007
4006
|
this.activeEntityTypesPerApp = new Map();
|
|
4008
4007
|
this.subscribersPerEntityType = new Map();
|
|
4009
|
-
this.batchedCountersPerEntityType = new Map();
|
|
4010
4008
|
this.eventSubscriptionsPerEntityType = new Map();
|
|
4011
|
-
this.appsWithoutBatchedCounters = new Set();
|
|
4012
4009
|
this.taskFiltersPerApp = new Map();
|
|
4013
4010
|
this.processFiltersPerApp = new Map();
|
|
4014
4011
|
this.countersPerApp = new Map();
|
|
@@ -4022,14 +4019,14 @@ class FilterCountersCloudService extends BaseCloudService {
|
|
|
4022
4019
|
getProcessFilters(appName) {
|
|
4023
4020
|
return this.shareFilters(this.processFiltersPerApp, appName, () => this.injector.get(ProcessFilterCloudService).getProcessFilters(appName));
|
|
4024
4021
|
}
|
|
4025
|
-
getFilterCounters(appName, entityType
|
|
4022
|
+
getFilterCounters(appName, entityType) {
|
|
4026
4023
|
if (!appName) {
|
|
4027
4024
|
return EMPTY;
|
|
4028
4025
|
}
|
|
4029
4026
|
return defer(() => {
|
|
4030
|
-
this.activateEntityType(appName, entityType
|
|
4027
|
+
this.activateEntityType(appName, entityType);
|
|
4031
4028
|
return this.getCounters(appName);
|
|
4032
|
-
}).pipe(map((
|
|
4029
|
+
}).pipe(map((counters) => ({ counters: counters[entityType] ?? {} })), finalize(() => this.deactivateEntityType(appName, entityType)));
|
|
4033
4030
|
}
|
|
4034
4031
|
refreshFilterCounters(appName) {
|
|
4035
4032
|
this.recount(appName);
|
|
@@ -4058,14 +4055,13 @@ class FilterCountersCloudService extends BaseCloudService {
|
|
|
4058
4055
|
get notificationsEnabled() {
|
|
4059
4056
|
return this.appConfigService.get('notifications', true);
|
|
4060
4057
|
}
|
|
4061
|
-
activateEntityType(appName, entityType
|
|
4058
|
+
activateEntityType(appName, entityType) {
|
|
4062
4059
|
const key = this.entityTypeKey(appName, entityType);
|
|
4063
4060
|
const subscribers = (this.subscribersPerEntityType.get(key) ?? 0) + 1;
|
|
4064
4061
|
this.subscribersPerEntityType.set(key, subscribers);
|
|
4065
4062
|
if (subscribers > 1) {
|
|
4066
4063
|
return;
|
|
4067
4064
|
}
|
|
4068
|
-
this.batchedCountersPerEntityType.set(key, batchedCounters);
|
|
4069
4065
|
const activeEntityTypes = this.activeEntityTypes(appName);
|
|
4070
4066
|
const joinsResolvedCounters = activeEntityTypes.size > 0;
|
|
4071
4067
|
activeEntityTypes.add(entityType);
|
|
@@ -4084,7 +4080,6 @@ class FilterCountersCloudService extends BaseCloudService {
|
|
|
4084
4080
|
return;
|
|
4085
4081
|
}
|
|
4086
4082
|
this.subscribersPerEntityType.delete(key);
|
|
4087
|
-
this.batchedCountersPerEntityType.delete(key);
|
|
4088
4083
|
this.activeEntityTypes(appName).delete(entityType);
|
|
4089
4084
|
this.eventSubscriptionsPerEntityType.get(key)?.unsubscribe();
|
|
4090
4085
|
this.eventSubscriptionsPerEntityType.delete(key);
|
|
@@ -4131,20 +4126,10 @@ class FilterCountersCloudService extends BaseCloudService {
|
|
|
4131
4126
|
return counters$;
|
|
4132
4127
|
}
|
|
4133
4128
|
resolveCounters(appName) {
|
|
4134
|
-
if (
|
|
4135
|
-
return of({
|
|
4129
|
+
if (this.activeEntityTypes(appName).size === 0) {
|
|
4130
|
+
return of({});
|
|
4136
4131
|
}
|
|
4137
|
-
return this.getFiltersForCounters(appName).pipe(take(1), switchMap((filters) => this.fetchFilterCounters(appName, this.buildRequest(filters))),
|
|
4138
|
-
if (BATCHED_COUNTERS_UNAVAILABLE_STATUSES.includes(error?.status)) {
|
|
4139
|
-
this.appsWithoutBatchedCounters.add(appName);
|
|
4140
|
-
}
|
|
4141
|
-
return of({ counters: {}, batched: false });
|
|
4142
|
-
}));
|
|
4143
|
-
}
|
|
4144
|
-
batchedCountersEnabled(appName) {
|
|
4145
|
-
const activeEntityTypes = [...this.activeEntityTypes(appName)];
|
|
4146
|
-
return (activeEntityTypes.length > 0 &&
|
|
4147
|
-
activeEntityTypes.every((entityType) => this.batchedCountersPerEntityType.get(this.entityTypeKey(appName, entityType))));
|
|
4132
|
+
return this.getFiltersForCounters(appName).pipe(take(1), switchMap((filters) => this.fetchFilterCounters(appName, this.buildRequest(filters))), catchError(() => of({})));
|
|
4148
4133
|
}
|
|
4149
4134
|
recounts(appName) {
|
|
4150
4135
|
return merge(merge(of(undefined), this.recountTrigger(appName)).pipe(debounceTime(0, asapScheduler)), this.eventRecountTrigger(appName).pipe(debounceTime(this.notificationDebounceTime)));
|
|
@@ -4733,12 +4718,6 @@ class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent {
|
|
|
4733
4718
|
*
|
|
4734
4719
|
*/
|
|
4735
4720
|
this.searchApiMethod = 'GET';
|
|
4736
|
-
/**
|
|
4737
|
-
* (optional) Resolves the counters of the task and the process filters with a single call to
|
|
4738
|
-
* `POST /query/v1/count`. Both filter components have to
|
|
4739
|
-
* ask for it, otherwise the counters are resolved one filter at a time.
|
|
4740
|
-
*/
|
|
4741
|
-
this.useBatchedCounters = false;
|
|
4742
4721
|
/** Emitted when a filter is being selected based on the filterParam input. */
|
|
4743
4722
|
this.filterSelected = new EventEmitter();
|
|
4744
4723
|
/** Emitted when a filter is being clicked from the UI. */
|
|
@@ -4751,7 +4730,6 @@ class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent {
|
|
|
4751
4730
|
this.enableNotifications = true;
|
|
4752
4731
|
this.notificationDebounceTime = 3000;
|
|
4753
4732
|
this.currentFiltersValues = {};
|
|
4754
|
-
this.batchedCounters = true;
|
|
4755
4733
|
this.taskFilterCloudService = inject(TaskFilterCloudService);
|
|
4756
4734
|
this.taskListCloudService = inject(TaskListCloudService);
|
|
4757
4735
|
this.filterCountersCloudService = inject(FilterCountersCloudService);
|
|
@@ -4778,9 +4756,6 @@ class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent {
|
|
|
4778
4756
|
else if (filter && filter.currentValue !== filter.previousValue) {
|
|
4779
4757
|
this.selectFilterAndEmit(filter.currentValue);
|
|
4780
4758
|
}
|
|
4781
|
-
else if (changes['useBatchedCounters'] && !changes['useBatchedCounters'].firstChange && this.filtersLoadedFor) {
|
|
4782
|
-
this.loadFilterCounters(this.filtersLoadedFor);
|
|
4783
|
-
}
|
|
4784
4759
|
}
|
|
4785
4760
|
/**
|
|
4786
4761
|
* Loads the filter list filtered by appName
|
|
@@ -4897,7 +4872,7 @@ class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent {
|
|
|
4897
4872
|
onFilterClick(filter) {
|
|
4898
4873
|
if (filter) {
|
|
4899
4874
|
this.selectFilter(filter);
|
|
4900
|
-
this.refreshFilterCounter(
|
|
4875
|
+
this.refreshFilterCounter();
|
|
4901
4876
|
this.filterClicked.emit(this.currentFilter);
|
|
4902
4877
|
this.updatedCountersSet.delete(filter.key);
|
|
4903
4878
|
}
|
|
@@ -4945,17 +4920,11 @@ class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent {
|
|
|
4945
4920
|
this.countersSubscription?.unsubscribe();
|
|
4946
4921
|
this.countersSubscription = combineLatest([
|
|
4947
4922
|
this.countersFilters$.pipe(catchError(() => of([]))),
|
|
4948
|
-
this.filterCountersCloudService.getFilterCounters(appName, FilterCounterEntityType.TASK
|
|
4923
|
+
this.filterCountersCloudService.getFilterCounters(appName, FilterCounterEntityType.TASK)
|
|
4949
4924
|
])
|
|
4950
4925
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4951
|
-
.subscribe(([, { counters
|
|
4952
|
-
this.
|
|
4953
|
-
if (batched) {
|
|
4954
|
-
this.applyFilterCounters(counters);
|
|
4955
|
-
}
|
|
4956
|
-
else {
|
|
4957
|
-
this.updateFilterCounters();
|
|
4958
|
-
}
|
|
4926
|
+
.subscribe(([, { counters }]) => {
|
|
4927
|
+
this.applyFilterCounters(counters);
|
|
4959
4928
|
});
|
|
4960
4929
|
}
|
|
4961
4930
|
applyFilterCounters(counters) {
|
|
@@ -4985,24 +4954,17 @@ class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent {
|
|
|
4985
4954
|
this.filters = [];
|
|
4986
4955
|
this.currentFilter = undefined;
|
|
4987
4956
|
}
|
|
4988
|
-
refreshFilterCounter(
|
|
4989
|
-
|
|
4990
|
-
this.filterCountersCloudService.refreshFilterCounters(this.appName);
|
|
4991
|
-
}
|
|
4992
|
-
else {
|
|
4993
|
-
this.updateFilterCounter(filter);
|
|
4994
|
-
}
|
|
4957
|
+
refreshFilterCounter() {
|
|
4958
|
+
this.filterCountersCloudService.refreshFilterCounters(this.appName);
|
|
4995
4959
|
}
|
|
4996
4960
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskFiltersCloudComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4997
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: TaskFiltersCloudComponent, isStandalone: true, selector: "adf-cloud-task-filters", inputs: { searchApiMethod: "searchApiMethod"
|
|
4961
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: TaskFiltersCloudComponent, isStandalone: true, selector: "adf-cloud-task-filters", inputs: { searchApiMethod: "searchApiMethod" }, outputs: { filterSelected: "filterSelected", filterClicked: "filterClicked", filterCounterUpdated: "filterCounterUpdated", updatedFilter: "updatedFilter" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (filters$ | async; as filterList) {\n <mat-nav-list>\n @for (filter of filterList; track filter.id) {\n <a mat-list-item\n [activated]=\"filter.id === currentRouteFilterId()\"\n [routerLink]=\"[TASKS_ROUTE]\"\n [queryParams]=\"{ filterId: filter.id }\"\n [attr.data-automation-id]=\"filter.key + '_filter'\"\n class=\"adf-task-filters__entry\"\n [class.adf-active]=\"filter.id === currentRouteFilterId()\"\n [attr.aria-current]=\"filter.id === currentRouteFilterId() ? 'page' : null\"\n [id]=\"filter.id\"\n [title]=\"filter.name | translate\"\n [attr.aria-label]=\"filter.name | translate\"\n (click)=\"onFilterClick(filter)\">\n <span matListItemTitle>\n {{ filter.name | translate }}\n </span>\n @if (showIcons) {\n <mat-icon matListItemIcon\n data-automation-id=\"adf-filter-icon\"\n [adf-icon]=\"filter.icon\"\n aria-hidden=\"true\" />\n }\n @if (counters[filter.key]) {\n <span matListItemMeta\n [attr.data-automation-id]=\"filter.key + '_filter-counter'\"\n class=\"adf-task-filters__entry-counter\"\n [class.adf-active]=\"wasFilterUpdated(filter.key)\"\n >\n {{ counters[filter.key] }}\n </span>\n }\n </a>\n }\n </mat-nav-list>\n} @else {\n <div class=\"adf-app-list-spinner\">\n <mat-spinner [attr.aria-label]=\"'ADF_CLOUD_TASK_LIST.LOADING' | translate\" aria-live=\"polite\" />\n </div>\n}\n", styles: [".adf-task-filters__entry-counter{padding:0 5px;border-radius:var(--mat-sys-corner-large)}.adf-task-filters__entry-counter.adf-active{background-color:var(--mat-sys-secondary);--mat-list-list-item-trailing-supporting-text-color: var(--mat-sys-on-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2$1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2$1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.IconDirective, selector: "mat-icon[adf-icon]", inputs: ["adf-icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
4998
4962
|
}
|
|
4999
4963
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskFiltersCloudComponent, decorators: [{
|
|
5000
4964
|
type: Component,
|
|
5001
4965
|
args: [{ selector: 'adf-cloud-task-filters', imports: [AsyncPipe, MatProgressSpinnerModule, TranslatePipe, MatListModule, RouterLink, IconModule], template: "@if (filters$ | async; as filterList) {\n <mat-nav-list>\n @for (filter of filterList; track filter.id) {\n <a mat-list-item\n [activated]=\"filter.id === currentRouteFilterId()\"\n [routerLink]=\"[TASKS_ROUTE]\"\n [queryParams]=\"{ filterId: filter.id }\"\n [attr.data-automation-id]=\"filter.key + '_filter'\"\n class=\"adf-task-filters__entry\"\n [class.adf-active]=\"filter.id === currentRouteFilterId()\"\n [attr.aria-current]=\"filter.id === currentRouteFilterId() ? 'page' : null\"\n [id]=\"filter.id\"\n [title]=\"filter.name | translate\"\n [attr.aria-label]=\"filter.name | translate\"\n (click)=\"onFilterClick(filter)\">\n <span matListItemTitle>\n {{ filter.name | translate }}\n </span>\n @if (showIcons) {\n <mat-icon matListItemIcon\n data-automation-id=\"adf-filter-icon\"\n [adf-icon]=\"filter.icon\"\n aria-hidden=\"true\" />\n }\n @if (counters[filter.key]) {\n <span matListItemMeta\n [attr.data-automation-id]=\"filter.key + '_filter-counter'\"\n class=\"adf-task-filters__entry-counter\"\n [class.adf-active]=\"wasFilterUpdated(filter.key)\"\n >\n {{ counters[filter.key] }}\n </span>\n }\n </a>\n }\n </mat-nav-list>\n} @else {\n <div class=\"adf-app-list-spinner\">\n <mat-spinner [attr.aria-label]=\"'ADF_CLOUD_TASK_LIST.LOADING' | translate\" aria-live=\"polite\" />\n </div>\n}\n", styles: [".adf-task-filters__entry-counter{padding:0 5px;border-radius:var(--mat-sys-corner-large)}.adf-task-filters__entry-counter.adf-active{background-color:var(--mat-sys-secondary);--mat-list-list-item-trailing-supporting-text-color: var(--mat-sys-on-secondary)}\n"] }]
|
|
5002
4966
|
}], propDecorators: { searchApiMethod: [{
|
|
5003
4967
|
type: Input
|
|
5004
|
-
}], useBatchedCounters: [{
|
|
5005
|
-
type: Input
|
|
5006
4968
|
}], filterSelected: [{
|
|
5007
4969
|
type: Output
|
|
5008
4970
|
}], filterClicked: [{
|
|
@@ -10728,6 +10690,8 @@ class TaskFormCloudComponent {
|
|
|
10728
10690
|
this.customSaveButtonText = '';
|
|
10729
10691
|
/** Toggle readonly state of the task. */
|
|
10730
10692
|
this.readOnly = false;
|
|
10693
|
+
/** When false, Claim/Release (self-service) buttons are hidden regardless of task state. */
|
|
10694
|
+
this.allowSelfService = true;
|
|
10731
10695
|
/**
|
|
10732
10696
|
* Toggle to enable parent visibility check for validation.
|
|
10733
10697
|
* When enabled, fields inside hidden groups/sections will skip validation.
|
|
@@ -10772,10 +10736,10 @@ class TaskFormCloudComponent {
|
|
|
10772
10736
|
return this.showCompleteButton && !this.readOnly && this.taskCloudService.canCompleteTask(this.taskDetails);
|
|
10773
10737
|
}
|
|
10774
10738
|
canClaimTask() {
|
|
10775
|
-
return !this.readOnly && this.taskCloudService.canClaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
10739
|
+
return this.allowSelfService && !this.readOnly && this.taskCloudService.canClaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
10776
10740
|
}
|
|
10777
10741
|
canUnclaimTask() {
|
|
10778
|
-
return !this.readOnly && this.taskCloudService.canUnclaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
10742
|
+
return this.allowSelfService && !this.readOnly && this.taskCloudService.canUnclaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
10779
10743
|
}
|
|
10780
10744
|
hasCandidateUsers() {
|
|
10781
10745
|
return this.candidateUsers.length !== 0;
|
|
@@ -10827,7 +10791,7 @@ class TaskFormCloudComponent {
|
|
|
10827
10791
|
this.formLoaded.emit(form);
|
|
10828
10792
|
}
|
|
10829
10793
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskFormCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10830
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TaskFormCloudComponent, isStandalone: true, selector: "adf-cloud-task-form", inputs: { appName: "appName", candidateUsers: "candidateUsers", candidateGroups: "candidateGroups", taskId: "taskId", showTitle: "showTitle", showRefreshButton: "showRefreshButton", showValidationIcon: "showValidationIcon", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", showSaveButton: "showSaveButton", customCancelButtonText: "customCancelButtonText", customCompleteButtonText: "customCompleteButtonText", customSaveButtonText: "customSaveButtonText", readOnly: "readOnly", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck", taskDetails: "taskDetails" }, outputs: { formLoaded: "formLoaded", formSaved: "formSaved", formCompleted: "formCompleted", taskCompleted: "taskCompleted", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", cancelClick: "cancelClick", error: "error", formContentClicked: "formContentClicked", executeOutcome: "executeOutcome", displayModeOn: "displayModeOn", displayModeOff: "displayModeOff" }, viewQueries: [{ propertyName: "adfCloudForm", first: true, predicate: ["adfCloudForm"], descendants: true }], ngImport: i0, template: "<div class=\"adf-task-form-cloud-container\">\n <adf-cloud-form\n #adfCloudForm\n [appName]=\"appName\"\n [appVersion]=\"taskDetails.appVersion\"\n [taskId]=\"taskId\"\n [showTitle]=\"showTitle\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [readOnly]=\"isReadOnly()\"\n [showRefreshButton]=\"showRefreshButton\"\n [showValidationIcon]=\"showValidationIcon\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved($event)\"\n (formCompleted)=\"onFormCompleted($event)\"\n (formError)=\"onError($event)\"\n (error)=\"onError($event)\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (executeOutcome)=\"onFormExecuteOutcome($event)\"\n (displayModeOn)=\"onDisplayModeOn($event)\"\n (displayModeOff)=\"onDisplayModeOff($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n</div>\n", styles: [".adf-task-form-cloud-container{height:100%}.adf-task-form-cloud-container .adf-task-form-container{overflow:hidden}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button){padding-bottom:25px;padding-right:25px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .adf-task-form-actions-button{height:36px;border-radius:5px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mdc-button__label{min-width:58px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton", "customCancelButtonText"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }, { kind: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showCompleteButton", "customSaveButtonText", "customCompleteButtonText", "enableParentVisibilityCheck", "form"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "visibleOutcomesChanged", "formContentClicked", "displayModeOn", "displayModeOff"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10794
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TaskFormCloudComponent, isStandalone: true, selector: "adf-cloud-task-form", inputs: { appName: "appName", candidateUsers: "candidateUsers", candidateGroups: "candidateGroups", taskId: "taskId", showTitle: "showTitle", showRefreshButton: "showRefreshButton", showValidationIcon: "showValidationIcon", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", showSaveButton: "showSaveButton", customCancelButtonText: "customCancelButtonText", customCompleteButtonText: "customCompleteButtonText", customSaveButtonText: "customSaveButtonText", readOnly: "readOnly", allowSelfService: "allowSelfService", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck", taskDetails: "taskDetails" }, outputs: { formLoaded: "formLoaded", formSaved: "formSaved", formCompleted: "formCompleted", taskCompleted: "taskCompleted", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", cancelClick: "cancelClick", error: "error", formContentClicked: "formContentClicked", executeOutcome: "executeOutcome", displayModeOn: "displayModeOn", displayModeOff: "displayModeOff" }, viewQueries: [{ propertyName: "adfCloudForm", first: true, predicate: ["adfCloudForm"], descendants: true }], ngImport: i0, template: "<div class=\"adf-task-form-cloud-container\">\n <adf-cloud-form\n #adfCloudForm\n [appName]=\"appName\"\n [appVersion]=\"taskDetails.appVersion\"\n [taskId]=\"taskId\"\n [showTitle]=\"showTitle\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [readOnly]=\"isReadOnly()\"\n [showRefreshButton]=\"showRefreshButton\"\n [showValidationIcon]=\"showValidationIcon\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved($event)\"\n (formCompleted)=\"onFormCompleted($event)\"\n (formError)=\"onError($event)\"\n (error)=\"onError($event)\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (executeOutcome)=\"onFormExecuteOutcome($event)\"\n (displayModeOn)=\"onDisplayModeOn($event)\"\n (displayModeOff)=\"onDisplayModeOff($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n</div>\n", styles: [".adf-task-form-cloud-container{height:100%}.adf-task-form-cloud-container .adf-task-form-container{overflow:hidden}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button){padding-bottom:25px;padding-right:25px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .adf-task-form-actions-button{height:36px;border-radius:5px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mdc-button__label{min-width:58px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton", "customCancelButtonText"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }, { kind: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showCompleteButton", "customSaveButtonText", "customCompleteButtonText", "enableParentVisibilityCheck", "form"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "visibleOutcomesChanged", "formContentClicked", "displayModeOn", "displayModeOff"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10831
10795
|
}
|
|
10832
10796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskFormCloudComponent, decorators: [{
|
|
10833
10797
|
type: Component,
|
|
@@ -10860,6 +10824,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
10860
10824
|
type: Input
|
|
10861
10825
|
}], readOnly: [{
|
|
10862
10826
|
type: Input
|
|
10827
|
+
}], allowSelfService: [{
|
|
10828
|
+
type: Input
|
|
10863
10829
|
}], displayModeConfigurations: [{
|
|
10864
10830
|
type: Input
|
|
10865
10831
|
}], enableParentVisibilityCheck: [{
|
|
@@ -11387,6 +11353,8 @@ class UserTaskCloudComponent {
|
|
|
11387
11353
|
this.enableParentVisibilityCheck = false;
|
|
11388
11354
|
/** Toggle readonly state of the task. */
|
|
11389
11355
|
this.readOnly = false;
|
|
11356
|
+
/** When false, Claim/Release (self-service) buttons are hidden regardless of task state. */
|
|
11357
|
+
this.allowSelfService = true;
|
|
11390
11358
|
/** Toggle rendering of the `Cancel` button. */
|
|
11391
11359
|
this.showCancelButton = true;
|
|
11392
11360
|
/** Toggle rendering of the `Complete` button. */
|
|
@@ -11469,13 +11437,13 @@ class UserTaskCloudComponent {
|
|
|
11469
11437
|
}
|
|
11470
11438
|
}
|
|
11471
11439
|
canClaimTask() {
|
|
11472
|
-
return !this.readOnly && this.taskCloudService.canClaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
11440
|
+
return this.allowSelfService && !this.readOnly && this.taskCloudService.canClaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
11473
11441
|
}
|
|
11474
11442
|
canCompleteTask() {
|
|
11475
11443
|
return this.showCompleteButton && !this.readOnly && this.taskCloudService.canCompleteTask(this.taskDetails);
|
|
11476
11444
|
}
|
|
11477
11445
|
canUnclaimTask() {
|
|
11478
|
-
return !this.readOnly && this.taskCloudService.canUnclaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
11446
|
+
return this.allowSelfService && !this.readOnly && this.taskCloudService.canUnclaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
11479
11447
|
}
|
|
11480
11448
|
getTaskType() {
|
|
11481
11449
|
this.taskType = this.taskTypeResolverService.getUserTaskType(this.taskDetails?.formKey);
|
|
@@ -11567,7 +11535,7 @@ class UserTaskCloudComponent {
|
|
|
11567
11535
|
}
|
|
11568
11536
|
}
|
|
11569
11537
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: UserTaskCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11570
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: UserTaskCloudComponent, isStandalone: true, selector: "adf-cloud-user-task", inputs: { appName: "appName", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck", readOnly: "readOnly", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", showSaveButton: "showSaveButton", customCancelButtonText: "customCancelButtonText", customCompleteButtonText: "customCompleteButtonText", customSaveButtonText: "customSaveButtonText", showNextTaskCheckbox: "showNextTaskCheckbox", isNextTaskCheckboxChecked: "isNextTaskCheckboxChecked", showTitle: "showTitle", showValidationIcon: "showValidationIcon", taskId: "taskId" }, outputs: { cancelClick: "cancelClick", error: "error", nextTaskCheckboxCheckedChanged: "nextTaskCheckboxCheckedChanged", executeOutcome: "executeOutcome", formContentClicked: "formContentClicked", formLoaded: "formLoaded", formSaved: "formSaved", onTaskLoaded: "onTaskLoaded", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", taskCompleted: "taskCompleted" }, viewQueries: [{ propertyName: "adfCloudTaskForm", first: true, predicate: ["adfCloudTaskForm"], descendants: true }, { propertyName: "adfCloudTaskScreen", first: true, predicate: ["adfCloudTaskScreen"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-user-task-cloud-container\">\n <div *ngIf=\"!loading; else loadingTemplate\">\n <ng-container [ngSwitch]=\"taskType\">\n <ng-container *ngSwitchCase=\"taskTypeEnum.Form\">\n <adf-cloud-task-form\n #adfCloudTaskForm\n [appName]=\"appName\"\n [candidateUsers]=\"candidateUsers\"\n [candidateGroups]=\"candidateGroups\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showValidationIcon]=\"showValidationIcon\"\n [showTitle]=\"showTitle\"\n [taskId]=\"taskId\"\n [taskDetails]=\"taskDetails\"\n [showCancelButton]=\"showCancelButton\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n (cancelClick)=\"onCancelForm()\"\n (executeOutcome)=\"onExecuteOutcome($event)\"\n (error)=\"onError($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved()\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (taskCompleted)=\"onCompleteTaskForm()\"\n (taskClaimed)=\"onClaimTask()\"\n (taskUnclaimed)=\"onTaskUnclaimed()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.Screen\">\n <adf-cloud-task-screen\n #adfCloudTaskScreen\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [rootProcessInstanceId]=\"taskDetails.rootProcessInstanceId\"\n [screenId]=\"screenId\"\n [showCancelButton]=\"showCancelButton\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskId\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask()\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (cancelTask)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (error)=\"onError($event)\"\n (taskCompleted)=\"onCompleteTask($event, taskType)\"\n (taskSaved)=\"onFormSaved()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.None\">\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header *ngIf=\"showTitle\">\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{ taskDetails?.name || 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.TITLE'\"\n [subtitle]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'\"\n />\n </mat-card-content>\n <mat-card-actions class=\"adf-task-form-actions\" align=\"end\">\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n <button\n *ngIf=\"canCompleteTask()\"\n mat-flat-button\n adf-cloud-complete-task\n [appName]=\"appName\"\n [taskId]=\"taskId\"\n (success)=\"onCompleteTask(false, taskType)\"\n (error)=\"onError($event)\"\n id=\"adf-form-complete\"\n >\n {{ customCompleteButtonText || ('ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate) }}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTemplate>\n <mat-spinner class=\"adf-user-task-cloud-spinner\" />\n</ng-template>\n\n<ng-template #taskFormCloudButtons>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n</ng-template>\n", styles: [".adf-user-task-cloud-container{height:100%}.adf-user-task-cloud-container>div{height:100%}.adf-user-task-cloud-spinner{top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton", "customCancelButtonText"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: TaskScreenCloudComponent, selector: "adf-cloud-task-screen", inputs: ["taskId", "appName", "canClaimTask", "canUnclaimTask", "showCancelButton", "processInstanceId", "taskName", "readOnly", "rootProcessInstanceId", "isNextTaskCheckboxChecked", "showNextTaskCheckbox"], outputs: ["taskSaved", "taskCompleted", "error", "cancelTask", "claimTask", "unclaimTask", "nextTaskCheckboxCheckedChanged"] }, { kind: "component", type: TaskFormCloudComponent, selector: "adf-cloud-task-form", inputs: ["appName", "candidateUsers", "candidateGroups", "taskId", "showTitle", "showRefreshButton", "showValidationIcon", "showCancelButton", "showCompleteButton", "showSaveButton", "customCancelButtonText", "customCompleteButtonText", "customSaveButtonText", "readOnly", "displayModeConfigurations", "enableParentVisibilityCheck", "taskDetails"], outputs: ["formLoaded", "formSaved", "formCompleted", "taskCompleted", "taskClaimed", "taskUnclaimed", "cancelClick", "error", "formContentClicked", "executeOutcome", "displayModeOn", "displayModeOff"] }, { kind: "directive", type: CompleteTaskDirective, selector: "[adf-cloud-complete-task]", inputs: ["taskId", "appName"], outputs: ["success", "error"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
11538
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: UserTaskCloudComponent, isStandalone: true, selector: "adf-cloud-user-task", inputs: { appName: "appName", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck", readOnly: "readOnly", allowSelfService: "allowSelfService", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", showSaveButton: "showSaveButton", customCancelButtonText: "customCancelButtonText", customCompleteButtonText: "customCompleteButtonText", customSaveButtonText: "customSaveButtonText", showNextTaskCheckbox: "showNextTaskCheckbox", isNextTaskCheckboxChecked: "isNextTaskCheckboxChecked", showTitle: "showTitle", showValidationIcon: "showValidationIcon", taskId: "taskId" }, outputs: { cancelClick: "cancelClick", error: "error", nextTaskCheckboxCheckedChanged: "nextTaskCheckboxCheckedChanged", executeOutcome: "executeOutcome", formContentClicked: "formContentClicked", formLoaded: "formLoaded", formSaved: "formSaved", onTaskLoaded: "onTaskLoaded", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", taskCompleted: "taskCompleted" }, viewQueries: [{ propertyName: "adfCloudTaskForm", first: true, predicate: ["adfCloudTaskForm"], descendants: true }, { propertyName: "adfCloudTaskScreen", first: true, predicate: ["adfCloudTaskScreen"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-user-task-cloud-container\">\n <div *ngIf=\"!loading; else loadingTemplate\">\n <ng-container [ngSwitch]=\"taskType\">\n <ng-container *ngSwitchCase=\"taskTypeEnum.Form\">\n <adf-cloud-task-form\n #adfCloudTaskForm\n [appName]=\"appName\"\n [candidateUsers]=\"candidateUsers\"\n [candidateGroups]=\"candidateGroups\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showValidationIcon]=\"showValidationIcon\"\n [showTitle]=\"showTitle\"\n [allowSelfService]=\"allowSelfService\"\n [taskId]=\"taskId\"\n [taskDetails]=\"taskDetails\"\n [showCancelButton]=\"showCancelButton\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n (cancelClick)=\"onCancelForm()\"\n (executeOutcome)=\"onExecuteOutcome($event)\"\n (error)=\"onError($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved()\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (taskCompleted)=\"onCompleteTaskForm()\"\n (taskClaimed)=\"onClaimTask()\"\n (taskUnclaimed)=\"onTaskUnclaimed()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.Screen\">\n <adf-cloud-task-screen\n #adfCloudTaskScreen\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [rootProcessInstanceId]=\"taskDetails.rootProcessInstanceId\"\n [screenId]=\"screenId\"\n [showCancelButton]=\"showCancelButton\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskId\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask()\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (cancelTask)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (error)=\"onError($event)\"\n (taskCompleted)=\"onCompleteTask($event, taskType)\"\n (taskSaved)=\"onFormSaved()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.None\">\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header *ngIf=\"showTitle\">\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{ taskDetails?.name || 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.TITLE'\"\n [subtitle]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'\"\n />\n </mat-card-content>\n <mat-card-actions class=\"adf-task-form-actions\" align=\"end\">\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n <button\n *ngIf=\"canCompleteTask()\"\n mat-flat-button\n adf-cloud-complete-task\n [appName]=\"appName\"\n [taskId]=\"taskId\"\n (success)=\"onCompleteTask(false, taskType)\"\n (error)=\"onError($event)\"\n id=\"adf-form-complete\"\n >\n {{ customCompleteButtonText || ('ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate) }}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTemplate>\n <mat-spinner class=\"adf-user-task-cloud-spinner\" />\n</ng-template>\n\n<ng-template #taskFormCloudButtons>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n</ng-template>\n", styles: [".adf-user-task-cloud-container{height:100%}.adf-user-task-cloud-container>div{height:100%}.adf-user-task-cloud-spinner{top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton", "customCancelButtonText"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: TaskScreenCloudComponent, selector: "adf-cloud-task-screen", inputs: ["taskId", "appName", "canClaimTask", "canUnclaimTask", "showCancelButton", "processInstanceId", "taskName", "readOnly", "rootProcessInstanceId", "isNextTaskCheckboxChecked", "showNextTaskCheckbox"], outputs: ["taskSaved", "taskCompleted", "error", "cancelTask", "claimTask", "unclaimTask", "nextTaskCheckboxCheckedChanged"] }, { kind: "component", type: TaskFormCloudComponent, selector: "adf-cloud-task-form", inputs: ["appName", "candidateUsers", "candidateGroups", "taskId", "showTitle", "showRefreshButton", "showValidationIcon", "showCancelButton", "showCompleteButton", "showSaveButton", "customCancelButtonText", "customCompleteButtonText", "customSaveButtonText", "readOnly", "allowSelfService", "displayModeConfigurations", "enableParentVisibilityCheck", "taskDetails"], outputs: ["formLoaded", "formSaved", "formCompleted", "taskCompleted", "taskClaimed", "taskUnclaimed", "cancelClick", "error", "formContentClicked", "executeOutcome", "displayModeOn", "displayModeOff"] }, { kind: "directive", type: CompleteTaskDirective, selector: "[adf-cloud-complete-task]", inputs: ["taskId", "appName"], outputs: ["success", "error"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
11571
11539
|
}
|
|
11572
11540
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: UserTaskCloudComponent, decorators: [{
|
|
11573
11541
|
type: Component,
|
|
@@ -11583,7 +11551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
11583
11551
|
TaskFormCloudComponent,
|
|
11584
11552
|
CompleteTaskDirective,
|
|
11585
11553
|
MatCheckboxModule
|
|
11586
|
-
], template: "<div class=\"adf-user-task-cloud-container\">\n <div *ngIf=\"!loading; else loadingTemplate\">\n <ng-container [ngSwitch]=\"taskType\">\n <ng-container *ngSwitchCase=\"taskTypeEnum.Form\">\n <adf-cloud-task-form\n #adfCloudTaskForm\n [appName]=\"appName\"\n [candidateUsers]=\"candidateUsers\"\n [candidateGroups]=\"candidateGroups\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showValidationIcon]=\"showValidationIcon\"\n [showTitle]=\"showTitle\"\n [taskId]=\"taskId\"\n [taskDetails]=\"taskDetails\"\n [showCancelButton]=\"showCancelButton\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n (cancelClick)=\"onCancelForm()\"\n (executeOutcome)=\"onExecuteOutcome($event)\"\n (error)=\"onError($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved()\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (taskCompleted)=\"onCompleteTaskForm()\"\n (taskClaimed)=\"onClaimTask()\"\n (taskUnclaimed)=\"onTaskUnclaimed()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.Screen\">\n <adf-cloud-task-screen\n #adfCloudTaskScreen\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [rootProcessInstanceId]=\"taskDetails.rootProcessInstanceId\"\n [screenId]=\"screenId\"\n [showCancelButton]=\"showCancelButton\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskId\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask()\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (cancelTask)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (error)=\"onError($event)\"\n (taskCompleted)=\"onCompleteTask($event, taskType)\"\n (taskSaved)=\"onFormSaved()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.None\">\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header *ngIf=\"showTitle\">\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{ taskDetails?.name || 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.TITLE'\"\n [subtitle]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'\"\n />\n </mat-card-content>\n <mat-card-actions class=\"adf-task-form-actions\" align=\"end\">\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n <button\n *ngIf=\"canCompleteTask()\"\n mat-flat-button\n adf-cloud-complete-task\n [appName]=\"appName\"\n [taskId]=\"taskId\"\n (success)=\"onCompleteTask(false, taskType)\"\n (error)=\"onError($event)\"\n id=\"adf-form-complete\"\n >\n {{ customCompleteButtonText || ('ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate) }}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTemplate>\n <mat-spinner class=\"adf-user-task-cloud-spinner\" />\n</ng-template>\n\n<ng-template #taskFormCloudButtons>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n</ng-template>\n", styles: [".adf-user-task-cloud-container{height:100%}.adf-user-task-cloud-container>div{height:100%}.adf-user-task-cloud-spinner{top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
|
|
11554
|
+
], template: "<div class=\"adf-user-task-cloud-container\">\n <div *ngIf=\"!loading; else loadingTemplate\">\n <ng-container [ngSwitch]=\"taskType\">\n <ng-container *ngSwitchCase=\"taskTypeEnum.Form\">\n <adf-cloud-task-form\n #adfCloudTaskForm\n [appName]=\"appName\"\n [candidateUsers]=\"candidateUsers\"\n [candidateGroups]=\"candidateGroups\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showValidationIcon]=\"showValidationIcon\"\n [showTitle]=\"showTitle\"\n [allowSelfService]=\"allowSelfService\"\n [taskId]=\"taskId\"\n [taskDetails]=\"taskDetails\"\n [showCancelButton]=\"showCancelButton\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n (cancelClick)=\"onCancelForm()\"\n (executeOutcome)=\"onExecuteOutcome($event)\"\n (error)=\"onError($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved()\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (taskCompleted)=\"onCompleteTaskForm()\"\n (taskClaimed)=\"onClaimTask()\"\n (taskUnclaimed)=\"onTaskUnclaimed()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.Screen\">\n <adf-cloud-task-screen\n #adfCloudTaskScreen\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [rootProcessInstanceId]=\"taskDetails.rootProcessInstanceId\"\n [screenId]=\"screenId\"\n [showCancelButton]=\"showCancelButton\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskId\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask()\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (cancelTask)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (error)=\"onError($event)\"\n (taskCompleted)=\"onCompleteTask($event, taskType)\"\n (taskSaved)=\"onFormSaved()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.None\">\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header *ngIf=\"showTitle\">\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{ taskDetails?.name || 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.TITLE'\"\n [subtitle]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'\"\n />\n </mat-card-content>\n <mat-card-actions class=\"adf-task-form-actions\" align=\"end\">\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n <button\n *ngIf=\"canCompleteTask()\"\n mat-flat-button\n adf-cloud-complete-task\n [appName]=\"appName\"\n [taskId]=\"taskId\"\n (success)=\"onCompleteTask(false, taskType)\"\n (error)=\"onError($event)\"\n id=\"adf-form-complete\"\n >\n {{ customCompleteButtonText || ('ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate) }}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTemplate>\n <mat-spinner class=\"adf-user-task-cloud-spinner\" />\n</ng-template>\n\n<ng-template #taskFormCloudButtons>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n</ng-template>\n", styles: [".adf-user-task-cloud-container{height:100%}.adf-user-task-cloud-container>div{height:100%}.adf-user-task-cloud-spinner{top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
|
|
11587
11555
|
}], propDecorators: { adfCloudTaskForm: [{
|
|
11588
11556
|
type: ViewChild,
|
|
11589
11557
|
args: ['adfCloudTaskForm']
|
|
@@ -11598,6 +11566,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
11598
11566
|
type: Input
|
|
11599
11567
|
}], readOnly: [{
|
|
11600
11568
|
type: Input
|
|
11569
|
+
}], allowSelfService: [{
|
|
11570
|
+
type: Input
|
|
11601
11571
|
}], showCancelButton: [{
|
|
11602
11572
|
type: Input
|
|
11603
11573
|
}], showCompleteButton: [{
|
|
@@ -11701,6 +11671,8 @@ class TaskHeaderCloudComponent {
|
|
|
11701
11671
|
this.appName = '';
|
|
11702
11672
|
/** Show/Hide the task title */
|
|
11703
11673
|
this.showTitle = true;
|
|
11674
|
+
/** When false, the assignee property is not clickable (self-service reassignment disabled). */
|
|
11675
|
+
this.allowSelfService = true;
|
|
11704
11676
|
/** Emitted when the task is claimed. */
|
|
11705
11677
|
this.claim = new EventEmitter();
|
|
11706
11678
|
/** Emitted when the task is unclaimed (ie, requeued). */
|
|
@@ -11931,13 +11903,13 @@ class TaskHeaderCloudComponent {
|
|
|
11931
11903
|
* @returns `true` if assignee property is clickable, otherwise `false`
|
|
11932
11904
|
*/
|
|
11933
11905
|
isAssigneePropertyClickable() {
|
|
11934
|
-
return this.taskCloudService.isAssigneePropertyClickable(this.taskDetails, this.candidateUsers, []);
|
|
11906
|
+
return this.allowSelfService && this.taskCloudService.isAssigneePropertyClickable(this.taskDetails, this.candidateUsers, []);
|
|
11935
11907
|
}
|
|
11936
11908
|
isValidSelection(filteredProperties, cardItem) {
|
|
11937
11909
|
return filteredProperties ? filteredProperties.indexOf(cardItem.key) >= 0 : true;
|
|
11938
11910
|
}
|
|
11939
11911
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskHeaderCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11940
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TaskHeaderCloudComponent, isStandalone: true, selector: "adf-cloud-task-header", inputs: { appName: "appName", taskId: "taskId", showTitle: "showTitle", processInstanceId: "processInstanceId" }, outputs: { claim: "claim", unclaim: "unclaim", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<h3 *ngIf=\"showTitle\" class=\"adf-task-title\">{{ taskDetails?.name }}</h3>\n\n<div class=\"adf-task-header-container\">\n <mat-card appearance=\"outlined\" *ngIf=\"isTaskValid()\" class=\"adf-card-container\">\n <mat-card-content>\n <adf-card-view\n *ngIf=\"!isLoading; else loadingTemplate\"\n [displayNoneOption]=\"false\"\n [properties]=\"properties\"\n [editable]=\"isTaskEditable()\"\n [displayClearAction]=\"displayDateClearAction\" />\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #loadingTemplate>\n <div class=\"adf-task-header-loading\">\n <mat-spinner />\n </div>\n</ng-template>\n", styles: [".adf-controls{display:flex;justify-content:space-between}.adf-edit-controls{display:flex;justify-content:flex-end;margin-left:auto}.adf-switch-to-edit-mode,.adf-save-edit-mode{color:var(--mat-sys-primary)}.adf-cancel-edit-mode,.adf-claim-controls{color:var(--mat-sys-on-surface-variant)}.adf-task-header-loading{display:flex;justify-content:center}@media(max-width:959.9px){adf-card-view .adf-property-value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: CardViewComponent, selector: "adf-card-view", inputs: ["properties", "editable", "displayEmpty", "displayNoneOption", "displayClearAction", "copyToClipboardAction", "displayCopyToClipboardIcon", "useChipsForMultiValueProperty", "multiValueSeparator"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
11912
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TaskHeaderCloudComponent, isStandalone: true, selector: "adf-cloud-task-header", inputs: { appName: "appName", taskId: "taskId", showTitle: "showTitle", processInstanceId: "processInstanceId", allowSelfService: "allowSelfService" }, outputs: { claim: "claim", unclaim: "unclaim", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<h3 *ngIf=\"showTitle\" class=\"adf-task-title\">{{ taskDetails?.name }}</h3>\n\n<div class=\"adf-task-header-container\">\n <mat-card appearance=\"outlined\" *ngIf=\"isTaskValid()\" class=\"adf-card-container\">\n <mat-card-content>\n <adf-card-view\n *ngIf=\"!isLoading; else loadingTemplate\"\n [displayNoneOption]=\"false\"\n [properties]=\"properties\"\n [editable]=\"isTaskEditable()\"\n [displayClearAction]=\"displayDateClearAction\" />\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #loadingTemplate>\n <div class=\"adf-task-header-loading\">\n <mat-spinner />\n </div>\n</ng-template>\n", styles: [".adf-controls{display:flex;justify-content:space-between}.adf-edit-controls{display:flex;justify-content:flex-end;margin-left:auto}.adf-switch-to-edit-mode,.adf-save-edit-mode{color:var(--mat-sys-primary)}.adf-cancel-edit-mode,.adf-claim-controls{color:var(--mat-sys-on-surface-variant)}.adf-task-header-loading{display:flex;justify-content:center}@media(max-width:959.9px){adf-card-view .adf-property-value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: CardViewComponent, selector: "adf-card-view", inputs: ["properties", "editable", "displayEmpty", "displayNoneOption", "displayClearAction", "copyToClipboardAction", "displayCopyToClipboardIcon", "useChipsForMultiValueProperty", "multiValueSeparator"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
11941
11913
|
}
|
|
11942
11914
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskHeaderCloudComponent, decorators: [{
|
|
11943
11915
|
type: Component,
|
|
@@ -11952,6 +11924,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
11952
11924
|
type: Input
|
|
11953
11925
|
}], processInstanceId: [{
|
|
11954
11926
|
type: Input
|
|
11927
|
+
}], allowSelfService: [{
|
|
11928
|
+
type: Input
|
|
11955
11929
|
}], claim: [{
|
|
11956
11930
|
type: Output
|
|
11957
11931
|
}], unclaim: [{
|
|
@@ -12016,12 +11990,6 @@ class ProcessFiltersCloudComponent {
|
|
|
12016
11990
|
*
|
|
12017
11991
|
*/
|
|
12018
11992
|
this.searchApiMethod = 'GET';
|
|
12019
|
-
/**
|
|
12020
|
-
* (optional) Resolves the counters of the task and the process filters with a single call to
|
|
12021
|
-
* `POST /query/v1/count`. Both filter components have to
|
|
12022
|
-
* ask for it, otherwise the counters are resolved one filter at a time.
|
|
12023
|
-
*/
|
|
12024
|
-
this.useBatchedCounters = false;
|
|
12025
11993
|
/** (optional) Toggles showing an icon by the side of each filter */
|
|
12026
11994
|
this.showIcons = false;
|
|
12027
11995
|
/** Emitted when a filter is being selected based on the filterParam input. */
|
|
@@ -12040,7 +12008,6 @@ class ProcessFiltersCloudComponent {
|
|
|
12040
12008
|
this.updatedFiltersSet = new Set();
|
|
12041
12009
|
this.enableNotifications = true;
|
|
12042
12010
|
this.notificationDebounceTime = 3000;
|
|
12043
|
-
this.batchedCounters = true;
|
|
12044
12011
|
this.destroyRef = inject(DestroyRef);
|
|
12045
12012
|
this.processFilterCloudService = inject(ProcessFilterCloudService);
|
|
12046
12013
|
this.translationService = inject(TranslationService);
|
|
@@ -12067,9 +12034,6 @@ class ProcessFiltersCloudComponent {
|
|
|
12067
12034
|
else if (filter && filter.currentValue !== filter.previousValue) {
|
|
12068
12035
|
this.selectFilterAndEmit(filter.currentValue);
|
|
12069
12036
|
}
|
|
12070
|
-
else if (changes['useBatchedCounters'] && !changes['useBatchedCounters'].firstChange && this.filtersLoadedFor) {
|
|
12071
|
-
this.loadFilterCounters(this.filtersLoadedFor);
|
|
12072
|
-
}
|
|
12073
12037
|
}
|
|
12074
12038
|
/**
|
|
12075
12039
|
* Fetch the filter list based on appName
|
|
@@ -12153,7 +12117,7 @@ class ProcessFiltersCloudComponent {
|
|
|
12153
12117
|
if (filter) {
|
|
12154
12118
|
this.selectFilter(filter);
|
|
12155
12119
|
this.filterClicked.emit(this.currentFilter);
|
|
12156
|
-
this.refreshFilterCounter(
|
|
12120
|
+
this.refreshFilterCounter();
|
|
12157
12121
|
this.updatedFiltersSet.delete(filter.key);
|
|
12158
12122
|
}
|
|
12159
12123
|
else {
|
|
@@ -12262,17 +12226,11 @@ class ProcessFiltersCloudComponent {
|
|
|
12262
12226
|
this.countersSubscription?.unsubscribe();
|
|
12263
12227
|
this.countersSubscription = combineLatest([
|
|
12264
12228
|
this.countersFilters$.pipe(catchError(() => of([]))),
|
|
12265
|
-
this.filterCountersCloudService.getFilterCounters(appName, FilterCounterEntityType.PROCESS_INSTANCE
|
|
12229
|
+
this.filterCountersCloudService.getFilterCounters(appName, FilterCounterEntityType.PROCESS_INSTANCE)
|
|
12266
12230
|
])
|
|
12267
12231
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
12268
|
-
.subscribe(([, { counters
|
|
12269
|
-
this.
|
|
12270
|
-
if (batched) {
|
|
12271
|
-
this.applyFilterCounters(counters);
|
|
12272
|
-
}
|
|
12273
|
-
else {
|
|
12274
|
-
this.updateFilterCounters();
|
|
12275
|
-
}
|
|
12232
|
+
.subscribe(([, { counters }]) => {
|
|
12233
|
+
this.applyFilterCounters(counters);
|
|
12276
12234
|
});
|
|
12277
12235
|
}
|
|
12278
12236
|
applyFilterCounters(counters) {
|
|
@@ -12290,13 +12248,8 @@ class ProcessFiltersCloudComponent {
|
|
|
12290
12248
|
this.counters = { ...this.counters, [filterKey]: counter };
|
|
12291
12249
|
});
|
|
12292
12250
|
}
|
|
12293
|
-
refreshFilterCounter(
|
|
12294
|
-
|
|
12295
|
-
this.filterCountersCloudService.refreshFilterCounters(this.appName);
|
|
12296
|
-
}
|
|
12297
|
-
else if (filter) {
|
|
12298
|
-
this.updateFilterCounter(filter);
|
|
12299
|
-
}
|
|
12251
|
+
refreshFilterCounter() {
|
|
12252
|
+
this.filterCountersCloudService.refreshFilterCounters(this.appName);
|
|
12300
12253
|
}
|
|
12301
12254
|
fetchProcessFilterCounter(filter) {
|
|
12302
12255
|
return this.searchApiMethod === 'POST'
|
|
@@ -12304,7 +12257,7 @@ class ProcessFiltersCloudComponent {
|
|
|
12304
12257
|
: this.processListCloudService.getProcessCounter(filter.appName, filter.status);
|
|
12305
12258
|
}
|
|
12306
12259
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessFiltersCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12307
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ProcessFiltersCloudComponent, isStandalone: true, selector: "adf-cloud-process-filters", inputs: { appName: "appName", searchApiMethod: "searchApiMethod",
|
|
12260
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ProcessFiltersCloudComponent, isStandalone: true, selector: "adf-cloud-process-filters", inputs: { appName: "appName", searchApiMethod: "searchApiMethod", filterParam: "filterParam", showIcons: "showIcons" }, outputs: { filterSelected: "filterSelected", filterClicked: "filterClicked", success: "success", error: "error", updatedFilter: "updatedFilter" }, usesOnChanges: true, ngImport: i0, template: "@if (filters$ | async; as filterList) {\n <mat-nav-list>\n @for (filter of filterList; track filter.id) {\n <a mat-list-item\n [activated]=\"filter.id === currentRouteFilterId()\"\n [routerLink]=\"[PROCESSES_ROUTE]\"\n [queryParams]=\"{ filterId: filter.id }\"\n [attr.data-automation-id]=\"filter.key + '_filter'\"\n class=\"adf-process-filters__entry\"\n [class.adf-active]=\"filter.id === currentRouteFilterId()\"\n [attr.aria-current]=\"filter.id === currentRouteFilterId() ? 'page' : null\"\n [id]=\"filter.id\"\n [title]=\"filter.name ?? '' | translate\"\n [attr.aria-label]=\"filter.name ?? '' | translate\"\n (click)=\"onFilterClick(filter)\">\n <span matListItemTitle>\n {{ filter.name ?? '' | translate }}\n </span>\n @if (showIcons) {\n <mat-icon matListItemIcon\n data-automation-id=\"adf-filter-icon\"\n [adf-icon]=\"filter.icon ?? ''\"\n aria-hidden=\"true\" />\n }\n @if (counters[filter.key ?? '']) {\n <span matListItemMeta\n [attr.data-automation-id]=\"filter.key + '_filter-counter'\"\n class=\"adf-process-filters__entry-counter\"\n [class.adf-active]=\"isFilterUpdated(filter.key ?? '')\"\n >\n {{ counters[filter.key ?? ''] }}\n </span>\n }\n </a>\n }\n </mat-nav-list>\n} @else {\n <div class=\"adf-app-list-spinner\">\n <mat-spinner [attr.aria-label]=\"'ADF_CLOUD_PROCESS_LIST.LOADING' | translate\" aria-live=\"polite\" />\n </div>\n}\n\n", styles: [".adf-process-filters__entry-counter{padding:0 5px;border-radius:var(--mat-sys-corner-large)}.adf-process-filters__entry-counter.adf-active{background-color:var(--mat-sys-secondary);--mat-list-list-item-trailing-supporting-text-color: var(--mat-sys-on-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: IconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.IconDirective, selector: "mat-icon[adf-icon]", inputs: ["adf-icon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2$1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2$1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
12308
12261
|
}
|
|
12309
12262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessFiltersCloudComponent, decorators: [{
|
|
12310
12263
|
type: Component,
|
|
@@ -12313,8 +12266,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
12313
12266
|
type: Input
|
|
12314
12267
|
}], searchApiMethod: [{
|
|
12315
12268
|
type: Input
|
|
12316
|
-
}], useBatchedCounters: [{
|
|
12317
|
-
type: Input
|
|
12318
12269
|
}], filterParam: [{
|
|
12319
12270
|
type: Input
|
|
12320
12271
|
}], showIcons: [{
|