ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
48 lines • 6.31 kB
JavaScript
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { DialogService } from '../../../services/dialog.service';
import { Util } from '../../../util/util';
import * as i0 from "@angular/core";
import * as i1 from "../../../services/dialog.service";
export class OFormConfirmExitService {
constructor(dialogService) {
this.dialogService = dialogService;
}
subscribeToDiscardChanges(form, ignoreAttrs = []) {
let subscription;
if (form.isInitialStateChanged(ignoreAttrs)) {
subscription = this.getConfirmDialogSubscription(form);
}
else {
const observable = new Observable(observer => {
observer.next(true);
observer.complete();
});
subscription = observable.toPromise();
}
return subscription;
}
restart() {
this.confirmDialogSubscription = null;
}
getConfirmDialogSubscription(form) {
if (!Util.isDefined(this.confirmDialogSubscription)) {
this.confirmDialogSubscription = new Promise((resolve) => {
this.dialogService.confirm(form.messageService.getDiscardChangesConfirmationDialogTitle(), form.messageService.getDiscardChangesConfirmationMessage()).then((res) => {
this.restart();
resolve(res);
});
});
}
return this.confirmDialogSubscription;
}
}
OFormConfirmExitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormConfirmExitService, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
OFormConfirmExitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormConfirmExitService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormConfirmExitService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i1.DialogService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWNvbmZpcm0tZXhpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9uYXZpZ2F0aW9uL28tZm9ybS1jb25maXJtLWV4aXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSzFDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFBc0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBSSxDQUFDO0lBRXZELHlCQUF5QixDQUFDLElBQWUsRUFBRSxjQUF3QixFQUFFO1FBQ25FLElBQUksWUFBOEIsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBVSxRQUFRLENBQUMsRUFBRTtnQkFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsWUFBWSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxPQUFPO1FBQ2YsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRVMsNEJBQTRCLENBQUMsSUFBZTtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsd0NBQXdDLEVBQUUsRUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQ0FBb0MsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUE7WUFDTixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQzs7cUhBcENVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Zvcm1CYXNlIH0gZnJvbSAnLi4vby1mb3JtLWJhc2UuY2xhc3MnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT0Zvcm1Db25maXJtRXhpdFNlcnZpY2Uge1xuXG4gIHByb3RlY3RlZCBjb25maXJtRGlhbG9nU3Vic2NyaXB0aW9uOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7IH1cblxuICBzdWJzY3JpYmVUb0Rpc2NhcmRDaGFuZ2VzKGZvcm06IE9Gb3JtQmFzZSwgaWdub3JlQXR0cnM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBsZXQgc3Vic2NyaXB0aW9uOiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGlmIChmb3JtLmlzSW5pdGlhbFN0YXRlQ2hhbmdlZChpZ25vcmVBdHRycykpIHtcbiAgICAgIHN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0Q29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbihmb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgICAgc3Vic2NyaXB0aW9uID0gb2JzZXJ2YWJsZS50b1Byb21pc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXN0YXJ0KCkge1xuICAgIHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbihmb3JtOiBPRm9ybUJhc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbikpIHtcbiAgICAgIHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbiA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtKFxuICAgICAgICAgIGZvcm0ubWVzc2FnZVNlcnZpY2UuZ2V0RGlzY2FyZENoYW5nZXNDb25maXJtYXRpb25EaWFsb2dUaXRsZSgpLFxuICAgICAgICAgIGZvcm0ubWVzc2FnZVNlcnZpY2UuZ2V0RGlzY2FyZENoYW5nZXNDb25maXJtYXRpb25NZXNzYWdlKCkpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXN0YXJ0KCk7XG4gICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maXJtRGlhbG9nU3Vic2NyaXB0aW9uO1xuICB9XG59XG5cbiJdfQ==