@cause-911/material
Version:
Run `npm install @cause-911/material --save` to add this library to your project
168 lines • 14.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, HostListener, Input } from '@angular/core';
export class MenuSidebarComponent {
/**
* @param {?} element
*/
constructor(element) {
this.menuItems = [];
this.version = '';
this.keepMenuExpanded = false;
this.hostElement = (/** @type {?} */ (element.nativeElement));
this.hostElement.addEventListener('mouseover', (/**
* @param {?} e
* @return {?}
*/
(e) => this.onMouseOver(e)));
this.hostElement.addEventListener('mouseout', (/**
* @param {?} e
* @return {?}
*/
(e) => this.onMouseOut(e)));
this.setDisplayMenu();
}
/**
* @return {?}
*/
ngOnInit() {
}
/**
* @param {?} e
* @return {?}
*/
onResize(e) {
this.setDisplayMenu();
}
/**
* @return {?}
*/
onMenuItemClick() {
if (window.innerWidth < 1000) {
this.hideOnMobile();
}
}
/**
* @return {?}
*/
hideOnMobile() {
this.hostElement.classList.remove('mobile');
this.hostElement.classList.add('hidden');
}
/**
* @return {?}
*/
showOnMobile() {
this.hostElement.classList.remove('hidden');
this.hostElement.classList.add('mobile');
}
/**
* @return {?}
*/
onToggleCollapse() {
if (this.keepMenuExpanded) {
this.onCollpseMenu();
this.hostElement.classList.remove('keepExpanded');
}
else {
this.onExpandedMenu();
this.hostElement.classList.add('keepExpanded');
}
this.keepMenuExpanded = !this.keepMenuExpanded;
localStorage.setItem('cause-menu-status', this.keepMenuExpanded ? 'expanded' : 'collapsed');
}
/**
* @private
* @return {?}
*/
setDisplayMenu() {
this.hostElement.className = '';
if (window.innerWidth < 1000) {
this.hostElement.classList.add('hidden');
}
else {
if (localStorage.getItem('cause-menu-status') === 'expanded') {
this.keepMenuExpanded = true;
this.hostElement.classList.add('keepExpanded');
}
this.hostElement.classList.add(this.keepMenuExpanded ? 'expanded' : 'collapsed');
}
}
/**
* @private
* @param {?} e
* @return {?}
*/
onMouseOver(e) {
if (!this.keepMenuExpanded) {
this.onExpandedMenu();
}
e.stopPropagation();
}
/**
* @private
* @param {?} e
* @return {?}
*/
onMouseOut(e) {
if (!this.keepMenuExpanded) {
this.onCollpseMenu();
}
e.stopPropagation();
}
/**
* @private
* @return {?}
*/
onExpandedMenu() {
if (window.innerWidth >= 1000) {
this.hostElement.classList.remove('collapsed');
this.hostElement.classList.add('expanded');
}
}
/**
* @private
* @return {?}
*/
onCollpseMenu() {
if (window.innerWidth >= 1000) {
this.hostElement.classList.remove('expanded');
this.hostElement.classList.add('collapsed');
}
}
}
MenuSidebarComponent.decorators = [
{ type: Component, args: [{
selector: 'cause-menu-sidebar',
template: "<div>\n <button mat-icon-button class=\"close\" (click)=\"hideOnMobile()\">\n <mat-icon>clear</mat-icon>\n </button>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<div>\n <ng-content select=\"[beforeMenu]\"></ng-content>\n <cause-menu-vertical #menu [menuItems]=\"menuItems\" (itemClick)=\"onMenuItemClick()\"></cause-menu-vertical>\n <ng-content select=\"[afterMenu]\"></ng-content>\n</div>\n<div *ngIf=\"version\" class=\"version\">\n <div class=\"double-arrow\" (click)=\"onToggleCollapse()\"></div>\n <span class=\"full\">{{'material.version' | translate}} {{version}}</span>\n <span class=\"abbr\">{{version}}</span>\n</div>\n",
styles: [":host{height:100%;flex-direction:column;display:flex;transition:.1s ease-out;overflow:hidden;scrollbar-width:5px;scrollbar-color:rgba(0,0,0,.1) rgba(0,0,0,.2)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{border-radius:5px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.1)}::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(0,0,0,.2);outline:#708090 solid 1px}:host>div{flex:1}:host>div:first-child{flex:0 0 auto}:host>div:nth-child(2){flex-grow:1;overflow:hidden auto}:host>div:last-child{max-height:1em}:host.hidden{width:0;min-width:0;max-width:0}:host.mobile{width:275px;min-width:275px;max-width:275px;position:absolute;z-index:10}:host.collapsed{width:75px;min-width:75px;max-width:75px}:host.expanded{width:275px;min-width:275px;max-width:275px}:host .close{display:none}:host.mobile .close{right:0;display:inline-block;position:absolute}.double-arrow{height:2.9em;line-height:2.9em;cursor:pointer;position:absolute;opacity:.25;margin-top:-1em}.double-arrow:hover{opacity:1}:host.collapsed .double-arrow:before,:host.expanded .double-arrow:before{font-family:\"Material Icons\";content:\"double_arrow\";font-size:2.9em;text-align:right}:host.collapsed .double-arrow{margin-left:10px}:host.expanded .double-arrow{margin-left:200px}:host.collapsed ::ng-deep .menu-caption,:host.collapsed ::ng-deep .submenu{display:none}:host.keepExpanded .double-arrow{transform:rotate(180deg);opacity:1}.version{bottom:0;padding:1em}.abbr,.full{display:none}:host.collapsed .abbr{display:inline}:host.expanded .full,:host.mobile .full{display:inline}@media only screen and (max-width:1000px){.double-arrow{display:none}}"]
}] }
];
/** @nocollapse */
MenuSidebarComponent.ctorParameters = () => [
{ type: ElementRef }
];
MenuSidebarComponent.propDecorators = {
menuItems: [{ type: Input }],
version: [{ type: Input }],
onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
};
if (false) {
/** @type {?} */
MenuSidebarComponent.prototype.menuItems;
/** @type {?} */
MenuSidebarComponent.prototype.version;
/**
* @type {?}
* @private
*/
MenuSidebarComponent.prototype.hostElement;
/**
* @type {?}
* @private
*/
MenuSidebarComponent.prototype.keepMenuExpanded;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjYXVzZS05MTEvbWF0ZXJpYWwvIiwic291cmNlcyI6WyJsaWIvbWVudS1zaWRlYmFyL21lbnUtc2lkZWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFnQixZQUFZLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQVNsSCxNQUFNLE9BQU8sb0JBQW9COzs7O0lBTzdCLFlBQVksT0FBbUI7UUFOdEIsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUMzQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBR2QscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQUEsT0FBTyxDQUFDLGFBQWEsRUFBa0IsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFdBQVc7Ozs7UUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsVUFBVTs7OztRQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7Ozs7SUFHRCxRQUFRLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7O0lBRUQsZUFBZTtRQUNYLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQzs7OztJQUVELFlBQVk7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LENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7OztZQXBHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsZ3JCQUE0Qzs7YUFFL0M7Ozs7WUFSa0IsVUFBVTs7O3dCQVV4QixLQUFLO3NCQUNMLEtBQUs7dUJBZ0JMLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUFqQnpDLHlDQUFvQzs7SUFDcEMsdUNBQXNCOzs7OztJQUV0QiwyQ0FBb0M7Ozs7O0lBQ3BDLGdEQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNZW51SXRlbX0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9tZW51LWl0ZW0nO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXJ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhdXNlLW1lbnUtc2lkZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWVudVNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICAgIEBJbnB1dCgpIHZlcnNpb24gPSAnJztcblxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICAgIHByaXZhdGUga2VlcE1lbnVFeHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLmhvc3RFbGVtZW50ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICB0aGlzLmhvc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIChlKSA9PiB0aGlzLm9uTW91c2VPdmVyKGUpKTtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIChlKSA9PiB0aGlzLm9uTW91c2VPdXQoZSkpO1xuXG4gICAgICAgIHRoaXMuc2V0RGlzcGxheU1lbnUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShlKSB7XG4gICAgICAgIHRoaXMuc2V0RGlzcGxheU1lbnUoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVJdGVtQ2xpY2soKSB7XG4gICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDEwMDApIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZU9uTW9iaWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlT25Nb2JpbGUoKSB7XG4gICAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbW9iaWxlJyk7XG4gICAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XG4gICAgfVxuXG4gICAgc2hvd09uTW9iaWxlKCkge1xuICAgICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xuICAgICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ21vYmlsZScpO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlQ29sbGFwc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLmtlZXBNZW51RXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Db2xscHNlTWVudSgpO1xuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdrZWVwRXhwYW5kZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25FeHBhbmRlZE1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgna2VlcEV4cGFuZGVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmtlZXBNZW51RXhwYW5kZWQgPSAhdGhpcy5rZWVwTWVudUV4cGFuZGVkO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2F1c2UtbWVudS1zdGF0dXMnLCB0aGlzLmtlZXBNZW51RXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGlzcGxheU1lbnUoKSB7XG4gICAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NOYW1lID0gJyc7XG5cbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgMTAwMCkge1xuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2F1c2UtbWVudS1zdGF0dXMnKSA9PT0gJ2V4cGFuZGVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMua2VlcE1lbnVFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdrZWVwRXhwYW5kZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMua2VlcE1lbnVFeHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTW91c2VPdmVyKGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmtlZXBNZW51RXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25FeHBhbmRlZE1lbnUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1vdXNlT3V0KGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmtlZXBNZW51RXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Db2xscHNlTWVudSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRXhwYW5kZWRNZW51KCkge1xuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPj0gMTAwMCkge1xuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjb2xsYXBzZWQnKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Db2xscHNlTWVudSgpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoID49IDEwMDApIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2VkJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=