@cause-911/material
Version:
Run `npm install @cause-911/material --save` to add this library to your project
92 lines • 8.29 kB
JavaScript
/**
* @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\">•</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