UNPKG

@cause-911/material

Version:

Run `npm install @cause-911/material --save` to add this library to your project

92 lines 8.29 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { NavigationEnd, Router } from '@angular/router'; export class MenuVerticalComponent { /** * @param {?} router */ constructor(router) { this.router = router; this.itemClick = new EventEmitter(); this.menuItems = []; this.router.events.subscribe((/** * @param {?} route * @return {?} */ (route) => { if (route instanceof NavigationEnd) { this.selectActiveRoute(route); } })); } /** * @return {?} */ ngOnInit() { } /** * @param {?} path * @param {?} e * @return {?} */ goTo(path, e) { this.router.navigate([path]); this.itemClick.emit(); e.stopPropagation(); } /** * @private * @param {?} route * @return {?} */ selectActiveRoute(route) { this.menuItems.forEach((/** * @param {?} menu * @return {?} */ menu => { if (route.url) { menu.activated = (route.url === menu.path || (menu.childs.length && route.url.indexOf(menu.path) > -1)); } menu.childs.forEach((/** * @param {?} submenu * @return {?} */ submenu => { if (route.url) { submenu.activated = (route.url === submenu.path || route.urlAfterRedirects === submenu.path); } })); })); } } MenuVerticalComponent.decorators = [ { type: Component, args: [{ selector: 'cause-menu-vertical', template: "<h4 *ngFor=\"let menu of menuItems\" [class]=\"menu.activated ? 'selected' : ''\">\n <div (click)=\"goTo(menu.path, $event)\" class=\"menu\">\n <div *ngIf=\"menu.icon\" class=\"menu-icon\">\n <fa-icon *ngIf=\"menu.icon.filter !== undefined\" [icon]=\"menu.icon\"></fa-icon>\n <img *ngIf=\"menu.icon.filter === undefined\" [src]=\"menu.icon\" />\n </div>\n <div *ngIf=\"menu.label\" class=\"menu-caption\">\n <span>{{menu.label | translate}}</span>\n </div>\n </div>\n <div *ngIf=\"menu.childs.length && menu.activated\" class=\"submenu\">\n <div\n *ngFor=\"let submenu of menu.childs\"\n [class]=\"submenu.activated ? 'menu selected' : 'menu'\"\n (click)=\"goTo(submenu.path, $event)\">\n <div *ngIf=\"!submenu.icon\" class=\"menu-dot\">&bull;</div>\n <div *ngIf=\"submenu.icon\" class=\"menu-icon\">\n <fa-icon *ngIf=\"submenu.icon.filter !== undefined\" [icon]=\"submenu.icon\"></fa-icon>\n <img *ngIf=\"submenu.icon.filter === undefined\" [src]=\"submenu.icon\" />\n </div>\n <div *ngIf=\"submenu.label\" class=\"menu-caption\">\n <span>{{submenu.label | translate}}</span>\n </div>\n </div>\n </div>\n</h4>\n", styles: [".menu,.submenu{cursor:pointer}h4{margin:0;padding:0}h4 .menu{padding:1em 0;display:flex;flex-direction:row}h4 .menu>div{flex:1 1 auto;-ms-grid-row-align:center;align-self:center}.menu-dot{max-width:1.1em;text-align:center;margin-right:.5em;font-size:2em}.menu-icon{max-width:60px;text-align:center;margin-right:.5em}.submenu{margin-left:1em}.submenu .menu{padding:0;font-size:.9em;line-height:2.2em}.submenu .menu::before{content:\"\";margin-left:1.1em;width:.1em;height:2.5em;position:relative;background:#fff;margin-right:-1.17em}"] }] } ]; /** @nocollapse */ MenuVerticalComponent.ctorParameters = () => [ { type: Router } ]; MenuVerticalComponent.propDecorators = { itemClick: [{ type: Output }], menuItems: [{ type: Input }] }; if (false) { /** @type {?} */ MenuVerticalComponent.prototype.itemClick; /** @type {?} */ MenuVerticalComponent.prototype.menuItems; /** * @type {?} * @private */ MenuVerticalComponent.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS12ZXJ0aWNhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2F1c2UtOTExL21hdGVyaWFsLyIsInNvdXJjZXMiOlsibGliL21lbnUtdmVydGljYWwvbWVudS12ZXJ0aWNhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQVF0RCxNQUFNLE9BQU8scUJBQXFCOzs7O0lBSTlCLFlBQ1ksTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFKaEIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUtoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDbEQsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakM7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7Ozs7O0lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdEIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Ozs7OztJQUVPLGlCQUFpQixDQUFDLEtBQW9CO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzs7OztRQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzRztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzs7OztZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxQixJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRztZQUNMLENBQUMsRUFBQyxDQUFDO1FBQ1AsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7WUF6Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLGcwQ0FBNkM7O2FBRWhEOzs7O1lBUHNCLE1BQU07Ozt3QkFTeEIsTUFBTTt3QkFDTixLQUFLOzs7O0lBRE4sMENBQXlDOztJQUN6QywwQ0FBb0M7Ozs7O0lBR2hDLHVDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TWVudUl0ZW19IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvbWVudS1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjYXVzZS1tZW51LXZlcnRpY2FsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS12ZXJ0aWNhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS12ZXJ0aWNhbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVWZXJ0aWNhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICkge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChyb3V0ZTogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJvdXRlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0QWN0aXZlUm91dGUocm91dGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbiAgICBnb1RvKHBhdGgsIGUpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdKTtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdCgpO1xuXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RBY3RpdmVSb3V0ZShyb3V0ZTogTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICB0aGlzLm1lbnVJdGVtcy5mb3JFYWNoKG1lbnUgPT4ge1xuICAgICAgICAgICAgaWYgKHJvdXRlLnVybCkge1xuICAgICAgICAgICAgICAgIG1lbnUuYWN0aXZhdGVkID0gKHJvdXRlLnVybCA9PT0gbWVudS5wYXRoIHx8IChtZW51LmNoaWxkcy5sZW5ndGggJiYgcm91dGUudXJsLmluZGV4T2YobWVudS5wYXRoKSA+IC0xKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1lbnUuY2hpbGRzLmZvckVhY2goc3VibWVudSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJvdXRlLnVybCkge1xuICAgICAgICAgICAgICAgICAgICBzdWJtZW51LmFjdGl2YXRlZCA9IChyb3V0ZS51cmwgPT09IHN1Ym1lbnUucGF0aCB8fCByb3V0ZS51cmxBZnRlclJlZGlyZWN0cyA9PT0gc3VibWVudS5wYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19