@alfresco/adf-process-services-cloud 9.2.0-36573657159 → 9.2.0-36583389868
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.
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"ERROR": {
|
|
46
46
|
"LOAD_PROCESS_DEFS": "Couldn't load process definitions, check you have access.",
|
|
47
47
|
"START": "Couldn't start new process instance, check you have access.",
|
|
48
|
+
"OUTCOME_NOT_FOUND": "The requested form action is no longer available.",
|
|
48
49
|
"PROCESS_NAME_REQUIRED": "Process Name is required",
|
|
49
50
|
"PROCESS_DEFINITION_REQUIRED": "Process Definition is required",
|
|
50
51
|
"MAXIMUM_LENGTH": "Length exceeded, {{characters}} characters max.",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable, InjectionToken, EventEmitter, DestroyRef, Output, Input, ContentChild, Directive, ViewEncapsulation, Component, Injector, NgModule, effect, ViewChild, ChangeDetectorRef, HostListener, ElementRef, Renderer2, signal, ViewContainerRef, ChangeDetectionStrategy, input, output, SecurityContext } from '@angular/core';
|
|
3
3
|
import * as i3 from '@alfresco/adf-core';
|
|
4
|
-
import { AppConfigService, JwtHelperService, OAuth2Service, TranslationService, DataTableSchema, UserPreferencesService, UserPreferenceValues, CustomEmptyContentTemplateDirective, ObjectDataTableAdapter, ColumnsSelectorComponent, MainMenuDataTableTemplateDirective, EmptyContentComponent, NoContentTemplateDirective, LoadingContentTemplateDirective, DataTableComponent, AdfDateFnsAdapter, MOMENT_DATE_FORMATS, AuthenticationService, StorageService, IconModule, DateFnsUtils, ADF_DATE_FORMATS, FullNamePipe, InitialUsernamePipe, FormService, FormModel, FormFieldTypes, ROW_ID_PREFIX, FormBaseComponent, ADF_DISPLAY_TEXT_SETTINGS, WidgetVisibilityService, FormExpressionService, UploadWidgetContentLinkModel, FormEvent, FormOutcomeModel, ConfirmDialogComponent, FormRulesEvent, FormOutcomeEvent, FormRendererComponent, ToolbarDividerComponent, ToolbarComponent, FormatSpacePipe, NotificationService, DownloadService, WidgetComponent, ThumbnailService, ErrorWidgetComponent, LocalizedDatePipe, UploadDirective, ContentLinkModel, ErrorMessageModel, DEFAULT_DATE_FORMAT, FormFieldValueFormatterService, ADF_TYPED_VALUE_FORMATTING_ENABLED, FormFieldEvent, SelectFilterInputComponent, FormRenderingService, DynamicComponentMapper, CardViewUpdateService, ClipboardService, CardViewTextItemModel, CardViewSelectItemModel, CardViewDatetimeItemModel, CardViewDateItemModel, CardViewArrayItemModel, CardViewComponent, CustomLoadingContentTemplateDirective, isOutcomeButtonVisible, InplaceFormInputComponent, BaseViewerWidgetComponent, BaseDisplayTextWidgetComponent, ObjectDataColumn, ObjectDataRow, FormBaseModule, provideTranslations } from '@alfresco/adf-core';
|
|
4
|
+
import { AppConfigService, JwtHelperService, OAuth2Service, TranslationService, DataTableSchema, UserPreferencesService, UserPreferenceValues, CustomEmptyContentTemplateDirective, ObjectDataTableAdapter, ColumnsSelectorComponent, MainMenuDataTableTemplateDirective, EmptyContentComponent, NoContentTemplateDirective, LoadingContentTemplateDirective, DataTableComponent, AdfDateFnsAdapter, MOMENT_DATE_FORMATS, AuthenticationService, StorageService, IconModule, DateFnsUtils, ADF_DATE_FORMATS, FullNamePipe, InitialUsernamePipe, FormService, FormModel, FormFieldTypes, ROW_ID_PREFIX, FormBaseComponent, ADF_DISPLAY_TEXT_SETTINGS, WidgetVisibilityService, FormExpressionService, UploadWidgetContentLinkModel, FormEvent, FormOutcomeModel, ConfirmDialogComponent, FormRulesEvent, FormOutcomeEvent, FormRendererComponent, ToolbarDividerComponent, ToolbarComponent, FormatSpacePipe, NotificationService, DownloadService, WidgetComponent, ThumbnailService, ErrorWidgetComponent, LocalizedDatePipe, UploadDirective, ContentLinkModel, ErrorMessageModel, DEFAULT_DATE_FORMAT, FormFieldValueFormatterService, ADF_TYPED_VALUE_FORMATTING_ENABLED, FormFieldEvent, SelectFilterInputComponent, FormRenderingService, DynamicComponentMapper, CardViewUpdateService, ClipboardService, CardViewTextItemModel, CardViewSelectItemModel, CardViewDatetimeItemModel, CardViewDateItemModel, CardViewArrayItemModel, CardViewComponent, CustomLoadingContentTemplateDirective, isOutcomeButtonVisible, FormOutcomeNotFoundError, InplaceFormInputComponent, BaseViewerWidgetComponent, BaseDisplayTextWidgetComponent, ObjectDataColumn, ObjectDataRow, FormBaseModule, provideTranslations } from '@alfresco/adf-core';
|
|
5
5
|
import { from, EMPTY, isObservable, of, Subject, throwError, BehaviorSubject, combineLatest, defer, merge, asapScheduler, firstValueFrom, forkJoin, catchError as catchError$1 } from 'rxjs';
|
|
6
6
|
import { map, take, switchMap, catchError, distinctUntilChanged, filter, tap, finalize, debounceTime, shareReplay, mergeMap, expand, reduce, mapTo, concatMap } from 'rxjs/operators';
|
|
7
7
|
import { AlfrescoApiService, NodeAction, ContentNodeSelectorComponent, NodesApiService, ContentService, ContentNodeSelectorPanelService, NewVersionUploaderService, NewVersionUploaderDataAction, ContentMetadataComponent, AlfrescoViewerComponent } from '@alfresco/adf-content-services';
|
|
@@ -8394,6 +8394,8 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8394
8394
|
this.formLoaded = new EventEmitter();
|
|
8395
8395
|
/** Emitted when form values are refreshed due to a data property change. */
|
|
8396
8396
|
this.formDataRefreshed = new EventEmitter();
|
|
8397
|
+
/** Emitted when the outcomes rendered by the form change. */
|
|
8398
|
+
this.visibleOutcomesChanged = new EventEmitter();
|
|
8397
8399
|
/** Emitted when form content is clicked. */
|
|
8398
8400
|
this.formContentClicked = new EventEmitter();
|
|
8399
8401
|
/** Emitted when a display mode configuration is turned on. */
|
|
@@ -8404,6 +8406,11 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8404
8406
|
this.fieldValidators = [];
|
|
8405
8407
|
/** Pre-computed list of outcome buttons to render, filtered by visibility rules. */
|
|
8406
8408
|
this.visibleOutcomes = [];
|
|
8409
|
+
/**
|
|
8410
|
+
* Held by the task completion that is pending or has succeeded, so the same task is not completed twice.
|
|
8411
|
+
* Each request owns its own lock, so a late response for a previous task cannot release the current one.
|
|
8412
|
+
*/
|
|
8413
|
+
this.taskCompletionLock = null;
|
|
8407
8414
|
this.displayConfiguration = DisplayModeService.DEFAULT_DISPLAY_MODE_CONFIGURATIONS[0];
|
|
8408
8415
|
this.style = '';
|
|
8409
8416
|
this.tabNavEnabledByHost = true;
|
|
@@ -8463,6 +8470,9 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8463
8470
|
event.stopPropagation();
|
|
8464
8471
|
}
|
|
8465
8472
|
ngOnChanges(changes) {
|
|
8473
|
+
if (changes['taskId']) {
|
|
8474
|
+
this.taskCompletionLock = null;
|
|
8475
|
+
}
|
|
8466
8476
|
const appName = changes['appName'];
|
|
8467
8477
|
if (appName?.currentValue) {
|
|
8468
8478
|
if (this.taskId) {
|
|
@@ -8504,6 +8514,9 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8504
8514
|
}
|
|
8505
8515
|
}
|
|
8506
8516
|
ngOnInit() {
|
|
8517
|
+
this.formService.outcomeRequested
|
|
8518
|
+
.pipe(filter((request) => request.form === this.form), takeUntilDestroyed(this.destroyRef))
|
|
8519
|
+
.subscribe((request) => this.onOutcomeRequested(request.outcomeId));
|
|
8507
8520
|
DisplayModeService.displayMode$
|
|
8508
8521
|
.pipe(filter((change) => change.id === this.id), takeUntilDestroyed(this.destroyRef))
|
|
8509
8522
|
.subscribe((displayModeChange) => {
|
|
@@ -8619,7 +8632,15 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8619
8632
|
this.displayModeService.onSaveTask(this.id, this.displayMode, this.displayModeConfigurations);
|
|
8620
8633
|
}
|
|
8621
8634
|
}
|
|
8635
|
+
isOutcomeButtonEnabled(outcome) {
|
|
8636
|
+
return !this.taskCompletionLock && super.isOutcomeButtonEnabled(outcome);
|
|
8637
|
+
}
|
|
8622
8638
|
completeTaskForm(outcome, outcomeId) {
|
|
8639
|
+
if (this.taskCompletionLock) {
|
|
8640
|
+
return;
|
|
8641
|
+
}
|
|
8642
|
+
const lock = this.form && this.appName && this.taskId ? { taskId: this.taskId } : null;
|
|
8643
|
+
this.taskCompletionLock = lock;
|
|
8623
8644
|
if (this.form?.confirmMessage?.show === true) {
|
|
8624
8645
|
const dialogRef = this.dialog.open(ConfirmDialogComponent, {
|
|
8625
8646
|
data: {
|
|
@@ -8631,37 +8652,50 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8631
8652
|
.afterClosed()
|
|
8632
8653
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
8633
8654
|
.subscribe((result) => {
|
|
8655
|
+
if (this.taskCompletionLock !== lock) {
|
|
8656
|
+
return;
|
|
8657
|
+
}
|
|
8634
8658
|
if (result === true) {
|
|
8635
|
-
this.completeForm(outcome, outcomeId);
|
|
8659
|
+
this.completeForm(outcome, outcomeId, lock);
|
|
8636
8660
|
}
|
|
8637
8661
|
else {
|
|
8662
|
+
this.taskCompletionLock = null;
|
|
8638
8663
|
this.disableSaveButton = false;
|
|
8639
8664
|
this.disableCompleteButton = false;
|
|
8640
8665
|
}
|
|
8641
8666
|
});
|
|
8642
8667
|
}
|
|
8643
8668
|
else {
|
|
8644
|
-
this.completeForm(outcome, outcomeId);
|
|
8669
|
+
this.completeForm(outcome, outcomeId, lock);
|
|
8645
8670
|
}
|
|
8646
8671
|
this.displayModeService.onCompleteTask(this.id, this.displayMode, this.displayModeConfigurations);
|
|
8647
8672
|
}
|
|
8648
|
-
completeForm(outcome, outcomeId) {
|
|
8673
|
+
completeForm(outcome, outcomeId, lock) {
|
|
8649
8674
|
if (this.form && this.appName && this.taskId) {
|
|
8675
|
+
const form = this.form;
|
|
8650
8676
|
this.formCloudService
|
|
8651
|
-
.completeTaskForm(this.appName, this.taskId, this.processInstanceId, `${
|
|
8677
|
+
.completeTaskForm(this.appName, this.taskId, this.processInstanceId, `${form.id}`, this.getSubmissionValues(form), outcome, this.appVersion)
|
|
8652
8678
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
8653
8679
|
.subscribe({
|
|
8654
8680
|
next: () => {
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
this.onTaskCompleted(
|
|
8681
|
+
form.selectedOutcome = outcome;
|
|
8682
|
+
form.selectedOutcomeId = outcomeId;
|
|
8683
|
+
this.onTaskCompleted(form);
|
|
8658
8684
|
},
|
|
8659
|
-
error: (error) =>
|
|
8685
|
+
error: (error) => {
|
|
8686
|
+
this.releaseTaskCompletionLock(lock);
|
|
8687
|
+
this.onTaskCompletedError(error);
|
|
8688
|
+
}
|
|
8660
8689
|
});
|
|
8661
8690
|
}
|
|
8662
8691
|
}
|
|
8663
|
-
|
|
8664
|
-
|
|
8692
|
+
releaseTaskCompletionLock(lock) {
|
|
8693
|
+
if (this.taskCompletionLock === lock) {
|
|
8694
|
+
this.taskCompletionLock = null;
|
|
8695
|
+
}
|
|
8696
|
+
}
|
|
8697
|
+
getSubmissionValues(form = this.form) {
|
|
8698
|
+
return materializeSubmissionValues(form, { enableExpressionEvaluation: this.enableExpressionEvaluation }, this.expressions);
|
|
8665
8699
|
}
|
|
8666
8700
|
parseForm(formCloudRepresentationJSON) {
|
|
8667
8701
|
if (formCloudRepresentationJSON) {
|
|
@@ -8817,9 +8851,11 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8817
8851
|
const outcomes = this.form?.outcomes;
|
|
8818
8852
|
if (!outcomes) {
|
|
8819
8853
|
this.visibleOutcomes = [];
|
|
8854
|
+
this.visibleOutcomesChanged.emit(this.visibleOutcomes);
|
|
8820
8855
|
return;
|
|
8821
8856
|
}
|
|
8822
8857
|
this.visibleOutcomes = outcomes.filter((outcome) => outcome.isVisible && this.isOutcomeButtonVisible(outcome, this.form.readOnly));
|
|
8858
|
+
this.visibleOutcomesChanged.emit(this.visibleOutcomes);
|
|
8823
8859
|
}
|
|
8824
8860
|
/**
|
|
8825
8861
|
* Sets the parent visibility check flag on all form fields.
|
|
@@ -8882,7 +8918,7 @@ class FormCloudComponent extends FormBaseComponent {
|
|
|
8882
8918
|
}
|
|
8883
8919
|
}
|
|
8884
8920
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FormCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8885
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: FormCloudComponent, isStandalone: true, selector: "adf-cloud-form", inputs: { appName: "appName", appVersion: "appVersion", formId: "formId", processInstanceId: "processInstanceId", taskId: "taskId", data: "data", displayModeConfigurations: "displayModeConfigurations", showCompleteButton: "showCompleteButton", customSaveButtonText: "customSaveButtonText", customCompleteButtonText: "customCompleteButtonText", enableParentVisibilityCheck: "enableParentVisibilityCheck", form: "form" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", formLoaded: "formLoaded", formDataRefreshed: "formDataRefreshed", formContentClicked: "formContentClicked", displayModeOn: "displayModeOn", displayModeOff: "displayModeOff" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, providers: [FormCloudSpinnerService], viewQueries: [{ propertyName: "formRenderer", first: true, predicate: FormRendererComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hasForm()) {\n <div>\n <ng-content select=\"[empty-form]\" />\n </div>\n} @else {\n <div\n class=\"adf-cloud-form-container adf-cloud-form-{{ displayConfiguration?.options?.fullscreen ? 'fullscreen' : 'inline' }}-container\"\n data-automation-id=\"adf-cloud-form-container\"\n [style]=\"formStyle\"\n >\n <div\n class=\"adf-cloud-form-content\"\n [class.adf-cloud-form-content-standalone-fullscreen]=\"displayMode === 'standalone' && displayConfiguration?.options?.fullscreen\"\n [class.adf-cloud-form-content-toolbar]=\"!!displayConfiguration?.options?.displayToolbar\"\n [cdkTrapFocus]=\"displayConfiguration?.options?.trapFocus\"\n cdkTrapFocusAutoCapture>\n @if (displayConfiguration?.options?.displayToolbar) {\n <adf-toolbar class=\"adf-cloud-form-toolbar\">\n <div class=\"adf-cloud-form__form-title\">\n <span class=\"adf-cloud-form__display-name\" [title]=\"form.taskName\">\n {{ form.taskName }}\n @if (!form.taskName) {\n {{ 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n }\n </span>\n </div>\n\n @if (displayConfiguration?.options?.displayCloseButton) {\n <adf-toolbar-divider />\n <button\n class=\"adf-cloud-form-close-button\"\n data-automation-id=\"adf-toolbar-right-back\"\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.CLOSE' | translate\"\n [attr.data-automation-id]=\"'adf-cloud-form-close-button'\"\n [title]=\"'ADF_VIEWER.ACTIONS.CLOSE' | translate\"\n mat-icon-button\n (click)=\"switchToDisplayMode()\"\n >\n <mat-icon adf-icon=\"close\" />\n </button>\n }\n </adf-toolbar>\n }\n\n <mat-card\n appearance=\"outlined\"\n class=\"adf-cloud-form-content-card\"\n [class.adf-cloud-form-content-card-fullscreen]=\"displayMode === 'fullScreen'\"\n [class.adf-cloud-form-content-card-fullscreen-toolbar]=\"displayMode === 'fullScreen' && displayConfiguration?.options?.displayToolbar\"\n >\n <div class=\"adf-cloud-form-content-card-container\">\n @if (showTitle || showRefreshButton || showValidationIcon) {\n <mat-card-header>\n <mat-card-title>\n <h4>\n @if (showValidationIcon) {\n <div class=\"adf-form-validation-button\">\n @if (form.isValid) {\n <i id=\"adf-valid-form-icon\" class=\"material-icons\">check_circle</i>\n } @else {\n <i id=\"adf-invalid-form-icon\" class=\"material-icons adf-invalid-color\">error</i>\n }\n </div>\n }\n @if (!displayConfiguration?.options?.fullscreen && findDisplayConfiguration('fullScreen')) {\n <div class=\"adf-cloud-form-fullscreen-button\">\n <button\n mat-icon-button\n (click)=\"switchToDisplayMode('fullScreen')\"\n [attr.data-automation-id]=\"'adf-cloud-form-fullscreen-button'\"\n >\n <mat-icon adf-icon=\"fullscreen\" />\n </button>\n </div>\n }\n @if (showRefreshButton) {\n <div class=\"adf-cloud-form-reload-button\" [title]=\"'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate\">\n <button mat-icon-button (click)=\"onRefreshClicked()\" [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate\">\n <mat-icon adf-icon=\"refresh\" />\n </button>\n </div>\n }\n @if (isTitleEnabled()) {\n <span class=\"adf-cloud-form-title\" [title]=\"form.taskName\">\n {{ form.taskName }}\n @if (!form.taskName) {\n {{ 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n }\n </span>\n }\n </h4>\n </mat-card-title>\n </mat-card-header>\n }\n <mat-card-content class=\"adf-form-container-card-content\">\n <adf-form-renderer [formDefinition]=\"form\" [readOnly]=\"readOnly\" />\n </mat-card-content>\n @if (form.hasOutcomes() || shouldShowTabNavigation) {\n <mat-card-actions class=\"adf-cloud-form-content-card-actions\" [class.adf-has-tab-navigation]=\"shouldShowTabNavigation\" align=\"end\">\n @if (shouldShowTabNavigation) {\n <div class=\"adf-tab-navigation-buttons\">\n <button\n mat-button\n [title]=\"'FORM.BUTTON.PREVIOUS_TAB_TITLE' | translate\"\n [disabled]=\"!canNavigatePreviousTab\"\n (click)=\"navigateToPreviousTab()\"\n data-automation-id=\"tab-nav-previous-button\">\n <mat-icon adf-icon=\"keyboard_arrow_left\" />\n {{ 'FORM.BUTTON.PREVIOUS_TAB' | translate }}\n </button>\n <button\n mat-button\n [title]=\"'FORM.BUTTON.NEXT_TAB_TITLE' | translate\"\n [disabled]=\"!canNavigateNextTab\"\n (click)=\"navigateToNextTab()\"\n data-automation-id=\"tab-nav-next-button\">\n {{ 'FORM.BUTTON.NEXT_TAB' | translate }}\n <mat-icon adf-icon=\"keyboard_arrow_right\" iconPositionEnd />\n </button>\n </div>\n <span class=\"adf-tab-navigation-divider\" aria-hidden=\"true\"></span>\n }\n <div class=\"adf-cloud-form-outcome-buttons\">\n <ng-content select=\"adf-cloud-form-custom-outcomes\" />\n @for (outcome of visibleOutcomes; track outcome.name) {\n <button\n [id]=\"'adf-form-' + outcome.name | formatSpace\"\n mat-button\n [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n class=\"adf-cloud-form-custom-outcome-button\"\n (click)=\"onOutcomeClicked(outcome)\"\n >\n {{ getCustomOutcomeButtonText(outcome) || (outcome.name | translate | uppercase) }}\n </button>\n }\n </div>\n </mat-card-actions>\n }\n </div>\n </mat-card>\n </div>\n </div>\n}\n", styles: [".adf-full-screen,.adf-cloud-form-inline-container,.adf-cloud-form-container .adf-cloud-form-content{width:100%;height:100%}.adf-cloud-form-content-standalone-fullscreen{background-color:transparent;border-radius:14px}.adf-cloud-form-content-toolbar{padding-top:0}.adf-cloud-form-container{border-radius:14px}.adf-cloud-form-container .adf-cloud-form-content{flex:1;flex-direction:column;display:flex;position:relative}.adf-cloud-form-fullscreen-container{position:fixed;top:0;left:0;z-index:100000;background-color:var(--mat-sys-surface-container);display:block;height:100%;width:100vw;overflow-y:auto;border-radius:0 0 14px}.adf-cloud-form-fullscreen-container .adf-cloud-form-content{width:calc(100% - 80px);max-width:1366px;height:auto;margin:40px auto;border-radius:14px}.adf-cloud-form-inline-container .adf-cloud-form-content{border-radius:14px}.adf-cloud-form-fullscreen-button{position:absolute;right:70px;top:30px}.adf-cloud-form__display-name{font-size:var(--mat-sys-title-small-size);opacity:.87;line-height:1.5;letter-spacing:-.4px;font-weight:400;font-style:normal;font-stretch:normal;max-width:400px;text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:middle}.adf-cloud-form__form-title{text-align:center;flex:1 1 auto}.adf-cloud-form-content-card{padding-bottom:2rem;overflow-y:auto;position:static;height:70%;border-radius:14px}.adf-cloud-form-content-card-fullscreen{padding-top:0;height:100%;width:100%;position:relative}.adf-cloud-form-content-card-fullscreen-toolbar{border-radius:0 0 14px 14px}.adf-cloud-form-content-card-fullscreen-container{display:flex;flex-direction:column;height:100%}.adf-cloud-form-content-card-fullscreen-container .mat-mdc-card-content{height:100%;overflow:hidden auto}.adf-cloud-form-content-card-container .adf-form-container-card-content{padding-left:1%;padding-right:1%}.adf-cloud-form-sidebars{display:flex;flex:1 1 auto}.adf-cloud-form-sidebars adf-viewer-render{order:1;flex:1 1 auto;display:flex}.adf-cloud-form .adf-label{white-space:normal}.adf-cloud-form-content-card-actions.adf-has-tab-navigation{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end}@media(max-width:599.9px){.adf-cloud-form-content-card-actions.adf-has-tab-navigation{flex-direction:column;align-items:stretch}}.adf-tab-navigation-buttons{display:flex;align-items:center;gap:4px}@media(max-width:599.9px){.adf-tab-navigation-buttons{justify-content:center}}.adf-tab-navigation-divider{width:1px;height:24px;background-color:var(--mat-sys-outline-variant, rgba(0, 0, 0, .12))}@media(max-width:599.9px){.adf-tab-navigation-divider{display:none}}.adf-cloud-form-outcome-buttons{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: FormRendererComponent, selector: "adf-form-renderer", inputs: ["formDefinition", "readOnly"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.IconDirective, selector: "mat-icon[adf-icon]", inputs: ["adf-icon"] }, { kind: "component", type: ToolbarDividerComponent, selector: "adf-toolbar-divider" }, { kind: "component", type: ToolbarComponent, selector: "adf-toolbar", inputs: ["title"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i5$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormatSpacePipe, name: "formatSpace" }] }); }
|
|
8921
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: FormCloudComponent, isStandalone: true, selector: "adf-cloud-form", inputs: { appName: "appName", appVersion: "appVersion", formId: "formId", processInstanceId: "processInstanceId", taskId: "taskId", data: "data", displayModeConfigurations: "displayModeConfigurations", showCompleteButton: "showCompleteButton", customSaveButtonText: "customSaveButtonText", customCompleteButtonText: "customCompleteButtonText", enableParentVisibilityCheck: "enableParentVisibilityCheck", form: "form" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", formLoaded: "formLoaded", formDataRefreshed: "formDataRefreshed", visibleOutcomesChanged: "visibleOutcomesChanged", formContentClicked: "formContentClicked", displayModeOn: "displayModeOn", displayModeOff: "displayModeOff" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, providers: [FormCloudSpinnerService], viewQueries: [{ propertyName: "formRenderer", first: true, predicate: FormRendererComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hasForm()) {\n <div>\n <ng-content select=\"[empty-form]\" />\n </div>\n} @else {\n <div\n class=\"adf-cloud-form-container adf-cloud-form-{{ displayConfiguration?.options?.fullscreen ? 'fullscreen' : 'inline' }}-container\"\n data-automation-id=\"adf-cloud-form-container\"\n [style]=\"formStyle\"\n >\n <div\n class=\"adf-cloud-form-content\"\n [class.adf-cloud-form-content-standalone-fullscreen]=\"displayMode === 'standalone' && displayConfiguration?.options?.fullscreen\"\n [class.adf-cloud-form-content-toolbar]=\"!!displayConfiguration?.options?.displayToolbar\"\n [cdkTrapFocus]=\"displayConfiguration?.options?.trapFocus\"\n cdkTrapFocusAutoCapture>\n @if (displayConfiguration?.options?.displayToolbar) {\n <adf-toolbar class=\"adf-cloud-form-toolbar\">\n <div class=\"adf-cloud-form__form-title\">\n <span class=\"adf-cloud-form__display-name\" [title]=\"form.taskName\">\n {{ form.taskName }}\n @if (!form.taskName) {\n {{ 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n }\n </span>\n </div>\n\n @if (displayConfiguration?.options?.displayCloseButton) {\n <adf-toolbar-divider />\n <button\n class=\"adf-cloud-form-close-button\"\n data-automation-id=\"adf-toolbar-right-back\"\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.CLOSE' | translate\"\n [attr.data-automation-id]=\"'adf-cloud-form-close-button'\"\n [title]=\"'ADF_VIEWER.ACTIONS.CLOSE' | translate\"\n mat-icon-button\n (click)=\"switchToDisplayMode()\"\n >\n <mat-icon adf-icon=\"close\" />\n </button>\n }\n </adf-toolbar>\n }\n\n <mat-card\n appearance=\"outlined\"\n class=\"adf-cloud-form-content-card\"\n [class.adf-cloud-form-content-card-fullscreen]=\"displayMode === 'fullScreen'\"\n [class.adf-cloud-form-content-card-fullscreen-toolbar]=\"displayMode === 'fullScreen' && displayConfiguration?.options?.displayToolbar\"\n >\n <div class=\"adf-cloud-form-content-card-container\">\n @if (showTitle || showRefreshButton || showValidationIcon) {\n <mat-card-header>\n <mat-card-title>\n <h4>\n @if (showValidationIcon) {\n <div class=\"adf-form-validation-button\">\n @if (form.isValid) {\n <i id=\"adf-valid-form-icon\" class=\"material-icons\">check_circle</i>\n } @else {\n <i id=\"adf-invalid-form-icon\" class=\"material-icons adf-invalid-color\">error</i>\n }\n </div>\n }\n @if (!displayConfiguration?.options?.fullscreen && findDisplayConfiguration('fullScreen')) {\n <div class=\"adf-cloud-form-fullscreen-button\">\n <button\n mat-icon-button\n (click)=\"switchToDisplayMode('fullScreen')\"\n [attr.data-automation-id]=\"'adf-cloud-form-fullscreen-button'\"\n >\n <mat-icon adf-icon=\"fullscreen\" />\n </button>\n </div>\n }\n @if (showRefreshButton) {\n <div class=\"adf-cloud-form-reload-button\" [title]=\"'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate\">\n <button mat-icon-button (click)=\"onRefreshClicked()\" [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate\">\n <mat-icon adf-icon=\"refresh\" />\n </button>\n </div>\n }\n @if (isTitleEnabled()) {\n <span class=\"adf-cloud-form-title\" [title]=\"form.taskName\">\n {{ form.taskName }}\n @if (!form.taskName) {\n {{ 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n }\n </span>\n }\n </h4>\n </mat-card-title>\n </mat-card-header>\n }\n <mat-card-content class=\"adf-form-container-card-content\">\n <adf-form-renderer [formDefinition]=\"form\" [readOnly]=\"readOnly\" />\n </mat-card-content>\n @if (form.hasOutcomes() || shouldShowTabNavigation) {\n <mat-card-actions class=\"adf-cloud-form-content-card-actions\" [class.adf-has-tab-navigation]=\"shouldShowTabNavigation\" align=\"end\">\n @if (shouldShowTabNavigation) {\n <div class=\"adf-tab-navigation-buttons\">\n <button\n mat-button\n [title]=\"'FORM.BUTTON.PREVIOUS_TAB_TITLE' | translate\"\n [disabled]=\"!canNavigatePreviousTab\"\n (click)=\"navigateToPreviousTab()\"\n data-automation-id=\"tab-nav-previous-button\">\n <mat-icon adf-icon=\"keyboard_arrow_left\" />\n {{ 'FORM.BUTTON.PREVIOUS_TAB' | translate }}\n </button>\n <button\n mat-button\n [title]=\"'FORM.BUTTON.NEXT_TAB_TITLE' | translate\"\n [disabled]=\"!canNavigateNextTab\"\n (click)=\"navigateToNextTab()\"\n data-automation-id=\"tab-nav-next-button\">\n {{ 'FORM.BUTTON.NEXT_TAB' | translate }}\n <mat-icon adf-icon=\"keyboard_arrow_right\" iconPositionEnd />\n </button>\n </div>\n <span class=\"adf-tab-navigation-divider\" aria-hidden=\"true\"></span>\n }\n <div class=\"adf-cloud-form-outcome-buttons\">\n <ng-content select=\"adf-cloud-form-custom-outcomes\" />\n @for (outcome of visibleOutcomes; track outcome.name) {\n <button\n [id]=\"'adf-form-' + outcome.name | formatSpace\"\n mat-button\n [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n class=\"adf-cloud-form-custom-outcome-button\"\n (click)=\"onOutcomeClicked(outcome)\"\n >\n {{ getCustomOutcomeButtonText(outcome) || (outcome.name | translate | uppercase) }}\n </button>\n }\n </div>\n </mat-card-actions>\n }\n </div>\n </mat-card>\n </div>\n </div>\n}\n", styles: [".adf-full-screen,.adf-cloud-form-inline-container,.adf-cloud-form-container .adf-cloud-form-content{width:100%;height:100%}.adf-cloud-form-content-standalone-fullscreen{background-color:transparent;border-radius:14px}.adf-cloud-form-content-toolbar{padding-top:0}.adf-cloud-form-container{border-radius:14px}.adf-cloud-form-container .adf-cloud-form-content{flex:1;flex-direction:column;display:flex;position:relative}.adf-cloud-form-fullscreen-container{position:fixed;top:0;left:0;z-index:100000;background-color:var(--mat-sys-surface-container);display:block;height:100%;width:100vw;overflow-y:auto;border-radius:0 0 14px}.adf-cloud-form-fullscreen-container .adf-cloud-form-content{width:calc(100% - 80px);max-width:1366px;height:auto;margin:40px auto;border-radius:14px}.adf-cloud-form-inline-container .adf-cloud-form-content{border-radius:14px}.adf-cloud-form-fullscreen-button{position:absolute;right:70px;top:30px}.adf-cloud-form__display-name{font-size:var(--mat-sys-title-small-size);opacity:.87;line-height:1.5;letter-spacing:-.4px;font-weight:400;font-style:normal;font-stretch:normal;max-width:400px;text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:middle}.adf-cloud-form__form-title{text-align:center;flex:1 1 auto}.adf-cloud-form-content-card{padding-bottom:2rem;overflow-y:auto;position:static;height:70%;border-radius:14px}.adf-cloud-form-content-card-fullscreen{padding-top:0;height:100%;width:100%;position:relative}.adf-cloud-form-content-card-fullscreen-toolbar{border-radius:0 0 14px 14px}.adf-cloud-form-content-card-fullscreen-container{display:flex;flex-direction:column;height:100%}.adf-cloud-form-content-card-fullscreen-container .mat-mdc-card-content{height:100%;overflow:hidden auto}.adf-cloud-form-content-card-container .adf-form-container-card-content{padding-left:1%;padding-right:1%}.adf-cloud-form-sidebars{display:flex;flex:1 1 auto}.adf-cloud-form-sidebars adf-viewer-render{order:1;flex:1 1 auto;display:flex}.adf-cloud-form .adf-label{white-space:normal}.adf-cloud-form-content-card-actions.adf-has-tab-navigation{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end}@media(max-width:599.9px){.adf-cloud-form-content-card-actions.adf-has-tab-navigation{flex-direction:column;align-items:stretch}}.adf-tab-navigation-buttons{display:flex;align-items:center;gap:4px}@media(max-width:599.9px){.adf-tab-navigation-buttons{justify-content:center}}.adf-tab-navigation-divider{width:1px;height:24px;background-color:var(--mat-sys-outline-variant, rgba(0, 0, 0, .12))}@media(max-width:599.9px){.adf-tab-navigation-divider{display:none}}.adf-cloud-form-outcome-buttons{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: FormRendererComponent, selector: "adf-form-renderer", inputs: ["formDefinition", "readOnly"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.IconDirective, selector: "mat-icon[adf-icon]", inputs: ["adf-icon"] }, { kind: "component", type: ToolbarDividerComponent, selector: "adf-toolbar-divider" }, { kind: "component", type: ToolbarComponent, selector: "adf-toolbar", inputs: ["title"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i5$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormatSpacePipe, name: "formatSpace" }] }); }
|
|
8886
8922
|
}
|
|
8887
8923
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FormCloudComponent, decorators: [{
|
|
8888
8924
|
type: Component,
|
|
@@ -8928,6 +8964,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
8928
8964
|
type: Output
|
|
8929
8965
|
}], formDataRefreshed: [{
|
|
8930
8966
|
type: Output
|
|
8967
|
+
}], visibleOutcomesChanged: [{
|
|
8968
|
+
type: Output
|
|
8931
8969
|
}], formContentClicked: [{
|
|
8932
8970
|
type: Output
|
|
8933
8971
|
}], displayModeOn: [{
|
|
@@ -10787,7 +10825,7 @@ class TaskFormCloudComponent {
|
|
|
10787
10825
|
this.formLoaded.emit(form);
|
|
10788
10826
|
}
|
|
10789
10827
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskFormCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10790
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TaskFormCloudComponent, isStandalone: true, selector: "adf-cloud-task-form", inputs: { appName: "appName", candidateUsers: "candidateUsers", candidateGroups: "candidateGroups", taskId: "taskId", showTitle: "showTitle", showRefreshButton: "showRefreshButton", showValidationIcon: "showValidationIcon", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", showSaveButton: "showSaveButton", customCancelButtonText: "customCancelButtonText", customCompleteButtonText: "customCompleteButtonText", customSaveButtonText: "customSaveButtonText", readOnly: "readOnly", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck", taskDetails: "taskDetails" }, outputs: { formLoaded: "formLoaded", formSaved: "formSaved", formCompleted: "formCompleted", taskCompleted: "taskCompleted", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", cancelClick: "cancelClick", error: "error", formContentClicked: "formContentClicked", executeOutcome: "executeOutcome", displayModeOn: "displayModeOn", displayModeOff: "displayModeOff" }, viewQueries: [{ propertyName: "adfCloudForm", first: true, predicate: ["adfCloudForm"], descendants: true }], ngImport: i0, template: "<div class=\"adf-task-form-cloud-container\">\n <adf-cloud-form\n #adfCloudForm\n [appName]=\"appName\"\n [appVersion]=\"taskDetails.appVersion\"\n [taskId]=\"taskId\"\n [showTitle]=\"showTitle\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [readOnly]=\"isReadOnly()\"\n [showRefreshButton]=\"showRefreshButton\"\n [showValidationIcon]=\"showValidationIcon\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved($event)\"\n (formCompleted)=\"onFormCompleted($event)\"\n (formError)=\"onError($event)\"\n (error)=\"onError($event)\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (executeOutcome)=\"onFormExecuteOutcome($event)\"\n (displayModeOn)=\"onDisplayModeOn($event)\"\n (displayModeOff)=\"onDisplayModeOff($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n</div>\n", styles: [".adf-task-form-cloud-container{height:100%}.adf-task-form-cloud-container .adf-task-form-container{overflow:hidden}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button){padding-bottom:25px;padding-right:25px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .adf-task-form-actions-button{height:36px;border-radius:5px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mdc-button__label{min-width:58px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton", "customCancelButtonText"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }, { kind: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showCompleteButton", "customSaveButtonText", "customCompleteButtonText", "enableParentVisibilityCheck", "form"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "formContentClicked", "displayModeOn", "displayModeOff"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10828
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: TaskFormCloudComponent, isStandalone: true, selector: "adf-cloud-task-form", inputs: { appName: "appName", candidateUsers: "candidateUsers", candidateGroups: "candidateGroups", taskId: "taskId", showTitle: "showTitle", showRefreshButton: "showRefreshButton", showValidationIcon: "showValidationIcon", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", showSaveButton: "showSaveButton", customCancelButtonText: "customCancelButtonText", customCompleteButtonText: "customCompleteButtonText", customSaveButtonText: "customSaveButtonText", readOnly: "readOnly", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck", taskDetails: "taskDetails" }, outputs: { formLoaded: "formLoaded", formSaved: "formSaved", formCompleted: "formCompleted", taskCompleted: "taskCompleted", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", cancelClick: "cancelClick", error: "error", formContentClicked: "formContentClicked", executeOutcome: "executeOutcome", displayModeOn: "displayModeOn", displayModeOff: "displayModeOff" }, viewQueries: [{ propertyName: "adfCloudForm", first: true, predicate: ["adfCloudForm"], descendants: true }], ngImport: i0, template: "<div class=\"adf-task-form-cloud-container\">\n <adf-cloud-form\n #adfCloudForm\n [appName]=\"appName\"\n [appVersion]=\"taskDetails.appVersion\"\n [taskId]=\"taskId\"\n [showTitle]=\"showTitle\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [readOnly]=\"isReadOnly()\"\n [showRefreshButton]=\"showRefreshButton\"\n [showValidationIcon]=\"showValidationIcon\"\n [showCompleteButton]=\"showCompleteButton && canCompleteTask()\"\n [showSaveButton]=\"showSaveButton && canCompleteTask()\"\n [customSaveButtonText]=\"customSaveButtonText\"\n [customCompleteButtonText]=\"customCompleteButtonText\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n (formLoaded)=\"onFormLoaded($event)\"\n (formSaved)=\"onFormSaved($event)\"\n (formCompleted)=\"onFormCompleted($event)\"\n (formError)=\"onError($event)\"\n (error)=\"onError($event)\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (executeOutcome)=\"onFormExecuteOutcome($event)\"\n (displayModeOn)=\"onDisplayModeOn($event)\"\n (displayModeOff)=\"onDisplayModeOff($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [customCancelButtonText]=\"customCancelButtonText\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n</div>\n", styles: [".adf-task-form-cloud-container{height:100%}.adf-task-form-cloud-container .adf-task-form-container{overflow:hidden}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button){padding-bottom:25px;padding-right:25px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .adf-task-form-actions-button{height:36px;border-radius:5px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mdc-button__label{min-width:58px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton", "customCancelButtonText"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }, { kind: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showCompleteButton", "customSaveButtonText", "customCompleteButtonText", "enableParentVisibilityCheck", "form"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "visibleOutcomesChanged", "formContentClicked", "displayModeOn", "displayModeOff"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10791
10829
|
}
|
|
10792
10830
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: TaskFormCloudComponent, decorators: [{
|
|
10793
10831
|
type: Component,
|
|
@@ -14362,12 +14400,22 @@ class StartProcessCloudComponent {
|
|
|
14362
14400
|
onFormLoaded(form) {
|
|
14363
14401
|
this.isFormCloudLoaded = true;
|
|
14364
14402
|
this.formCloud = form;
|
|
14365
|
-
const
|
|
14403
|
+
const visibleOutcomes = form?.outcomes?.filter((outcome) => isOutcomeButtonVisible(outcome, {
|
|
14366
14404
|
isFormReadOnly: form.readOnly,
|
|
14367
14405
|
showCompleteButton: this.showCompleteButton,
|
|
14368
14406
|
showSaveButton: this.showSaveButton
|
|
14369
|
-
}));
|
|
14370
|
-
this.
|
|
14407
|
+
})) ?? [];
|
|
14408
|
+
this.onVisibleOutcomesChanged(visibleOutcomes);
|
|
14409
|
+
}
|
|
14410
|
+
onVisibleOutcomesChanged(visibleOutcomes) {
|
|
14411
|
+
this.hasVisibleOutcomesSubject.next(visibleOutcomes.length > 0);
|
|
14412
|
+
}
|
|
14413
|
+
onFormError(error) {
|
|
14414
|
+
this.errorMessageId =
|
|
14415
|
+
error instanceof FormOutcomeNotFoundError
|
|
14416
|
+
? 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.OUTCOME_NOT_FOUND'
|
|
14417
|
+
: 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.START';
|
|
14418
|
+
this.error.emit(error);
|
|
14371
14419
|
}
|
|
14372
14420
|
onDisableStartProcessButtonForScreen(disable) {
|
|
14373
14421
|
this.disableStartProcessForScreen = disable;
|
|
@@ -14386,6 +14434,7 @@ class StartProcessCloudComponent {
|
|
|
14386
14434
|
}
|
|
14387
14435
|
}
|
|
14388
14436
|
setProcessDefinitionOnForm(selectedProcessDefinitionName) {
|
|
14437
|
+
this.resetErrorMessage();
|
|
14389
14438
|
this.isFormCloudLoading = true;
|
|
14390
14439
|
const processDefinitionCurrent = this.filteredProcesses.find((process) => process.name === selectedProcessDefinitionName || process.key === selectedProcessDefinitionName);
|
|
14391
14440
|
forkJoin([
|
|
@@ -14498,19 +14547,60 @@ class StartProcessCloudComponent {
|
|
|
14498
14547
|
}
|
|
14499
14548
|
}
|
|
14500
14549
|
onCustomOutcomeClicked(outcome) {
|
|
14550
|
+
if (this.isProcessStarting) {
|
|
14551
|
+
return;
|
|
14552
|
+
}
|
|
14501
14553
|
this.customOutcomeName = outcome.outcome.name;
|
|
14502
14554
|
this.customOutcomeId = outcome.outcome.id;
|
|
14503
14555
|
this.startProcess();
|
|
14504
14556
|
}
|
|
14505
14557
|
startProcessWithoutConfirmation() {
|
|
14558
|
+
if (this.isProcessStarting) {
|
|
14559
|
+
return;
|
|
14560
|
+
}
|
|
14561
|
+
this.isProcessStarting = true;
|
|
14562
|
+
this.executeProcessStart();
|
|
14563
|
+
}
|
|
14564
|
+
startProcess() {
|
|
14565
|
+
if (!this.formCloud?.confirmMessage?.show) {
|
|
14566
|
+
this.startProcessWithoutConfirmation();
|
|
14567
|
+
return;
|
|
14568
|
+
}
|
|
14569
|
+
if (this.isProcessStarting) {
|
|
14570
|
+
return;
|
|
14571
|
+
}
|
|
14572
|
+
this.isProcessStarting = true;
|
|
14573
|
+
const dialogRef = this.dialog.open(ConfirmDialogComponent, {
|
|
14574
|
+
data: {
|
|
14575
|
+
message: this.formCloud.confirmMessage.message
|
|
14576
|
+
},
|
|
14577
|
+
minWidth: '450px'
|
|
14578
|
+
});
|
|
14579
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
14580
|
+
if (result) {
|
|
14581
|
+
this.executeProcessStart();
|
|
14582
|
+
}
|
|
14583
|
+
else {
|
|
14584
|
+
this.isProcessStarting = false;
|
|
14585
|
+
}
|
|
14586
|
+
});
|
|
14587
|
+
}
|
|
14588
|
+
cancelStartProcess() {
|
|
14589
|
+
this.cancel.emit();
|
|
14590
|
+
}
|
|
14591
|
+
executeProcessStart() {
|
|
14592
|
+
this.resetErrorMessage();
|
|
14506
14593
|
let submissionValues = this.screenSubmitPayload;
|
|
14507
14594
|
if (this.hasForm) {
|
|
14508
14595
|
if (!this.formCloud) {
|
|
14596
|
+
this.isProcessStarting = false;
|
|
14509
14597
|
return;
|
|
14510
14598
|
}
|
|
14511
14599
|
submissionValues = this.getFormSubmissionValues(this.formCloud);
|
|
14512
14600
|
}
|
|
14513
|
-
|
|
14601
|
+
const submittedForm = this.formCloud;
|
|
14602
|
+
const requestedOutcome = this.customOutcomeName;
|
|
14603
|
+
const requestedOutcomeId = this.customOutcomeId;
|
|
14514
14604
|
let action;
|
|
14515
14605
|
if (this.hasForm || this.hasScreen) {
|
|
14516
14606
|
action = this.startProcessCloudService.startProcessWithForm(this.appName, this.processDefinitionCurrent.formKey, this.processDefinitionCurrent.version, new ProcessWithFormPayloadCloud({
|
|
@@ -14518,7 +14608,7 @@ class StartProcessCloudComponent {
|
|
|
14518
14608
|
processDefinitionKey: this.processPayloadCloud.processDefinitionKey,
|
|
14519
14609
|
variables: this.variables ?? {},
|
|
14520
14610
|
values: submissionValues,
|
|
14521
|
-
outcome:
|
|
14611
|
+
outcome: requestedOutcome
|
|
14522
14612
|
}));
|
|
14523
14613
|
}
|
|
14524
14614
|
else {
|
|
@@ -14530,7 +14620,11 @@ class StartProcessCloudComponent {
|
|
|
14530
14620
|
}
|
|
14531
14621
|
action.subscribe({
|
|
14532
14622
|
next: (res) => {
|
|
14533
|
-
|
|
14623
|
+
if (submittedForm && requestedOutcomeId) {
|
|
14624
|
+
submittedForm.selectedOutcome = requestedOutcome;
|
|
14625
|
+
submittedForm.selectedOutcomeId = requestedOutcomeId;
|
|
14626
|
+
}
|
|
14627
|
+
this.customOutcomeSelected.emit(requestedOutcomeId);
|
|
14534
14628
|
this.success.emit(res);
|
|
14535
14629
|
this.isProcessStarting = false;
|
|
14536
14630
|
},
|
|
@@ -14544,27 +14638,6 @@ class StartProcessCloudComponent {
|
|
|
14544
14638
|
getFormSubmissionValues(form) {
|
|
14545
14639
|
return materializeSubmissionValues(form, { enableExpressionEvaluation: this.enableExpressionEvaluation }, this.expressions);
|
|
14546
14640
|
}
|
|
14547
|
-
startProcess() {
|
|
14548
|
-
if (!this.formCloud?.confirmMessage?.show) {
|
|
14549
|
-
this.startProcessWithoutConfirmation();
|
|
14550
|
-
}
|
|
14551
|
-
else {
|
|
14552
|
-
const dialogRef = this.dialog.open(ConfirmDialogComponent, {
|
|
14553
|
-
data: {
|
|
14554
|
-
message: this.formCloud.confirmMessage.message
|
|
14555
|
-
},
|
|
14556
|
-
minWidth: '450px'
|
|
14557
|
-
});
|
|
14558
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
14559
|
-
if (result) {
|
|
14560
|
-
this.startProcessWithoutConfirmation();
|
|
14561
|
-
}
|
|
14562
|
-
});
|
|
14563
|
-
}
|
|
14564
|
-
}
|
|
14565
|
-
cancelStartProcess() {
|
|
14566
|
-
this.cancel.emit();
|
|
14567
|
-
}
|
|
14568
14641
|
resetErrorMessage() {
|
|
14569
14642
|
this.errorMessageId = '';
|
|
14570
14643
|
}
|
|
@@ -14636,7 +14709,7 @@ class StartProcessCloudComponent {
|
|
|
14636
14709
|
return processName;
|
|
14637
14710
|
}
|
|
14638
14711
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: StartProcessCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14639
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: StartProcessCloudComponent, isStandalone: true, selector: "adf-cloud-start-process", inputs: { appName: "appName", maxNameLength: "maxNameLength", name: "name", processDefinitionName: "processDefinitionName", variables: "variables", values: "values", showSelectProcessDropdown: "showSelectProcessDropdown", showTitle: "showTitle", showCancelButton: "showCancelButton", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck" }, outputs: { success: "success", cancel: "cancel", error: "error", formContentClicked: "formContentClicked", processDefinitionSelection: "processDefinitionSelection", customOutcomeSelected: "customOutcomeSelected" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, providers: [LocalizedDatePipe], viewQueries: [{ propertyName: "inputAutocomplete", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (processDefinitionLoaded && !isFormCloudLoading) {\n <mat-card appearance=\"outlined\" class=\"adf-start-process\">\n <mat-card-content>\n @if (showTitle) {\n <mat-card-title class=\"adf-title\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.TITLE' | translate }}\n </mat-card-title>\n }\n\n @if (errorMessageId) {\n <mat-card-subtitle class=\"adf-error-message\" id=\"error-message\">\n {{ errorMessageId | translate }}\n </mat-card-subtitle>\n }\n\n @if (!isProcessDefinitionsEmpty) {\n <div>\n <form [formGroup]=\"processForm\" class=\"adf-select-process-form\">\n @if (showSelectProcessDropdown) {\n <mat-form-field\n class=\"adf-process-input-container\"\n floatLabel=\"always\"\n data-automation-id=\"adf-select-cloud-process-dropdown\"\n >\n <mat-label class=\"adf-start-process-input-label\">{{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.TYPE' | translate\n }}</mat-label>\n <input matInput formControlName=\"processDefinition\" [matAutocomplete]=\"auto\" id=\"processDefinitionName\" />\n\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayProcessNameOnDropdown\"\n (optionSelected)=\"setProcessDefinitionOnForm($event.option.value)\"\n >\n <mat-option\n *ngFor=\"let processDef of filteredProcesses\"\n [value]=\"getProcessDefinitionValue(processDef)\"\n (click)=\"processDefinitionSelectionChanged(processDef)\"\n >\n {{ getProcessDefinitionValue(processDef) }}\n </mat-option>\n </mat-autocomplete>\n\n <button\n id=\"adf-select-process-dropdown\"\n title=\"{{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.SELECT_PROCESS_DROPDOWN' | translate }}\"\n mat-icon-button\n (click)=\"displayDropdown($event)\"\n >\n <mat-icon adf-icon=\"arrow_drop_down\" />\n </button>\n </div>\n @if (processDefinition.hasError('required')) {\n <mat-error>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_DEFINITION_REQUIRED' | translate }}\n </mat-error>\n }\n </mat-form-field>\n }\n\n <adf-inplace-form-input [control]=\"processInstanceName\">\n <ng-container label>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.NAME' | translate }}\n </ng-container>\n\n <ng-container error>\n @if (processInstanceName.hasError('required')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </span>\n }\n @if (processInstanceName.hasError('maxlength')) {\n <span id=\"adf-start-process-maxlength-error\">\n {{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.MAXIMUM_LENGTH'\n | translate: { characters: maxNameLength }\n }}\n </span>\n }\n @if (processInstanceName.hasError('pattern')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </span>\n }\n </ng-container>\n </adf-inplace-form-input>\n </form>\n\n @if (hasForm) {\n <adf-cloud-form\n #startForm\n [appName]=\"appName\"\n [appVersion]=\"processDefinitionCurrent.appVersion\"\n [data]=\"resolvedValues\"\n [formId]=\"processDefinitionCurrent.formKey\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showSaveButton]=\"showSaveButton\"\n [showCompleteButton]=\"showCompleteButton\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\"\n [showTitle]=\"false\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (executeOutcome)=\"onCustomOutcomeClicked($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n } @else if (hasScreen) {\n <adf-cloud-start-process-screen-cloud\n [screenId]=\"processDefinitionCurrent.formKey\"\n [appName]=\"appName\"\n [processDefinitionId]=\"processDefinitionCurrent?.id ?? ''\"\n [resolvedValues]=\"resolvedValues\"\n (screenStartProcessPayloadChange)=\"onScreenStartProcessPayloadChange($event)\"\n (disableStartProcessButton)=\"onDisableStartProcessButtonForScreen($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-start-process-screen-cloud>\n } @else {\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n }\n </div>\n } @else {\n @if (processDefinitionLoaded) {\n <mat-card-content>\n <mat-card-subtitle class=\"error-message\" id=\"no-process-message\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.NO_PROCESS_DEFINITIONS' | translate | uppercase }}\n </mat-card-subtitle>\n </mat-card-content>\n }\n }\n </mat-card-content>\n </mat-card>\n} @else {\n <div class=\"adf-loading-container\">\n <mat-progress-spinner class=\"adf-loading\" mode=\"indeterminate\" />\n </div>\n}\n\n<ng-template #taskFormCloudButtons>\n <div class=\"adf-start-process-cloud-actions\">\n @if (showCancelButton) {\n <button mat-button (click)=\"cancelStartProcess()\" id=\"cancel_process\">\n {{ cancelButtonLabel }}\n </button>\n }\n @if (showStartProcessButton$ | async) {\n <button\n mat-flat-button\n [disabled]=\"disableStartButton || !isProcessFormValid\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"adf-btn-start\"\n >\n {{ startProcessButtonLabel }}\n </button>\n }\n </div>\n</ng-template>\n", styles: [".adf-start-process-cloud-actions{display:flex;justify-content:flex-end}.adf-select-process-form{display:flex;flex-direction:column}.adf-title{padding-bottom:1.25em}.adf-error-message{padding-left:.5em}.adf-process-input-container{margin:0 7px}.adf-process-input-autocomplete{display:flex}.adf-process-input-autocomplete button{position:absolute;right:-14px;top:0}.adf-form-container .adf-form-container-card:has(.adf-form-container-card-content){box-shadow:none;padding:0}.adf-start-form-actions{text-align:right}.adf-loading{margin:auto}.adf-loading-container{min-height:300px;display:flex;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i2$3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i2$3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: InplaceFormInputComponent, selector: "adf-inplace-form-input", inputs: ["control"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.IconDirective, selector: "mat-icon[adf-icon]", inputs: ["adf-icon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7$1.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$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showCompleteButton", "customSaveButtonText", "customCompleteButtonText", "enableParentVisibilityCheck", "form"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "formContentClicked", "displayModeOn", "displayModeOff"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }, { kind: "component", type: StartProcessScreenCloudComponent, selector: "adf-cloud-start-process-screen-cloud", inputs: ["appName", "processDefinitionId", "resolvedValues"], outputs: ["screenStartProcessPayloadChange", "disableStartProcessButton"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
14712
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: StartProcessCloudComponent, isStandalone: true, selector: "adf-cloud-start-process", inputs: { appName: "appName", maxNameLength: "maxNameLength", name: "name", processDefinitionName: "processDefinitionName", variables: "variables", values: "values", showSelectProcessDropdown: "showSelectProcessDropdown", showTitle: "showTitle", showCancelButton: "showCancelButton", displayModeConfigurations: "displayModeConfigurations", enableParentVisibilityCheck: "enableParentVisibilityCheck" }, outputs: { success: "success", cancel: "cancel", error: "error", formContentClicked: "formContentClicked", processDefinitionSelection: "processDefinitionSelection", customOutcomeSelected: "customOutcomeSelected" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, providers: [LocalizedDatePipe], viewQueries: [{ propertyName: "inputAutocomplete", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (processDefinitionLoaded && !isFormCloudLoading) {\n <mat-card appearance=\"outlined\" class=\"adf-start-process\">\n <mat-card-content>\n @if (showTitle) {\n <mat-card-title class=\"adf-title\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.TITLE' | translate }}\n </mat-card-title>\n }\n\n @if (errorMessageId) {\n <mat-card-subtitle class=\"adf-error-message\" id=\"error-message\">\n {{ errorMessageId | translate }}\n </mat-card-subtitle>\n }\n\n @if (!isProcessDefinitionsEmpty) {\n <div>\n <form [formGroup]=\"processForm\" class=\"adf-select-process-form\">\n @if (showSelectProcessDropdown) {\n <mat-form-field\n class=\"adf-process-input-container\"\n floatLabel=\"always\"\n data-automation-id=\"adf-select-cloud-process-dropdown\"\n >\n <mat-label class=\"adf-start-process-input-label\">{{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.TYPE' | translate\n }}</mat-label>\n <input matInput formControlName=\"processDefinition\" [matAutocomplete]=\"auto\" id=\"processDefinitionName\" />\n\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayProcessNameOnDropdown\"\n (optionSelected)=\"setProcessDefinitionOnForm($event.option.value)\"\n >\n <mat-option\n *ngFor=\"let processDef of filteredProcesses\"\n [value]=\"getProcessDefinitionValue(processDef)\"\n (click)=\"processDefinitionSelectionChanged(processDef)\"\n >\n {{ getProcessDefinitionValue(processDef) }}\n </mat-option>\n </mat-autocomplete>\n\n <button\n id=\"adf-select-process-dropdown\"\n title=\"{{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.SELECT_PROCESS_DROPDOWN' | translate }}\"\n mat-icon-button\n (click)=\"displayDropdown($event)\"\n >\n <mat-icon adf-icon=\"arrow_drop_down\" />\n </button>\n </div>\n @if (processDefinition.hasError('required')) {\n <mat-error>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_DEFINITION_REQUIRED' | translate }}\n </mat-error>\n }\n </mat-form-field>\n }\n\n <adf-inplace-form-input [control]=\"processInstanceName\">\n <ng-container label>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.NAME' | translate }}\n </ng-container>\n\n <ng-container error>\n @if (processInstanceName.hasError('required')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </span>\n }\n @if (processInstanceName.hasError('maxlength')) {\n <span id=\"adf-start-process-maxlength-error\">\n {{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.MAXIMUM_LENGTH'\n | translate: { characters: maxNameLength }\n }}\n </span>\n }\n @if (processInstanceName.hasError('pattern')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </span>\n }\n </ng-container>\n </adf-inplace-form-input>\n </form>\n\n @if (hasForm) {\n <adf-cloud-form\n #startForm\n [appName]=\"appName\"\n [appVersion]=\"processDefinitionCurrent.appVersion\"\n [data]=\"resolvedValues\"\n [formId]=\"processDefinitionCurrent.formKey\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showSaveButton]=\"showSaveButton\"\n [showCompleteButton]=\"showCompleteButton\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\"\n [showTitle]=\"false\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (visibleOutcomesChanged)=\"onVisibleOutcomesChanged($event)\"\n (executeOutcome)=\"onCustomOutcomeClicked($event)\"\n (error)=\"onFormError($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n } @else if (hasScreen) {\n <adf-cloud-start-process-screen-cloud\n [screenId]=\"processDefinitionCurrent.formKey\"\n [appName]=\"appName\"\n [processDefinitionId]=\"processDefinitionCurrent?.id ?? ''\"\n [resolvedValues]=\"resolvedValues\"\n (screenStartProcessPayloadChange)=\"onScreenStartProcessPayloadChange($event)\"\n (disableStartProcessButton)=\"onDisableStartProcessButtonForScreen($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-start-process-screen-cloud>\n } @else {\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n }\n </div>\n } @else {\n @if (processDefinitionLoaded) {\n <mat-card-content>\n <mat-card-subtitle class=\"error-message\" id=\"no-process-message\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.NO_PROCESS_DEFINITIONS' | translate | uppercase }}\n </mat-card-subtitle>\n </mat-card-content>\n }\n }\n </mat-card-content>\n </mat-card>\n} @else {\n <div class=\"adf-loading-container\">\n <mat-progress-spinner class=\"adf-loading\" mode=\"indeterminate\" />\n </div>\n}\n\n<ng-template #taskFormCloudButtons>\n <div class=\"adf-start-process-cloud-actions\">\n @if (showCancelButton) {\n <button mat-button (click)=\"cancelStartProcess()\" id=\"cancel_process\">\n {{ cancelButtonLabel }}\n </button>\n }\n @if (showStartProcessButton$ | async) {\n <button\n mat-flat-button\n [disabled]=\"disableStartButton || !isProcessFormValid\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"adf-btn-start\"\n >\n {{ startProcessButtonLabel }}\n </button>\n }\n </div>\n</ng-template>\n", styles: [".adf-start-process-cloud-actions{display:flex;justify-content:flex-end}.adf-select-process-form{display:flex;flex-direction:column}.adf-title{padding-bottom:1.25em}.adf-error-message{padding-left:.5em}.adf-process-input-container{margin:0 7px}.adf-process-input-autocomplete{display:flex}.adf-process-input-autocomplete button{position:absolute;right:-14px;top:0}.adf-form-container .adf-form-container-card:has(.adf-form-container-card-content){box-shadow:none;padding:0}.adf-start-form-actions{text-align:right}.adf-loading{margin:auto}.adf-loading-container{min-height:300px;display:flex;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: MatCardModule }, { kind: "component", type: i2$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$3.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i2$3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i2$3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: InplaceFormInputComponent, selector: "adf-inplace-form-input", inputs: ["control"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.IconDirective, selector: "mat-icon[adf-icon]", inputs: ["adf-icon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7$1.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$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showCompleteButton", "customSaveButtonText", "customCompleteButtonText", "enableParentVisibilityCheck", "form"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "visibleOutcomesChanged", "formContentClicked", "displayModeOn", "displayModeOff"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }, { kind: "component", type: StartProcessScreenCloudComponent, selector: "adf-cloud-start-process-screen-cloud", inputs: ["appName", "processDefinitionId", "resolvedValues"], outputs: ["screenStartProcessPayloadChange", "disableStartProcessButton"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
14640
14713
|
}
|
|
14641
14714
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: StartProcessCloudComponent, decorators: [{
|
|
14642
14715
|
type: Component,
|
|
@@ -14655,7 +14728,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
14655
14728
|
FormCloudComponent,
|
|
14656
14729
|
FormCustomOutcomesComponent,
|
|
14657
14730
|
StartProcessScreenCloudComponent
|
|
14658
|
-
], providers: [LocalizedDatePipe], encapsulation: ViewEncapsulation.None, template: "@if (processDefinitionLoaded && !isFormCloudLoading) {\n <mat-card appearance=\"outlined\" class=\"adf-start-process\">\n <mat-card-content>\n @if (showTitle) {\n <mat-card-title class=\"adf-title\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.TITLE' | translate }}\n </mat-card-title>\n }\n\n @if (errorMessageId) {\n <mat-card-subtitle class=\"adf-error-message\" id=\"error-message\">\n {{ errorMessageId | translate }}\n </mat-card-subtitle>\n }\n\n @if (!isProcessDefinitionsEmpty) {\n <div>\n <form [formGroup]=\"processForm\" class=\"adf-select-process-form\">\n @if (showSelectProcessDropdown) {\n <mat-form-field\n class=\"adf-process-input-container\"\n floatLabel=\"always\"\n data-automation-id=\"adf-select-cloud-process-dropdown\"\n >\n <mat-label class=\"adf-start-process-input-label\">{{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.TYPE' | translate\n }}</mat-label>\n <input matInput formControlName=\"processDefinition\" [matAutocomplete]=\"auto\" id=\"processDefinitionName\" />\n\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayProcessNameOnDropdown\"\n (optionSelected)=\"setProcessDefinitionOnForm($event.option.value)\"\n >\n <mat-option\n *ngFor=\"let processDef of filteredProcesses\"\n [value]=\"getProcessDefinitionValue(processDef)\"\n (click)=\"processDefinitionSelectionChanged(processDef)\"\n >\n {{ getProcessDefinitionValue(processDef) }}\n </mat-option>\n </mat-autocomplete>\n\n <button\n id=\"adf-select-process-dropdown\"\n title=\"{{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.SELECT_PROCESS_DROPDOWN' | translate }}\"\n mat-icon-button\n (click)=\"displayDropdown($event)\"\n >\n <mat-icon adf-icon=\"arrow_drop_down\" />\n </button>\n </div>\n @if (processDefinition.hasError('required')) {\n <mat-error>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_DEFINITION_REQUIRED' | translate }}\n </mat-error>\n }\n </mat-form-field>\n }\n\n <adf-inplace-form-input [control]=\"processInstanceName\">\n <ng-container label>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.NAME' | translate }}\n </ng-container>\n\n <ng-container error>\n @if (processInstanceName.hasError('required')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </span>\n }\n @if (processInstanceName.hasError('maxlength')) {\n <span id=\"adf-start-process-maxlength-error\">\n {{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.MAXIMUM_LENGTH'\n | translate: { characters: maxNameLength }\n }}\n </span>\n }\n @if (processInstanceName.hasError('pattern')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </span>\n }\n </ng-container>\n </adf-inplace-form-input>\n </form>\n\n @if (hasForm) {\n <adf-cloud-form\n #startForm\n [appName]=\"appName\"\n [appVersion]=\"processDefinitionCurrent.appVersion\"\n [data]=\"resolvedValues\"\n [formId]=\"processDefinitionCurrent.formKey\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showSaveButton]=\"showSaveButton\"\n [showCompleteButton]=\"showCompleteButton\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\"\n [showTitle]=\"false\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (executeOutcome)=\"onCustomOutcomeClicked($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n } @else if (hasScreen) {\n <adf-cloud-start-process-screen-cloud\n [screenId]=\"processDefinitionCurrent.formKey\"\n [appName]=\"appName\"\n [processDefinitionId]=\"processDefinitionCurrent?.id ?? ''\"\n [resolvedValues]=\"resolvedValues\"\n (screenStartProcessPayloadChange)=\"onScreenStartProcessPayloadChange($event)\"\n (disableStartProcessButton)=\"onDisableStartProcessButtonForScreen($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-start-process-screen-cloud>\n } @else {\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n }\n </div>\n } @else {\n @if (processDefinitionLoaded) {\n <mat-card-content>\n <mat-card-subtitle class=\"error-message\" id=\"no-process-message\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.NO_PROCESS_DEFINITIONS' | translate | uppercase }}\n </mat-card-subtitle>\n </mat-card-content>\n }\n }\n </mat-card-content>\n </mat-card>\n} @else {\n <div class=\"adf-loading-container\">\n <mat-progress-spinner class=\"adf-loading\" mode=\"indeterminate\" />\n </div>\n}\n\n<ng-template #taskFormCloudButtons>\n <div class=\"adf-start-process-cloud-actions\">\n @if (showCancelButton) {\n <button mat-button (click)=\"cancelStartProcess()\" id=\"cancel_process\">\n {{ cancelButtonLabel }}\n </button>\n }\n @if (showStartProcessButton$ | async) {\n <button\n mat-flat-button\n [disabled]=\"disableStartButton || !isProcessFormValid\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"adf-btn-start\"\n >\n {{ startProcessButtonLabel }}\n </button>\n }\n </div>\n</ng-template>\n", styles: [".adf-start-process-cloud-actions{display:flex;justify-content:flex-end}.adf-select-process-form{display:flex;flex-direction:column}.adf-title{padding-bottom:1.25em}.adf-error-message{padding-left:.5em}.adf-process-input-container{margin:0 7px}.adf-process-input-autocomplete{display:flex}.adf-process-input-autocomplete button{position:absolute;right:-14px;top:0}.adf-form-container .adf-form-container-card:has(.adf-form-container-card-content){box-shadow:none;padding:0}.adf-start-form-actions{text-align:right}.adf-loading{margin:auto}.adf-loading-container{min-height:300px;display:flex;height:100%}\n"] }]
|
|
14731
|
+
], providers: [LocalizedDatePipe], encapsulation: ViewEncapsulation.None, template: "@if (processDefinitionLoaded && !isFormCloudLoading) {\n <mat-card appearance=\"outlined\" class=\"adf-start-process\">\n <mat-card-content>\n @if (showTitle) {\n <mat-card-title class=\"adf-title\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.TITLE' | translate }}\n </mat-card-title>\n }\n\n @if (errorMessageId) {\n <mat-card-subtitle class=\"adf-error-message\" id=\"error-message\">\n {{ errorMessageId | translate }}\n </mat-card-subtitle>\n }\n\n @if (!isProcessDefinitionsEmpty) {\n <div>\n <form [formGroup]=\"processForm\" class=\"adf-select-process-form\">\n @if (showSelectProcessDropdown) {\n <mat-form-field\n class=\"adf-process-input-container\"\n floatLabel=\"always\"\n data-automation-id=\"adf-select-cloud-process-dropdown\"\n >\n <mat-label class=\"adf-start-process-input-label\">{{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.TYPE' | translate\n }}</mat-label>\n <input matInput formControlName=\"processDefinition\" [matAutocomplete]=\"auto\" id=\"processDefinitionName\" />\n\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayProcessNameOnDropdown\"\n (optionSelected)=\"setProcessDefinitionOnForm($event.option.value)\"\n >\n <mat-option\n *ngFor=\"let processDef of filteredProcesses\"\n [value]=\"getProcessDefinitionValue(processDef)\"\n (click)=\"processDefinitionSelectionChanged(processDef)\"\n >\n {{ getProcessDefinitionValue(processDef) }}\n </mat-option>\n </mat-autocomplete>\n\n <button\n id=\"adf-select-process-dropdown\"\n title=\"{{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.SELECT_PROCESS_DROPDOWN' | translate }}\"\n mat-icon-button\n (click)=\"displayDropdown($event)\"\n >\n <mat-icon adf-icon=\"arrow_drop_down\" />\n </button>\n </div>\n @if (processDefinition.hasError('required')) {\n <mat-error>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_DEFINITION_REQUIRED' | translate }}\n </mat-error>\n }\n </mat-form-field>\n }\n\n <adf-inplace-form-input [control]=\"processInstanceName\">\n <ng-container label>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.NAME' | translate }}\n </ng-container>\n\n <ng-container error>\n @if (processInstanceName.hasError('required')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </span>\n }\n @if (processInstanceName.hasError('maxlength')) {\n <span id=\"adf-start-process-maxlength-error\">\n {{\n 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.MAXIMUM_LENGTH'\n | translate: { characters: maxNameLength }\n }}\n </span>\n }\n @if (processInstanceName.hasError('pattern')) {\n <span>\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </span>\n }\n </ng-container>\n </adf-inplace-form-input>\n </form>\n\n @if (hasForm) {\n <adf-cloud-form\n #startForm\n [appName]=\"appName\"\n [appVersion]=\"processDefinitionCurrent.appVersion\"\n [data]=\"resolvedValues\"\n [formId]=\"processDefinitionCurrent.formKey\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [enableParentVisibilityCheck]=\"enableParentVisibilityCheck\"\n [showSaveButton]=\"showSaveButton\"\n [showCompleteButton]=\"showCompleteButton\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\"\n [showTitle]=\"false\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (visibleOutcomesChanged)=\"onVisibleOutcomesChanged($event)\"\n (executeOutcome)=\"onCustomOutcomeClicked($event)\"\n (error)=\"onFormError($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n } @else if (hasScreen) {\n <adf-cloud-start-process-screen-cloud\n [screenId]=\"processDefinitionCurrent.formKey\"\n [appName]=\"appName\"\n [processDefinitionId]=\"processDefinitionCurrent?.id ?? ''\"\n [resolvedValues]=\"resolvedValues\"\n (screenStartProcessPayloadChange)=\"onScreenStartProcessPayloadChange($event)\"\n (disableStartProcessButton)=\"onDisableStartProcessButtonForScreen($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-start-process-screen-cloud>\n } @else {\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n }\n </div>\n } @else {\n @if (processDefinitionLoaded) {\n <mat-card-content>\n <mat-card-subtitle class=\"error-message\" id=\"no-process-message\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.NO_PROCESS_DEFINITIONS' | translate | uppercase }}\n </mat-card-subtitle>\n </mat-card-content>\n }\n }\n </mat-card-content>\n </mat-card>\n} @else {\n <div class=\"adf-loading-container\">\n <mat-progress-spinner class=\"adf-loading\" mode=\"indeterminate\" />\n </div>\n}\n\n<ng-template #taskFormCloudButtons>\n <div class=\"adf-start-process-cloud-actions\">\n @if (showCancelButton) {\n <button mat-button (click)=\"cancelStartProcess()\" id=\"cancel_process\">\n {{ cancelButtonLabel }}\n </button>\n }\n @if (showStartProcessButton$ | async) {\n <button\n mat-flat-button\n [disabled]=\"disableStartButton || !isProcessFormValid\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"adf-btn-start\"\n >\n {{ startProcessButtonLabel }}\n </button>\n }\n </div>\n</ng-template>\n", styles: [".adf-start-process-cloud-actions{display:flex;justify-content:flex-end}.adf-select-process-form{display:flex;flex-direction:column}.adf-title{padding-bottom:1.25em}.adf-error-message{padding-left:.5em}.adf-process-input-container{margin:0 7px}.adf-process-input-autocomplete{display:flex}.adf-process-input-autocomplete button{position:absolute;right:-14px;top:0}.adf-form-container .adf-form-container-card:has(.adf-form-container-card-content){box-shadow:none;padding:0}.adf-start-form-actions{text-align:right}.adf-loading{margin:auto}.adf-loading-container{min-height:300px;display:flex;height:100%}\n"] }]
|
|
14659
14732
|
}], ctorParameters: () => [], propDecorators: { inputAutocomplete: [{
|
|
14660
14733
|
type: ViewChild,
|
|
14661
14734
|
args: [MatAutocompleteTrigger]
|