mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
AAE-26142 Allow standalone form display configuration (#10244)
This commit is contained in:
parent
86765b90e3
commit
1b5eaa0fa1
@ -3,89 +3,94 @@
|
|||||||
</ng-content>
|
</ng-content>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="hasForm()" class="adf-cloud-form-container adf-cloud-form-{{displayMode?.toLowerCase() || 'inline'}}-container" [style]="form.theme | adfFormStyle">
|
<div
|
||||||
<div class="adf-cloud-form-content"
|
*ngIf="hasForm()"
|
||||||
[cdkTrapFocus]="displayMode === 'fullScreen'"
|
class="adf-cloud-form-container adf-cloud-form-{{displayConfiguration?.options?.fullscreen ? 'fullscreen' : 'inline'}}-container"
|
||||||
cdkTrapFocusAutoCapture>
|
[style]="form.theme | adfFormStyle">
|
||||||
|
<div class="adf-cloud-form-content"
|
||||||
|
[cdkTrapFocus]="displayConfiguration?.options?.trapFocus"
|
||||||
|
cdkTrapFocusAutoCapture>
|
||||||
|
|
||||||
<adf-toolbar class="adf-cloud-form-toolbar" *ngIf="displayMode === 'fullScreen' && findDisplayConfiguration('fullScreen')?.options?.displayToolbar">
|
<adf-toolbar class="adf-cloud-form-toolbar" *ngIf="displayConfiguration?.options?.displayToolbar">
|
||||||
<div class="adf-cloud-form__form-title">
|
<div class="adf-cloud-form__form-title">
|
||||||
<span class="adf-cloud-form__display-name" [title]="form.taskName">
|
<span class="adf-cloud-form__display-name" [title]="form.taskName">
|
||||||
{{form.taskName}}
|
{{form.taskName}}
|
||||||
<ng-container *ngIf="!form.taskName">
|
<ng-container *ngIf="!form.taskName">
|
||||||
{{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}
|
{{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<adf-toolbar-divider></adf-toolbar-divider>
|
<adf-toolbar-divider *ngIf="displayConfiguration?.options?.displayCloseButton"></adf-toolbar-divider>
|
||||||
<button class="adf-cloud-form-close-button"
|
|
||||||
data-automation-id="adf-toolbar-right-back"
|
|
||||||
[attr.aria-label]="'ADF_VIEWER.ACTIONS.CLOSE' | translate"
|
|
||||||
[attr.data-automation-id]="'adf-cloud-form-close-button'"
|
|
||||||
[title]="'ADF_VIEWER.ACTIONS.CLOSE' | translate"
|
|
||||||
mat-icon-button
|
|
||||||
title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}"
|
|
||||||
(click)="switchToDisplayMode()">
|
|
||||||
<mat-icon>close</mat-icon>
|
|
||||||
</button>
|
|
||||||
</adf-toolbar>
|
|
||||||
|
|
||||||
<mat-card appearance="outlined" [class.adf-cloud-form-content-card]="displayMode === 'fullScreen'">
|
|
||||||
<div class="adf-cloud-form-content-card-container">
|
|
||||||
<mat-card-header *ngIf="showTitle || showRefreshButton || showValidationIcon">
|
|
||||||
<mat-card-title>
|
|
||||||
<h4>
|
|
||||||
<div *ngIf="showValidationIcon" class="adf-form-validation-button">
|
|
||||||
<i id="adf-valid-form-icon" class="material-icons"
|
|
||||||
*ngIf="form.isValid; else no_valid_form">check_circle</i>
|
|
||||||
<ng-template #no_valid_form>
|
|
||||||
<i id="adf-invalid-form-icon" class="material-icons adf-invalid-color">error</i>
|
|
||||||
</ng-template>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="displayMode !== 'fullScreen' && findDisplayConfiguration('fullScreen')" class="adf-cloud-form-fullscreen-button">
|
|
||||||
<button mat-icon-button (click)="switchToDisplayMode('fullScreen')" [attr.data-automation-id]="'adf-cloud-form-fullscreen-button'">
|
|
||||||
<mat-icon>fullscreen</mat-icon>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="showRefreshButton" class="adf-cloud-form-reload-button" [title]="'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate">
|
|
||||||
<button mat-icon-button (click)="onRefreshClicked()" [attr.aria-label]="'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate">
|
|
||||||
<mat-icon>refresh</mat-icon>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<span *ngIf="isTitleEnabled()" class="adf-cloud-form-title" [title]="form.taskName"
|
|
||||||
>{{form.taskName}}
|
|
||||||
<ng-container *ngIf="!form.taskName">
|
|
||||||
{{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}
|
|
||||||
</ng-container>
|
|
||||||
</span>
|
|
||||||
</h4>
|
|
||||||
</mat-card-title>
|
|
||||||
</mat-card-header>
|
|
||||||
<mat-card-content class="adf-form-container-card-content">
|
|
||||||
<adf-form-renderer
|
|
||||||
[formDefinition]="form"
|
|
||||||
[readOnly]="readOnly"
|
|
||||||
>
|
|
||||||
</adf-form-renderer>
|
|
||||||
</mat-card-content>
|
|
||||||
<mat-card-actions *ngIf="form.hasOutcomes()" class="adf-form-mat-card-actions" align="end">
|
|
||||||
<ng-content select="adf-cloud-form-custom-outcomes"></ng-content>
|
|
||||||
<ng-container *ngFor="let outcome of form.outcomes">
|
|
||||||
<button
|
<button
|
||||||
*ngIf="outcome.isVisible"
|
*ngIf="displayConfiguration?.options?.displayCloseButton"
|
||||||
[id]="'adf-form-'+ outcome.name | formatSpace"
|
class="adf-cloud-form-close-button"
|
||||||
[color]="getColorForOutcome(outcome.name)"
|
data-automation-id="adf-toolbar-right-back"
|
||||||
mat-button
|
[attr.aria-label]="'ADF_VIEWER.ACTIONS.CLOSE' | translate"
|
||||||
[disabled]="!isOutcomeButtonEnabled(outcome)"
|
[attr.data-automation-id]="'adf-cloud-form-close-button'"
|
||||||
[class.adf-form-hide-button]="!isOutcomeButtonVisible(outcome, form.readOnly)"
|
[title]="'ADF_VIEWER.ACTIONS.CLOSE' | translate"
|
||||||
(click)="onOutcomeClicked(outcome)"
|
mat-icon-button
|
||||||
>
|
title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}"
|
||||||
{{outcome.name | translate | uppercase }}
|
(click)="switchToDisplayMode()">
|
||||||
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
</ng-container>
|
</adf-toolbar>
|
||||||
</mat-card-actions>
|
|
||||||
</div>
|
<mat-card appearance="outlined" [class.adf-cloud-form-content-card]="displayConfiguration?.options?.fullscreen">
|
||||||
</mat-card>
|
<div class="adf-cloud-form-content-card-container">
|
||||||
</div>
|
<mat-card-header *ngIf="showTitle || showRefreshButton || showValidationIcon">
|
||||||
|
<mat-card-title>
|
||||||
|
<h4>
|
||||||
|
<div *ngIf="showValidationIcon" class="adf-form-validation-button">
|
||||||
|
<i id="adf-valid-form-icon" class="material-icons"
|
||||||
|
*ngIf="form.isValid; else no_valid_form">check_circle</i>
|
||||||
|
<ng-template #no_valid_form>
|
||||||
|
<i id="adf-invalid-form-icon" class="material-icons adf-invalid-color">error</i>
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="!displayConfiguration?.options?.fullscreen && findDisplayConfiguration('fullScreen')" class="adf-cloud-form-fullscreen-button">
|
||||||
|
<button mat-icon-button (click)="switchToDisplayMode('fullScreen')" [attr.data-automation-id]="'adf-cloud-form-fullscreen-button'">
|
||||||
|
<mat-icon>fullscreen</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="showRefreshButton" class="adf-cloud-form-reload-button" [title]="'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate">
|
||||||
|
<button mat-icon-button (click)="onRefreshClicked()" [attr.aria-label]="'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate">
|
||||||
|
<mat-icon>refresh</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<span *ngIf="isTitleEnabled()" class="adf-cloud-form-title" [title]="form.taskName"
|
||||||
|
>{{form.taskName}}
|
||||||
|
<ng-container *ngIf="!form.taskName">
|
||||||
|
{{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}
|
||||||
|
</ng-container>
|
||||||
|
</span>
|
||||||
|
</h4>
|
||||||
|
</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content class="adf-form-container-card-content">
|
||||||
|
<adf-form-renderer
|
||||||
|
[formDefinition]="form"
|
||||||
|
[readOnly]="readOnly"
|
||||||
|
>
|
||||||
|
</adf-form-renderer>
|
||||||
|
</mat-card-content>
|
||||||
|
<mat-card-actions *ngIf="form.hasOutcomes()" class="adf-form-mat-card-actions" align="end">
|
||||||
|
<ng-content select="adf-cloud-form-custom-outcomes"></ng-content>
|
||||||
|
<ng-container *ngFor="let outcome of form.outcomes">
|
||||||
|
<button
|
||||||
|
*ngIf="outcome.isVisible"
|
||||||
|
[id]="'adf-form-'+ outcome.name | formatSpace"
|
||||||
|
[color]="getColorForOutcome(outcome.name)"
|
||||||
|
mat-button
|
||||||
|
[disabled]="!isOutcomeButtonEnabled(outcome)"
|
||||||
|
[class.adf-form-hide-button]="!isOutcomeButtonVisible(outcome, form.readOnly)"
|
||||||
|
(click)="onOutcomeClicked(outcome)"
|
||||||
|
>
|
||||||
|
{{outcome.name | translate | uppercase }}
|
||||||
|
</button>
|
||||||
|
</ng-container>
|
||||||
|
</mat-card-actions>
|
||||||
|
</div>
|
||||||
|
</mat-card>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1362,7 +1362,7 @@ describe('FormCloudComponent', () => {
|
|||||||
await loadForm({ displayMode: FormCloudDisplayMode.fullScreen });
|
await loadForm({ displayMode: FormCloudDisplayMode.fullScreen });
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should emit display mode turned on wit the fullScreen configuration', () => {
|
it('should emit display mode turned on with the fullScreen configuration', () => {
|
||||||
expect(displayModeOnSpy).toHaveBeenCalledWith(DisplayModeService.IMPLEMENTED_DISPLAY_MODE_CONFIGURATIONS[1]);
|
expect(displayModeOnSpy).toHaveBeenCalledWith(DisplayModeService.IMPLEMENTED_DISPLAY_MODE_CONFIGURATIONS[1]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -134,7 +134,8 @@ export class FormCloudComponent extends FormBaseComponent implements OnChanges,
|
|||||||
protected onDestroy$ = new Subject<boolean>();
|
protected onDestroy$ = new Subject<boolean>();
|
||||||
|
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
displayMode: FormCloudDisplayMode;
|
displayMode: string;
|
||||||
|
displayConfiguration: FormCloudDisplayModeConfiguration = DisplayModeService.DEFAULT_DISPLAY_MODE_CONFIGURATIONS[0];
|
||||||
style: string = '';
|
style: string = '';
|
||||||
|
|
||||||
protected formCloudService = inject(FormCloudService);
|
protected formCloudService = inject(FormCloudService);
|
||||||
@ -241,6 +242,8 @@ export class FormCloudComponent extends FormBaseComponent implements OnChanges,
|
|||||||
this.displayModeOn.emit(newDisplayModeConfiguration);
|
this.displayModeOn.emit(newDisplayModeConfiguration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.displayConfiguration = newDisplayModeConfiguration;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,7 +436,9 @@ export class FormCloudComponent extends FormBaseComponent implements OnChanges,
|
|||||||
this.displayModeConfigurations
|
this.displayModeConfigurations
|
||||||
);
|
);
|
||||||
|
|
||||||
this.displayModeOn.emit(this.displayModeService.findConfiguration(this.displayMode, this.displayModeConfigurations));
|
this.displayConfiguration = this.displayModeService.findConfiguration(this.displayMode, this.displayModeConfigurations);
|
||||||
|
|
||||||
|
this.displayModeOn.emit(this.displayConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.changeDetector.detectChanges();
|
this.changeDetector.detectChanges();
|
||||||
|
@ -19,7 +19,6 @@ import { FormCloudDisplayMode, FormCloudDisplayModeConfiguration } from '../../s
|
|||||||
import { DisplayModeService } from './display-mode.service';
|
import { DisplayModeService } from './display-mode.service';
|
||||||
|
|
||||||
describe('DisplayModeService', () => {
|
describe('DisplayModeService', () => {
|
||||||
|
|
||||||
let service: DisplayModeService;
|
let service: DisplayModeService;
|
||||||
let displayModeOnSpy: jasmine.Spy;
|
let displayModeOnSpy: jasmine.Spy;
|
||||||
let displayModeOffSpy: jasmine.Spy;
|
let displayModeOffSpy: jasmine.Spy;
|
||||||
@ -61,11 +60,18 @@ describe('DisplayModeService', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should return the default display mode when no display mode does not exist in the configuration', () => {
|
it('should return the default display mode when no display mode does not exist in the configuration', () => {
|
||||||
expect(service.getDisplayMode('notExisting' as any)).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
expect(service.getDisplayMode('notExisting')).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
||||||
expect(service.getDisplayMode('notExisting' as any, [])).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
expect(service.getDisplayMode('notExisting', [])).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
||||||
expect(service.getDisplayMode('notExisting' as any, [{ displayMode: FormCloudDisplayMode.fullScreen }])).toBe(FormCloudDisplayMode.fullScreen);
|
expect(service.getDisplayMode('notExisting', [{ displayMode: FormCloudDisplayMode.fullScreen }])).toBe(FormCloudDisplayMode.fullScreen);
|
||||||
expect(service.getDisplayMode('notExisting' as any, [{ displayMode: FormCloudDisplayMode.fullScreen }, { displayMode: FormCloudDisplayMode.inline }])).toBe(FormCloudDisplayMode.fullScreen);
|
expect(
|
||||||
expect(service.getDisplayMode('notExisting' as any, [{ displayMode: FormCloudDisplayMode.fullScreen, default: true }, { displayMode: FormCloudDisplayMode.inline }])).toBe(FormCloudDisplayMode.fullScreen);
|
service.getDisplayMode('notExisting', [{ displayMode: FormCloudDisplayMode.fullScreen }, { displayMode: FormCloudDisplayMode.inline }])
|
||||||
|
).toBe(FormCloudDisplayMode.fullScreen);
|
||||||
|
expect(
|
||||||
|
service.getDisplayMode('notExisting', [
|
||||||
|
{ displayMode: FormCloudDisplayMode.fullScreen, default: true },
|
||||||
|
{ displayMode: FormCloudDisplayMode.inline }
|
||||||
|
])
|
||||||
|
).toBe(FormCloudDisplayMode.fullScreen);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the provided display mode when display mode is provided', () => {
|
it('should return the provided display mode when display mode is provided', () => {
|
||||||
@ -75,8 +81,10 @@ describe('DisplayModeService', () => {
|
|||||||
it('should find the display configuration', () => {
|
it('should find the display configuration', () => {
|
||||||
expect(service.findConfiguration()).toBeUndefined();
|
expect(service.findConfiguration()).toBeUndefined();
|
||||||
expect(service.findConfiguration(FormCloudDisplayMode.fullScreen)).toBe(DisplayModeService.IMPLEMENTED_DISPLAY_MODE_CONFIGURATIONS[1]);
|
expect(service.findConfiguration(FormCloudDisplayMode.fullScreen)).toBe(DisplayModeService.IMPLEMENTED_DISPLAY_MODE_CONFIGURATIONS[1]);
|
||||||
expect(service.findConfiguration('notExisting' as any)).toBeUndefined();
|
expect(service.findConfiguration('notExisting')).toBeUndefined();
|
||||||
expect(service.findConfiguration(FormCloudDisplayMode.fullScreen, [{ displayMode: FormCloudDisplayMode.fullScreen }])).toEqual({ displayMode: FormCloudDisplayMode.fullScreen });
|
expect(service.findConfiguration(FormCloudDisplayMode.fullScreen, [{ displayMode: FormCloudDisplayMode.fullScreen }])).toEqual({
|
||||||
|
displayMode: FormCloudDisplayMode.fullScreen
|
||||||
|
});
|
||||||
expect(service.findConfiguration(FormCloudDisplayMode.fullScreen, [{ displayMode: FormCloudDisplayMode.inline }])).toBeUndefined();
|
expect(service.findConfiguration(FormCloudDisplayMode.fullScreen, [{ displayMode: FormCloudDisplayMode.inline }])).toBeUndefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -134,21 +142,27 @@ describe('DisplayModeService', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should return the default display mode when calling the switchToDisplayMode and display does not exist in configuration', () => {
|
it('should return the default display mode when calling the switchToDisplayMode and display does not exist in configuration', () => {
|
||||||
expect(service.switchToDisplayMode(formId, 'notExisting' as any)).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
expect(service.switchToDisplayMode(formId, 'notExisting')).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not call the change display mode method when switchToDisplayMode and the mode to switch is the same as the old one', () => {
|
it('should not call the change display mode method when switchToDisplayMode and the mode to switch is the same as the old one', () => {
|
||||||
expect(service.switchToDisplayMode(formId, FormCloudDisplayMode.fullScreen, FormCloudDisplayMode.fullScreen)).toBe(FormCloudDisplayMode.fullScreen);
|
expect(service.switchToDisplayMode(formId, FormCloudDisplayMode.fullScreen, FormCloudDisplayMode.fullScreen)).toBe(
|
||||||
|
FormCloudDisplayMode.fullScreen
|
||||||
|
);
|
||||||
expect(changeDisplayModeSpy).not.toHaveBeenCalledWith();
|
expect(changeDisplayModeSpy).not.toHaveBeenCalledWith();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not call the change display mode method when switchToDisplayMode and the mode to switch does not exist and the previous mode was the default one', () => {
|
it('should not call the change display mode method when switchToDisplayMode and the mode to switch does not exist and the previous mode was the default one', () => {
|
||||||
expect(service.switchToDisplayMode(formId, 'notExisting' as any, DisplayModeService.DEFAULT_DISPLAY_MODE)).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
expect(service.switchToDisplayMode(formId, 'notExisting', DisplayModeService.DEFAULT_DISPLAY_MODE)).toBe(
|
||||||
|
DisplayModeService.DEFAULT_DISPLAY_MODE
|
||||||
|
);
|
||||||
expect(changeDisplayModeSpy).not.toHaveBeenCalledWith();
|
expect(changeDisplayModeSpy).not.toHaveBeenCalledWith();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not call the change display mode method when switchToDisplayMode and the mode to switch does not exist and the previous mode was not provided', () => {
|
it('should not call the change display mode method when switchToDisplayMode and the mode to switch does not exist and the previous mode was not provided', () => {
|
||||||
expect(service.switchToDisplayMode(formId, 'notExisting' as any, DisplayModeService.DEFAULT_DISPLAY_MODE)).toBe(DisplayModeService.DEFAULT_DISPLAY_MODE);
|
expect(service.switchToDisplayMode(formId, 'notExisting', DisplayModeService.DEFAULT_DISPLAY_MODE)).toBe(
|
||||||
|
DisplayModeService.DEFAULT_DISPLAY_MODE
|
||||||
|
);
|
||||||
expect(changeDisplayModeSpy).not.toHaveBeenCalledWith();
|
expect(changeDisplayModeSpy).not.toHaveBeenCalledWith();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -35,11 +35,26 @@ export class DisplayModeService {
|
|||||||
{
|
{
|
||||||
displayMode: FormCloudDisplayMode.fullScreen,
|
displayMode: FormCloudDisplayMode.fullScreen,
|
||||||
options: {
|
options: {
|
||||||
onDisplayModeOn: () => { },
|
onDisplayModeOn: () => {},
|
||||||
onDisplayModeOff: (id: string) => DisplayModeService.changeDisplayMode({ displayMode: FormCloudDisplayMode.inline, id }),
|
onDisplayModeOff: (id: string) => DisplayModeService.changeDisplayMode({ displayMode: FormCloudDisplayMode.inline, id }),
|
||||||
onCompleteTask: (id: string) => DisplayModeService.changeDisplayMode({ displayMode: FormCloudDisplayMode.inline, id }),
|
onCompleteTask: (id: string) => DisplayModeService.changeDisplayMode({ displayMode: FormCloudDisplayMode.inline, id }),
|
||||||
onSaveTask: () => { },
|
onSaveTask: () => {},
|
||||||
displayToolbar: true
|
fullscreen: true,
|
||||||
|
displayToolbar: true,
|
||||||
|
displayCloseButton: true,
|
||||||
|
trapFocus: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayMode: FormCloudDisplayMode.standalone,
|
||||||
|
options: {
|
||||||
|
onDisplayModeOn: () => {},
|
||||||
|
onDisplayModeOff: () => {},
|
||||||
|
onCompleteTask: () => {},
|
||||||
|
onSaveTask: () => {},
|
||||||
|
fullscreen: true,
|
||||||
|
displayToolbar: false,
|
||||||
|
trapFocus: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -66,25 +81,25 @@ export class DisplayModeService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getDisplayMode(displayMode?: FormCloudDisplayMode, availableConfigurations?: FormCloudDisplayModeConfiguration[]): FormCloudDisplayMode {
|
getDisplayMode(displayMode?: string, availableConfigurations?: FormCloudDisplayModeConfiguration[]): string {
|
||||||
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
||||||
|
|
||||||
if (configuration) {
|
if (configuration) {
|
||||||
return configuration.displayMode;
|
return configuration.displayMode;
|
||||||
} else if (availableConfigurations && availableConfigurations.length > 0) {
|
} else if (availableConfigurations && availableConfigurations.length > 0) {
|
||||||
return availableConfigurations.length === 1 ?
|
return availableConfigurations.length === 1
|
||||||
availableConfigurations[0].displayMode :
|
? availableConfigurations[0].displayMode
|
||||||
(availableConfigurations.find(config => config.default)?.displayMode || availableConfigurations[0].displayMode);
|
: availableConfigurations.find((config) => config.default)?.displayMode || availableConfigurations[0].displayMode;
|
||||||
} else {
|
} else {
|
||||||
return DisplayModeService.DEFAULT_DISPLAY_MODE;
|
return DisplayModeService.DEFAULT_DISPLAY_MODE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
findConfiguration(displayMode?: FormCloudDisplayMode, availableConfigurations?: FormCloudDisplayModeConfiguration[]): FormCloudDisplayModeConfiguration {
|
findConfiguration(displayMode?: string, availableConfigurations?: FormCloudDisplayModeConfiguration[]): FormCloudDisplayModeConfiguration {
|
||||||
return this.getDisplayModeConfigurations(availableConfigurations).find(config => config.displayMode === displayMode);
|
return this.getDisplayModeConfigurations(availableConfigurations).find((config) => config.displayMode === displayMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
onCompleteTask(id?: string, displayMode?: FormCloudDisplayMode, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
onCompleteTask(id?: string, displayMode?: string, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
||||||
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
||||||
|
|
||||||
if (configuration?.options?.onCompleteTask) {
|
if (configuration?.options?.onCompleteTask) {
|
||||||
@ -92,7 +107,7 @@ export class DisplayModeService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onSaveTask(id?: string, displayMode?: FormCloudDisplayMode, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
onSaveTask(id?: string, displayMode?: string, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
||||||
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
||||||
|
|
||||||
if (configuration?.options?.onSaveTask) {
|
if (configuration?.options?.onSaveTask) {
|
||||||
@ -100,7 +115,7 @@ export class DisplayModeService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onDisplayModeOff(id?: string, displayMode?: FormCloudDisplayMode, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
onDisplayModeOff(id?: string, displayMode?: string, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
||||||
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
||||||
|
|
||||||
if (configuration?.options?.onDisplayModeOff) {
|
if (configuration?.options?.onDisplayModeOff) {
|
||||||
@ -108,7 +123,7 @@ export class DisplayModeService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onDisplayModeOn(id?: string, displayMode?: FormCloudDisplayMode, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
onDisplayModeOn(id?: string, displayMode?: string, availableConfigurations?: FormCloudDisplayModeConfiguration[]) {
|
||||||
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
const configuration = this.findConfiguration(displayMode, availableConfigurations);
|
||||||
|
|
||||||
if (configuration?.options?.onDisplayModeOn) {
|
if (configuration?.options?.onDisplayModeOn) {
|
||||||
@ -118,10 +133,10 @@ export class DisplayModeService {
|
|||||||
|
|
||||||
switchToDisplayMode(
|
switchToDisplayMode(
|
||||||
id?: string,
|
id?: string,
|
||||||
newDisplayMode?: FormCloudDisplayMode,
|
newDisplayMode?: string,
|
||||||
oldDisplayMode?: FormCloudDisplayMode,
|
oldDisplayMode?: string,
|
||||||
availableConfigurations?: FormCloudDisplayModeConfiguration[]
|
availableConfigurations?: FormCloudDisplayModeConfiguration[]
|
||||||
): FormCloudDisplayMode {
|
): string {
|
||||||
const oldConfiguration = this.findConfiguration(oldDisplayMode, availableConfigurations);
|
const oldConfiguration = this.findConfiguration(oldDisplayMode, availableConfigurations);
|
||||||
const newConfiguration = this.findConfiguration(newDisplayMode, availableConfigurations);
|
const newConfiguration = this.findConfiguration(newDisplayMode, availableConfigurations);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ export interface FormRepresentation {
|
|||||||
version?: number;
|
version?: number;
|
||||||
formDefinition?: FormDefinition;
|
formDefinition?: FormDefinition;
|
||||||
standAlone?: boolean;
|
standAlone?: boolean;
|
||||||
displayMode?: FormCloudDisplayMode;
|
displayMode?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FormTab {
|
export interface FormTab {
|
||||||
@ -266,11 +266,15 @@ export interface FormCloudDisplayModeConfigurationOptions {
|
|||||||
onSaveTask(id?: string): void;
|
onSaveTask(id?: string): void;
|
||||||
onDisplayModeOn(id?: string): void;
|
onDisplayModeOn(id?: string): void;
|
||||||
onDisplayModeOff(id?: string): void;
|
onDisplayModeOff(id?: string): void;
|
||||||
|
fullscreen?: boolean;
|
||||||
|
displayToolbar?: boolean;
|
||||||
|
displayCloseButton?: boolean;
|
||||||
|
trapFocus?: boolean;
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FormCloudDisplayModeConfiguration {
|
export interface FormCloudDisplayModeConfiguration {
|
||||||
displayMode: FormCloudDisplayMode;
|
displayMode: string;
|
||||||
options?: FormCloudDisplayModeConfigurationOptions;
|
options?: FormCloudDisplayModeConfigurationOptions;
|
||||||
default?: boolean;
|
default?: boolean;
|
||||||
}
|
}
|
||||||
@ -278,10 +282,11 @@ export interface FormCloudDisplayModeConfiguration {
|
|||||||
// eslint-disable-next-line no-shadow
|
// eslint-disable-next-line no-shadow
|
||||||
export enum FormCloudDisplayMode {
|
export enum FormCloudDisplayMode {
|
||||||
inline = 'inline',
|
inline = 'inline',
|
||||||
fullScreen = 'fullScreen'
|
fullScreen = 'fullScreen',
|
||||||
|
standalone = 'standalone'
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FormCloudDisplayModeChange {
|
export interface FormCloudDisplayModeChange {
|
||||||
displayMode: FormCloudDisplayMode;
|
displayMode: string;
|
||||||
id?: string;
|
id?: string;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user