UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

68 lines 7.87 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject, ReplaySubject, debounceTime } from 'rxjs'; import * as i0 from "@angular/core"; /** * Provides a holder for UI templates to be used globally. */ export class TemplateHolder { constructor() { this.templatePortalSubject = new BehaviorSubject(undefined); } get templatePortal$() { return this.templatePortalSubject.pipe(debounceTime(0)); } setTemplatePortal(templatePortal) { this.templatePortalSubject.next(templatePortal); } } export var TemplateHolderType; (function (TemplateHolderType) { TemplateHolderType["PageHeaderContent"] = "PageHeaderContent"; })(TemplateHolderType || (TemplateHolderType = {})); /** * Acts as a general ui state store */ export class UiStateService { constructor() { this.templateHolders = new Map(); this._prevViewSwitchState = null; this._currViewSwitchState = null; this.activeItemInfo$ = new ReplaySubject(1); } registerTemplateHolder(id) { if (this.templateHolders.has(id)) { throw new Error(`Template holder for ${id} has already registered!`); } this.templateHolders.set(id, new TemplateHolder()); } // Will init template holder if not initialled yet getTemplateHolder(id) { if (!this.templateHolders.has(id)) { this.registerTemplateHolder(id); } return this.templateHolders.get(id); } /** * NOTE: only set active item info in ConsoleComponent */ setActiveItemInfo(activeNavItemInfo) { this.activeItemInfo$.next(activeNavItemInfo); } /** * NOTE: only use for view switch status recording */ setViewSwitchState(state) { this._prevViewSwitchState = this._currViewSwitchState; this._currViewSwitchState = state; } shouldViewSwitchAnimate() { return ![null, this._currViewSwitchState].includes(this._prevViewSwitchState); } static { this.ɵfac = function UiStateService_Factory(t) { return new (t || UiStateService)(); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: UiStateService, factory: UiStateService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UiStateService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], null, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3NlcnZpY2VzL3VpLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSXBFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFDbUIsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQzFELFNBQVMsQ0FDVixDQUFDO0lBU0osQ0FBQztJQVBDLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQThCO1FBQzlDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBRVg7QUFGRCxXQUFZLGtCQUFrQjtJQUM1Qiw2REFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBRlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUU3QjtBQU9EOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFbUIsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFHdkMsQ0FBQztRQUVJLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUNyQyx5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFFN0Msb0JBQWUsR0FBRyxJQUFJLGFBQWEsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7S0FzQ3pEO0lBcENTLHNCQUFzQixDQUFDLEVBQXNCO1FBQ25ELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxpQkFBaUIsQ0FBQyxFQUFzQjtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsaUJBQWtDO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ3RELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxDQUNoRCxJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQUM7SUFDSixDQUFDOytFQTlDVSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQURELE1BQU07O2lGQUNuQixjQUFjO2NBRDFCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0LCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmF2SXRlbUNvbmZpZyB9IGZyb20gJy4uLy4uL3BhZ2Utc2NhZmZvbGQvbmF2aWdhdGlvbi9uYXYtbWVudS9uYXYtbWVudS50eXBlcyc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBob2xkZXIgZm9yIFVJIHRlbXBsYXRlcyB0byBiZSB1c2VkIGdsb2JhbGx5LlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVIb2xkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUG9ydGFsU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVQb3J0YWw+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcblxuICBnZXQgdGVtcGxhdGVQb3J0YWwkKCkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlUG9ydGFsU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSgwKSk7XG4gIH1cblxuICBzZXRUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZVBvcnRhbDogVGVtcGxhdGVQb3J0YWwpIHtcbiAgICB0aGlzLnRlbXBsYXRlUG9ydGFsU3ViamVjdC5uZXh0KHRlbXBsYXRlUG9ydGFsKTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBUZW1wbGF0ZUhvbGRlclR5cGUge1xuICBQYWdlSGVhZGVyQ29udGVudCA9ICdQYWdlSGVhZGVyQ29udGVudCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlTmF2SXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHJvdXRlckxpbms/OiBzdHJpbmcgfCBhbnlbXTtcbn1cblxuLyoqXG4gKiBBY3RzIGFzIGEgZ2VuZXJhbCB1aSBzdGF0ZSBzdG9yZVxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFVpU3RhdGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZUhvbGRlcnMgPSBuZXcgTWFwPFxuICAgIFRlbXBsYXRlSG9sZGVyVHlwZSxcbiAgICBUZW1wbGF0ZUhvbGRlclxuICA+KCk7XG5cbiAgcHJpdmF0ZSBfcHJldlZpZXdTd2l0Y2hTdGF0ZTogYm9vbGVhbiA9IG51bGw7XG4gIHByaXZhdGUgX2N1cnJWaWV3U3dpdGNoU3RhdGU6IGJvb2xlYW4gPSBudWxsO1xuXG4gIGFjdGl2ZUl0ZW1JbmZvJCA9IG5ldyBSZXBsYXlTdWJqZWN0PE5hdkl0ZW1Db25maWdbXT4oMSk7XG5cbiAgcHJpdmF0ZSByZWdpc3RlclRlbXBsYXRlSG9sZGVyKGlkOiBUZW1wbGF0ZUhvbGRlclR5cGUpIHtcbiAgICBpZiAodGhpcy50ZW1wbGF0ZUhvbGRlcnMuaGFzKGlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wbGF0ZSBob2xkZXIgZm9yICR7aWR9IGhhcyBhbHJlYWR5IHJlZ2lzdGVyZWQhYCk7XG4gICAgfVxuICAgIHRoaXMudGVtcGxhdGVIb2xkZXJzLnNldChpZCwgbmV3IFRlbXBsYXRlSG9sZGVyKCkpO1xuICB9XG5cbiAgLy8gV2lsbCBpbml0IHRlbXBsYXRlIGhvbGRlciBpZiBub3QgaW5pdGlhbGxlZCB5ZXRcbiAgZ2V0VGVtcGxhdGVIb2xkZXIoaWQ6IFRlbXBsYXRlSG9sZGVyVHlwZSkge1xuICAgIGlmICghdGhpcy50ZW1wbGF0ZUhvbGRlcnMuaGFzKGlkKSkge1xuICAgICAgdGhpcy5yZWdpc3RlclRlbXBsYXRlSG9sZGVyKGlkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZUhvbGRlcnMuZ2V0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOT1RFOiBvbmx5IHNldCBhY3RpdmUgaXRlbSBpbmZvIGluIENvbnNvbGVDb21wb25lbnRcbiAgICovXG4gIHNldEFjdGl2ZUl0ZW1JbmZvKGFjdGl2ZU5hdkl0ZW1JbmZvOiBOYXZJdGVtQ29uZmlnW10pIHtcbiAgICB0aGlzLmFjdGl2ZUl0ZW1JbmZvJC5uZXh0KGFjdGl2ZU5hdkl0ZW1JbmZvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOT1RFOiBvbmx5IHVzZSBmb3IgdmlldyBzd2l0Y2ggc3RhdHVzIHJlY29yZGluZ1xuICAgKi9cbiAgc2V0Vmlld1N3aXRjaFN0YXRlKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcHJldlZpZXdTd2l0Y2hTdGF0ZSA9IHRoaXMuX2N1cnJWaWV3U3dpdGNoU3RhdGU7XG4gICAgdGhpcy5fY3VyclZpZXdTd2l0Y2hTdGF0ZSA9IHN0YXRlO1xuICB9XG5cbiAgc2hvdWxkVmlld1N3aXRjaEFuaW1hdGUoKSB7XG4gICAgcmV0dXJuICFbbnVsbCwgdGhpcy5fY3VyclZpZXdTd2l0Y2hTdGF0ZV0uaW5jbHVkZXMoXG4gICAgICB0aGlzLl9wcmV2Vmlld1N3aXRjaFN0YXRlLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==