UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

81 lines 10.3 kB
import { Injectable } from '@angular/core'; import { NavigationEnd, Router } from '@angular/router'; import { Subject } from 'rxjs'; import { filter } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; export class SettingsFormService { constructor(router) { this.router = router; this.allForms = []; this.formAddedSubject = new Subject(); this.formRemovedSubject = new Subject(); this.updateFormValueData = new Subject(); this.routerSubscription = this.router.events .pipe(filter(event => event instanceof NavigationEnd)) .subscribe(event => { if (this.freezeBackRoute) { this.nextBackRoute = this.router.url; } else { this.backRoute = this.router.url; } }); } addForm(form, updateDataInComponent) { if (form) { this.formAddedSubject.next({ formGroup: form, updateValueInComponent: updateDataInComponent }); if (this.allForms.indexOf(form) < 0) { this.allForms.push(form); } } } removeForm(form) { if (form) { this.formRemovedSubject.next(form); MsftSme.remove(this.allForms, form); } } newFormValue(form, newValue) { this.updateFormValueData.next({ formGroupToUpdate: form, formGroupNewData: newValue }); } formAdded() { return this.formAddedSubject.asObservable(); } formRemoved() { return this.formRemovedSubject.asObservable(); } updateFormValue() { return this.updateFormValueData.asObservable(); } stopProcessingEvents() { this.freezeBackRoute = true; } startProcessingEvents() { this.freezeBackRoute = false; this.backRoute = this.nextBackRoute; } getBackRoute(fallBackRoute = '/') { if (this.backRoute) { return this.backRoute; } return fallBackRoute; } ngOnDestroy() { if (this.routerSubscription) { this.routerSubscription.unsubscribe(); } } } /** @nocollapse */ SettingsFormService.ɵfac = function SettingsFormService_Factory(t) { return new (t || SettingsFormService)(i0.ɵɵinject(i1.Router)); }; /** @nocollapse */ SettingsFormService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: SettingsFormService, factory: SettingsFormService.ɵfac }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SettingsFormService, [{ type: Injectable }], function () { return [{ type: i1.Router }]; }, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc2V0dGluZ3Mvc2V0dGluZ3MtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWF4QyxNQUFNLE9BQU8sbUJBQW1CO0lBYTVCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWDNCLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBRTFCLHFCQUFnQixHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUN4RSx1QkFBa0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUNsRSx3QkFBbUIsR0FBaUMsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFRM0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN2QyxJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2FBQ25ELFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzthQUN4QztpQkFBTTtnQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWUsRUFBRSxxQkFBOEI7UUFDMUQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsSUFBSTtnQkFDZixzQkFBc0IsRUFBRSxxQkFBcUI7YUFDaEQsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1NBQ0o7SUFDTCxDQUFDO0lBRU0sVUFBVSxDQUFDLElBQWU7UUFDN0IsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBZSxFQUFFLFFBQWE7UUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUMxQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLFFBQVE7U0FDN0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTSxvQkFBb0I7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxnQkFBd0IsR0FBRztRQUMzQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3pCO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekM7SUFDTCxDQUFDOzt5R0F0RlEsbUJBQW1CO3dHQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CO3VGQUFuQixtQkFBbUI7Y0FEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUZvcm1WYWx1ZURhdGEge1xyXG4gICAgZm9ybUdyb3VwVG9VcGRhdGU6IEZvcm1Hcm91cDtcclxuICAgIGZvcm1Hcm91cE5ld0RhdGE6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtQWRkZWREYXRhIHtcclxuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG4gICAgdXBkYXRlVmFsdWVJbkNvbXBvbmVudDogYm9vbGVhbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NGb3JtU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHVibGljIGFsbEZvcm1zOiBGb3JtR3JvdXBbXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgZm9ybUFkZGVkU3ViamVjdDogU3ViamVjdDxGb3JtQWRkZWREYXRhPiA9IG5ldyBTdWJqZWN0PEZvcm1BZGRlZERhdGE+KCk7XHJcbiAgICBwcml2YXRlIGZvcm1SZW1vdmVkU3ViamVjdDogU3ViamVjdDxGb3JtR3JvdXA+ID0gbmV3IFN1YmplY3Q8Rm9ybUdyb3VwPigpO1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVGb3JtVmFsdWVEYXRhOiBTdWJqZWN0PFVwZGF0ZUZvcm1WYWx1ZURhdGE+ID0gbmV3IFN1YmplY3Q8VXBkYXRlRm9ybVZhbHVlRGF0YT4oKTtcclxuXHJcbiAgICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBiYWNrUm91dGU6IHN0cmluZztcclxuICAgIHByaXZhdGUgbmV4dEJhY2tSb3V0ZTogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBmcmVlemVCYWNrUm91dGU6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZnJlZXplQmFja1JvdXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0QmFja1JvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhY2tSb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZvcm0oZm9ybTogRm9ybUdyb3VwLCB1cGRhdGVEYXRhSW5Db21wb25lbnQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoZm9ybSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1BZGRlZFN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgICAgICAgICBmb3JtR3JvdXA6IGZvcm0sXHJcbiAgICAgICAgICAgICAgICB1cGRhdGVWYWx1ZUluQ29tcG9uZW50OiB1cGRhdGVEYXRhSW5Db21wb25lbnRcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5hbGxGb3Jtcy5pbmRleE9mKGZvcm0pIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxGb3Jtcy5wdXNoKGZvcm0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGb3JtKGZvcm06IEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGlmIChmb3JtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVJlbW92ZWRTdWJqZWN0Lm5leHQoZm9ybSk7XHJcbiAgICAgICAgICAgIE1zZnRTbWUucmVtb3ZlKHRoaXMuYWxsRm9ybXMsIGZvcm0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmV3Rm9ybVZhbHVlKGZvcm06IEZvcm1Hcm91cCwgbmV3VmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlRGF0YS5uZXh0KHtcclxuICAgICAgICAgICAgZm9ybUdyb3VwVG9VcGRhdGU6IGZvcm0sXHJcbiAgICAgICAgICAgIGZvcm1Hcm91cE5ld0RhdGE6IG5ld1ZhbHVlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvcm1BZGRlZCgpOiBPYnNlcnZhYmxlPEZvcm1BZGRlZERhdGE+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQWRkZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmb3JtUmVtb3ZlZCgpOiBPYnNlcnZhYmxlPEZvcm1Hcm91cD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1SZW1vdmVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlRm9ybVZhbHVlKCk6IE9ic2VydmFibGU8VXBkYXRlRm9ybVZhbHVlRGF0YT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUZvcm1WYWx1ZURhdGEuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0b3BQcm9jZXNzaW5nRXZlbnRzKCkge1xyXG4gICAgICAgIHRoaXMuZnJlZXplQmFja1JvdXRlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhcnRQcm9jZXNzaW5nRXZlbnRzKCkge1xyXG4gICAgICAgIHRoaXMuZnJlZXplQmFja1JvdXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5iYWNrUm91dGUgPSB0aGlzLm5leHRCYWNrUm91dGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEJhY2tSb3V0ZShmYWxsQmFja1JvdXRlOiBzdHJpbmcgPSAnLycpIHtcclxuICAgICAgICBpZiAodGhpcy5iYWNrUm91dGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja1JvdXRlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbGxCYWNrUm91dGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJvdXRlclN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=