UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

79 lines 10.1 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() { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc2V0dGluZ3Mvc2V0dGluZ3MtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWF4QyxNQUFNLE9BQU8sbUJBQW1CO0lBYTVCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWDNCLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBRTFCLHFCQUFnQixHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUN4RSx1QkFBa0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUNsRSx3QkFBbUIsR0FBaUMsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFRM0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN2QyxJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2FBQ25ELFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzthQUN4QztpQkFBTTtnQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWUsRUFBRSxxQkFBOEI7UUFDMUQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsSUFBSTtnQkFDZixzQkFBc0IsRUFBRSxxQkFBcUI7YUFDaEQsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1NBQ0o7SUFDTCxDQUFDO0lBRU0sVUFBVSxDQUFDLElBQWU7UUFDN0IsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBZSxFQUFFLFFBQWE7UUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUMxQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLFFBQVE7U0FDN0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTSxvQkFBb0I7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxnQkFBd0IsR0FBRztRQUMzQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3pCO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7eUdBcEZRLG1CQUFtQjt3R0FBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQjt1RkFBbkIsbUJBQW1CO2NBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVGb3JtVmFsdWVEYXRhIHtcclxuICAgIGZvcm1Hcm91cFRvVXBkYXRlOiBGb3JtR3JvdXA7XHJcbiAgICBmb3JtR3JvdXBOZXdEYXRhOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUFkZGVkRGF0YSB7XHJcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIHVwZGF0ZVZhbHVlSW5Db21wb25lbnQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzRm9ybVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAgIHB1YmxpYyBhbGxGb3JtczogRm9ybUdyb3VwW10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIGZvcm1BZGRlZFN1YmplY3Q6IFN1YmplY3Q8Rm9ybUFkZGVkRGF0YT4gPSBuZXcgU3ViamVjdDxGb3JtQWRkZWREYXRhPigpO1xyXG4gICAgcHJpdmF0ZSBmb3JtUmVtb3ZlZFN1YmplY3Q6IFN1YmplY3Q8Rm9ybUdyb3VwPiA9IG5ldyBTdWJqZWN0PEZvcm1Hcm91cD4oKTtcclxuICAgIHByaXZhdGUgdXBkYXRlRm9ybVZhbHVlRGF0YTogU3ViamVjdDxVcGRhdGVGb3JtVmFsdWVEYXRhPiA9IG5ldyBTdWJqZWN0PFVwZGF0ZUZvcm1WYWx1ZURhdGE+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgYmFja1JvdXRlOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIG5leHRCYWNrUm91dGU6IHN0cmluZztcclxuICAgIHByaXZhdGUgZnJlZXplQmFja1JvdXRlOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZyZWV6ZUJhY2tSb3V0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dEJhY2tSb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrUm91dGUgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGb3JtKGZvcm06IEZvcm1Hcm91cCwgdXBkYXRlRGF0YUluQ29tcG9uZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKGZvcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQWRkZWRTdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwOiBmb3JtLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWVJbkNvbXBvbmVudDogdXBkYXRlRGF0YUluQ29tcG9uZW50XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsRm9ybXMuaW5kZXhPZihmb3JtKSA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsRm9ybXMucHVzaChmb3JtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlRm9ybShmb3JtOiBGb3JtR3JvdXApIHtcclxuICAgICAgICBpZiAoZm9ybSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZW1vdmVkU3ViamVjdC5uZXh0KGZvcm0pO1xyXG4gICAgICAgICAgICBNc2Z0U21lLnJlbW92ZSh0aGlzLmFsbEZvcm1zLCBmb3JtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5ld0Zvcm1WYWx1ZShmb3JtOiBGb3JtR3JvdXAsIG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZURhdGEubmV4dCh7XHJcbiAgICAgICAgICAgIGZvcm1Hcm91cFRvVXBkYXRlOiBmb3JtLFxyXG4gICAgICAgICAgICBmb3JtR3JvdXBOZXdEYXRhOiBuZXdWYWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmb3JtQWRkZWQoKTogT2JzZXJ2YWJsZTxGb3JtQWRkZWREYXRhPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUFkZGVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9ybVJlbW92ZWQoKTogT2JzZXJ2YWJsZTxGb3JtR3JvdXA+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtUmVtb3ZlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUZvcm1WYWx1ZSgpOiBPYnNlcnZhYmxlPFVwZGF0ZUZvcm1WYWx1ZURhdGE+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVGb3JtVmFsdWVEYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdG9wUHJvY2Vzc2luZ0V2ZW50cygpIHtcclxuICAgICAgICB0aGlzLmZyZWV6ZUJhY2tSb3V0ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXJ0UHJvY2Vzc2luZ0V2ZW50cygpIHtcclxuICAgICAgICB0aGlzLmZyZWV6ZUJhY2tSb3V0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYmFja1JvdXRlID0gdGhpcy5uZXh0QmFja1JvdXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRCYWNrUm91dGUoZmFsbEJhY2tSb3V0ZTogc3RyaW5nID0gJy8nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmFja1JvdXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhY2tSb3V0ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxsQmFja1JvdXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=