@alfresco/adf-process-services 9.2.0-37737973197 → 9.2.0-37898766965

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.
@@ -1,10 +1,10 @@
1
- import { DateFnsUtils, DataTableSchema, UserPreferencesService, DEFAULT_PAGINATION, EmptyContentComponent, DataTableComponent, LoadingContentTemplateDirective, NoContentTemplateDirective, CustomEmptyContentTemplateDirective, CustomLoadingContentTemplateDirective, TranslationService, AppConfigService, CardViewTextItemModel, CardViewDateItemModel, CardViewComponent, DataColumnListComponent, DataColumnComponent, FormBaseComponent, FormService, WidgetVisibilityService, FormModel, FormOutcomeModel, FormEvent, FormErrorEvent, FormOutcomeEvent, FormRendererComponent, FormatSpacePipe, WidgetComponent, ThumbnailService, ContentLinkModel, ErrorWidgetComponent, DownloadService, UrlService, InitialUsernamePipe, ErrorMessageModel, BaseViewerWidgetComponent, ADF_DATE_FORMATS, AdfDateFnsAdapter, ADF_DATETIME_FORMATS, AdfDateTimeFnsAdapter, FormFieldEvent, FormWidgetModel, AuthenticationService, LoginDialogPanelComponent, AppConfigValues, FormRenderingService, FormFieldTypes, UserPreferenceValues, ShowHeaderMode, CardViewUpdateService, CardViewSelectItemModel, CardViewIntItemModel, CardViewMapItemModel, CardViewItemLengthValidator, CommentModel, CommentsComponent, ADF_COMMENTS_SERVICE, InfoDrawerTabComponent, InfoDrawerComponent, FormFieldModel, User, LocalizedDatePipe, EmptyListHeaderDirective, EmptyListComponent, UploadDirective, provideTranslations } from '@alfresco/adf-core';
1
+ import { DateFnsUtils, DataTableSchema, UserPreferencesService, DEFAULT_PAGINATION, EmptyContentComponent, DataTableComponent, LoadingContentTemplateDirective, NoContentTemplateDirective, CustomEmptyContentTemplateDirective, CustomLoadingContentTemplateDirective, TranslationService, AppConfigService, CardViewTextItemModel, CardViewDateItemModel, CardViewComponent, DataColumnListComponent, DataColumnComponent, WidgetComponent, FormService, FormFieldTypes, FORM_FIELD_VALIDATORS, DatePickerFieldValidator, DateTimePickerFieldValidator, DropdownFieldValidator, FormBaseComponent, WidgetVisibilityService, FormModel, FormOutcomeModel, FormEvent, FormErrorEvent, FormOutcomeEvent, FormRendererComponent, FormatSpacePipe, ThumbnailService, ContentLinkModel, ErrorWidgetComponent, DownloadService, UrlService, InitialUsernamePipe, BaseViewerWidgetComponent, ADF_DATE_FORMATS, AdfDateFnsAdapter, ErrorMessageModel, ADF_DATETIME_FORMATS, AdfDateTimeFnsAdapter, FormFieldEvent, FormWidgetModel, AuthenticationService, LoginDialogPanelComponent, AppConfigValues, FormRenderingService, UserPreferenceValues, ShowHeaderMode, CardViewUpdateService, CardViewSelectItemModel, CardViewIntItemModel, CardViewMapItemModel, CardViewItemLengthValidator, CommentModel, CommentsComponent, ADF_COMMENTS_SERVICE, InfoDrawerTabComponent, InfoDrawerComponent, FormFieldModel, User, LocalizedDatePipe, EmptyListHeaderDirective, EmptyListComponent, UploadDirective, provideTranslations } from '@alfresco/adf-core';
2
2
  import * as i0 from '@angular/core';
3
3
  import { inject, Injectable, EventEmitter, Output, Input, ContentChild, Component, DestroyRef, ViewEncapsulation, HostListener, Directive, ChangeDetectorRef, ViewChild, ElementRef, isDevMode, NgZone, NgModule } from '@angular/core';
4
4
  import { LazyApi, TasksApi, ProcessDefinitionsApi, ProcessInstancesApi, ProcessInstanceVariablesApi, UserFiltersApi, RuntimeAppDefinitionsApi, TaskQueryRepresentation, ResultListDataRepresentationTaskRepresentation, ModelsApi, TaskActionsApi, ChecklistsApi, UsersApi, ActivitiGroupsApi, UserProfileApi, CustomModelApi, FormModelsApi, TaskFormsApi, FormSaveRepresentation, ActivitiContentApi, AlfrescoApi, ContentApi, IntegrationAlfrescoOnPremiseApi, TaskRepresentation, UserTaskFilterRepresentation, ActivitiCommentsApi } from '@alfresco/js-api';
5
5
  import { AlfrescoApiService, NodesApiService, AlfrescoViewerComponent, ContentNodeSelectorPanelComponent, DocumentListService, SitesService, SearchService, ContentService, ContentNodeDialogService, AlfrescoIconComponent, UploadService } from '@alfresco/adf-content-services';
6
6
  import { from, BehaviorSubject, Observable, forkJoin, of, throwError, merge, Subject, zip, EMPTY } from 'rxjs';
7
- import { map, finalize, filter, flatMap, catchError, switchMap, mergeMap, debounceTime, distinctUntilChanged, tap, share, defaultIfEmpty } from 'rxjs/operators';
7
+ import { map, finalize, filter, flatMap, catchError, tap, switchMap, mergeMap, debounceTime, distinctUntilChanged, share, defaultIfEmpty } from 'rxjs/operators';
8
8
  import * as i1 from '@angular/common';
9
9
  import { DatePipe, CommonModule, Location } from '@angular/common';
10
10
  import * as i2 from '@angular/material/progress-spinner';
@@ -20,22 +20,22 @@ import * as i2$1 from '@angular/material/card';
20
20
  import { MatCardModule } from '@angular/material/card';
21
21
  import * as i2$6 from '@angular/material/dialog';
22
22
  import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule, MatDialog } from '@angular/material/dialog';
23
- import * as i2$2 from '@angular/material/list';
23
+ import * as i4 from '@angular/forms';
24
+ import { FormControl, ReactiveFormsModule, UntypedFormControl, FormsModule, Validators, UntypedFormBuilder } from '@angular/forms';
25
+ import * as i2$2 from '@angular/material/form-field';
26
+ import { MatFormFieldModule } from '@angular/material/form-field';
27
+ import * as i3$2 from '@angular/material/select';
28
+ import { MatSelectModule } from '@angular/material/select';
29
+ import * as i2$3 from '@angular/material/list';
24
30
  import { MatListModule } from '@angular/material/list';
25
- import * as i6 from '@angular/forms';
26
- import { UntypedFormControl, FormsModule, ReactiveFormsModule, FormControl, Validators, UntypedFormBuilder } from '@angular/forms';
27
- import * as i4 from '@angular/material/chips';
31
+ import * as i4$1 from '@angular/material/chips';
28
32
  import { MatChipsModule } from '@angular/material/chips';
29
- import * as i2$3 from '@angular/material/form-field';
30
- import { MatFormFieldModule } from '@angular/material/form-field';
31
33
  import * as i2$4 from '@angular/material/input';
32
34
  import { MatInputModule } from '@angular/material/input';
33
- import * as i5 from '@angular/material/autocomplete';
35
+ import * as i7 from '@angular/material/autocomplete';
34
36
  import { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';
35
37
  import * as i2$5 from '@angular/material/radio';
36
38
  import { MatRadioModule } from '@angular/material/radio';
37
- import * as i3$2 from '@angular/material/select';
38
- import { MatSelectModule } from '@angular/material/select';
39
39
  import { ESCAPE, ENTER } from '@angular/cdk/keycodes';
40
40
  import * as i1$1 from '@angular/material/checkbox';
41
41
  import { MatCheckboxModule } from '@angular/material/checkbox';
@@ -46,7 +46,7 @@ import { MatDatepickerModule } from '@angular/material/datepicker';
46
46
  import { isValid, getTime } from 'date-fns';
47
47
  import * as i3$4 from '@mat-datetimepicker/core';
48
48
  import { MatDatetimepickerModule, MAT_DATETIME_FORMATS, DatetimeAdapter } from '@mat-datetimepicker/core';
49
- import * as i4$1 from '@angular/material/menu';
49
+ import * as i4$2 from '@angular/material/menu';
50
50
  import { MatMenuModule } from '@angular/material/menu';
51
51
 
52
52
  var __decorate$h = (this && this.__decorate) || function (decorators, target, key, desc) {
@@ -2506,6 +2506,309 @@ class FormDefinitionModel extends FormSaveRepresentation {
2506
2506
  }
2507
2507
  }
2508
2508
 
2509
+ var __decorate$7 = (this && this.__decorate) || function (decorators, target, key, desc) {
2510
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2511
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2512
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2513
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2514
+ };
2515
+ class ProcessDefinitionService {
2516
+ constructor() {
2517
+ this.apiService = inject(AlfrescoApiService);
2518
+ }
2519
+ static { this.UNKNOWN_ERROR_MESSAGE = 'Unknown error'; }
2520
+ static { this.GENERIC_ERROR_MESSAGE = 'Server error'; }
2521
+ /**
2522
+ * Gets values of fields populated by a REST backend using a process ID.
2523
+ *
2524
+ * @param processDefinitionId Process identifier
2525
+ * @param field Field identifier
2526
+ * @returns Field values
2527
+ */
2528
+ getRestFieldValuesByProcessId(processDefinitionId, field) {
2529
+ return from(this.processDefinitionsApi.getRestFieldValues(processDefinitionId, field)).pipe(catchError((err) => this.handleError(err)));
2530
+ }
2531
+ /**
2532
+ * Gets column values of fields populated by a REST backend using a process ID.
2533
+ *
2534
+ * @param processDefinitionId Process identifier
2535
+ * @param field Field identifier
2536
+ * @param column Column identifier
2537
+ * @returns Field values
2538
+ */
2539
+ getRestFieldValuesColumnByProcessId(processDefinitionId, field, column) {
2540
+ return from(this.processDefinitionsApi.getRestTableFieldValues(processDefinitionId, field, column)).pipe(catchError((err) => this.handleError(err)));
2541
+ }
2542
+ /**
2543
+ * Creates a JSON representation of form data.
2544
+ *
2545
+ * @param res Object representing form data
2546
+ * @returns JSON data
2547
+ */
2548
+ toJson(res) {
2549
+ if (res) {
2550
+ return res || {};
2551
+ }
2552
+ return {};
2553
+ }
2554
+ /**
2555
+ * Reports an error message.
2556
+ *
2557
+ * @param error Data object with optional `message` and `status` fields for the error
2558
+ * @returns Error message
2559
+ */
2560
+ handleError(error) {
2561
+ let errMsg = ProcessDefinitionService.UNKNOWN_ERROR_MESSAGE;
2562
+ if (error) {
2563
+ errMsg = error.message
2564
+ ? error.message
2565
+ : error.status
2566
+ ? `${error.status} - ${error.statusText}`
2567
+ : ProcessDefinitionService.GENERIC_ERROR_MESSAGE;
2568
+ }
2569
+ return throwError(errMsg);
2570
+ }
2571
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2572
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessDefinitionService, providedIn: 'root' }); }
2573
+ }
2574
+ __decorate$7([
2575
+ LazyApi((self) => new ProcessDefinitionsApi(self.apiService.getInstance()))
2576
+ ], ProcessDefinitionService.prototype, "processDefinitionsApi", void 0);
2577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessDefinitionService, decorators: [{
2578
+ type: Injectable,
2579
+ args: [{
2580
+ providedIn: 'root'
2581
+ }]
2582
+ }], propDecorators: { processDefinitionsApi: [] } });
2583
+
2584
+ /*!
2585
+ * @license
2586
+ * Copyright © 2005-2026 Hyland Software, Inc. and its affiliates. All rights reserved.
2587
+ *
2588
+ * Licensed under the Apache License, Version 2.0 (the "License");
2589
+ * you may not use this file except in compliance with the License.
2590
+ * You may obtain a copy of the License at
2591
+ *
2592
+ * http://www.apache.org/licenses/LICENSE-2.0
2593
+ *
2594
+ * Unless required by applicable law or agreed to in writing, software
2595
+ * distributed under the License is distributed on an "AS IS" BASIS,
2596
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2597
+ * See the License for the specific language governing permissions and
2598
+ * limitations under the License.
2599
+ */
2600
+ const fieldsWithLoadedRestOptions = new WeakSet();
2601
+ const setDropdownRestOptionsLoaded = (field) => {
2602
+ fieldsWithLoadedRestOptions.add(field);
2603
+ };
2604
+ const hasDropdownRestOptionsLoaded = (field) => fieldsWithLoadedRestOptions.has(field);
2605
+
2606
+ /*!
2607
+ * @license
2608
+ * Copyright © 2005-2026 Hyland Software, Inc. and its affiliates. All rights reserved.
2609
+ *
2610
+ * Licensed under the Apache License, Version 2.0 (the "License");
2611
+ * you may not use this file except in compliance with the License.
2612
+ * You may obtain a copy of the License at
2613
+ *
2614
+ * http://www.apache.org/licenses/LICENSE-2.0
2615
+ *
2616
+ * Unless required by applicable law or agreed to in writing, software
2617
+ * distributed under the License is distributed on an "AS IS" BASIS,
2618
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2619
+ * See the License for the specific language governing permissions and
2620
+ * limitations under the License.
2621
+ */
2622
+ /* eslint-disable @angular-eslint/component-selector */
2623
+ const getDropdownOptionValue = (field, value, readOnly = false) => {
2624
+ if (field?.readOnly || readOnly) {
2625
+ return value;
2626
+ }
2627
+ if (typeof value === 'string') {
2628
+ return field.options.find((option) => option.id === value || option.name === value);
2629
+ }
2630
+ return value;
2631
+ };
2632
+ const isDropdownRestField = (field) => field?.optionType === 'rest' && !!field?.restUrl;
2633
+ const dropdownRequiredValidator = (field) => (control) => {
2634
+ const isEmptyInputValue = (value) => value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0);
2635
+ const isEqualToEmptyValue = (value) => field.hasEmptyValue &&
2636
+ (value === field.emptyOption.id ||
2637
+ value === field.emptyOption.name ||
2638
+ (value.id === field.emptyOption.id && value.name === field.emptyOption.name));
2639
+ return isEmptyInputValue(control.value) || isEqualToEmptyValue(control.value) ? { required: true } : null;
2640
+ };
2641
+ class DropdownWidgetComponent extends WidgetComponent {
2642
+ constructor() {
2643
+ super(...arguments);
2644
+ this.formService = inject(FormService);
2645
+ this.taskFormService = inject(TaskFormService);
2646
+ this.processDefinitionService = inject(ProcessDefinitionService);
2647
+ this.destroyRef = inject(DestroyRef);
2648
+ this.dropdownControl = new FormControl(undefined);
2649
+ this.errorStateMatcher = {
2650
+ isErrorState: (control) => !!control?.touched && this.hasValidationError()
2651
+ };
2652
+ }
2653
+ get isReadOnlyType() {
2654
+ return this.field.type === 'readonly';
2655
+ }
2656
+ get isReadOnlyField() {
2657
+ return this.field.readOnly;
2658
+ }
2659
+ get isValidRestConfig() {
2660
+ return isDropdownRestField(this.field);
2661
+ }
2662
+ ngOnInit() {
2663
+ if (this.isValidRestConfig && !this.isReadOnlyForm()) {
2664
+ if (this.field.form.taskId) {
2665
+ this.getValuesByTaskId();
2666
+ }
2667
+ else {
2668
+ this.getValuesByProcessDefinitionId();
2669
+ }
2670
+ }
2671
+ this.setFormControlValue();
2672
+ this.updateFormControlState();
2673
+ this.subscribeToInputChanges();
2674
+ this.validateField();
2675
+ }
2676
+ updateReactiveFormControl() {
2677
+ this.updateFormControlState();
2678
+ if (this.field?.form?.showAllValidationErrors) {
2679
+ this.dropdownControl.markAsTouched();
2680
+ }
2681
+ this.validateField();
2682
+ }
2683
+ getValuesByTaskId() {
2684
+ this.taskFormService
2685
+ .getRestFieldValues(this.field.form.taskId, this.field.id)
2686
+ .pipe(tap({ error: () => this.onRestOptionsFailed() }))
2687
+ .subscribe((formFieldOption) => {
2688
+ const options = [];
2689
+ if (this.field.emptyOption) {
2690
+ options.push(this.field.emptyOption);
2691
+ }
2692
+ this.field.options = options.concat(formFieldOption || []);
2693
+ setDropdownRestOptionsLoaded(this.field);
2694
+ this.setFormControlValue();
2695
+ this.field.updateForm();
2696
+ });
2697
+ }
2698
+ getValuesByProcessDefinitionId() {
2699
+ this.processDefinitionService
2700
+ .getRestFieldValuesByProcessId(this.field.form.processDefinitionId, this.field.id)
2701
+ .pipe(tap({ error: () => this.onRestOptionsFailed() }))
2702
+ .subscribe((formFieldOption) => {
2703
+ const options = [];
2704
+ if (this.field.emptyOption) {
2705
+ options.push(this.field.emptyOption);
2706
+ }
2707
+ this.field.options = options.concat(formFieldOption || []);
2708
+ setDropdownRestOptionsLoaded(this.field);
2709
+ this.setFormControlValue();
2710
+ this.field.updateForm();
2711
+ });
2712
+ }
2713
+ onRestOptionsFailed() {
2714
+ setDropdownRestOptionsLoaded(this.field);
2715
+ this.validateField();
2716
+ this.field.form?.validateForm();
2717
+ }
2718
+ isReadOnlyForm() {
2719
+ return !!this.field?.form?.readOnly;
2720
+ }
2721
+ subscribeToInputChanges() {
2722
+ this.dropdownControl.valueChanges
2723
+ .pipe(filter(() => !!this.field), takeUntilDestroyed(this.destroyRef))
2724
+ .subscribe((value) => {
2725
+ this.setOptionValue(value, this.field);
2726
+ this.validateField();
2727
+ this.onFieldChanged(this.field);
2728
+ });
2729
+ }
2730
+ setFormControlValue() {
2731
+ this.dropdownControl.setValue(getDropdownOptionValue(this.field, this.field?.value, this.readOnly), { emitEvent: false });
2732
+ }
2733
+ hasValidationError() {
2734
+ return !this.field.isValid && this.field.validationSummary.isActive();
2735
+ }
2736
+ updateFormControlState() {
2737
+ this.field?.readOnly || this.readOnly
2738
+ ? this.dropdownControl.disable({ emitEvent: false })
2739
+ : this.dropdownControl.enable({ emitEvent: false });
2740
+ this.dropdownControl.updateValueAndValidity({ emitEvent: false });
2741
+ }
2742
+ validateField() {
2743
+ this.field?.validate();
2744
+ }
2745
+ setOptionValue(option, field) {
2746
+ if (typeof option === 'string') {
2747
+ field.value = option;
2748
+ return;
2749
+ }
2750
+ if (option.id === 'empty' || option.name !== field.value) {
2751
+ field.value = option.id;
2752
+ return;
2753
+ }
2754
+ field.value = option.name;
2755
+ }
2756
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DropdownWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2757
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: DropdownWidgetComponent, isStandalone: true, selector: "dropdown-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"hasValidationError() && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n>\n <mat-form-field class=\"adf-form-field-input\" subscriptSizing=\"dynamic\">\n <mat-label class=\"adf-label\" data-automation-id=\"adf-dropdown-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-select\n class=\"adf-select\"\n data-automation-id=\"adf-dropdown-widget-select\"\n [id]=\"field.id\"\n [formControl]=\"dropdownControl\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [required]=\"isRequired() && field.isVisible\"\n >\n <mat-option *ngFor=\"let opt of field.options\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"dropdownControl.disabled\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n @if (!isReadOnlyField && dropdownControl.touched && hasValidationError()) {\n <mat-error class=\"adf-form-field-status-slot\" data-automation-id=\"adf-dropdown-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\">{{ field.validationSummary.message | translate }}</span>\n </mat-error>\n }\n <mat-hint class=\"adf-form-field-status-slot\" aria-hidden=\"true\" />\n </mat-form-field>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget-select{width:100%}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
2758
+ }
2759
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DropdownWidgetComponent, decorators: [{
2760
+ type: Component,
2761
+ args: [{ selector: 'dropdown-widget', imports: [CommonModule, TranslatePipe, MatFormFieldModule, MatSelectModule, ReactiveFormsModule, MatIconModule], host: {
2762
+ '(click)': 'event($event)',
2763
+ '(blur)': 'event($event)',
2764
+ '(change)': 'event($event)',
2765
+ '(focus)': 'event($event)',
2766
+ '(focusin)': 'event($event)',
2767
+ '(focusout)': 'event($event)',
2768
+ '(input)': 'event($event)',
2769
+ '(invalid)': 'event($event)',
2770
+ '(select)': 'event($event)'
2771
+ }, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"hasValidationError() && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n>\n <mat-form-field class=\"adf-form-field-input\" subscriptSizing=\"dynamic\">\n <mat-label class=\"adf-label\" data-automation-id=\"adf-dropdown-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-select\n class=\"adf-select\"\n data-automation-id=\"adf-dropdown-widget-select\"\n [id]=\"field.id\"\n [formControl]=\"dropdownControl\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [required]=\"isRequired() && field.isVisible\"\n >\n <mat-option *ngFor=\"let opt of field.options\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"dropdownControl.disabled\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n @if (!isReadOnlyField && dropdownControl.touched && hasValidationError()) {\n <mat-error class=\"adf-form-field-status-slot\" data-automation-id=\"adf-dropdown-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\">{{ field.validationSummary.message | translate }}</span>\n </mat-error>\n }\n <mat-hint class=\"adf-form-field-status-slot\" aria-hidden=\"true\" />\n </mat-form-field>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget-select{width:100%}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"] }]
2772
+ }] });
2773
+
2774
+ /*!
2775
+ * @license
2776
+ * Copyright © 2005-2026 Hyland Software, Inc. and its affiliates. All rights reserved.
2777
+ *
2778
+ * Licensed under the Apache License, Version 2.0 (the "License");
2779
+ * you may not use this file except in compliance with the License.
2780
+ * You may obtain a copy of the License at
2781
+ *
2782
+ * http://www.apache.org/licenses/LICENSE-2.0
2783
+ *
2784
+ * Unless required by applicable law or agreed to in writing, software
2785
+ * distributed under the License is distributed on an "AS IS" BASIS,
2786
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2787
+ * See the License for the specific language governing permissions and
2788
+ * limitations under the License.
2789
+ */
2790
+ class ProcessDropdownFieldValidator {
2791
+ isSupported(field) {
2792
+ return field?.type === FormFieldTypes.DROPDOWN && field.required;
2793
+ }
2794
+ validate(field) {
2795
+ if (!this.isSupported(field) || field.form?.isFieldOrParentHidden(field)) {
2796
+ return true;
2797
+ }
2798
+ const value = this.hasPendingOptions(field) ? field.value : getDropdownOptionValue(field, field.value);
2799
+ if (dropdownRequiredValidator(field)(new FormControl(value))) {
2800
+ field.validationSummary.message = 'FORM.FIELD.REQUIRED';
2801
+ return false;
2802
+ }
2803
+ return true;
2804
+ }
2805
+ hasPendingOptions(field) {
2806
+ // a REST dropdown is not checked against its options until its request has finished
2807
+ return (isDropdownRestField(field) && !hasDropdownRestOptionsLoaded(field) && !field.options.some((option) => option.id !== field.emptyOption?.id));
2808
+ }
2809
+ }
2810
+ const PROCESS_FORM_FIELD_VALIDATORS = [new ProcessDropdownFieldValidator()];
2811
+
2509
2812
  /*!
2510
2813
  * @license
2511
2814
  * Copyright © 2005-2026 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -2522,6 +2825,13 @@ class FormDefinitionModel extends FormSaveRepresentation {
2522
2825
  * See the License for the specific language governing permissions and
2523
2826
  * limitations under the License.
2524
2827
  */
2828
+ // the date, datetime and dropdown rules stay when `fieldValidators` replaces the other rules
2829
+ const WIDGET_FIELD_VALIDATORS = [
2830
+ ...FORM_FIELD_VALIDATORS.filter((validator) => validator instanceof DatePickerFieldValidator ||
2831
+ validator instanceof DateTimePickerFieldValidator ||
2832
+ validator instanceof DropdownFieldValidator),
2833
+ ...PROCESS_FORM_FIELD_VALIDATORS
2834
+ ];
2525
2835
  class FormComponent extends FormBaseComponent {
2526
2836
  constructor() {
2527
2837
  super();
@@ -2686,12 +2996,12 @@ class FormComponent extends FormBaseComponent {
2686
2996
  }
2687
2997
  parseForm(formRepresentationJSON) {
2688
2998
  if (formRepresentationJSON) {
2689
- const form = new FormModel(formRepresentationJSON, this.data, this.readOnly, this.formService, this.enableFixedSpacedForm);
2999
+ const form = new FormModel(formRepresentationJSON, this.data, this.readOnly, this.formService, this.enableFixedSpacedForm, PROCESS_FORM_FIELD_VALIDATORS);
2690
3000
  if (!formRepresentationJSON.fields) {
2691
3001
  form.outcomes = this.getFormDefinitionOutcomes(form);
2692
3002
  }
2693
3003
  if (this.fieldValidators?.length > 0) {
2694
- form.fieldValidators = this.fieldValidators;
3004
+ form.fieldValidators = [...new Set([...this.fieldValidators, ...WIDGET_FIELD_VALIDATORS])];
2695
3005
  }
2696
3006
  return form;
2697
3007
  }
@@ -2960,7 +3270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
2960
3270
  args: ['outcomesContainer']
2961
3271
  }] } });
2962
3272
 
2963
- var __decorate$7 = (this && this.__decorate) || function (decorators, target, key, desc) {
3273
+ var __decorate$6 = (this && this.__decorate) || function (decorators, target, key, desc) {
2964
3274
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2965
3275
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2966
3276
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -3168,7 +3478,7 @@ class ProcessContentService {
3168
3478
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3169
3479
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessContentService, providedIn: 'root' }); }
3170
3480
  }
3171
- __decorate$7([
3481
+ __decorate$6([
3172
3482
  LazyApi((self) => new ActivitiContentApi(self.apiService.getInstance()))
3173
3483
  ], ProcessContentService.prototype, "contentApi", void 0);
3174
3484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessContentService, decorators: [{
@@ -3268,7 +3578,7 @@ class UploadWidgetComponent extends WidgetComponent {
3268
3578
  });
3269
3579
  }
3270
3580
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: UploadWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: UploadWidgetComponent, isStandalone: true, selector: "upload-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["uploadFiles"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"adf-upload-widget {{field.className}}\" [class.adf-invalid]=\"!field.isValid\" [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n <div class=\"adf-upload-widget-container\">\n <div>\n <mat-list *ngIf=\"hasFile\">\n <mat-list-item class=\"adf-upload-files-row\" *ngFor=\"let file of field.value\">\n <img\n matListItemLine\n class=\"adf-upload-widget__icon\"\n [id]=\"'file-'+file.id+'-icon'\"\n [src]=\"getIcon(file.mimeType)\"\n [alt]=\"mimeTypeIcon\"\n (click)=\"fileClicked(file)\"\n (keyup.enter)=\"fileClicked(file)\"\n role=\"button\"\n tabindex=\"0\"\n />\n <span\n matListItemLine\n id=\"{{'file-'+file.id}}\"\n (click)=\"fileClicked(file)\"\n (keyup.enter)=\"fileClicked(file)\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n >{{file.name}}</span\n >\n <button\n *ngIf=\"!field.readOnly\"\n mat-icon-button\n [id]=\"'file-'+file.id+'-remove'\"\n (click)=\"removeFile(file);\"\n (keyup.enter)=\"removeFile(file);\"\n >\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n </button>\n </mat-list-item>\n </mat-list>\n </div>\n\n <div *ngIf=\"(!hasFile || multipleOption) && !field.readOnly\">\n <button mat-raised-button (click)=\"uploadFiles.click()\">\n {{ 'FORM.FIELD.UPLOAD' | translate }}<mat-icon>file_upload</mat-icon>\n <input #uploadFiles [multiple]=\"multipleOption\" type=\"file\" [id]=\"field.id\" (change)=\"onFileChanged($event)\" />\n </button>\n </div>\n </div>\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget *ngIf=\"isInvalidFieldRequired()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n</div>\n", styles: [".adf-upload-widget-container{margin-bottom:15px}.adf-upload-widget-container input{display:none}.adf-upload-widget{width:100%;word-break:break-all;padding:.4375em 0;border-top:.8438em solid transparent}.adf-upload-widget__icon{padding:6px;float:left;cursor:pointer}.adf-upload-widget__reset{margin-top:-2px}.adf-upload-files-row .mat-line{margin-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$2.MatListItemLine, selector: "[matListItemLine]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
3581
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: UploadWidgetComponent, isStandalone: true, selector: "upload-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["uploadFiles"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"adf-upload-widget {{field.className}}\" [class.adf-invalid]=\"!field.isValid\" [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n <div class=\"adf-upload-widget-container\">\n <div>\n <mat-list *ngIf=\"hasFile\">\n <mat-list-item class=\"adf-upload-files-row\" *ngFor=\"let file of field.value\">\n <img\n matListItemLine\n class=\"adf-upload-widget__icon\"\n [id]=\"'file-'+file.id+'-icon'\"\n [src]=\"getIcon(file.mimeType)\"\n [alt]=\"mimeTypeIcon\"\n (click)=\"fileClicked(file)\"\n (keyup.enter)=\"fileClicked(file)\"\n role=\"button\"\n tabindex=\"0\"\n />\n <span\n matListItemLine\n id=\"{{'file-'+file.id}}\"\n (click)=\"fileClicked(file)\"\n (keyup.enter)=\"fileClicked(file)\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n >{{file.name}}</span\n >\n <button\n *ngIf=\"!field.readOnly\"\n mat-icon-button\n [id]=\"'file-'+file.id+'-remove'\"\n (click)=\"removeFile(file);\"\n (keyup.enter)=\"removeFile(file);\"\n >\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n </button>\n </mat-list-item>\n </mat-list>\n </div>\n\n <div *ngIf=\"(!hasFile || multipleOption) && !field.readOnly\">\n <button mat-raised-button (click)=\"uploadFiles.click()\">\n {{ 'FORM.FIELD.UPLOAD' | translate }}<mat-icon>file_upload</mat-icon>\n <input #uploadFiles [multiple]=\"multipleOption\" type=\"file\" [id]=\"field.id\" (change)=\"onFileChanged($event)\" />\n </button>\n </div>\n </div>\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget *ngIf=\"isInvalidFieldRequired()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n</div>\n", styles: [".adf-upload-widget-container{margin-bottom:15px}.adf-upload-widget-container input{display:none}.adf-upload-widget{width:100%;word-break:break-all;padding:.4375em 0;border-top:.8438em solid transparent}.adf-upload-widget__icon{padding:6px;float:left;cursor:pointer}.adf-upload-widget__reset{margin-top:-2px}.adf-upload-files-row .mat-line{margin-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$3.MatListItemLine, selector: "[matListItemLine]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
3272
3582
  }
3273
3583
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: UploadWidgetComponent, decorators: [{
3274
3584
  type: Component,
@@ -3516,8 +3826,7 @@ class PeopleWidgetComponent extends WidgetComponent {
3516
3826
  }
3517
3827
  else {
3518
3828
  this.field.validationSummary.message = 'FORM.FIELD.VALIDATOR.INVALID_VALUE';
3519
- this.field.markAsInvalid();
3520
- this.field.form.markAsInvalid();
3829
+ this.field.form.markFieldAsInvalid(this.field);
3521
3830
  }
3522
3831
  }
3523
3832
  isValidUser(users, name) {
@@ -3568,7 +3877,7 @@ class PeopleWidgetComponent extends WidgetComponent {
3568
3877
  return false;
3569
3878
  }
3570
3879
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PeopleWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3571
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: PeopleWidgetComponent, isStandalone: true, selector: "people-widget", outputs: { peopleSelected: "peopleSelected" }, host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["inputValue"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"adf-people-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n id=\"people-widget-content\">\n <mat-form-field\n class=\"adf-people-widget-field\">\n <mat-label class=\"adf-label adf-people-widget-label\" data-automation-id=\"adf-people-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-chip-grid #chipGrid [attr.aria-label]=\"'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.SELECTED_PEOPLE' | translate\"\n [required]=\"isRequired()\" [ngModel]=\"selectedUsers\" [errorStateMatcher]=\"errorStateMatcher\">\n <mat-chip-row\n *ngFor=\"let user of selectedUsers\"\n (removed)=\"onRemove(user)\"\n [disabled]=\"field.readOnly\"\n [attr.data-automation-id]=\"'adf-people-widget-chip-' + user.id\"\n class=\"adf-people-widget-field-chip\">\n {{ getDisplayName(user) }}\n <button matChipRemove [attr.aria-label]=\"'remove ' + user.firstName\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-chip-row>\n <input #inputValue\n matInput\n class=\"adf-input\"\n [matChipInputFor]=\"chipGrid\"\n data-automation-id=\"adf-people-search-input\"\n type=\"text\"\n [disabled]=\"!multiSelect && selectedUsers.length > 0 || field.readOnly\"\n [id]=\"field.id\"\n [formControl]=\"searchTerm\"\n [placeholder]=\"selectedUsers.length > 0 ? '' : field.placeholder\"\n [matAutocomplete]=\"auto\"\n (blur)=\"markAsTouched()\"\n [title]=\"field.tooltip\">\n </mat-chip-grid>\n\n <mat-autocomplete class=\"adf-people-widget-list\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"onItemSelect($event.option.value)\"\n [displayWith]=\"getDisplayName\">\n <mat-option *ngFor=\"let user of users$ | async; let i = index\" [value]=\"user\" [disabled]=\"isUserAlreadySelected(user)\">\n <div class=\"adf-people-widget-row\" id=\"adf-people-widget-user-{{i}}\">\n <div [outerHTML]=\"user | usernameInitials:'adf-people-widget-pic'\"></div>\n <div *ngIf=\"user.pictureId\" class=\"adf-people-widget-image-row\">\n <img id=\"adf-people-widget-pic-{{i}}\" class=\"adf-people-widget-image\"\n [alt]=\"getDisplayName(user)\" [src]=\"peopleProcessService.getUserImage(user.id.toString())\"/>\n </div>\n <span class=\"adf-people-label-name\">{{getDisplayName(user)}}</span>\n </div>\n </mat-option>\n </mat-autocomplete>\n @if (field.validationSummary?.message || (isInvalidFieldRequired() && isTouched())) {\n <mat-error>\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n </mat-form-field>\n</div>\n", styles: [".adf-people-widget{width:100%}.adf-people-widget .adf-people-widget-field{top:10px}.adf-people-widget .adf-people-widget-field .adf-people-widget-field-chip{border:1px solid var(--mat-sys-outline);border-radius:10px;background-color:var(--mat-sys-secondary);height:auto;word-break:break-word;padding:4px 0}.adf-people-widget-list{margin:5px 0;padding:10px 0}.adf-people-widget-row{display:flex;align-items:center}.adf-people-widget-pic{background:var(--mat-sys-primary);display:flex;justify-content:center;align-items:center;width:40px;height:40px;border-radius:100px;color:var(--mat-sys-on-surface);font:var(--mat-sys-label-large);text-transform:uppercase}.adf-people-widget-image{margin-left:-44px;left:21px;background:var(--mat-sys-surface-container-high);border-radius:100px;width:40px;height:40px;vertical-align:middle;display:inline-block;padding:0}.adf-people-widget-image-row{display:inline-block}.adf-people-label-name{padding-left:10px}.adf-people-widget-field .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: InitialUsernamePipe, name: "usernameInitials" }], encapsulation: i0.ViewEncapsulation.None }); }
3880
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: PeopleWidgetComponent, isStandalone: true, selector: "people-widget", outputs: { peopleSelected: "peopleSelected" }, host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["inputValue"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"adf-people-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n id=\"people-widget-content\">\n <mat-form-field\n class=\"adf-people-widget-field\">\n <mat-label class=\"adf-label adf-people-widget-label\" data-automation-id=\"adf-people-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-chip-grid #chipGrid [attr.aria-label]=\"'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.SELECTED_PEOPLE' | translate\"\n [required]=\"isRequired()\" [ngModel]=\"selectedUsers\" [errorStateMatcher]=\"errorStateMatcher\">\n <mat-chip-row\n *ngFor=\"let user of selectedUsers\"\n (removed)=\"onRemove(user)\"\n [disabled]=\"field.readOnly\"\n [attr.data-automation-id]=\"'adf-people-widget-chip-' + user.id\"\n class=\"adf-people-widget-field-chip\">\n {{ getDisplayName(user) }}\n <button matChipRemove [attr.aria-label]=\"'remove ' + user.firstName\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-chip-row>\n <input #inputValue\n matInput\n class=\"adf-input\"\n [matChipInputFor]=\"chipGrid\"\n data-automation-id=\"adf-people-search-input\"\n type=\"text\"\n [disabled]=\"!multiSelect && selectedUsers.length > 0 || field.readOnly\"\n [id]=\"field.id\"\n [formControl]=\"searchTerm\"\n [placeholder]=\"selectedUsers.length > 0 ? '' : field.placeholder\"\n [matAutocomplete]=\"auto\"\n (blur)=\"markAsTouched()\"\n [title]=\"field.tooltip\">\n </mat-chip-grid>\n\n <mat-autocomplete class=\"adf-people-widget-list\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"onItemSelect($event.option.value)\"\n [displayWith]=\"getDisplayName\">\n <mat-option *ngFor=\"let user of users$ | async; let i = index\" [value]=\"user\" [disabled]=\"isUserAlreadySelected(user)\">\n <div class=\"adf-people-widget-row\" id=\"adf-people-widget-user-{{i}}\">\n <div [outerHTML]=\"user | usernameInitials:'adf-people-widget-pic'\"></div>\n <div *ngIf=\"user.pictureId\" class=\"adf-people-widget-image-row\">\n <img id=\"adf-people-widget-pic-{{i}}\" class=\"adf-people-widget-image\"\n [alt]=\"getDisplayName(user)\" [src]=\"peopleProcessService.getUserImage(user.id.toString())\"/>\n </div>\n <span class=\"adf-people-label-name\">{{getDisplayName(user)}}</span>\n </div>\n </mat-option>\n </mat-autocomplete>\n @if (field.validationSummary?.message || (isInvalidFieldRequired() && isTouched())) {\n <mat-error>\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n </mat-form-field>\n</div>\n", styles: [".adf-people-widget{width:100%}.adf-people-widget .adf-people-widget-field{top:10px}.adf-people-widget .adf-people-widget-field .adf-people-widget-field-chip{border:1px solid var(--mat-sys-outline);border-radius:10px;background-color:var(--mat-sys-secondary);height:auto;word-break:break-word;padding:4px 0}.adf-people-widget-list{margin:5px 0;padding:10px 0}.adf-people-widget-row{display:flex;align-items:center}.adf-people-widget-pic{background:var(--mat-sys-primary);display:flex;justify-content:center;align-items:center;width:40px;height:40px;border-radius:100px;color:var(--mat-sys-on-surface);font:var(--mat-sys-label-large);text-transform:uppercase}.adf-people-widget-image{margin-left:-44px;left:21px;background:var(--mat-sys-surface-container-high);border-radius:100px;width:40px;height:40px;vertical-align:middle;display:inline-block;padding:0}.adf-people-widget-image-row{display:inline-block}.adf-people-label-name{padding-left:10px}.adf-people-widget-field .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: InitialUsernamePipe, name: "usernameInitials" }], encapsulation: i0.ViewEncapsulation.None }); }
3572
3881
  }
3573
3882
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PeopleWidgetComponent, decorators: [{
3574
3883
  type: Component,
@@ -3692,8 +4001,7 @@ class FunctionalGroupWidgetComponent extends WidgetComponent {
3692
4001
  }
3693
4002
  else {
3694
4003
  this.field.validationSummary.message = 'FORM.FIELD.VALIDATOR.INVALID_VALUE';
3695
- this.field.markAsInvalid();
3696
- this.field.form.markAsInvalid();
4004
+ this.field.form.markFieldAsInvalid(this.field);
3697
4005
  }
3698
4006
  }
3699
4007
  getDisplayName(model) {
@@ -3713,7 +4021,7 @@ class FunctionalGroupWidgetComponent extends WidgetComponent {
3713
4021
  return this.selectedGroups?.some((selectedGroup) => selectedGroup.id === group.id);
3714
4022
  }
3715
4023
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FunctionalGroupWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3716
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: FunctionalGroupWidgetComponent, isStandalone: true, selector: "functional-group-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["inputValue"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-group-widget {{field.className}}\"\n [class.is-dirty]=\"!!field.value\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n id=\"functional-group-div\"\n>\n <mat-form-field class=\"adf-group-widget-field\">\n <mat-label class=\"adf-label\" data-automation-id=\"adf-group-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-chip-grid #chipGrid [required]=\"isRequired()\">\n <mat-chip-row\n *ngFor=\"let group of selectedGroups\"\n (removed)=\"onRemove(group)\"\n [disabled]=\"field.readOnly\"\n [attr.data-automation-id]=\"'adf-group-widget-chip-' + group.id\"\n class=\"adf-group-widget-field-chip\"\n >\n {{ getDisplayName(group) }}\n <button matChipRemove [attr.aria-label]=\"'remove ' + group.name\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-chip-row>\n <input\n matInput\n class=\"adf-input\"\n type=\"text\"\n data-automation-id=\"adf-group-search-input\"\n [matChipInputFor]=\"chipGrid\"\n [id]=\"field.id\"\n [formControl]=\"searchTerm\"\n [disabled]=\"!multiSelect && selectedGroups.length > 0 || field.readOnly\"\n [placeholder]=\"field.placeholder\"\n (blur)=\"markAsTouched()\"\n [matAutocomplete]=\"auto\"\n #inputValue\n />\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"updateOption($event.option.value)\" [displayWith]=\"getDisplayName\">\n <mat-option\n *ngFor=\"let item of groups$ | async; let i = index\"\n id=\"adf-group-widget-user-{{i}}\"\n [id]=\"field.id +'-'+item.id\"\n [value]=\"item\"\n [disabled]=\"isGroupAlreadySelected(item)\"\n >\n <span id=\"adf-group-label-name\">{{item.name}}</span>\n </mat-option>\n </mat-autocomplete>\n @if (field.validationSummary?.message || (isInvalidFieldRequired() && isTouched())) {\n <mat-error>\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n </mat-form-field>\n</div>\n", styles: [".adf-group-widget{width:100%}.adf-group-widget .adf-group-widget-field .adf-group-widget-field-chip{border:1px solid var(--mat-sys-outline);border-radius:10px;background-color:var(--mat-sys-secondary);height:auto;word-break:break-word;padding:4px 0}.adf-group-widget-field .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
4024
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: FunctionalGroupWidgetComponent, isStandalone: true, selector: "functional-group-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["inputValue"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-group-widget {{field.className}}\"\n [class.is-dirty]=\"!!field.value\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n id=\"functional-group-div\"\n>\n <mat-form-field class=\"adf-group-widget-field\">\n <mat-label class=\"adf-label\" data-automation-id=\"adf-group-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-chip-grid #chipGrid [required]=\"isRequired()\">\n <mat-chip-row\n *ngFor=\"let group of selectedGroups\"\n (removed)=\"onRemove(group)\"\n [disabled]=\"field.readOnly\"\n [attr.data-automation-id]=\"'adf-group-widget-chip-' + group.id\"\n class=\"adf-group-widget-field-chip\"\n >\n {{ getDisplayName(group) }}\n <button matChipRemove [attr.aria-label]=\"'remove ' + group.name\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-chip-row>\n <input\n matInput\n class=\"adf-input\"\n type=\"text\"\n data-automation-id=\"adf-group-search-input\"\n [matChipInputFor]=\"chipGrid\"\n [id]=\"field.id\"\n [formControl]=\"searchTerm\"\n [disabled]=\"!multiSelect && selectedGroups.length > 0 || field.readOnly\"\n [placeholder]=\"field.placeholder\"\n (blur)=\"markAsTouched()\"\n [matAutocomplete]=\"auto\"\n #inputValue\n />\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"updateOption($event.option.value)\" [displayWith]=\"getDisplayName\">\n <mat-option\n *ngFor=\"let item of groups$ | async; let i = index\"\n id=\"adf-group-widget-user-{{i}}\"\n [id]=\"field.id +'-'+item.id\"\n [value]=\"item\"\n [disabled]=\"isGroupAlreadySelected(item)\"\n >\n <span id=\"adf-group-label-name\">{{item.name}}</span>\n </mat-option>\n </mat-autocomplete>\n @if (field.validationSummary?.message || (isInvalidFieldRequired() && isTouched())) {\n <mat-error>\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n </mat-form-field>\n</div>\n", styles: [".adf-group-widget{width:100%}.adf-group-widget .adf-group-widget-field .adf-group-widget-field-chip{border:1px solid var(--mat-sys-outline);border-radius:10px;background-color:var(--mat-sys-secondary);height:auto;word-break:break-word;padding:4px 0}.adf-group-widget-field .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
3717
4025
  }
3718
4026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FunctionalGroupWidgetComponent, decorators: [{
3719
4027
  type: Component,
@@ -3742,81 +4050,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
3742
4050
  args: ['inputValue', { static: true }]
3743
4051
  }] } });
3744
4052
 
3745
- var __decorate$6 = (this && this.__decorate) || function (decorators, target, key, desc) {
3746
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3747
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3748
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3749
- return c > 3 && r && Object.defineProperty(target, key, r), r;
3750
- };
3751
- class ProcessDefinitionService {
3752
- constructor() {
3753
- this.apiService = inject(AlfrescoApiService);
3754
- }
3755
- static { this.UNKNOWN_ERROR_MESSAGE = 'Unknown error'; }
3756
- static { this.GENERIC_ERROR_MESSAGE = 'Server error'; }
3757
- /**
3758
- * Gets values of fields populated by a REST backend using a process ID.
3759
- *
3760
- * @param processDefinitionId Process identifier
3761
- * @param field Field identifier
3762
- * @returns Field values
3763
- */
3764
- getRestFieldValuesByProcessId(processDefinitionId, field) {
3765
- return from(this.processDefinitionsApi.getRestFieldValues(processDefinitionId, field)).pipe(catchError((err) => this.handleError(err)));
3766
- }
3767
- /**
3768
- * Gets column values of fields populated by a REST backend using a process ID.
3769
- *
3770
- * @param processDefinitionId Process identifier
3771
- * @param field Field identifier
3772
- * @param column Column identifier
3773
- * @returns Field values
3774
- */
3775
- getRestFieldValuesColumnByProcessId(processDefinitionId, field, column) {
3776
- return from(this.processDefinitionsApi.getRestTableFieldValues(processDefinitionId, field, column)).pipe(catchError((err) => this.handleError(err)));
3777
- }
3778
- /**
3779
- * Creates a JSON representation of form data.
3780
- *
3781
- * @param res Object representing form data
3782
- * @returns JSON data
3783
- */
3784
- toJson(res) {
3785
- if (res) {
3786
- return res || {};
3787
- }
3788
- return {};
3789
- }
3790
- /**
3791
- * Reports an error message.
3792
- *
3793
- * @param error Data object with optional `message` and `status` fields for the error
3794
- * @returns Error message
3795
- */
3796
- handleError(error) {
3797
- let errMsg = ProcessDefinitionService.UNKNOWN_ERROR_MESSAGE;
3798
- if (error) {
3799
- errMsg = error.message
3800
- ? error.message
3801
- : error.status
3802
- ? `${error.status} - ${error.statusText}`
3803
- : ProcessDefinitionService.GENERIC_ERROR_MESSAGE;
3804
- }
3805
- return throwError(errMsg);
3806
- }
3807
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3808
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessDefinitionService, providedIn: 'root' }); }
3809
- }
3810
- __decorate$6([
3811
- LazyApi((self) => new ProcessDefinitionsApi(self.apiService.getInstance()))
3812
- ], ProcessDefinitionService.prototype, "processDefinitionsApi", void 0);
3813
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessDefinitionService, decorators: [{
3814
- type: Injectable,
3815
- args: [{
3816
- providedIn: 'root'
3817
- }]
3818
- }], propDecorators: { processDefinitionsApi: [] } });
3819
-
3820
4053
  /*!
3821
4054
  * @license
3822
4055
  * Copyright © 2005-2026 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -3881,7 +4114,7 @@ class RadioButtonsWidgetComponent extends WidgetComponent {
3881
4114
  return this.isRestType() && this.hasRestUrl();
3882
4115
  }
3883
4116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: RadioButtonsWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3884
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: RadioButtonsWidgetComponent, isStandalone: true, selector: "radio-buttons-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-radio-buttons-widget {{field.className}}\" [class.adf-readonly]=\"field.readOnly\" [id]=\"field.id\">\n <div class=\"adf-radio-button-container\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n <mat-radio-group class=\"adf-radio-group\" [(ngModel)]=\"field.value\" [disabled]=\"field.readOnly\">\n <mat-radio-button\n [title]=\"field.tooltip\"\n [id]=\"field.id + '-' + opt.id\"\n [name]=\"field.id\"\n [value]=\"opt.id\"\n [checked]=\"field.value === opt.id\"\n (change)=\"onOptionClick(opt.id)\"\n class=\"adf-radio-button\"\n *ngFor=\"let opt of field.options\"\n >\n {{opt.name}}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n <error-widget [error]=\"field.validationSummary\" />\n</div>\n", styles: [".adf-radio-button-container{margin-bottom:15px;display:flex;flex-direction:column}.adf-radio-group{margin-top:15px;margin-left:5px;display:inline-flex;flex-direction:column}.adf-radio-button{margin:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i2$5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
4117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: RadioButtonsWidgetComponent, isStandalone: true, selector: "radio-buttons-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-radio-buttons-widget {{field.className}}\" [class.adf-readonly]=\"field.readOnly\" [id]=\"field.id\">\n <div class=\"adf-radio-button-container\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n <mat-radio-group class=\"adf-radio-group\" [(ngModel)]=\"field.value\" [disabled]=\"field.readOnly\">\n <mat-radio-button\n [title]=\"field.tooltip\"\n [id]=\"field.id + '-' + opt.id\"\n [name]=\"field.id\"\n [value]=\"opt.id\"\n [checked]=\"field.value === opt.id\"\n (change)=\"onOptionClick(opt.id)\"\n class=\"adf-radio-button\"\n *ngFor=\"let opt of field.options\"\n >\n {{opt.name}}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n <error-widget [error]=\"field.validationSummary\" />\n</div>\n", styles: [".adf-radio-button-container{margin-bottom:15px;display:flex;flex-direction:column}.adf-radio-group{margin-top:15px;margin-left:5px;display:inline-flex;flex-direction:column}.adf-radio-button{margin:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i2$5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
3885
4118
  }
3886
4119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: RadioButtonsWidgetComponent, decorators: [{
3887
4120
  type: Component,
@@ -3898,174 +4131,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
3898
4131
  }, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-radio-buttons-widget {{field.className}}\" [class.adf-readonly]=\"field.readOnly\" [id]=\"field.id\">\n <div class=\"adf-radio-button-container\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n <mat-radio-group class=\"adf-radio-group\" [(ngModel)]=\"field.value\" [disabled]=\"field.readOnly\">\n <mat-radio-button\n [title]=\"field.tooltip\"\n [id]=\"field.id + '-' + opt.id\"\n [name]=\"field.id\"\n [value]=\"opt.id\"\n [checked]=\"field.value === opt.id\"\n (change)=\"onOptionClick(opt.id)\"\n class=\"adf-radio-button\"\n *ngFor=\"let opt of field.options\"\n >\n {{opt.name}}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n <error-widget [error]=\"field.validationSummary\" />\n</div>\n", styles: [".adf-radio-button-container{margin-bottom:15px;display:flex;flex-direction:column}.adf-radio-group{margin-top:15px;margin-left:5px;display:inline-flex;flex-direction:column}.adf-radio-button{margin:5px}\n"] }]
3899
4132
  }] });
3900
4133
 
3901
- /*!
3902
- * @license
3903
- * Copyright © 2005-2026 Hyland Software, Inc. and its affiliates. All rights reserved.
3904
- *
3905
- * Licensed under the Apache License, Version 2.0 (the "License");
3906
- * you may not use this file except in compliance with the License.
3907
- * You may obtain a copy of the License at
3908
- *
3909
- * http://www.apache.org/licenses/LICENSE-2.0
3910
- *
3911
- * Unless required by applicable law or agreed to in writing, software
3912
- * distributed under the License is distributed on an "AS IS" BASIS,
3913
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3914
- * See the License for the specific language governing permissions and
3915
- * limitations under the License.
3916
- */
3917
- /* eslint-disable @angular-eslint/component-selector */
3918
- class DropdownWidgetComponent extends WidgetComponent {
3919
- constructor() {
3920
- super(...arguments);
3921
- this.formService = inject(FormService);
3922
- this.taskFormService = inject(TaskFormService);
3923
- this.processDefinitionService = inject(ProcessDefinitionService);
3924
- this.destroyRef = inject(DestroyRef);
3925
- this.dropdownControl = new FormControl(undefined);
3926
- }
3927
- get isReadOnlyType() {
3928
- return this.field.type === 'readonly';
3929
- }
3930
- get isReadOnlyField() {
3931
- return this.field.readOnly;
3932
- }
3933
- get isRestType() {
3934
- return this.field?.optionType === 'rest';
3935
- }
3936
- get hasRestUrl() {
3937
- return !!this.field?.restUrl;
3938
- }
3939
- get isValidRestConfig() {
3940
- return this.isRestType && this.hasRestUrl;
3941
- }
3942
- ngOnInit() {
3943
- if (this.isValidRestConfig && !this.isReadOnlyForm()) {
3944
- if (this.field.form.taskId) {
3945
- this.getValuesByTaskId();
3946
- }
3947
- else {
3948
- this.getValuesByProcessDefinitionId();
3949
- }
3950
- }
3951
- this.setFormControlValue();
3952
- this.updateFormControlState();
3953
- this.subscribeToInputChanges();
3954
- this.handleErrors();
3955
- }
3956
- updateReactiveFormControl() {
3957
- this.updateFormControlState();
3958
- if (this.field?.form?.showAllValidationErrors) {
3959
- this.dropdownControl.markAsTouched();
3960
- }
3961
- this.handleErrors();
3962
- }
3963
- getValuesByTaskId() {
3964
- this.taskFormService.getRestFieldValues(this.field.form.taskId, this.field.id).subscribe((formFieldOption) => {
3965
- const options = [];
3966
- if (this.field.emptyOption) {
3967
- options.push(this.field.emptyOption);
3968
- }
3969
- this.field.options = options.concat(formFieldOption || []);
3970
- this.field.updateForm();
3971
- });
3972
- }
3973
- getValuesByProcessDefinitionId() {
3974
- this.processDefinitionService
3975
- .getRestFieldValuesByProcessId(this.field.form.processDefinitionId, this.field.id)
3976
- .subscribe((formFieldOption) => {
3977
- const options = [];
3978
- if (this.field.emptyOption) {
3979
- options.push(this.field.emptyOption);
3980
- }
3981
- this.field.options = options.concat(formFieldOption || []);
3982
- this.field.updateForm();
3983
- });
3984
- }
3985
- isReadOnlyForm() {
3986
- return !!this.field?.form?.readOnly;
3987
- }
3988
- subscribeToInputChanges() {
3989
- this.dropdownControl.valueChanges
3990
- .pipe(filter(() => !!this.field), takeUntilDestroyed(this.destroyRef))
3991
- .subscribe((value) => {
3992
- this.setOptionValue(value, this.field);
3993
- this.handleErrors();
3994
- this.onFieldChanged(this.field);
3995
- });
3996
- }
3997
- setFormControlValue() {
3998
- this.dropdownControl.setValue(this.getOptionValue(this.field?.value), { emitEvent: false });
3999
- }
4000
- updateFormControlState() {
4001
- this.dropdownControl.setValidators(this.isRequired() && this.field?.isVisible ? [this.customRequiredValidator(this.field)] : []);
4002
- this.field?.readOnly || this.readOnly
4003
- ? this.dropdownControl.disable({ emitEvent: false })
4004
- : this.dropdownControl.enable({ emitEvent: false });
4005
- this.dropdownControl.updateValueAndValidity({ emitEvent: false });
4006
- }
4007
- handleErrors() {
4008
- if (!this.field) {
4009
- return;
4010
- }
4011
- if (this.dropdownControl.valid) {
4012
- this.field.validationSummary = new ErrorMessageModel('');
4013
- this.field.markAsValid();
4014
- return;
4015
- }
4016
- if (this.dropdownControl.invalid && this.dropdownControl.errors.required) {
4017
- this.field.validationSummary = new ErrorMessageModel({ message: 'FORM.FIELD.REQUIRED' });
4018
- this.field.markAsInvalid();
4019
- }
4020
- }
4021
- setOptionValue(option, field) {
4022
- if (typeof option === 'string') {
4023
- field.value = option;
4024
- return;
4025
- }
4026
- if (option.id === 'empty' || option.name !== field.value) {
4027
- field.value = option.id;
4028
- return;
4029
- }
4030
- field.value = option.name;
4031
- }
4032
- getOptionValue(value) {
4033
- if (this.field?.readOnly || this.readOnly) {
4034
- return value;
4035
- }
4036
- if (typeof value === 'string') {
4037
- return this.field.options.find((option) => option.id === value || option.name === value);
4038
- }
4039
- return value;
4040
- }
4041
- customRequiredValidator(field) {
4042
- return (control) => {
4043
- const isEmptyInputValue = (value) => value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0);
4044
- const isEqualToEmptyValue = (value) => field.hasEmptyValue &&
4045
- (value === field.emptyOption.id ||
4046
- value === field.emptyOption.name ||
4047
- (value.id === field.emptyOption.id && value.name === field.emptyOption.name));
4048
- return isEmptyInputValue(control.value) || isEqualToEmptyValue(control.value) ? { required: true } : null;
4049
- };
4050
- }
4051
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DropdownWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4052
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: DropdownWidgetComponent, isStandalone: true, selector: "dropdown-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n>\n <mat-form-field class=\"adf-form-field-input\" subscriptSizing=\"dynamic\">\n <mat-label class=\"adf-label\" data-automation-id=\"adf-dropdown-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-select\n class=\"adf-select\"\n data-automation-id=\"adf-dropdown-widget-select\"\n [id]=\"field.id\"\n [formControl]=\"dropdownControl\"\n [required]=\"isRequired() && field.isVisible\"\n >\n <mat-option *ngFor=\"let opt of field.options\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"dropdownControl.disabled\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n @if (!isReadOnlyField && dropdownControl.touched && (field.validationSummary?.message || dropdownControl.hasError('required'))) {\n <mat-error class=\"adf-form-field-status-slot\" data-automation-id=\"adf-dropdown-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n <mat-hint class=\"adf-form-field-status-slot\" aria-hidden=\"true\" />\n </mat-form-field>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget-select{width:100%}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
4053
- }
4054
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DropdownWidgetComponent, decorators: [{
4055
- type: Component,
4056
- args: [{ selector: 'dropdown-widget', imports: [CommonModule, TranslatePipe, MatFormFieldModule, MatSelectModule, ReactiveFormsModule, MatIconModule], host: {
4057
- '(click)': 'event($event)',
4058
- '(blur)': 'event($event)',
4059
- '(change)': 'event($event)',
4060
- '(focus)': 'event($event)',
4061
- '(focusin)': 'event($event)',
4062
- '(focusout)': 'event($event)',
4063
- '(input)': 'event($event)',
4064
- '(invalid)': 'event($event)',
4065
- '(select)': 'event($event)'
4066
- }, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n>\n <mat-form-field class=\"adf-form-field-input\" subscriptSizing=\"dynamic\">\n <mat-label class=\"adf-label\" data-automation-id=\"adf-dropdown-widget-label\">{{ field.name | translate }}</mat-label>\n <mat-select\n class=\"adf-select\"\n data-automation-id=\"adf-dropdown-widget-select\"\n [id]=\"field.id\"\n [formControl]=\"dropdownControl\"\n [required]=\"isRequired() && field.isVisible\"\n >\n <mat-option *ngFor=\"let opt of field.options\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"dropdownControl.disabled\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n @if (!isReadOnlyField && dropdownControl.touched && (field.validationSummary?.message || dropdownControl.hasError('required'))) {\n <mat-error class=\"adf-form-field-status-slot\" data-automation-id=\"adf-dropdown-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n <mat-hint class=\"adf-form-field-status-slot\" aria-hidden=\"true\" />\n </mat-form-field>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget-select{width:100%}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"] }]
4067
- }] });
4068
-
4069
4134
  /*!
4070
4135
  * @license
4071
4136
  * Copyright © 2005-2026 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -4185,7 +4250,7 @@ class TypeaheadWidgetComponent extends WidgetComponent {
4185
4250
  };
4186
4251
  }
4187
4252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TypeaheadWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: TypeaheadWidgetComponent, isStandalone: true, selector: "typeahead-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-typeahead-widget-container\">\n <div class=\"adf-typeahead-widget {{field.className}}\"\n [class.is-dirty]=\"value\"\n [class.adf-invalid]=\"!field.isValid\"\n [class.adf-readonly]=\"field.readOnly\"\n id=\"typehead-div\">\n <mat-form-field class=\"adf-form-field-input\" subscriptSizing=\"dynamic\">\n <mat-label class=\"adf-label\">{{ field.name | translate }}</mat-label>\n <input matInput class=\"adf-input\"\n type=\"text\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"validate()\"\n (keyup)=\"onKeyUp($event)\"\n [disabled]=\"field.readOnly\"\n data-automation-id=\"adf-typeahed-search-input\"\n placeholder=\"{{field.placeholder}}\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onItemSelect($event.option.value)\">\n <mat-option *ngFor=\"let item of options; let i = index\" id=\"adf-typeahed-widget-user-{{i}}\" [value]=\"item\">\n <span id=\"adf-typeahed-label-name\">{{item.name}}</span>\n </mat-option>\n </mat-autocomplete>\n @if (field.validationSummary?.message || isInvalidFieldRequired()) {\n <mat-error class=\"adf-form-field-status-slot\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n <mat-hint class=\"adf-form-field-status-slot\" aria-hidden=\"true\" />\n </mat-form-field>\n </div>\n</div>\n", styles: [".adf-typeahead-widget-container{position:relative;display:block}.adf-typeahead-widget{width:100%}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
4253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: TypeaheadWidgetComponent, isStandalone: true, selector: "typeahead-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-typeahead-widget-container\">\n <div class=\"adf-typeahead-widget {{field.className}}\"\n [class.is-dirty]=\"value\"\n [class.adf-invalid]=\"!field.isValid\"\n [class.adf-readonly]=\"field.readOnly\"\n id=\"typehead-div\">\n <mat-form-field class=\"adf-form-field-input\" subscriptSizing=\"dynamic\">\n <mat-label class=\"adf-label\">{{ field.name | translate }}</mat-label>\n <input matInput class=\"adf-input\"\n type=\"text\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"validate()\"\n (keyup)=\"onKeyUp($event)\"\n [disabled]=\"field.readOnly\"\n data-automation-id=\"adf-typeahed-search-input\"\n placeholder=\"{{field.placeholder}}\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onItemSelect($event.option.value)\">\n <mat-option *ngFor=\"let item of options; let i = index\" id=\"adf-typeahed-widget-user-{{i}}\" [value]=\"item\">\n <span id=\"adf-typeahed-label-name\">{{item.name}}</span>\n </mat-option>\n </mat-autocomplete>\n @if (field.validationSummary?.message || isInvalidFieldRequired()) {\n <mat-error class=\"adf-form-field-status-slot\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <span class=\"adf-error-text\"\n >@if (field.validationSummary?.message) {{{ field.validationSummary.message | translate }}} @else {{{ 'FORM.FIELD.REQUIRED' | translate }}}</span>\n </mat-error>\n }\n <mat-hint class=\"adf-form-field-status-slot\" aria-hidden=\"true\" />\n </mat-form-field>\n </div>\n</div>\n", styles: [".adf-typeahead-widget-container{position:relative;display:block}.adf-typeahead-widget{width:100%}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
4189
4254
  }
4190
4255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TypeaheadWidgetComponent, decorators: [{
4191
4256
  type: Component,
@@ -4291,7 +4356,7 @@ class DropdownEditorComponent {
4291
4356
  row.value[column.id] = value;
4292
4357
  }
4293
4358
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DropdownEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4294
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: DropdownEditorComponent, isStandalone: true, selector: "adf-dropdown-editor", inputs: { table: "table", row: "row", column: "column" }, ngImport: i0, template: "<div class=\"dropdown-editor\">\n <mat-form-field>\n <mat-label>{{column.name}}</mat-label>\n <mat-select\n floatPlaceholder=\"never\"\n class=\"adf-dropdown-editor-select\"\n [id]=\"column.id\"\n [(ngModel)]=\"value\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n (selectionChange)=\"onValueChanged(row, column, $event)\">\n <mat-option />\n <mat-option *ngFor=\"let opt of options\" [value]=\"opt.name\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n </mat-select>\n </mat-form-field>\n <span *ngFor=\"let opt of options\" id=\"testme\">{{opt | json}}</span>\n</div>\n", styles: [".adf-dropdown-editor-select{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
4359
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: DropdownEditorComponent, isStandalone: true, selector: "adf-dropdown-editor", inputs: { table: "table", row: "row", column: "column" }, ngImport: i0, template: "<div class=\"dropdown-editor\">\n <mat-form-field>\n <mat-label>{{column.name}}</mat-label>\n <mat-select\n floatPlaceholder=\"never\"\n class=\"adf-dropdown-editor-select\"\n [id]=\"column.id\"\n [(ngModel)]=\"value\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n (selectionChange)=\"onValueChanged(row, column, $event)\">\n <mat-option />\n <mat-option *ngFor=\"let opt of options\" [value]=\"opt.name\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n </mat-select>\n </mat-form-field>\n <span *ngFor=\"let opt of options\" id=\"testme\">{{opt | json}}</span>\n</div>\n", styles: [".adf-dropdown-editor-select{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
4295
4360
  }
4296
4361
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DropdownEditorComponent, decorators: [{
4297
4362
  type: Component,
@@ -4329,7 +4394,7 @@ class AmountEditorComponent {
4329
4394
  row.value[column.id] = value;
4330
4395
  }
4331
4396
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AmountEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4332
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AmountEditorComponent, isStandalone: true, selector: "adf-amount-editor", inputs: { table: "table", row: "row", column: "column" }, ngImport: i0, template: "<div class=\"adf-amount-editor\">\n <mat-form-field>\n <mat-label>{{ displayName }}</mat-label>\n <input matInput\n type=\"number\"\n [value]=\"table.getCellValue(row, column)\"\n (keyup)=\"onValueChanged(row, column, $event)\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n [id]=\"column.id\">\n </mat-form-field>\n</div>\n", styles: [".adf-text-editor{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
4397
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AmountEditorComponent, isStandalone: true, selector: "adf-amount-editor", inputs: { table: "table", row: "row", column: "column" }, ngImport: i0, template: "<div class=\"adf-amount-editor\">\n <mat-form-field>\n <mat-label>{{ displayName }}</mat-label>\n <input matInput\n type=\"number\"\n [value]=\"table.getCellValue(row, column)\"\n (keyup)=\"onValueChanged(row, column, $event)\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n [id]=\"column.id\">\n </mat-form-field>\n</div>\n", styles: [".adf-text-editor{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
4333
4398
  }
4334
4399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AmountEditorComponent, decorators: [{
4335
4400
  type: Component,
@@ -4426,7 +4491,7 @@ class DateEditorComponent {
4426
4491
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: DateEditorComponent, isStandalone: true, selector: "adf-date-editor", inputs: { value: "value", table: "table", row: "row", column: "column" }, providers: [
4427
4492
  { provide: MAT_DATE_FORMATS, useValue: ADF_DATE_FORMATS },
4428
4493
  { provide: DateAdapter, useClass: AdfDateFnsAdapter }
4429
- ], ngImport: i0, template: "<div>\n <mat-form-field class=\"adf-date-editor\">\n <mat-label>{{ column.name }} ({{ DATE_FORMAT }})</mat-label>\n <input matInput\n id=\"dateInput\"\n type=\"text\"\n [matDatepicker]=\"datePicker\"\n [(ngModel)]=\"value\"\n [id]=\"column.id\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n (focusout)=\"onDateChanged($any($event).target.value)\"\n (dateChange)=\"onDateChanged($event)\">\n <mat-datepicker-toggle *ngIf=\"column.editable\" matSuffix [for]=\"datePicker\" class=\"adf-date-editor-button\" />\n </mat-form-field>\n <mat-datepicker #datePicker [touchUi]=\"true\" />\n</div>\n", styles: [".adf-date-editor{width:100%}.adf-date-editor-button{position:relative;top:25px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
4494
+ ], ngImport: i0, template: "<div>\n <mat-form-field class=\"adf-date-editor\">\n <mat-label>{{ column.name }} ({{ DATE_FORMAT }})</mat-label>\n <input matInput\n id=\"dateInput\"\n type=\"text\"\n [matDatepicker]=\"datePicker\"\n [(ngModel)]=\"value\"\n [id]=\"column.id\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n (focusout)=\"onDateChanged($any($event).target.value)\"\n (dateChange)=\"onDateChanged($event)\">\n <mat-datepicker-toggle *ngIf=\"column.editable\" matSuffix [for]=\"datePicker\" class=\"adf-date-editor-button\" />\n </mat-form-field>\n <mat-datepicker #datePicker [touchUi]=\"true\" />\n</div>\n", styles: [".adf-date-editor{width:100%}.adf-date-editor-button{position:relative;top:25px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
4430
4495
  }
4431
4496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DateEditorComponent, decorators: [{
4432
4497
  type: Component,
@@ -4516,7 +4581,7 @@ class DateTimeEditorComponent {
4516
4581
  { provide: MAT_DATETIME_FORMATS, useValue: ADF_DATETIME_FORMATS },
4517
4582
  { provide: DateAdapter, useClass: AdfDateFnsAdapter },
4518
4583
  { provide: DatetimeAdapter, useClass: AdfDateTimeFnsAdapter }
4519
- ], ngImport: i0, template: "<div>\n <mat-form-field class=\"adf-date-editor\">\n <mat-label>{{ column.name }} {{ DATE_TIME_FORMAT }}</mat-label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [(ngModel)]=\"value\"\n [id]=\"column.id\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n (focusout)=\"onDateChanged($any($event).target.value)\"\n (dateChange)=\"onDateChanged($event)\">\n <mat-datetimepicker-toggle\n matSuffix\n [for]=\"datetimePicker\"\n class=\"adf-date-editor-button\" />\n </mat-form-field>\n <mat-datetimepicker\n #datetimePicker\n type=\"datetime\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\" />\n</div>\n", styles: [".adf-date-editor{width:100%}.adf-date-editor-button{position:relative;top:25px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatetimepickerModule }, { kind: "component", type: i3$4.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3$4.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3$4.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
4584
+ ], ngImport: i0, template: "<div>\n <mat-form-field class=\"adf-date-editor\">\n <mat-label>{{ column.name }} {{ DATE_TIME_FORMAT }}</mat-label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [(ngModel)]=\"value\"\n [id]=\"column.id\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n (focusout)=\"onDateChanged($any($event).target.value)\"\n (dateChange)=\"onDateChanged($event)\">\n <mat-datetimepicker-toggle\n matSuffix\n [for]=\"datetimePicker\"\n class=\"adf-date-editor-button\" />\n </mat-form-field>\n <mat-datetimepicker\n #datetimePicker\n type=\"datetime\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\" />\n</div>\n", styles: [".adf-date-editor{width:100%}.adf-date-editor-button{position:relative;top:25px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatetimepickerModule }, { kind: "component", type: i3$4.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3$4.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3$4.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
4520
4585
  }
4521
4586
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DateTimeEditorComponent, decorators: [{
4522
4587
  type: Component,
@@ -4561,7 +4626,7 @@ class TextEditorComponent {
4561
4626
  row.value[column.id] = value;
4562
4627
  }
4563
4628
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4564
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TextEditorComponent, isStandalone: true, selector: "adf-text-editor", inputs: { table: "table", row: "row", column: "column" }, ngImport: i0, template: "<div class=\"adf-text-editor\">\n <mat-form-field>\n <mat-label>{{ displayName }}</mat-label>\n <input matInput\n type=\"text\"\n [value]=\"table.getCellValue(row, column)\"\n (keyup)=\"onValueChanged(row, column, $event)\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n [id]=\"column.id\">\n </mat-form-field>\n</div>\n", styles: [".adf-text-editor{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
4629
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TextEditorComponent, isStandalone: true, selector: "adf-text-editor", inputs: { table: "table", row: "row", column: "column" }, ngImport: i0, template: "<div class=\"adf-text-editor\">\n <mat-form-field>\n <mat-label>{{ displayName }}</mat-label>\n <input matInput\n type=\"text\"\n [value]=\"table.getCellValue(row, column)\"\n (keyup)=\"onValueChanged(row, column, $event)\"\n [required]=\"column.required\"\n [disabled]=\"!column.editable\"\n [id]=\"column.id\">\n </mat-form-field>\n</div>\n", styles: [".adf-text-editor{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
4565
4630
  }
4566
4631
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TextEditorComponent, decorators: [{
4567
4632
  type: Component,
@@ -5734,7 +5799,7 @@ class AttachFileWidgetComponent extends UploadWidgetComponent {
5734
5799
  return result[1];
5735
5800
  }
5736
5801
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AttachFileWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5737
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AttachFileWidgetComponent, isStandalone: true, selector: "attach-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"adf-attach-widget {{ field.className }}\" [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{ field.name | translate }}\n <span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n <div class=\"adf-attach-widget-container\">\n <div id=\"adf-attach-widget-simple-upload\" *ngIf=\"isSimpleUploadButton() && isUploadButtonVisible()\">\n <a mat-raised-button>\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input #uploadFiles [multiple]=\"multipleOption\" type=\"file\" [id]=\"field.id\" (change)=\"onAttachFileChanged($event)\" />\n </a>\n </div>\n <div class=\"adf-attach-widget__menu-upload\" (focusout)=\"markAsTouched()\" *ngIf=\"isUploadButtonVisible() && isMultipleSourceUpload()\">\n <button mat-raised-button [matMenuTriggerFor]=\"menu\" [id]=\"field.id\">\n <mat-icon>attach_file</mat-icon>\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"adf-attach-widget__menu-content\">\n <button mat-menu-item (click)=\"uploadFile.click()\" id=\"attach-local-file\" *ngIf=\"isAllFileSourceSelected()\">\n {{ 'FORM.FIELD.LOCALSTORAGE' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input\n #uploadFile\n class=\"adf-attach-widget__input-type\"\n [multiple]=\"multipleOption\"\n type=\"file\"\n [id]=\"field.id\"\n (change)=\"onAttachFileChanged($event)\"\n />\n </button>\n <button\n mat-menu-item\n *ngIf=\"isDefinedSourceFolder()\"\n id=\"attach-{{ field.params?.fileSource?.name }}\"\n (click)=\"openSelectDialogFromFileSource()\"\n >\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ field.params?.fileSource?.name }}\n </button>\n <div *ngIf=\"!isDefinedSourceFolder()\">\n <button mat-menu-item *ngFor=\"let repo of repositoryList\" id=\"attach-{{ repo?.name }}\" (click)=\"openSelectDialog(repo)\">\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ repo.name }}\n </button>\n </div>\n </mat-menu>\n </div>\n </div>\n</div>\n\n<div data-automation-id=\"adf-attach-widget-readonly-list\">\n <mat-list *ngIf=\"hasFile\">\n <mat-list-item class=\"adf-attach-files-row\" *ngFor=\"let file of field.value; index as i\">\n <mat-icon matListItemIcon>\n <img class=\"adf-attach-widget__icon\"\n [id]=\"'file-'+file.id+'-icon'\"\n [src]=\"file.content ? getIcon(file.content.mimeType) : getIcon(file.mimeType)\"\n [alt]=\"mimeTypeIcon\"\n (click)=\"onAttachFileClicked(file)\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [attr.aria-label]=\"file.name\"\n [tabindex]=\"i\"/>\n </mat-icon>\n\n <div matListItemLine class=\"adf-attach-widget__label\">\n <span id=\"{{'file-'+file.id}}\"\n (click)=\"onAttachFileClicked(file)\"\n [title]=\"file.name\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [tabindex]=\"i\" class=\"adf-file\">\n {{file.name}}\n </span>\n <button id=\"{{'file-'+file.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button\n id=\"{{ 'file-' + file.id + '-show-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType || (!file.sourceId && (isStartProcessPage || !file.contentAvailable))\"\n mat-menu-item\n (click)=\"onAttachFileClicked(file)\"\n >\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button\n id=\"{{ 'file-' + file.id + '-download-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType\"\n mat-menu-item\n (click)=\"downloadContent(file)\"\n >\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button\n *ngIf=\"!field.readOnly\"\n mat-menu-item\n [id]=\"'file-' + file.id + '-remove'\"\n (click)=\"onRemoveAttachFile(file)\"\n (keyup.enter)=\"onRemoveAttachFile(file)\"\n >\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n </mat-menu>\n </mat-list-item>\n </mat-list>\n</div>\n\n<error-widget [error]=\"field.validationSummary\" />\n<error-widget *ngIf=\"!field.isValid && isTouched() && !isSelected()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n", styles: [".adf-attach-widget-container{margin-bottom:15px;display:flex;align-items:center}.adf-attach-widget-container input{cursor:pointer;height:100%;right:0;opacity:0;position:absolute;top:0;width:300px;z-index:4}.adf-attach-widget__input-type{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.adf-attach-widget{width:100%;word-break:break-all;padding:.4375em 0;border-top:.8438em solid transparent}.adf-attach-widget__icon{cursor:pointer}.adf-attach-widget__label{display:flex;align-items:center;cursor:pointer}.adf-attach-widget__label:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2$2.MatListItemLine, selector: "[matListItemLine]" }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: AlfrescoIconComponent, selector: "adf-alfresco-icon" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
5802
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AttachFileWidgetComponent, isStandalone: true, selector: "attach-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"adf-attach-widget {{ field.className }}\" [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{ field.name | translate }}\n <span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n <div class=\"adf-attach-widget-container\">\n <div id=\"adf-attach-widget-simple-upload\" *ngIf=\"isSimpleUploadButton() && isUploadButtonVisible()\">\n <a mat-raised-button>\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input #uploadFiles [multiple]=\"multipleOption\" type=\"file\" [id]=\"field.id\" (change)=\"onAttachFileChanged($event)\" />\n </a>\n </div>\n <div class=\"adf-attach-widget__menu-upload\" (focusout)=\"markAsTouched()\" *ngIf=\"isUploadButtonVisible() && isMultipleSourceUpload()\">\n <button mat-raised-button [matMenuTriggerFor]=\"menu\" [id]=\"field.id\">\n <mat-icon>attach_file</mat-icon>\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"adf-attach-widget__menu-content\">\n <button mat-menu-item (click)=\"uploadFile.click()\" id=\"attach-local-file\" *ngIf=\"isAllFileSourceSelected()\">\n {{ 'FORM.FIELD.LOCALSTORAGE' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input\n #uploadFile\n class=\"adf-attach-widget__input-type\"\n [multiple]=\"multipleOption\"\n type=\"file\"\n [id]=\"field.id\"\n (change)=\"onAttachFileChanged($event)\"\n />\n </button>\n <button\n mat-menu-item\n *ngIf=\"isDefinedSourceFolder()\"\n id=\"attach-{{ field.params?.fileSource?.name }}\"\n (click)=\"openSelectDialogFromFileSource()\"\n >\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ field.params?.fileSource?.name }}\n </button>\n <div *ngIf=\"!isDefinedSourceFolder()\">\n <button mat-menu-item *ngFor=\"let repo of repositoryList\" id=\"attach-{{ repo?.name }}\" (click)=\"openSelectDialog(repo)\">\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ repo.name }}\n </button>\n </div>\n </mat-menu>\n </div>\n </div>\n</div>\n\n<div data-automation-id=\"adf-attach-widget-readonly-list\">\n <mat-list *ngIf=\"hasFile\">\n <mat-list-item class=\"adf-attach-files-row\" *ngFor=\"let file of field.value; index as i\">\n <mat-icon matListItemIcon>\n <img class=\"adf-attach-widget__icon\"\n [id]=\"'file-'+file.id+'-icon'\"\n [src]=\"file.content ? getIcon(file.content.mimeType) : getIcon(file.mimeType)\"\n [alt]=\"mimeTypeIcon\"\n (click)=\"onAttachFileClicked(file)\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [attr.aria-label]=\"file.name\"\n [tabindex]=\"i\"/>\n </mat-icon>\n\n <div matListItemLine class=\"adf-attach-widget__label\">\n <span id=\"{{'file-'+file.id}}\"\n (click)=\"onAttachFileClicked(file)\"\n [title]=\"file.name\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [tabindex]=\"i\" class=\"adf-file\">\n {{file.name}}\n </span>\n <button id=\"{{'file-'+file.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button\n id=\"{{ 'file-' + file.id + '-show-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType || (!file.sourceId && (isStartProcessPage || !file.contentAvailable))\"\n mat-menu-item\n (click)=\"onAttachFileClicked(file)\"\n >\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button\n id=\"{{ 'file-' + file.id + '-download-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType\"\n mat-menu-item\n (click)=\"downloadContent(file)\"\n >\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button\n *ngIf=\"!field.readOnly\"\n mat-menu-item\n [id]=\"'file-' + file.id + '-remove'\"\n (click)=\"onRemoveAttachFile(file)\"\n (keyup.enter)=\"onRemoveAttachFile(file)\"\n >\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n </mat-menu>\n </mat-list-item>\n </mat-list>\n</div>\n\n<error-widget [error]=\"field.validationSummary\" />\n<error-widget *ngIf=\"!field.isValid && isTouched() && !isSelected()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n", styles: [".adf-attach-widget-container{margin-bottom:15px;display:flex;align-items:center}.adf-attach-widget-container input{cursor:pointer;height:100%;right:0;opacity:0;position:absolute;top:0;width:300px;z-index:4}.adf-attach-widget__input-type{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.adf-attach-widget{width:100%;word-break:break-all;padding:.4375em 0;border-top:.8438em solid transparent}.adf-attach-widget__icon{cursor:pointer}.adf-attach-widget__label{display:flex;align-items:center;cursor:pointer}.adf-attach-widget__label:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$3.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2$3.MatListItemLine, selector: "[matListItemLine]" }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: AlfrescoIconComponent, selector: "adf-alfresco-icon" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
5738
5803
  }
5739
5804
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AttachFileWidgetComponent, decorators: [{
5740
5805
  type: Component,
@@ -6394,7 +6459,7 @@ class AttachFormComponent {
6394
6459
  }
6395
6460
  }
6396
6461
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AttachFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6397
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AttachFormComponent, isStandalone: true, selector: "adf-attach-form", inputs: { taskId: "taskId", formKey: "formKey" }, outputs: { cancelAttachForm: "cancelAttachForm", success: "success", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-attach-form\">\n <mat-card appearance=\"outlined\">\n <mat-card-content>\n <div class=\"adf-attache-form-message-container\">\n <mat-card-title class=\"mat-card-title\">\n <h4 class=\"adf-form-title\">{{ 'ADF_TASK_LIST.ATTACH_FORM.SELECT_FORM' | translate }}</h4>\n </mat-card-title>\n <div class=\"adf-attach-form-row\">\n <mat-form-field class=\"adf-grid-full-width\">\n <mat-select [formControl]=\"attachFormControl\" placeholder=\"{{ 'ADF_TASK_LIST.ATTACH_FORM.SELECT_OPTION' | translate }}\" id=\"form_id\" [(ngModel)]=\"selectedFormId\">\n <mat-option *ngFor=\"let form of forms\" [value]=\"form.id\">{{ form.name }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <adf-form *ngIf=\"this.attachFormControl.valid\"\n [formId]=\"selectedFormId\"\n [readOnly]=\"true\"\n [showCompleteButton]=\"false\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\" />\n </div>\n </mat-card-content>\n\n <mat-card-actions class=\"adf-attach-form-mat-card-actions\">\n <div>\n <button mat-button id=\"adf-attach-form-remove-button\" *ngIf=\"formKey\" (click)=\"onRemoveButtonClick()\">{{ 'ADF_TASK_LIST.ATTACH_FORM.REMOVE_FORM' | translate }}</button>\n </div>\n <div>\n <button mat-button id=\"adf-attach-form-cancel-button\" (click)=\"onCancelButtonClick()\">{{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}</button>\n <button mat-button id=\"adf-attach-form-attach-button\" [disabled]=\"disableSubmit\" (click)=\"onAttachFormButtonClick()\">{{ 'ADF_TASK_LIST.START_TASK.FORM.LABEL.ATTACHFORM' | translate }}</button>\n </div>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-attach-form .mat-mdc-form-field{width:100%}.adf-attach-form-row{display:flex;justify-content:space-between;margin:20px 0}.adf-attach-form .adf-attach-form-mat-card-actions{justify-content:space-between;margin-top:30px;text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: FormComponent, selector: "adf-form", inputs: ["taskId", "nodeId", "formId", "formName", "saveMetadata", "data", "enableFixedSpacedForm"], outputs: ["formSaved", "formCompleted", "formContentClicked", "formLoaded", "formDataRefreshed"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
6462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AttachFormComponent, isStandalone: true, selector: "adf-attach-form", inputs: { taskId: "taskId", formKey: "formKey" }, outputs: { cancelAttachForm: "cancelAttachForm", success: "success", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-attach-form\">\n <mat-card appearance=\"outlined\">\n <mat-card-content>\n <div class=\"adf-attache-form-message-container\">\n <mat-card-title class=\"mat-card-title\">\n <h4 class=\"adf-form-title\">{{ 'ADF_TASK_LIST.ATTACH_FORM.SELECT_FORM' | translate }}</h4>\n </mat-card-title>\n <div class=\"adf-attach-form-row\">\n <mat-form-field class=\"adf-grid-full-width\">\n <mat-select [formControl]=\"attachFormControl\" placeholder=\"{{ 'ADF_TASK_LIST.ATTACH_FORM.SELECT_OPTION' | translate }}\" id=\"form_id\" [(ngModel)]=\"selectedFormId\">\n <mat-option *ngFor=\"let form of forms\" [value]=\"form.id\">{{ form.name }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <adf-form *ngIf=\"this.attachFormControl.valid\"\n [formId]=\"selectedFormId\"\n [readOnly]=\"true\"\n [showCompleteButton]=\"false\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\" />\n </div>\n </mat-card-content>\n\n <mat-card-actions class=\"adf-attach-form-mat-card-actions\">\n <div>\n <button mat-button id=\"adf-attach-form-remove-button\" *ngIf=\"formKey\" (click)=\"onRemoveButtonClick()\">{{ 'ADF_TASK_LIST.ATTACH_FORM.REMOVE_FORM' | translate }}</button>\n </div>\n <div>\n <button mat-button id=\"adf-attach-form-cancel-button\" (click)=\"onCancelButtonClick()\">{{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}</button>\n <button mat-button id=\"adf-attach-form-attach-button\" [disabled]=\"disableSubmit\" (click)=\"onAttachFormButtonClick()\">{{ 'ADF_TASK_LIST.START_TASK.FORM.LABEL.ATTACHFORM' | translate }}</button>\n </div>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-attach-form .mat-mdc-form-field{width:100%}.adf-attach-form-row{display:flex;justify-content:space-between;margin:20px 0}.adf-attach-form .adf-attach-form-mat-card-actions{justify-content:space-between;margin-top:30px;text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: FormComponent, selector: "adf-form", inputs: ["taskId", "nodeId", "formId", "formName", "saveMetadata", "data", "enableFixedSpacedForm"], outputs: ["formSaved", "formCompleted", "formContentClicked", "formLoaded", "formDataRefreshed"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
6398
6463
  }
6399
6464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AttachFormComponent, decorators: [{
6400
6465
  type: Component,
@@ -6498,7 +6563,7 @@ class ChecklistComponent {
6498
6563
  this.taskName = '';
6499
6564
  }
6500
6565
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ChecklistComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6501
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: ChecklistComponent, isStandalone: true, selector: "adf-checklist", inputs: { taskId: "taskId", readOnly: "readOnly", assignee: "assignee" }, outputs: { checklistTaskCreated: "checklistTaskCreated", checklistTaskDeleted: "checklistTaskDeleted", error: "error" }, viewQueries: [{ propertyName: "addNewDialog", first: true, predicate: ["dialog"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-checklist-control\">\n <mat-chip-listbox data-automation-id=\"checklist-label\">\n <span class=\"adf-activiti-label\">{{ 'ADF_TASK_LIST.DETAILS.LABELS.CHECKLIST' | translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" selected=\"true\">{{checklist?.length}}</mat-chip-option>\n </mat-chip-listbox>\n\n\n <button mat-icon-button *ngIf=\"!readOnly\" title=\"Add a checklist\"\n id=\"add-checklist\" class=\"adf-add-to-checklist-button\" (click)=\"showDialog()\">\n <mat-icon>add</mat-icon>\n </button>\n</div>\n\n<div class=\"adf-checklist-menu-container\" *ngIf=\"checklist?.length > 0\">\n <mat-chip-listbox class=\"mat-chip-list-stacked\">\n <mat-chip-option id=\"check-{{check.id}}\" class=\"adf-checklist-chip\" *ngFor=\"let check of checklist\"\n (removed)=\"delete(check.id)\">\n <span>{{check.name}}</span>\n <mat-icon *ngIf=\"!readOnly && !check.endDate\" id=\"remove-{{check.id}}\" matChipRemove>cancel\n </mat-icon>\n </mat-chip-option>\n </mat-chip-listbox>\n\n</div>\n<div *ngIf=\"checklist?.length === 0\" id=\"checklist-none-message\" class=\"adf-checklist-none-message\">\n {{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.NONE' | translate }}\n</div>\n\n<ng-template #dialog>\n <div class=\"adf-checklist-dialog\" id=\"checklist-dialog\">\n <h4 matDialogTitle id=\"add-checklist-title\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.TITLE' | translate }}</h4>\n <mat-dialog-content>\n <mat-form-field>\n <input matInput placeholder=\"{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.PLACEHOLDER' | translate }}\" [(ngModel)]=\"taskName\" id=\"checklist-name\"\n data-automation-id=\"checklist-name\">\n </mat-form-field>\n </mat-dialog-content>\n <mat-dialog-actions class=\"adf-checklist-dialog-actions\">\n <button mat-button type=\"button\" id=\"close-check-dialog\" (click)=\"cancel()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.CANCEL-BUTTON' | translate | uppercase }}</button>\n <button mat-button type=\"button\" id=\"add-check\" (click)=\"add()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.ADD-BUTTON' | translate | uppercase }}</button>\n </mat-dialog-actions>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.adf-activiti-label{font-weight:bolder}.mat-mdc-form-field{width:100%}.adf-checklist-cancel-button{margin-top:-13px;margin-right:-13px;float:right}.adf-checklist-chip{outline:none}.adf-checklist-menu-container,.adf-checklist-none-message{margin-top:10px}.adf-checklist-control{display:flex;justify-content:space-between}.adf-checklist-control .adfactiviti-label{margin-top:6px;margin-right:10px}.adf-checklist-control .adf-add-to-checklist-button{float:right}.adf-checklist-dialog-actions{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
6566
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: ChecklistComponent, isStandalone: true, selector: "adf-checklist", inputs: { taskId: "taskId", readOnly: "readOnly", assignee: "assignee" }, outputs: { checklistTaskCreated: "checklistTaskCreated", checklistTaskDeleted: "checklistTaskDeleted", error: "error" }, viewQueries: [{ propertyName: "addNewDialog", first: true, predicate: ["dialog"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-checklist-control\">\n <mat-chip-listbox data-automation-id=\"checklist-label\">\n <span class=\"adf-activiti-label\">{{ 'ADF_TASK_LIST.DETAILS.LABELS.CHECKLIST' | translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" selected=\"true\">{{checklist?.length}}</mat-chip-option>\n </mat-chip-listbox>\n\n\n <button mat-icon-button *ngIf=\"!readOnly\" title=\"Add a checklist\"\n id=\"add-checklist\" class=\"adf-add-to-checklist-button\" (click)=\"showDialog()\">\n <mat-icon>add</mat-icon>\n </button>\n</div>\n\n<div class=\"adf-checklist-menu-container\" *ngIf=\"checklist?.length > 0\">\n <mat-chip-listbox class=\"mat-chip-list-stacked\">\n <mat-chip-option id=\"check-{{check.id}}\" class=\"adf-checklist-chip\" *ngFor=\"let check of checklist\"\n (removed)=\"delete(check.id)\">\n <span>{{check.name}}</span>\n <mat-icon *ngIf=\"!readOnly && !check.endDate\" id=\"remove-{{check.id}}\" matChipRemove>cancel\n </mat-icon>\n </mat-chip-option>\n </mat-chip-listbox>\n\n</div>\n<div *ngIf=\"checklist?.length === 0\" id=\"checklist-none-message\" class=\"adf-checklist-none-message\">\n {{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.NONE' | translate }}\n</div>\n\n<ng-template #dialog>\n <div class=\"adf-checklist-dialog\" id=\"checklist-dialog\">\n <h4 matDialogTitle id=\"add-checklist-title\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.TITLE' | translate }}</h4>\n <mat-dialog-content>\n <mat-form-field>\n <input matInput placeholder=\"{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.PLACEHOLDER' | translate }}\" [(ngModel)]=\"taskName\" id=\"checklist-name\"\n data-automation-id=\"checklist-name\">\n </mat-form-field>\n </mat-dialog-content>\n <mat-dialog-actions class=\"adf-checklist-dialog-actions\">\n <button mat-button type=\"button\" id=\"close-check-dialog\" (click)=\"cancel()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.CANCEL-BUTTON' | translate | uppercase }}</button>\n <button mat-button type=\"button\" id=\"add-check\" (click)=\"add()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.ADD-BUTTON' | translate | uppercase }}</button>\n </mat-dialog-actions>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.adf-activiti-label{font-weight:bolder}.mat-mdc-form-field{width:100%}.adf-checklist-cancel-button{margin-top:-13px;margin-right:-13px;float:right}.adf-checklist-chip{outline:none}.adf-checklist-menu-container,.adf-checklist-none-message{margin-top:10px}.adf-checklist-control{display:flex;justify-content:space-between}.adf-checklist-control .adfactiviti-label{margin-top:6px;margin-right:10px}.adf-checklist-control .adf-add-to-checklist-button{float:right}.adf-checklist-dialog-actions{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i4$1.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i4$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
6502
6567
  }
6503
6568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ChecklistComponent, decorators: [{
6504
6569
  type: Component,
@@ -7529,7 +7594,7 @@ class PeopleSearchFieldComponent {
7529
7594
  return this.getDisplayUser(firstName, lastName, '');
7530
7595
  }
7531
7596
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PeopleSearchFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7532
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PeopleSearchFieldComponent, isStandalone: true, selector: "adf-people-search-field", inputs: { performSearch: "performSearch", placeholder: "placeholder" }, outputs: { rowClick: "rowClick" }, host: { classAttribute: "adf-people-search-field" }, ngImport: i0, template: "<mat-form-field class=\"adf-search-text-container\">\n <input\n matInput\n placeholder=\"{{ searchPlaceholder }}\"\n type=\"text\"\n id=\"userSearchText\"\n [value]=\"\"\n [formControl]=\"searchUser\"\n data-automation-id=\"adf-people-search-input\">\n</mat-form-field>\n<ng-container *ngIf=\"users$ | async; let users\">\n <div class=\"adf-search-list-container\" id=\"search-people-list\" *ngIf=\"users.length > 0\">\n <adf-people-list [users]=\"users\" (clickRow)=\"onRowClick($event)\">\n <data-columns>\n <data-column key=\"firstName\">\n <ng-template let-entry=\"$implicit\">\n <div *ngIf=\"!entry.row.obj.pictureId\" class=\"adf-people-pic\">\n {{getInitialUserName(entry.row.obj.firstName, entry.row.obj.lastName)}}</div>\n <div>\n <img [alt]=\"getDisplayUser(entry.row.obj.firstName, entry.row.obj.lastName, ' ')\" *ngIf=\"entry.row.obj.pictureId\" class=\"adf-people-img\"\n [src]=\"peopleProcessService.getUserImage(entry.row.obj.id.toString())\"/>\n </div>\n </ng-template>\n </data-column>\n <data-column key=\"email\" class=\"adf-full-width\">\n <ng-template let-entry=\"$implicit\">\n <div [attr.data-automation-id]=\"'adf-people-full-name-'+ getDisplayUser(entry.row.obj.firstName, entry.row.obj.lastName, '-')\" class=\"adf-people-full-name\">{{ getDisplayUser(entry.row.obj.firstName, entry.row.obj.lastName, ' ') }}</div>\n </ng-template>\n </data-column>\n </data-columns>\n </adf-people-list>\n </div>\n</ng-container>\n", styles: [".adf-people-search-field,.adf-people-search-field .adf-search-text-container{width:100%}.adf-people-search-field .adf-search-text-container input{line-height:normal}.adf-people-search-field .adf-search-list-container{max-height:152px;width:100%;overflow-y:auto}.adf-people-search-field adf-people-list ::ng-deep adf-datatable ::ng-deep thead{display:none}.adf-people-search-field .adf-people-pic{background:var(--mat-sys-primary);width:30px;padding:10px 5px;border-radius:90%;color:var(--mat-sys-on-primary);text-align:center;font:var(--mat-sys-label-large);text-transform:uppercase;vertical-align:text-bottom}.adf-people-search-field .adf-people-img{border-radius:90%;width:40px;height:40px;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: PeopleListComponent, selector: "adf-people-list", inputs: ["users", "actions"], outputs: ["clickRow", "clickAction"] }, { kind: "component", type: DataColumnListComponent, selector: "data-columns" }, { kind: "component", type: DataColumnComponent, selector: "data-column", inputs: ["id", "key", "customData", "type", "format", "sortable", "draggable", "resizable", "isHidden", "title", "subtitle", "formatTooltip", "sr-title", "class", "copyContent", "editable", "focus", "sortingKey", "order", "currencyConfig", "decimalConfig", "dateConfig"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
7597
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PeopleSearchFieldComponent, isStandalone: true, selector: "adf-people-search-field", inputs: { performSearch: "performSearch", placeholder: "placeholder" }, outputs: { rowClick: "rowClick" }, host: { classAttribute: "adf-people-search-field" }, ngImport: i0, template: "<mat-form-field class=\"adf-search-text-container\">\n <input\n matInput\n placeholder=\"{{ searchPlaceholder }}\"\n type=\"text\"\n id=\"userSearchText\"\n [value]=\"\"\n [formControl]=\"searchUser\"\n data-automation-id=\"adf-people-search-input\">\n</mat-form-field>\n<ng-container *ngIf=\"users$ | async; let users\">\n <div class=\"adf-search-list-container\" id=\"search-people-list\" *ngIf=\"users.length > 0\">\n <adf-people-list [users]=\"users\" (clickRow)=\"onRowClick($event)\">\n <data-columns>\n <data-column key=\"firstName\">\n <ng-template let-entry=\"$implicit\">\n <div *ngIf=\"!entry.row.obj.pictureId\" class=\"adf-people-pic\">\n {{getInitialUserName(entry.row.obj.firstName, entry.row.obj.lastName)}}</div>\n <div>\n <img [alt]=\"getDisplayUser(entry.row.obj.firstName, entry.row.obj.lastName, ' ')\" *ngIf=\"entry.row.obj.pictureId\" class=\"adf-people-img\"\n [src]=\"peopleProcessService.getUserImage(entry.row.obj.id.toString())\"/>\n </div>\n </ng-template>\n </data-column>\n <data-column key=\"email\" class=\"adf-full-width\">\n <ng-template let-entry=\"$implicit\">\n <div [attr.data-automation-id]=\"'adf-people-full-name-'+ getDisplayUser(entry.row.obj.firstName, entry.row.obj.lastName, '-')\" class=\"adf-people-full-name\">{{ getDisplayUser(entry.row.obj.firstName, entry.row.obj.lastName, ' ') }}</div>\n </ng-template>\n </data-column>\n </data-columns>\n </adf-people-list>\n </div>\n</ng-container>\n", styles: [".adf-people-search-field,.adf-people-search-field .adf-search-text-container{width:100%}.adf-people-search-field .adf-search-text-container input{line-height:normal}.adf-people-search-field .adf-search-list-container{max-height:152px;width:100%;overflow-y:auto}.adf-people-search-field adf-people-list ::ng-deep adf-datatable ::ng-deep thead{display:none}.adf-people-search-field .adf-people-pic{background:var(--mat-sys-primary);width:30px;padding:10px 5px;border-radius:90%;color:var(--mat-sys-on-primary);text-align:center;font:var(--mat-sys-label-large);text-transform:uppercase;vertical-align:text-bottom}.adf-people-search-field .adf-people-img{border-radius:90%;width:40px;height:40px;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: PeopleListComponent, selector: "adf-people-list", inputs: ["users", "actions"], outputs: ["clickRow", "clickAction"] }, { kind: "component", type: DataColumnListComponent, selector: "data-columns" }, { kind: "component", type: DataColumnComponent, selector: "data-column", inputs: ["id", "key", "customData", "type", "format", "sortable", "draggable", "resizable", "isHidden", "title", "subtitle", "formatTooltip", "sr-title", "class", "copyContent", "editable", "focus", "sortingKey", "order", "currencyConfig", "decimalConfig", "dateConfig"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
7533
7598
  }
7534
7599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PeopleSearchFieldComponent, decorators: [{
7535
7600
  type: Component,
@@ -8811,7 +8876,7 @@ class StartTaskComponent {
8811
8876
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: StartTaskComponent, isStandalone: true, selector: "adf-start-task", inputs: { appId: "appId", name: "name" }, outputs: { success: "success", cancel: "cancel", error: "error" }, providers: [
8812
8877
  { provide: DateAdapter, useClass: AdfDateFnsAdapter },
8813
8878
  { provide: MAT_DATE_FORMATS, useValue: ADF_DATE_FORMATS }
8814
- ], ngImport: i0, template: "<mat-card appearance=\"outlined\" class=\"adf-new-task-layout-card\">\n <mat-card-header class=\"adf-new-task-heading\">\n <mat-card-title>{{'ADF_TASK_LIST.START_TASK.FORM.TITLE' | translate}}</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <form [formGroup]=\"taskForm\" class=\"adf-new-task-form\">\n <div class=\"adf-task-name\">\n <mat-form-field>\n <mat-label>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.NAME' | translate}}</mat-label>\n <input\n matInput\n id=\"name_id\"\n formControlName=\"name\">\n @if (nameController.invalid) {\n <mat-error>\n <span class=\"adf-error-text\"\n >@if (nameController.hasError('required') || nameController.hasError('whitespace')) {{{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.REQUIRED' | translate }}} @else if (nameController.hasError('maxlength')) {{{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxTaskNameLength } }}}</span>\n </mat-error>\n }\n </mat-form-field>\n </div>\n <div class=\"adf-task-description\">\n <mat-form-field>\n <mat-label>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.DESCRIPTION' | translate}}</mat-label>\n <textarea\n matInput\n rows=\"1\"\n id=\"description_id\"\n formControlName=\"description\">\n </textarea>\n @if (descriptionController.hasError('whitespace')) {\n <mat-error>\n <span class=\"adf-error-text\">{{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.MESSAGE' | translate }}</span>\n </mat-error>\n }\n </mat-form-field>\n </div>\n <div class=\"adf-input-row\">\n <mat-form-field class=\"adf-form-field-input\">\n <input\n matInput\n (keyup)=\"onDateChanged($any($event).srcElement.value)\"\n (dateInput)=\"onDateChanged($any($event).value)\"\n [matDatepicker]=\"taskDatePicker\"\n [errorStateMatcher]=\"dateErrorStateMatcher\"\n placeholder=\"{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.DATE'|translate}}\"\n id=\"date_id\">\n <mat-datepicker-toggle\n matSuffix\n [for]=\"taskDatePicker\" />\n <mat-datepicker\n #taskDatePicker\n [touchUi]=\"true\" />\n @if (dateError) {\n <mat-error>\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n <span class=\"adf-error-text\">{{'ADF_TASK_LIST.START_TASK.FORM.ERROR.DATE'|translate}}</span>\n </mat-error>\n }\n </mat-form-field>\n <people-widget\n (peopleSelected)=\"setAssigneeId($event)\"\n [field]=\"field\"\n class=\"adf-people-widget-content\" />\n </div>\n <mat-form-field class=\"adf-task-form\">\n <mat-label id=\"form_label\">{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.FORM'|translate}}</mat-label>\n <mat-select\n id=\"form_id\"\n class=\"form-control\"\n formControlName=\"formKey\">\n <mat-option>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.NONE'|translate}}</mat-option>\n <mat-option *ngFor=\"let form of forms$ | async\" [value]=\"form.id\">{{ form.name }}</mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-actions>\n <div class=\"adf-new-task-footer\">\n <button\n mat-button\n class=\"adf-uppercase\"\n (click)=\"onCancel()\"\n id=\"button-cancel\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}\n </button>\n <button\n mat-button\n class=\"adf-uppercase\"\n [disabled]=\"!isFormValid()\"\n (click)=\"saveTask()\"\n id=\"button-start\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.START' | translate }}\n </button>\n </div>\n </mat-card-actions>\n</mat-card>\n", styles: [".adf-new-task-heading{padding-top:12px;border-bottom:1px solid var(--mat-sys-outline-variant)}.adf-new-task-layout-card{margin:10px auto;flex:1 1 100%;max-width:70%}.adf-new-task-layout-card .adf-new-task-form{flex-direction:column;display:flex}.adf-new-task-layout-card .adf-new-task-form .adf-task-name,.adf-new-task-layout-card .adf-new-task-form .adf-task-description{display:flex;margin-bottom:10px}.adf-new-task-layout-card .adf-new-task-form .adf-task-name mat-form-field,.adf-new-task-layout-card .adf-new-task-form .adf-task-description mat-form-field{flex:1}@media(max-width:959.9px){.adf-new-task-layout-card .adf-new-task-form .adf-input-row{flex-direction:column}}@media(max-width:959.9px){.adf-new-task-layout-card .adf-new-task-form .adf-input-row mat-form-field{margin-right:20px}}.adf-new-task-layout-card .adf-new-task-form .adf-task-form{flex:1 1 100%;box-sizing:border-box;max-width:48%}@media(max-width:599.9px){.adf-new-task-layout-card .adf-new-task-form .adf-task-form{max-width:100%}}.adf-new-task-footer{padding:4px;font:var(--mat-sys-body-medium);border-top:1px solid var(--mat-sys-outline-variant);display:flex;place-content:flex-end;align-items:flex-end}.adf-mat-select{padding-top:0}adf-start-task button.adf-uppercase{text-transform:uppercase}adf-start-task people-widget.adf-people-widget-content{width:100%}adf-start-task .adf-people-widget-content .adf-people-widget-field{width:100%}adf-start-task .adf-people-widget-content .adf-error-container{margin-top:-10px}adf-start-task .adf-start-task-input-container{padding-top:8px}adf-start-task .adf-error-text-container{position:absolute;height:20px;margin-top:12px;width:100%}adf-start-task .adf-error-text-container>div{display:flex;flex-flow:row;justify-content:flex-start}adf-start-task .adf-error-text{padding-right:8px;height:16px;font:var(--mat-sys-body-small);line-height:1.33;color:var(--mat-sys-error);width:auto}adf-start-task .adf-label{color:var(--mat-sys-outline)}adf-start-task .adf-invalid .adf-file{border-color:var(--mat-sys-error)}adf-start-task .adf-invalid .adf-input{border-color:var(--mat-sys-error)}adf-start-task .adf-invalid .adf-label{color:var(--mat-sys-error)}adf-start-task .adf-invalid .adf-label:after{background-color:var(--mat-sys-error)}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: PeopleWidgetComponent, selector: "people-widget", outputs: ["peopleSelected"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
8879
+ ], ngImport: i0, template: "<mat-card appearance=\"outlined\" class=\"adf-new-task-layout-card\">\n <mat-card-header class=\"adf-new-task-heading\">\n <mat-card-title>{{'ADF_TASK_LIST.START_TASK.FORM.TITLE' | translate}}</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <form [formGroup]=\"taskForm\" class=\"adf-new-task-form\">\n <div class=\"adf-task-name\">\n <mat-form-field>\n <mat-label>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.NAME' | translate}}</mat-label>\n <input\n matInput\n id=\"name_id\"\n formControlName=\"name\">\n @if (nameController.invalid) {\n <mat-error>\n <span class=\"adf-error-text\"\n >@if (nameController.hasError('required') || nameController.hasError('whitespace')) {{{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.REQUIRED' | translate }}} @else if (nameController.hasError('maxlength')) {{{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxTaskNameLength } }}}</span>\n </mat-error>\n }\n </mat-form-field>\n </div>\n <div class=\"adf-task-description\">\n <mat-form-field>\n <mat-label>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.DESCRIPTION' | translate}}</mat-label>\n <textarea\n matInput\n rows=\"1\"\n id=\"description_id\"\n formControlName=\"description\">\n </textarea>\n @if (descriptionController.hasError('whitespace')) {\n <mat-error>\n <span class=\"adf-error-text\">{{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.MESSAGE' | translate }}</span>\n </mat-error>\n }\n </mat-form-field>\n </div>\n <div class=\"adf-input-row\">\n <mat-form-field class=\"adf-form-field-input\">\n <input\n matInput\n (keyup)=\"onDateChanged($any($event).srcElement.value)\"\n (dateInput)=\"onDateChanged($any($event).value)\"\n [matDatepicker]=\"taskDatePicker\"\n [errorStateMatcher]=\"dateErrorStateMatcher\"\n placeholder=\"{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.DATE'|translate}}\"\n id=\"date_id\">\n <mat-datepicker-toggle\n matSuffix\n [for]=\"taskDatePicker\" />\n <mat-datepicker\n #taskDatePicker\n [touchUi]=\"true\" />\n @if (dateError) {\n <mat-error>\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n <span class=\"adf-error-text\">{{'ADF_TASK_LIST.START_TASK.FORM.ERROR.DATE'|translate}}</span>\n </mat-error>\n }\n </mat-form-field>\n <people-widget\n (peopleSelected)=\"setAssigneeId($event)\"\n [field]=\"field\"\n class=\"adf-people-widget-content\" />\n </div>\n <mat-form-field class=\"adf-task-form\">\n <mat-label id=\"form_label\">{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.FORM'|translate}}</mat-label>\n <mat-select\n id=\"form_id\"\n class=\"form-control\"\n formControlName=\"formKey\">\n <mat-option>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.NONE'|translate}}</mat-option>\n <mat-option *ngFor=\"let form of forms$ | async\" [value]=\"form.id\">{{ form.name }}</mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-actions>\n <div class=\"adf-new-task-footer\">\n <button\n mat-button\n class=\"adf-uppercase\"\n (click)=\"onCancel()\"\n id=\"button-cancel\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}\n </button>\n <button\n mat-button\n class=\"adf-uppercase\"\n [disabled]=\"!isFormValid()\"\n (click)=\"saveTask()\"\n id=\"button-start\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.START' | translate }}\n </button>\n </div>\n </mat-card-actions>\n</mat-card>\n", styles: [".adf-new-task-heading{padding-top:12px;border-bottom:1px solid var(--mat-sys-outline-variant)}.adf-new-task-layout-card{margin:10px auto;flex:1 1 100%;max-width:70%}.adf-new-task-layout-card .adf-new-task-form{flex-direction:column;display:flex}.adf-new-task-layout-card .adf-new-task-form .adf-task-name,.adf-new-task-layout-card .adf-new-task-form .adf-task-description{display:flex;margin-bottom:10px}.adf-new-task-layout-card .adf-new-task-form .adf-task-name mat-form-field,.adf-new-task-layout-card .adf-new-task-form .adf-task-description mat-form-field{flex:1}@media(max-width:959.9px){.adf-new-task-layout-card .adf-new-task-form .adf-input-row{flex-direction:column}}@media(max-width:959.9px){.adf-new-task-layout-card .adf-new-task-form .adf-input-row mat-form-field{margin-right:20px}}.adf-new-task-layout-card .adf-new-task-form .adf-task-form{flex:1 1 100%;box-sizing:border-box;max-width:48%}@media(max-width:599.9px){.adf-new-task-layout-card .adf-new-task-form .adf-task-form{max-width:100%}}.adf-new-task-footer{padding:4px;font:var(--mat-sys-body-medium);border-top:1px solid var(--mat-sys-outline-variant);display:flex;place-content:flex-end;align-items:flex-end}.adf-mat-select{padding-top:0}adf-start-task button.adf-uppercase{text-transform:uppercase}adf-start-task people-widget.adf-people-widget-content{width:100%}adf-start-task .adf-people-widget-content .adf-people-widget-field{width:100%}adf-start-task .adf-people-widget-content .adf-error-container{margin-top:-10px}adf-start-task .adf-start-task-input-container{padding-top:8px}adf-start-task .adf-error-text-container{position:absolute;height:20px;margin-top:12px;width:100%}adf-start-task .adf-error-text-container>div{display:flex;flex-flow:row;justify-content:flex-start}adf-start-task .adf-error-text{padding-right:8px;height:16px;font:var(--mat-sys-body-small);line-height:1.33;color:var(--mat-sys-error);width:auto}adf-start-task .adf-label{color:var(--mat-sys-outline)}adf-start-task .adf-invalid .adf-file{border-color:var(--mat-sys-error)}adf-start-task .adf-invalid .adf-input{border-color:var(--mat-sys-error)}adf-start-task .adf-invalid .adf-label{color:var(--mat-sys-error)}adf-start-task .adf-invalid .adf-label:after{background-color:var(--mat-sys-error)}.adf-form-field-input .adf-error-icon{font-size:16px;width:16px;height:16px;margin-right:4px;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: PeopleWidgetComponent, selector: "people-widget", outputs: ["peopleSelected"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
8815
8880
  }
8816
8881
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: StartTaskComponent, decorators: [{
8817
8882
  type: Component,
@@ -9129,7 +9194,7 @@ class ProcessInstanceTasksComponent {
9129
9194
  this.closeStartDialog();
9130
9195
  }
9131
9196
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessInstanceTasksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: ProcessInstanceTasksComponent, isStandalone: true, selector: "adf-process-instance-tasks", inputs: { processInstanceDetails: "processInstanceDetails", showRefreshButton: "showRefreshButton" }, outputs: { error: "error", taskClick: "taskClick" }, viewQueries: [{ propertyName: "startDialog", first: true, predicate: ["startDialog"], descendants: true }, { propertyName: "taskDetails", first: true, predicate: ["taskDetails"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"showRefreshButton\" class=\"process-tasks-refresh\" >\n <button mat-icon-button (click)=\"onRefreshClicked()\">\n <mat-icon class=\"md-24\" [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.LABELS.REFRESH' | translate\">refresh</mat-icon>\n </button>\n</div>\n\n<!-- ACTIVE FORM -->\n\n<mat-chip-listbox>\n <span class=\"adf-chip-label\">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_ACTIVE'|translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" selected=\"true\">{{activeTasks?.length}}</mat-chip-option>\n</mat-chip-listbox>\n\n<div class=\"menu-container\" *ngIf=\"activeTasks?.length > 0\" data-automation-id=\"active-tasks\">\n <mat-list>\n <mat-list-item class=\"process-tasks__task-item\" *ngFor=\"let task of activeTasks\" (click)=\"clickTask(task)\">\n <mat-icon matListItemLine>assignment</mat-icon>\n <h3 matLine>{{task.name || 'Nameless task'}}</h3>\n <span matLine>\n {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASK_SUBTITLE' | translate:{user: getUserFullName(task.assignee), created: getFormatDate(task.created, 'mediumDate') } }}\n </span>\n </mat-list-item>\n </mat-list>\n</div>\n\n<!-- START FORM -->\n\n<div *ngIf=\"activeTasks?.length === 0\" data-automation-id=\"active-tasks-none\" class=\"no-results\">\n {{ 'ADF_PROCESS_LIST.DETAILS.TASKS.NO_ACTIVE' | translate }}\n</div>\n\n<div *ngIf=\"hasStartFormDefined()\">\n <span class=\"adf-activiti-label\">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.START_FORM'|translate }}</span>\n\n <!--IF START TASK COMPLETED -->\n <div class=\"menu-container\" data-automation-id=\"start-form\">\n <mat-list>\n <mat-list-item class=\"process-tasks__task-item\" (click)=\"clickStartTask()\">\n <mat-icon matListItemLine>assignment</mat-icon>\n <h3 matLine>{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.START_FORM'|translate }}</h3>\n <span matLine>\n {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASK_SUBTITLE' | translate:{user:getUserFullName(processInstanceDetails.startedBy), created: getFormatDate(processInstanceDetails.started, 'mediumDate') } }}\n </span>\n </mat-list-item>\n </mat-list>\n </div>\n\n</div>\n\n<!-- COMPLETED FORM -->\n<mat-chip-listbox>\n <span class=\"adf-chip-label\">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_COMPLETED'|translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" selected=\"true\">{{completedTasks?.length}}</mat-chip-option>\n</mat-chip-listbox>\n\n<div class=\"menu-container\" *ngIf=\"completedTasks?.length > 0\" data-automation-id=\"completed-tasks\">\n <mat-list>\n <mat-list-item class=\"process-tasks__task-item\" *ngFor=\"let task of completedTasks\" (click)=\"clickTask(task)\">\n <mat-icon matListItemLine>assignment</mat-icon>\n <h3 matLine>{{task.name || 'Nameless task'}}</h3>\n <span matLine>\n {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASK_SUBTITLE' | translate:{user:getUserFullName(task.assignee), created: getFormatDate(task.created, 'mediumDate') } }}\n </span>\n </mat-list-item>\n </mat-list>\n</div>\n\n<div *ngIf=\"completedTasks?.length === 0\" data-automation-id=\"completed-tasks-none\" class=\"no-results\">\n {{ 'ADF_PROCESS_LIST.DETAILS.TASKS.NO_COMPLETED' | translate }}\n</div>\n\n<ng-template *ngIf=\"hasStartFormDefined()\" #startDialog>\n <div id=\"adf-start-process-dialog\" class=\"adf-start-process-dialog\">\n <h4 matDialogTitle>{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.START_FORM'|translate }}</h4>\n <div mat-dialog-content class=\"adf-start-process-dialog-content\">\n <adf-start-form [processId]=\"processId\"\n [showRefreshButton]=\"false\" [readOnlyForm]=\"true\"\n (formContentClicked)='onFormContentClick()' />\n </div>\n <div mat-dialog-actions class=\"adf-start-process-dialog-actions\">\n <button mat-button type=\"button\" (click)=\"closeStartDialog()\">{{ 'ADF_PROCESS_LIST.DETAILS.TASKS.TASK_CLOSE' | translate }}</button>\n </div>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.activiti-label{font-weight:bolder;vertical-align:top}.adf-process-badge{pointer-events:none;outline:none}.adf-chip-label{position:relative;top:5px;margin-right:8px;font-weight:700}.menu-container{margin-bottom:32px}.activiti-label+.icon{position:relative;top:-2px}.task-details-dialog{position:fixed;top:50%;transform:translateY(-50%);width:40%}.process-tasks-refresh{float:right}.adf-start-process-dialog{width:100%;height:100%;display:flex;flex-direction:column}.adf-start-process-dialog-content{flex-grow:1}.adf-start-process-dialog-actions{display:flex;justify-content:flex-end}.no-results{margin-left:9px;font:var(--mat-sys-body-medium);display:block;padding:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$2.MatListItemLine, selector: "[matListItemLine]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: StartFormComponent, selector: "adf-start-form", inputs: ["processDefinitionId", "processId", "showOutcomeButtons", "showRefreshButton", "readOnlyForm"], outputs: ["outcomeClick", "formContentClicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
9197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: ProcessInstanceTasksComponent, isStandalone: true, selector: "adf-process-instance-tasks", inputs: { processInstanceDetails: "processInstanceDetails", showRefreshButton: "showRefreshButton" }, outputs: { error: "error", taskClick: "taskClick" }, viewQueries: [{ propertyName: "startDialog", first: true, predicate: ["startDialog"], descendants: true }, { propertyName: "taskDetails", first: true, predicate: ["taskDetails"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"showRefreshButton\" class=\"process-tasks-refresh\" >\n <button mat-icon-button (click)=\"onRefreshClicked()\">\n <mat-icon class=\"md-24\" [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.LABELS.REFRESH' | translate\">refresh</mat-icon>\n </button>\n</div>\n\n<!-- ACTIVE FORM -->\n\n<mat-chip-listbox>\n <span class=\"adf-chip-label\">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_ACTIVE'|translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" selected=\"true\">{{activeTasks?.length}}</mat-chip-option>\n</mat-chip-listbox>\n\n<div class=\"menu-container\" *ngIf=\"activeTasks?.length > 0\" data-automation-id=\"active-tasks\">\n <mat-list>\n <mat-list-item class=\"process-tasks__task-item\" *ngFor=\"let task of activeTasks\" (click)=\"clickTask(task)\">\n <mat-icon matListItemLine>assignment</mat-icon>\n <h3 matLine>{{task.name || 'Nameless task'}}</h3>\n <span matLine>\n {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASK_SUBTITLE' | translate:{user: getUserFullName(task.assignee), created: getFormatDate(task.created, 'mediumDate') } }}\n </span>\n </mat-list-item>\n </mat-list>\n</div>\n\n<!-- START FORM -->\n\n<div *ngIf=\"activeTasks?.length === 0\" data-automation-id=\"active-tasks-none\" class=\"no-results\">\n {{ 'ADF_PROCESS_LIST.DETAILS.TASKS.NO_ACTIVE' | translate }}\n</div>\n\n<div *ngIf=\"hasStartFormDefined()\">\n <span class=\"adf-activiti-label\">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.START_FORM'|translate }}</span>\n\n <!--IF START TASK COMPLETED -->\n <div class=\"menu-container\" data-automation-id=\"start-form\">\n <mat-list>\n <mat-list-item class=\"process-tasks__task-item\" (click)=\"clickStartTask()\">\n <mat-icon matListItemLine>assignment</mat-icon>\n <h3 matLine>{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.START_FORM'|translate }}</h3>\n <span matLine>\n {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASK_SUBTITLE' | translate:{user:getUserFullName(processInstanceDetails.startedBy), created: getFormatDate(processInstanceDetails.started, 'mediumDate') } }}\n </span>\n </mat-list-item>\n </mat-list>\n </div>\n\n</div>\n\n<!-- COMPLETED FORM -->\n<mat-chip-listbox>\n <span class=\"adf-chip-label\">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_COMPLETED'|translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" selected=\"true\">{{completedTasks?.length}}</mat-chip-option>\n</mat-chip-listbox>\n\n<div class=\"menu-container\" *ngIf=\"completedTasks?.length > 0\" data-automation-id=\"completed-tasks\">\n <mat-list>\n <mat-list-item class=\"process-tasks__task-item\" *ngFor=\"let task of completedTasks\" (click)=\"clickTask(task)\">\n <mat-icon matListItemLine>assignment</mat-icon>\n <h3 matLine>{{task.name || 'Nameless task'}}</h3>\n <span matLine>\n {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASK_SUBTITLE' | translate:{user:getUserFullName(task.assignee), created: getFormatDate(task.created, 'mediumDate') } }}\n </span>\n </mat-list-item>\n </mat-list>\n</div>\n\n<div *ngIf=\"completedTasks?.length === 0\" data-automation-id=\"completed-tasks-none\" class=\"no-results\">\n {{ 'ADF_PROCESS_LIST.DETAILS.TASKS.NO_COMPLETED' | translate }}\n</div>\n\n<ng-template *ngIf=\"hasStartFormDefined()\" #startDialog>\n <div id=\"adf-start-process-dialog\" class=\"adf-start-process-dialog\">\n <h4 matDialogTitle>{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.START_FORM'|translate }}</h4>\n <div mat-dialog-content class=\"adf-start-process-dialog-content\">\n <adf-start-form [processId]=\"processId\"\n [showRefreshButton]=\"false\" [readOnlyForm]=\"true\"\n (formContentClicked)='onFormContentClick()' />\n </div>\n <div mat-dialog-actions class=\"adf-start-process-dialog-actions\">\n <button mat-button type=\"button\" (click)=\"closeStartDialog()\">{{ 'ADF_PROCESS_LIST.DETAILS.TASKS.TASK_CLOSE' | translate }}</button>\n </div>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.activiti-label{font-weight:bolder;vertical-align:top}.adf-process-badge{pointer-events:none;outline:none}.adf-chip-label{position:relative;top:5px;margin-right:8px;font-weight:700}.menu-container{margin-bottom:32px}.activiti-label+.icon{position:relative;top:-2px}.task-details-dialog{position:fixed;top:50%;transform:translateY(-50%);width:40%}.process-tasks-refresh{float:right}.adf-start-process-dialog{width:100%;height:100%;display:flex;flex-direction:column}.adf-start-process-dialog-content{flex-grow:1}.adf-start-process-dialog-actions{display:flex;justify-content:flex-end}.no-results{margin-left:9px;font:var(--mat-sys-body-medium);display:block;padding:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i4$1.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$3.MatListItemLine, selector: "[matListItemLine]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: StartFormComponent, selector: "adf-start-form", inputs: ["processDefinitionId", "processId", "showOutcomeButtons", "showRefreshButton", "readOnlyForm"], outputs: ["outcomeClick", "formContentClicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
9133
9198
  }
9134
9199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ProcessInstanceTasksComponent, decorators: [{
9135
9200
  type: Component,
@@ -9724,7 +9789,7 @@ class StartProcessInstanceComponent {
9724
9789
  return processName;
9725
9790
  }
9726
9791
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: StartProcessInstanceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9727
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: StartProcessInstanceComponent, isStandalone: true, selector: "adf-start-process", inputs: { appId: "appId", title: "title", processDefinitionName: "processDefinitionName", variables: "variables", values: "values", name: "name", showSelectProcessDropdown: "showSelectProcessDropdown", showSelectApplicationDropdown: "showSelectApplicationDropdown", processFilterSelector: "processFilterSelector" }, outputs: { start: "start", cancel: "cancel", error: "error", processDefinitionSelection: "processDefinitionSelection", applicationSelection: "applicationSelection" }, viewQueries: [{ propertyName: "startForm", first: true, predicate: ["startForm"], descendants: true }, { propertyName: "inputAutocomplete", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n<ng-container *ngIf=\"isLoading(); then showLoadingTemplate; else showStartProcessTemplate\" />\n <ng-template #showLoadingTemplate>\n <mat-spinner class=\"adf-start-process-loading\" />\n </ng-template>\n<ng-template #showStartProcessTemplate>\n <ng-container *ngIf=\"hasApplications() || hasProcessDefinitions() ; else showEmptyTemplate\">\n <div class=\"adf-start-process\">\n <div class=\"adf-title\" *ngIf=\"title\">{{ title | translate}}</div>\n <div class=\"content\">\n <div class=\"adf-start-process-definition-container\">\n <mat-form-field *ngIf=\"showSelectApplicationDropdown\" class=\"adf-start-process-app-list\">\n <mat-label>{{ 'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.SELECT_APPLICATION' | translate }}</mat-label>\n <mat-select\n placeholder=\"{{ 'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.SELECT_APPLICATION' | translate }}\"\n (selectionChange)=\"onAppSelectionChange($event)\"\n [(ngModel)]=\"selectedApplication\"\n class=\"adf-start-process-definition-select\"\n data-automation-id=\"adf-start-process-apps-drop-down\">\n <mat-option\n *ngFor=\"let application of applications\"\n [value]=\"application\"\n role=\"option\"\n [attr.data-automation-id]=\"'adf-start-process-apps-option-' + application.name\">\n {{ application.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"adf-process-input-container\">\n <mat-label>{{'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.TYPE' | translate}}</mat-label>\n <input\n type=\"text\"\n matInput\n [formControl]=\"processDefinitionInput\"\n [matAutocomplete]=\"auto\"\n id=\"processDefinitionName\">\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayFn\">\n <mat-option *ngFor=\"let processDef of filteredProcessesDefinitions$ | async\" [value]=\"processDef.name\"\n (click)=\"processDefinitionSelectionChanged(processDef)\">\n {{ processDef.name }}\n </mat-option>\n </mat-autocomplete>\n <ng-container *ngIf=\"!isProcessDefinitionsLoading ; else showProcessDefLoadingTemplate\">\n <button\n class=\"adf-start-process-button\"\n id=\"adf-select-process-dropdown\"\n *ngIf=\"showSelectProcessDropdown\"\n mat-icon-button\n (click)=\"displayDropdown($event)\"\n [disabled]=\"isDropdownDisabled()\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.TYPE' | translate | uppercase\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n </ng-container>\n <ng-template #showProcessDefLoadingTemplate>\n <mat-spinner id=\"adf-select-process-spinner\" [diameter]=\"20\" />\n </ng-template>\n </div>\n </mat-form-field>\n </div>\n <mat-form-field class=\"adf-process-input-container adf-process-input-container-process-name\">\n <mat-label>{{'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.NAME' | translate}}</mat-label>\n <input\n matInput\n [formControl]=\"processNameInput\"\n id=\"processName\"\n required/>\n <mat-error *ngIf=\"nameController.hasError('maxlength')\">\n {{ 'ADF_PROCESS_LIST.START_PROCESS.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxProcessNameLength } }}\n </mat-error>\n <mat-error *ngIf=\"nameController.hasError('required')\">\n {{ 'ADF_PROCESS_LIST.START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </mat-error>\n <mat-error *ngIf=\"nameController.hasError('pattern')\">\n {{ 'ADF_PROCESS_LIST.START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </mat-error>\n </mat-form-field>\n\n <ng-container *ngIf=\"!isProcessDefinitionsLoading ; else showStartFormLoadingTemplate\">\n <ng-container *ngIf=\"isProcessDefinitionSelected() ; else emptyProcessDefTemplate\">\n <ng-container *ngIf=\"hasStartForm(); else noStartFormTemplate\">\n <adf-start-form\n #startForm\n [data]=\"populatedFormData\"\n [disableStartProcessButton]=\"processNameInput.invalid\"\n [processDefinitionId]=\"selectedProcessDef.id\"\n (outcomeClick)=\"onOutcomeClick($event)\"\n [showRefreshButton]=\"false\">\n <button\n class=\"adf-start-process-button\"\n adf-form-custom-button\n mat-button\n (click)=\"cancelStartProcess()\"\n id=\"cancel_process\">\n {{'ADF_PROCESS_LIST.START_PROCESS.FORM.ACTION.CANCEL'| translate | uppercase}}\n </button>\n </adf-start-form>\n </ng-container>\n <ng-template #noStartFormTemplate>\n <adf-empty-content\n class=\"adf-start-process-empty-template\"\n [icon]=\"'assessment'\"\n [title]=\"'ADF_PROCESS_LIST.START_PROCESS.NO_START_FORM' | translate\" />\n </ng-template>\n </ng-container>\n <ng-template #emptyProcessDefTemplate>\n <adf-empty-content class=\"adf-start-process-empty-template\"\n [icon]=\"'assessment'\"\n [title]=\"'ADF_PROCESS_LIST.START_PROCESS.NO_PROCESS_DEF_SELECTED' | translate\" />\n </ng-template>\n </ng-container>\n <ng-template #showStartFormLoadingTemplate>\n <mat-spinner class=\"adf-start-process-loading\" />\n </ng-template>\n </div>\n <div class=\"adf-start-process-content-actions\" *ngIf=\"!hasStartForm()\">\n <button\n class=\"adf-start-process-button\"\n mat-button\n *ngIf=\"!hasStartForm()\"\n (click)=\"cancelStartProcess()\"\n id=\"cancel_process\">\n {{'ADF_PROCESS_LIST.START_PROCESS.FORM.ACTION.CANCEL'| translate | uppercase}}\n </button>\n <button\n mat-button\n *ngIf=\"!hasStartForm()\"\n [disabled]=\"!validateForm()\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"btn-start adf-start-process-button\">\n {{'ADF_PROCESS_LIST.START_PROCESS.FORM.ACTION.START' | translate | uppercase}}\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #showEmptyTemplate>\n <adf-empty-content class=\"adf-start-process-empty-template\"\n [icon]=\"'assessment'\"\n [title]=\"'ADF_PROCESS_LIST.START_PROCESS.NO_PROCESS_DEFINITIONS' | translate\" />\n </ng-template>\n</ng-template>\n", styles: [".adf-start-process{width:96%;margin-left:auto;margin-right:auto;margin-top:10px}.adf-start-process mat-form-field{width:100%}.adf-start-process-content-actions{padding-bottom:16px;padding-right:16px;text-align:right}.adf-start-process .mat-mdc-button{width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-title{padding-bottom:1.25em}.adf-process-input-container mat-form-field{width:100%}.adf-process-input-container-process-name{margin-top:16px}.adf-process-input-autocomplete{display:flex;padding-bottom:2px}.adf-process-input-autocomplete .adf-start-process-button{position:absolute;right:-14px;top:10px}.adf-process-input-autocomplete mat-spinner{position:absolute;right:-1px;top:0}.adf-start-form-container .mat-mdc-card-content{margin-bottom:100px}.adf-start-form-container .mat-mdc-card-header{display:none}.adf-start-form-container .adf-start-form-card:has(.adf-start-form-header){box-shadow:none;padding:0}.adf-start-form-actions:has(.adf-start-form-actions-button){text-align:right;padding-bottom:16px}.adf-start-form-actions:has(.adf-start-form-actions-button) button{text-wrap:nowrap}.adf-start-process-definition-container{display:flex;flex-direction:row;justify-content:space-around;align-items:baseline}.adf-start-process-definition-container .adf-start-process-definition-select .mat-mdc-select-arrow-wrapper{transform:none}.adf-start-process-definition-container .adf-start-process-definition-select .mat-mdc-select-arrow-wrapper svg{fill:currentcolor}.adf-start-process-app-list{margin-right:10px}@media(max-width:599.9px){.adf-start-process{width:90%;margin-left:auto;margin-right:auto}}.adf-start-process-loading{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: StartFormComponent, selector: "adf-start-form", inputs: ["processDefinitionId", "processId", "showOutcomeButtons", "showRefreshButton", "readOnlyForm"], outputs: ["outcomeClick", "formContentClicked"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
9792
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: StartProcessInstanceComponent, isStandalone: true, selector: "adf-start-process", inputs: { appId: "appId", title: "title", processDefinitionName: "processDefinitionName", variables: "variables", values: "values", name: "name", showSelectProcessDropdown: "showSelectProcessDropdown", showSelectApplicationDropdown: "showSelectApplicationDropdown", processFilterSelector: "processFilterSelector" }, outputs: { start: "start", cancel: "cancel", error: "error", processDefinitionSelection: "processDefinitionSelection", applicationSelection: "applicationSelection" }, viewQueries: [{ propertyName: "startForm", first: true, predicate: ["startForm"], descendants: true }, { propertyName: "inputAutocomplete", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n<ng-container *ngIf=\"isLoading(); then showLoadingTemplate; else showStartProcessTemplate\" />\n <ng-template #showLoadingTemplate>\n <mat-spinner class=\"adf-start-process-loading\" />\n </ng-template>\n<ng-template #showStartProcessTemplate>\n <ng-container *ngIf=\"hasApplications() || hasProcessDefinitions() ; else showEmptyTemplate\">\n <div class=\"adf-start-process\">\n <div class=\"adf-title\" *ngIf=\"title\">{{ title | translate}}</div>\n <div class=\"content\">\n <div class=\"adf-start-process-definition-container\">\n <mat-form-field *ngIf=\"showSelectApplicationDropdown\" class=\"adf-start-process-app-list\">\n <mat-label>{{ 'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.SELECT_APPLICATION' | translate }}</mat-label>\n <mat-select\n placeholder=\"{{ 'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.SELECT_APPLICATION' | translate }}\"\n (selectionChange)=\"onAppSelectionChange($event)\"\n [(ngModel)]=\"selectedApplication\"\n class=\"adf-start-process-definition-select\"\n data-automation-id=\"adf-start-process-apps-drop-down\">\n <mat-option\n *ngFor=\"let application of applications\"\n [value]=\"application\"\n role=\"option\"\n [attr.data-automation-id]=\"'adf-start-process-apps-option-' + application.name\">\n {{ application.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"adf-process-input-container\">\n <mat-label>{{'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.TYPE' | translate}}</mat-label>\n <input\n type=\"text\"\n matInput\n [formControl]=\"processDefinitionInput\"\n [matAutocomplete]=\"auto\"\n id=\"processDefinitionName\">\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayFn\">\n <mat-option *ngFor=\"let processDef of filteredProcessesDefinitions$ | async\" [value]=\"processDef.name\"\n (click)=\"processDefinitionSelectionChanged(processDef)\">\n {{ processDef.name }}\n </mat-option>\n </mat-autocomplete>\n <ng-container *ngIf=\"!isProcessDefinitionsLoading ; else showProcessDefLoadingTemplate\">\n <button\n class=\"adf-start-process-button\"\n id=\"adf-select-process-dropdown\"\n *ngIf=\"showSelectProcessDropdown\"\n mat-icon-button\n (click)=\"displayDropdown($event)\"\n [disabled]=\"isDropdownDisabled()\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.TYPE' | translate | uppercase\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n </ng-container>\n <ng-template #showProcessDefLoadingTemplate>\n <mat-spinner id=\"adf-select-process-spinner\" [diameter]=\"20\" />\n </ng-template>\n </div>\n </mat-form-field>\n </div>\n <mat-form-field class=\"adf-process-input-container adf-process-input-container-process-name\">\n <mat-label>{{'ADF_PROCESS_LIST.START_PROCESS.FORM.LABEL.NAME' | translate}}</mat-label>\n <input\n matInput\n [formControl]=\"processNameInput\"\n id=\"processName\"\n required/>\n <mat-error *ngIf=\"nameController.hasError('maxlength')\">\n {{ 'ADF_PROCESS_LIST.START_PROCESS.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxProcessNameLength } }}\n </mat-error>\n <mat-error *ngIf=\"nameController.hasError('required')\">\n {{ 'ADF_PROCESS_LIST.START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </mat-error>\n <mat-error *ngIf=\"nameController.hasError('pattern')\">\n {{ 'ADF_PROCESS_LIST.START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </mat-error>\n </mat-form-field>\n\n <ng-container *ngIf=\"!isProcessDefinitionsLoading ; else showStartFormLoadingTemplate\">\n <ng-container *ngIf=\"isProcessDefinitionSelected() ; else emptyProcessDefTemplate\">\n <ng-container *ngIf=\"hasStartForm(); else noStartFormTemplate\">\n <adf-start-form\n #startForm\n [data]=\"populatedFormData\"\n [disableStartProcessButton]=\"processNameInput.invalid\"\n [processDefinitionId]=\"selectedProcessDef.id\"\n (outcomeClick)=\"onOutcomeClick($event)\"\n [showRefreshButton]=\"false\">\n <button\n class=\"adf-start-process-button\"\n adf-form-custom-button\n mat-button\n (click)=\"cancelStartProcess()\"\n id=\"cancel_process\">\n {{'ADF_PROCESS_LIST.START_PROCESS.FORM.ACTION.CANCEL'| translate | uppercase}}\n </button>\n </adf-start-form>\n </ng-container>\n <ng-template #noStartFormTemplate>\n <adf-empty-content\n class=\"adf-start-process-empty-template\"\n [icon]=\"'assessment'\"\n [title]=\"'ADF_PROCESS_LIST.START_PROCESS.NO_START_FORM' | translate\" />\n </ng-template>\n </ng-container>\n <ng-template #emptyProcessDefTemplate>\n <adf-empty-content class=\"adf-start-process-empty-template\"\n [icon]=\"'assessment'\"\n [title]=\"'ADF_PROCESS_LIST.START_PROCESS.NO_PROCESS_DEF_SELECTED' | translate\" />\n </ng-template>\n </ng-container>\n <ng-template #showStartFormLoadingTemplate>\n <mat-spinner class=\"adf-start-process-loading\" />\n </ng-template>\n </div>\n <div class=\"adf-start-process-content-actions\" *ngIf=\"!hasStartForm()\">\n <button\n class=\"adf-start-process-button\"\n mat-button\n *ngIf=\"!hasStartForm()\"\n (click)=\"cancelStartProcess()\"\n id=\"cancel_process\">\n {{'ADF_PROCESS_LIST.START_PROCESS.FORM.ACTION.CANCEL'| translate | uppercase}}\n </button>\n <button\n mat-button\n *ngIf=\"!hasStartForm()\"\n [disabled]=\"!validateForm()\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"btn-start adf-start-process-button\">\n {{'ADF_PROCESS_LIST.START_PROCESS.FORM.ACTION.START' | translate | uppercase}}\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #showEmptyTemplate>\n <adf-empty-content class=\"adf-start-process-empty-template\"\n [icon]=\"'assessment'\"\n [title]=\"'ADF_PROCESS_LIST.START_PROCESS.NO_PROCESS_DEFINITIONS' | translate\" />\n </ng-template>\n</ng-template>\n", styles: [".adf-start-process{width:96%;margin-left:auto;margin-right:auto;margin-top:10px}.adf-start-process mat-form-field{width:100%}.adf-start-process-content-actions{padding-bottom:16px;padding-right:16px;text-align:right}.adf-start-process .mat-mdc-button{width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-title{padding-bottom:1.25em}.adf-process-input-container mat-form-field{width:100%}.adf-process-input-container-process-name{margin-top:16px}.adf-process-input-autocomplete{display:flex;padding-bottom:2px}.adf-process-input-autocomplete .adf-start-process-button{position:absolute;right:-14px;top:10px}.adf-process-input-autocomplete mat-spinner{position:absolute;right:-1px;top:0}.adf-start-form-container .mat-mdc-card-content{margin-bottom:100px}.adf-start-form-container .mat-mdc-card-header{display:none}.adf-start-form-container .adf-start-form-card:has(.adf-start-form-header){box-shadow:none;padding:0}.adf-start-form-actions:has(.adf-start-form-actions-button){text-align:right;padding-bottom:16px}.adf-start-form-actions:has(.adf-start-form-actions-button) button{text-wrap:nowrap}.adf-start-process-definition-container{display:flex;flex-direction:row;justify-content:space-around;align-items:baseline}.adf-start-process-definition-container .adf-start-process-definition-select .mat-mdc-select-arrow-wrapper{transform:none}.adf-start-process-definition-container .adf-start-process-definition-select .mat-mdc-select-arrow-wrapper svg{fill:currentcolor}.adf-start-process-app-list{margin-right:10px}@media(max-width:599.9px){.adf-start-process{width:90%;margin-left:auto;margin-right:auto}}.adf-start-process-loading{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: StartFormComponent, selector: "adf-start-form", inputs: ["processDefinitionId", "processId", "showOutcomeButtons", "showRefreshButton", "readOnlyForm"], outputs: ["outcomeClick", "formContentClicked"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
9728
9793
  }
9729
9794
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: StartProcessInstanceComponent, decorators: [{
9730
9795
  type: Component,
@@ -9968,7 +10033,7 @@ class AppsListComponent {
9968
10033
  : apps;
9969
10034
  }
9970
10035
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9971
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AppsListComponent, isStandalone: true, selector: "adf-apps", inputs: { layoutType: "layoutType", defaultAppId: "defaultAppId", filtersAppId: "filtersAppId" }, outputs: { appClick: "appClick", error: "error" }, host: { classAttribute: "adf-apps" }, queries: [{ propertyName: "emptyCustomContent", first: true, predicate: CustomEmptyContentTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"menu-container\" *ngIf=\"!isEmpty()\">\n <mat-list *ngIf=\"isList()\" class=\"adf-app-list\">\n <mat-list-item class=\"adf-app-list-item\" (click)=\"selectApp(app)\" (keyup.enter)=\"selectApp(app)\" *ngFor=\"let app of appList\" tabindex=\"0\" role=\"button\" title=\"{{app.name}}\">\n <mat-icon matListItemIcon>touch_app</mat-icon>\n <span matLine>{{getAppName(app) | translate}}</span>\n </mat-list-item>\n </mat-list>\n <div *ngIf=\"isGrid()\" class=\"adf-app-listgrid\">\n <div *ngFor=\"let app of appList\"\n class=\"adf-app-listgrid-item\">\n <mat-card appearance=\"outlined\" tabindex=\"0\"\n role=\"button\"\n class=\"adf-app-listgrid-item-card\"\n title=\"{{getAppName(app) | translate}}\"\n [ngClass]=\"[getTheme(app)]\"\n (click)=\"selectApp(app)\"\n (keyup.enter)=\"selectApp(app)\">\n <div class=\"adf-app-listgrid-item-card-logo\">\n <mat-icon class=\"adf-app-listgrid-item-card-logo-icon\">{{getBackgroundIcon(app)}}</mat-icon>\n </div>\n <div mat-card-title class=\"adf-app-listgrid-item-card-title\">\n <h1>{{getAppName(app) | translate}}</h1>\n </div>\n <mat-card-subtitle class=\"adf-app-listgrid-item-card-subtitle\">\n <div class=\"adf-line-clamp\">{{app.description}}</div>\n </mat-card-subtitle>\n\n <mat-card-actions class=\"adf-app-listgrid-item-card-actions\">\n <mat-icon class=\"adf-app-listgrid-item-card-actions-icon\" *ngIf=\"isSelected(app.id)\">done</mat-icon>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"isLoading(); else empty\">\n <div class=\"adf-app-list-spinner\">\n <mat-progress-spinner mode=\"indeterminate\" />\n </div>\n</ng-container>\n\n<ng-template #empty>\n <div class=\"adf-app-list-empty\" *ngIf=\"isEmpty()\">\n <ng-content select=\"adf-custom-empty-content-template\"\n *ngIf=\"hasEmptyCustomContentTemplate; else defaultEmptyTemplate\"\n class=\"adf-custom-empty-template\" />\n\n <ng-template #defaultEmptyTemplate>\n <adf-empty-content\n icon=\"apps\"\n [title]=\"'ADF_TASK_LIST.APPS.TITLE' | translate\"\n [subtitle]=\"'ADF_TASK_LIST.APPS.SUBTITLE' | translate\" />\n </ng-template>\n </div>\n</ng-template>\n", styles: [".adf-app-list-item{cursor:pointer}.adf-app-list-spinner,.adf-app-list-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-app-list-spinner .mat-mdc-progress-spinner,.adf-app-list-empty .mat-mdc-progress-spinner{margin:0 auto}.adf-apps{width:100%}.adf-apps .adf-app-listgrid{padding:8px;flex-flow:row wrap;display:flex}.adf-apps .adf-app-listgrid-item{outline:none;padding:8px;box-sizing:border-box;flex:1 1 33.3333%;max-width:33.3333%}@media(max-width:959.9px){.adf-apps .adf-app-listgrid-item{flex:1 1 50%;max-width:50%}}@media(max-width:599.9px){.adf-apps .adf-app-listgrid-item{flex:1 1 100%;max-width:100%}}.adf-apps .adf-app-listgrid-item-card.theme-1{background-color:#269abc}.adf-apps .adf-app-listgrid-item-card.theme-1 .adf-app-listgrid-item-card-logo-icon{color:#168aac}.adf-apps .adf-app-listgrid-item-card.theme-2{background-color:#7da9b0}.adf-apps .adf-app-listgrid-item-card.theme-2 .adf-app-listgrid-item-card-logo-icon{color:#6d99a0}.adf-apps .adf-app-listgrid-item-card.theme-3{background-color:#7689ab}.adf-apps .adf-app-listgrid-item-card.theme-3 .adf-app-listgrid-item-card-logo-icon{color:#66799b}.adf-apps .adf-app-listgrid-item-card.theme-4{background-color:#c74e3e}.adf-apps .adf-app-listgrid-item-card.theme-4 .adf-app-listgrid-item-card-logo-icon{color:#b73e2e}.adf-apps .adf-app-listgrid-item-card.theme-5{background-color:#fab96c}.adf-apps .adf-app-listgrid-item-card.theme-5 .adf-app-listgrid-item-card-logo-icon{color:#eaa95c}.adf-apps .adf-app-listgrid-item-card.theme-6{background-color:#759d4c}.adf-apps .adf-app-listgrid-item-card.theme-6 .adf-app-listgrid-item-card-logo-icon{color:#658d3c}.adf-apps .adf-app-listgrid-item-card.theme-7{background-color:#b1b489}.adf-apps .adf-app-listgrid-item-card.theme-7 .adf-app-listgrid-item-card-logo-icon{color:#a1a479}.adf-apps .adf-app-listgrid-item-card.theme-8{background-color:#a17299}.adf-apps .adf-app-listgrid-item-card.theme-8 .adf-app-listgrid-item-card-logo-icon{color:#916289}.adf-apps .adf-app-listgrid-item-card.theme-9{background-color:#696c67}.adf-apps .adf-app-listgrid-item-card.theme-9 .adf-app-listgrid-item-card-logo-icon{color:#595c57}.adf-apps .adf-app-listgrid-item-card.theme-10{background-color:#cabb33}.adf-apps .adf-app-listgrid-item-card.theme-10 .adf-app-listgrid-item-card-logo-icon{color:#baab23}.adf-apps .adf-app-listgrid-item-card{outline:none;flex-direction:column;display:flex;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1);min-height:200px;padding:0}.adf-apps .adf-app-listgrid-item-card:hover{box-shadow:var(--mat-sys-level3);cursor:pointer;transform:scale(1.015)}.adf-apps .adf-app-listgrid-item-card-logo{position:absolute;right:20px;top:20px;padding:16px;z-index:9}.adf-apps .adf-app-listgrid-item-card-logo-icon{font-size:70px;width:1em;height:1em}.adf-apps .adf-app-listgrid-item-card-title{padding:16px;margin-bottom:0;z-index:9999}.adf-apps .adf-app-listgrid-item-card-title h1{width:80%;font:var(--mat-sys-headline-medium);margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.adf-apps .adf-app-listgrid-item-card-subtitle{z-index:9999;padding:16px;flex:1 0 auto}.adf-apps .adf-app-listgrid-item-card-subtitle .adf-line-clamp{position:relative;line-height:1.25;padding:0;overflow:hidden;text-overflow:ellipsis}.adf-apps .adf-app-listgrid-item-card-actions:has(.adf-app-listgrid-item-card-actions-icon){padding:0 16px 16px;border-top:1px solid var(--mat-sys-outline-variant);min-height:48px;box-sizing:border-box;margin-left:0;margin-right:0}.adf-apps .adf-app-listgrid-item-card-actions:has(.adf-app-listgrid-item-card-actions-icon):last-child{margin-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { 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: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "ngmodule", type: MatLineModule }, { kind: "directive", type: i3$5.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
10036
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: AppsListComponent, isStandalone: true, selector: "adf-apps", inputs: { layoutType: "layoutType", defaultAppId: "defaultAppId", filtersAppId: "filtersAppId" }, outputs: { appClick: "appClick", error: "error" }, host: { classAttribute: "adf-apps" }, queries: [{ propertyName: "emptyCustomContent", first: true, predicate: CustomEmptyContentTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"menu-container\" *ngIf=\"!isEmpty()\">\n <mat-list *ngIf=\"isList()\" class=\"adf-app-list\">\n <mat-list-item class=\"adf-app-list-item\" (click)=\"selectApp(app)\" (keyup.enter)=\"selectApp(app)\" *ngFor=\"let app of appList\" tabindex=\"0\" role=\"button\" title=\"{{app.name}}\">\n <mat-icon matListItemIcon>touch_app</mat-icon>\n <span matLine>{{getAppName(app) | translate}}</span>\n </mat-list-item>\n </mat-list>\n <div *ngIf=\"isGrid()\" class=\"adf-app-listgrid\">\n <div *ngFor=\"let app of appList\"\n class=\"adf-app-listgrid-item\">\n <mat-card appearance=\"outlined\" tabindex=\"0\"\n role=\"button\"\n class=\"adf-app-listgrid-item-card\"\n title=\"{{getAppName(app) | translate}}\"\n [ngClass]=\"[getTheme(app)]\"\n (click)=\"selectApp(app)\"\n (keyup.enter)=\"selectApp(app)\">\n <div class=\"adf-app-listgrid-item-card-logo\">\n <mat-icon class=\"adf-app-listgrid-item-card-logo-icon\">{{getBackgroundIcon(app)}}</mat-icon>\n </div>\n <div mat-card-title class=\"adf-app-listgrid-item-card-title\">\n <h1>{{getAppName(app) | translate}}</h1>\n </div>\n <mat-card-subtitle class=\"adf-app-listgrid-item-card-subtitle\">\n <div class=\"adf-line-clamp\">{{app.description}}</div>\n </mat-card-subtitle>\n\n <mat-card-actions class=\"adf-app-listgrid-item-card-actions\">\n <mat-icon class=\"adf-app-listgrid-item-card-actions-icon\" *ngIf=\"isSelected(app.id)\">done</mat-icon>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"isLoading(); else empty\">\n <div class=\"adf-app-list-spinner\">\n <mat-progress-spinner mode=\"indeterminate\" />\n </div>\n</ng-container>\n\n<ng-template #empty>\n <div class=\"adf-app-list-empty\" *ngIf=\"isEmpty()\">\n <ng-content select=\"adf-custom-empty-content-template\"\n *ngIf=\"hasEmptyCustomContentTemplate; else defaultEmptyTemplate\"\n class=\"adf-custom-empty-template\" />\n\n <ng-template #defaultEmptyTemplate>\n <adf-empty-content\n icon=\"apps\"\n [title]=\"'ADF_TASK_LIST.APPS.TITLE' | translate\"\n [subtitle]=\"'ADF_TASK_LIST.APPS.SUBTITLE' | translate\" />\n </ng-template>\n </div>\n</ng-template>\n", styles: [".adf-app-list-item{cursor:pointer}.adf-app-list-spinner,.adf-app-list-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-app-list-spinner .mat-mdc-progress-spinner,.adf-app-list-empty .mat-mdc-progress-spinner{margin:0 auto}.adf-apps{width:100%}.adf-apps .adf-app-listgrid{padding:8px;flex-flow:row wrap;display:flex}.adf-apps .adf-app-listgrid-item{outline:none;padding:8px;box-sizing:border-box;flex:1 1 33.3333%;max-width:33.3333%}@media(max-width:959.9px){.adf-apps .adf-app-listgrid-item{flex:1 1 50%;max-width:50%}}@media(max-width:599.9px){.adf-apps .adf-app-listgrid-item{flex:1 1 100%;max-width:100%}}.adf-apps .adf-app-listgrid-item-card.theme-1{background-color:#269abc}.adf-apps .adf-app-listgrid-item-card.theme-1 .adf-app-listgrid-item-card-logo-icon{color:#168aac}.adf-apps .adf-app-listgrid-item-card.theme-2{background-color:#7da9b0}.adf-apps .adf-app-listgrid-item-card.theme-2 .adf-app-listgrid-item-card-logo-icon{color:#6d99a0}.adf-apps .adf-app-listgrid-item-card.theme-3{background-color:#7689ab}.adf-apps .adf-app-listgrid-item-card.theme-3 .adf-app-listgrid-item-card-logo-icon{color:#66799b}.adf-apps .adf-app-listgrid-item-card.theme-4{background-color:#c74e3e}.adf-apps .adf-app-listgrid-item-card.theme-4 .adf-app-listgrid-item-card-logo-icon{color:#b73e2e}.adf-apps .adf-app-listgrid-item-card.theme-5{background-color:#fab96c}.adf-apps .adf-app-listgrid-item-card.theme-5 .adf-app-listgrid-item-card-logo-icon{color:#eaa95c}.adf-apps .adf-app-listgrid-item-card.theme-6{background-color:#759d4c}.adf-apps .adf-app-listgrid-item-card.theme-6 .adf-app-listgrid-item-card-logo-icon{color:#658d3c}.adf-apps .adf-app-listgrid-item-card.theme-7{background-color:#b1b489}.adf-apps .adf-app-listgrid-item-card.theme-7 .adf-app-listgrid-item-card-logo-icon{color:#a1a479}.adf-apps .adf-app-listgrid-item-card.theme-8{background-color:#a17299}.adf-apps .adf-app-listgrid-item-card.theme-8 .adf-app-listgrid-item-card-logo-icon{color:#916289}.adf-apps .adf-app-listgrid-item-card.theme-9{background-color:#696c67}.adf-apps .adf-app-listgrid-item-card.theme-9 .adf-app-listgrid-item-card-logo-icon{color:#595c57}.adf-apps .adf-app-listgrid-item-card.theme-10{background-color:#cabb33}.adf-apps .adf-app-listgrid-item-card.theme-10 .adf-app-listgrid-item-card-logo-icon{color:#baab23}.adf-apps .adf-app-listgrid-item-card{outline:none;flex-direction:column;display:flex;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1);min-height:200px;padding:0}.adf-apps .adf-app-listgrid-item-card:hover{box-shadow:var(--mat-sys-level3);cursor:pointer;transform:scale(1.015)}.adf-apps .adf-app-listgrid-item-card-logo{position:absolute;right:20px;top:20px;padding:16px;z-index:9}.adf-apps .adf-app-listgrid-item-card-logo-icon{font-size:70px;width:1em;height:1em}.adf-apps .adf-app-listgrid-item-card-title{padding:16px;margin-bottom:0;z-index:9999}.adf-apps .adf-app-listgrid-item-card-title h1{width:80%;font:var(--mat-sys-headline-medium);margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.adf-apps .adf-app-listgrid-item-card-subtitle{z-index:9999;padding:16px;flex:1 0 auto}.adf-apps .adf-app-listgrid-item-card-subtitle .adf-line-clamp{position:relative;line-height:1.25;padding:0;overflow:hidden;text-overflow:ellipsis}.adf-apps .adf-app-listgrid-item-card-actions:has(.adf-app-listgrid-item-card-actions-icon){padding:0 16px 16px;border-top:1px solid var(--mat-sys-outline-variant);min-height:48px;box-sizing:border-box;margin-left:0;margin-right:0}.adf-apps .adf-app-listgrid-item-card-actions:has(.adf-app-listgrid-item-card-actions-icon):last-child{margin-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$3.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { 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: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "ngmodule", type: MatLineModule }, { kind: "directive", type: i3$5.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
9972
10037
  }
9973
10038
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppsListComponent, decorators: [{
9974
10039
  type: Component,
@@ -10026,7 +10091,7 @@ class SelectAppsDialogComponent {
10026
10091
  this.dialogRef.close(this.selectedProcess);
10027
10092
  }
10028
10093
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectAppsDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10029
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: SelectAppsDialogComponent, isStandalone: true, selector: "adf-select-apps-dialog", ngImport: i0, template: "<header mat-dialog-title id=\"adf-select-app-dialog-title\">{{'APP.DIALOG.TITLE' | translate}}</header>\n<section mat-dialog-content>\n\n <mat-select id=\"adf-select-app-dialog-dropdown\" placeholder=\"{{'APP.DIALOG.LIST' | translate}}\" [(value)]=\"selectedProcess\" >\n <mat-option *ngFor=\"let currentProcessApp of processApps\" [value]=\"currentProcessApp\">\n {{ currentProcessApp.name }}\n </mat-option>\n </mat-select>\n\n</section>\n<footer mat-dialog-actions class=\"adf-select-apps-dialog-actions\">\n <button mat-button (click)=\"onStart()\">{{'APP.DIALOG.START' | translate}}</button>\n</footer>\n", styles: ["adf-select-apps-dialog .adf-select-apps-dialog-actions{display:flex;max-height:100%;place-content:center flex-end;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
10094
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: SelectAppsDialogComponent, isStandalone: true, selector: "adf-select-apps-dialog", ngImport: i0, template: "<header mat-dialog-title id=\"adf-select-app-dialog-title\">{{'APP.DIALOG.TITLE' | translate}}</header>\n<section mat-dialog-content>\n\n <mat-select id=\"adf-select-app-dialog-dropdown\" placeholder=\"{{'APP.DIALOG.LIST' | translate}}\" [(value)]=\"selectedProcess\" >\n <mat-option *ngFor=\"let currentProcessApp of processApps\" [value]=\"currentProcessApp\">\n {{ currentProcessApp.name }}\n </mat-option>\n </mat-select>\n\n</section>\n<footer mat-dialog-actions class=\"adf-select-apps-dialog-actions\">\n <button mat-button (click)=\"onStart()\">{{'APP.DIALOG.START' | translate}}</button>\n</footer>\n", styles: ["adf-select-apps-dialog .adf-select-apps-dialog-actions{display:flex;max-height:100%;place-content:center flex-end;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
10030
10095
  }
10031
10096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SelectAppsDialogComponent, decorators: [{
10032
10097
  type: Component,
@@ -10714,5 +10779,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
10714
10779
  * Generated bundle index. Do not edit.
10715
10780
  */
10716
10781
 
10717
- export { APPS_LIST_DIRECTIVES, APP_LIST_LAYOUT_GRID, APP_LIST_LAYOUT_LIST, ATTACHMENT_DIRECTIVES, ActivitiContentService, AmountEditorComponent, AppsListComponent, AppsProcessService, AttachFileWidgetComponent, AttachFileWidgetDialogComponent, AttachFileWidgetDialogService, AttachFolderWidgetComponent, AttachFormComponent, AttachmentComponent, BooleanEditorComponent, ChecklistComponent, ClaimTaskDirective, CommentProcessService, ContentWidgetComponent, CreateProcessAttachmentComponent, DYNAMIC_TABLE_WIDGET_DIRECTIVES, DateEditorComponent, DateTimeEditorComponent, DocumentWidgetComponent, DropdownEditorComponent, DropdownWidgetComponent, DynamicTableWidgetComponent, EcmModelService, EditorService, ExternalAlfrescoApiService, FORM_DIRECTIVES, FileViewerWidgetComponent, Form, FormComponent, FormCustomOutcomesComponent, FormDefinitionModel, FormListComponent, FunctionalGroupWidgetComponent, ModelService, PEOPLE_DIRECTIVES, PRESET_KEY, PROCESS_COMMENTS_DIRECTIVES, PROCESS_LIST_DIRECTIVES, PeopleComponent, PeopleListComponent, PeopleProcessService, PeopleSearchComponent, PeopleSearchFieldComponent, PeopleSelectorComponent, PeopleWidgetComponent, ProcessAttachmentListComponent, ProcessCommentsComponent, ProcessContentService, ProcessDefinitionService, ProcessFilterService, ProcessFiltersComponent, ProcessFormRenderingService, ProcessInstanceDetailsComponent, ProcessInstanceHeaderComponent, ProcessInstanceListComponent, ProcessInstanceTasksComponent, ProcessModule, ProcessService, ProcessUploadService, RadioButtonsWidgetComponent, RowEditorComponent, SelectAppsDialogComponent, StartFormComponent, StartProcessInstanceComponent, StartTaskComponent, TASK_COMMENTS_DIRECTIVES, TASK_LIST_DIRECTIVES, TaskAttachmentListComponent, TaskCommentsComponent, TaskCommentsService, TaskDetailsComponent, TaskDetailsEvent, TaskFilterService, TaskFiltersComponent, TaskFormComponent, TaskFormService, TaskHeaderComponent, TaskListComponent, TaskListService, TaskService, TaskStandaloneComponent, TaskUploadService, TextEditorComponent, TypeaheadWidgetComponent, UnclaimTaskDirective, UploadWidgetComponent, ValidateDynamicTableRowEvent, WIDGET_DIRECTIVES, processPresetsDefaultModel };
10782
+ export { APPS_LIST_DIRECTIVES, APP_LIST_LAYOUT_GRID, APP_LIST_LAYOUT_LIST, ATTACHMENT_DIRECTIVES, ActivitiContentService, AmountEditorComponent, AppsListComponent, AppsProcessService, AttachFileWidgetComponent, AttachFileWidgetDialogComponent, AttachFileWidgetDialogService, AttachFolderWidgetComponent, AttachFormComponent, AttachmentComponent, BooleanEditorComponent, ChecklistComponent, ClaimTaskDirective, CommentProcessService, ContentWidgetComponent, CreateProcessAttachmentComponent, DYNAMIC_TABLE_WIDGET_DIRECTIVES, DateEditorComponent, DateTimeEditorComponent, DocumentWidgetComponent, DropdownEditorComponent, DropdownWidgetComponent, DynamicTableWidgetComponent, EcmModelService, EditorService, ExternalAlfrescoApiService, FORM_DIRECTIVES, FileViewerWidgetComponent, Form, FormComponent, FormCustomOutcomesComponent, FormDefinitionModel, FormListComponent, FunctionalGroupWidgetComponent, ModelService, PEOPLE_DIRECTIVES, PRESET_KEY, PROCESS_COMMENTS_DIRECTIVES, PROCESS_FORM_FIELD_VALIDATORS, PROCESS_LIST_DIRECTIVES, PeopleComponent, PeopleListComponent, PeopleProcessService, PeopleSearchComponent, PeopleSearchFieldComponent, PeopleSelectorComponent, PeopleWidgetComponent, ProcessAttachmentListComponent, ProcessCommentsComponent, ProcessContentService, ProcessDefinitionService, ProcessDropdownFieldValidator, ProcessFilterService, ProcessFiltersComponent, ProcessFormRenderingService, ProcessInstanceDetailsComponent, ProcessInstanceHeaderComponent, ProcessInstanceListComponent, ProcessInstanceTasksComponent, ProcessModule, ProcessService, ProcessUploadService, RadioButtonsWidgetComponent, RowEditorComponent, SelectAppsDialogComponent, StartFormComponent, StartProcessInstanceComponent, StartTaskComponent, TASK_COMMENTS_DIRECTIVES, TASK_LIST_DIRECTIVES, TaskAttachmentListComponent, TaskCommentsComponent, TaskCommentsService, TaskDetailsComponent, TaskDetailsEvent, TaskFilterService, TaskFiltersComponent, TaskFormComponent, TaskFormService, TaskHeaderComponent, TaskListComponent, TaskListService, TaskService, TaskStandaloneComponent, TaskUploadService, TextEditorComponent, TypeaheadWidgetComponent, UnclaimTaskDirective, UploadWidgetComponent, ValidateDynamicTableRowEvent, WIDGET_DIRECTIVES, dropdownRequiredValidator, getDropdownOptionValue, isDropdownRestField, processPresetsDefaultModel };
10718
10783
  //# sourceMappingURL=adf-process-services.mjs.map