@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
25 lines • 3.34 kB
JavaScript
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
export class MenuNavigationService {
constructor() {
/** Store a list of items that belong to this menu */
this.menuItems = [];
/** Store the current active menu item */
this.active$ = new BehaviorSubject(null);
}
/** Add an item to this menu */
register(menuItem) {
this.menuItems = [...this.menuItems, menuItem];
}
/** Remove an item from the list of menu items */
unregister(menuItem) {
this.menuItems = this.menuItems.filter(_menuItem => _menuItem !== menuItem);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuNavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuNavigationService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuNavigationService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1uYXZpZ2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9tZW51LW5hdmlnYXRpb24vbWVudS1uYXZpZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl2QyxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBR0kscURBQXFEO1FBQ3JELGNBQVMsR0FBK0MsRUFBRSxDQUFDO1FBRTNELHlDQUF5QztRQUN6QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO0tBV3BFO0lBVEcsK0JBQStCO0lBQy9CLFFBQVEsQ0FBQyxRQUFxQztRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxpREFBaUQ7SUFDakQsVUFBVSxDQUFDLFFBQXFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDaEYsQ0FBQzsrR0FoQlEscUJBQXFCO21IQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVOYXZpZ2F0aW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vbWVudS1uYXZpZ2F0aW9uLWl0ZW0uZGlyZWN0aXZlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lbnVOYXZpZ2F0aW9uU2VydmljZSB7XG5cbiAgICAvKiogU3RvcmUgYSBsaXN0IG9mIGl0ZW1zIHRoYXQgYmVsb25nIHRvIHRoaXMgbWVudSAqL1xuICAgIG1lbnVJdGVtczogUmVhZG9ubHlBcnJheTxNZW51TmF2aWdhdGlvbkl0ZW1EaXJlY3RpdmU+ID0gW107XG5cbiAgICAvKiogU3RvcmUgdGhlIGN1cnJlbnQgYWN0aXZlIG1lbnUgaXRlbSAqL1xuICAgIGFjdGl2ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lbnVOYXZpZ2F0aW9uSXRlbURpcmVjdGl2ZT4obnVsbCk7XG5cbiAgICAvKiogQWRkIGFuIGl0ZW0gdG8gdGhpcyBtZW51ICovXG4gICAgcmVnaXN0ZXIobWVudUl0ZW06IE1lbnVOYXZpZ2F0aW9uSXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtcyA9IFsuLi50aGlzLm1lbnVJdGVtcywgbWVudUl0ZW1dO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmUgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IG9mIG1lbnUgaXRlbXMgKi9cbiAgICB1bnJlZ2lzdGVyKG1lbnVJdGVtOiBNZW51TmF2aWdhdGlvbkl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbXMgPSB0aGlzLm1lbnVJdGVtcy5maWx0ZXIoX21lbnVJdGVtID0+IF9tZW51SXRlbSAhPT0gbWVudUl0ZW0pO1xuICAgIH1cbn0iXX0=