@alauda-fe/common
Version:
Alauda frontend team common codes.
68 lines • 7.87 kB
JavaScript
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==