/
ng-material-multilevel-menu.umd.js.map
1 lines (1 loc) · 30 KB
/
ng-material-multilevel-menu.umd.js.map
1
{"version":3,"file":"ng-material-multilevel-menu.umd.js.map","sources":["ng://ng-material-multilevel-menu/lib/materials.module.ts","ng://ng-material-multilevel-menu/lib/multilevel-menu.service.ts","ng://ng-material-multilevel-menu/lib/constants.ts","ng://ng-material-multilevel-menu/lib/ng-material-multilevel-menu.component.ts","ng://ng-material-multilevel-menu/lib/list-item/list-item.component.ts","ng://ng-material-multilevel-menu/lib/ng-material-multilevel-menu.module.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\nimport {\r\n MatIconModule,\r\n MatListModule,\r\n MatRippleModule,\r\n} from '@angular/material';\r\n\r\n@NgModule({\r\n imports: [\r\n MatIconModule,\r\n MatListModule,\r\n MatRippleModule,\r\n ],\r\n declarations: [],\r\n exports: [\r\n MatIconModule,\r\n MatListModule,\r\n MatRippleModule,\r\n ]\r\n})\r\nexport class MaterialsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { MultilevelNodes } from './app.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MultilevelMenuService {\r\n foundLinkObject: MultilevelNodes;\r\n generateId(): string {\r\n let text = '';\r\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n for (let i = 0; i < 20; i++) {\r\n text += possible.charAt(Math.floor(Math.random() * possible.length));\r\n }\r\n return text;\r\n }\r\n addRandomId(nodes: MultilevelNodes[]): void {\r\n nodes.forEach((node: MultilevelNodes) => {\r\n node.id = this.generateId();\r\n if (node.items !== undefined) {\r\n this.addRandomId(node.items);\r\n }\r\n });\r\n }\r\n recursiveCheckId(node: MultilevelNodes, nodeId: string): boolean {\r\n if (node.id === nodeId) {\r\n return true;\r\n } else {\r\n if (node.items !== undefined) {\r\n return node.items.some((nestedNode: MultilevelNodes) => {\r\n return this.recursiveCheckId(nestedNode, nodeId);\r\n });\r\n }\r\n }\r\n }\r\n recursiveCheckLink(nodes: MultilevelNodes[], link: string): void {\r\n for (let nodeIndex = 0; nodeIndex < nodes.length; nodeIndex++) {\r\n const node = nodes[nodeIndex];\r\n for (const key in node) {\r\n if (node.hasOwnProperty(key)) {\r\n if (encodeURI(node.link) === link) {\r\n this.foundLinkObject = node;\r\n } else {\r\n if (node.items !== undefined) {\r\n this.recursiveCheckLink(node.items, link);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n getMatchedObjectByUrl(node: MultilevelNodes[], link: string): MultilevelNodes {\r\n this.recursiveCheckLink(node, link);\r\n return this.foundLinkObject;\r\n }\r\n}\r\n","export const CONSTANT = {\r\n PADDING_AT_START: true,\r\n DEFAULT_CLASS_NAME: `amml-container`,\r\n DEFAULT_LIST_CLASS_NAME: `amml-item`,\r\n SELECTED_LIST_CLASS_NAME: `selected-amml-item`,\r\n DEFAULT_SELECTED_FONT_COLOR: `#1976d2`,\r\n DEFAULT_LIST_BACKGROUND_COLOR: `transparent`,\r\n DEFAULT_LIST_FONT_COLOR: `rgba(0,0,0,.87)`,\r\n ERROR_MESSAGE: `Invalid data for material Multilevel List Component`\r\n};\r\n","import { Component, OnInit, OnChanges, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\nimport { MultilevelMenuService } from './multilevel-menu.service';\r\n\r\nimport { Configuration, MultilevelNodes, BackgroundStyle } from './app.model';\r\nimport { CONSTANT } from './constants';\r\n\r\n@Component({\r\n selector: 'ng-material-multilevel-menu',\r\n template: `<div [ngClass]=\"getClassName()\" [ngStyle]=\"getGlobalStyle()\" *ngIf='items.length !== 0' [dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\">\r\n <mat-list>\r\n <ng-list-item\r\n *ngFor=\"let node of items\"\r\n [nodeConfiguration]='nodeConfig'\r\n [node]='node'\r\n [selectedNode]='currentNode'\r\n (selectedItem)=\"selectedListItem($event)\r\n \">\r\n </ng-list-item>\r\n </mat-list>\r\n</div>`,\r\n styles: [`.amml-item{line-height:48px;display:flex;justify-content:space-between;position:relative}.anml-data{width:100%;text-transform:capitalize;display:flex;justify-content:start}.amml-icon-fa{font-size:20px}.amml-icon{line-height:48px}.active{color:#1976d2}div[dir=ltr] .amml-icon{margin-right:15px}div[dir=ltr] .amml-submenu{margin-left:16px}div[dir=rtl] .amml-icon{margin-left:15px}div[dir=rtl] .amml-submenu{margin-right:16px}`],\r\n})\r\nexport class NgMaterialMultilevelMenuComponent implements OnInit, OnChanges {\r\n @Input() items: MultilevelNodes[];\r\n @Input() configuration: Configuration = null;\r\n @Output() selectedItem = new EventEmitter<MultilevelNodes>();\r\n @Output() selectedLabel = new EventEmitter<MultilevelNodes>();\r\n currentNode: MultilevelNodes;\r\n nodeConfig: Configuration = {\r\n paddingAtStart: true,\r\n listBackgroundColor: null,\r\n fontColor: null,\r\n selectedListFontColor: null,\r\n interfaceWithRoute: null,\r\n collapseOnSelect: null,\r\n highlightOnSelect: false,\r\n rtlLayout: false,\r\n };\r\n isInvalidConfig = true;\r\n constructor(\r\n private router: Router,\r\n private multilevelMenuService: MultilevelMenuService\r\n ) { }\r\n ngOnChanges() {\r\n this.checkValiddata();\r\n this.detectInvalidConfig();\r\n }\r\n ngOnInit() {\r\n if (\r\n this.configuration !== null && this.configuration !== undefined && this.configuration !== '' &&\r\n this.configuration.interfaceWithRoute !== null && this.configuration.interfaceWithRoute) {\r\n this.router.events\r\n .subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.updateNodeByURL(event.url);\r\n }\r\n });\r\n this.updateNodeByURL(this.router.url);\r\n }\r\n }\r\n updateNodeByURL(url: string): void {\r\n const foundNode = this.multilevelMenuService.getMatchedObjectByUrl(this.items, url);\r\n if (\r\n foundNode !== undefined &&\r\n foundNode.link !== undefined &&\r\n foundNode.link !== null &&\r\n foundNode.link !== ''\r\n ) {\r\n this.currentNode = foundNode;\r\n this.selectedListItem(foundNode);\r\n }\r\n }\r\n checkValiddata(): void {\r\n if (this.items.length === 0) {\r\n console.warn(CONSTANT.ERROR_MESSAGE);\r\n } else {\r\n this.items = this.items.filter(n => !n.hidden);\r\n this.multilevelMenuService.addRandomId(this.items);\r\n }\r\n }\r\n detectInvalidConfig(): void {\r\n if (this.configuration === null || this.configuration === undefined || this.configuration === '') {\r\n this.isInvalidConfig = true;\r\n } else {\r\n this.isInvalidConfig = false;\r\n const config = this.configuration;\r\n if (config.paddingAtStart !== undefined && config.paddingAtStart !== null && typeof config.paddingAtStart === 'boolean') {\r\n this.nodeConfig.paddingAtStart = config.paddingAtStart;\r\n }\r\n if (config.listBackgroundColor !== '' &&\r\n config.listBackgroundColor !== null &&\r\n config.listBackgroundColor !== undefined) {\r\n this.nodeConfig.listBackgroundColor = config.listBackgroundColor;\r\n }\r\n if (config.fontColor !== '' &&\r\n config.fontColor !== null &&\r\n config.fontColor !== undefined) {\r\n this.nodeConfig.fontColor = config.fontColor;\r\n }\r\n if (config.selectedListFontColor !== '' &&\r\n config.selectedListFontColor !== null &&\r\n config.selectedListFontColor !== undefined) {\r\n this.nodeConfig.selectedListFontColor = config.selectedListFontColor;\r\n }\r\n if (config.interfaceWithRoute !== null &&\r\n config.interfaceWithRoute !== undefined &&\r\n typeof config.interfaceWithRoute === 'boolean') {\r\n this.nodeConfig.interfaceWithRoute = config.interfaceWithRoute;\r\n }\r\n if (config.collapseOnSelect !== null &&\r\n config.collapseOnSelect !== undefined &&\r\n typeof config.collapseOnSelect === 'boolean') {\r\n this.nodeConfig.collapseOnSelect = config.collapseOnSelect;\r\n }\r\n if (config.highlightOnSelect !== null &&\r\n config.highlightOnSelect !== undefined &&\r\n typeof config.highlightOnSelect === 'boolean') {\r\n this.nodeConfig.highlightOnSelect = config.highlightOnSelect;\r\n }\r\n if (config.rtlLayout !== null &&\r\n config.rtlLayout !== undefined &&\r\n typeof config.rtlLayout === 'boolean') {\r\n this.nodeConfig.rtlLayout = config.rtlLayout;\r\n }\r\n }\r\n }\r\n getClassName(): string {\r\n if (this.isInvalidConfig) {\r\n return CONSTANT.DEFAULT_CLASS_NAME;\r\n } else {\r\n if (this.configuration.classname !== '' && this.configuration.classname !== null && this.configuration.classname !== undefined) {\r\n return `${CONSTANT.DEFAULT_CLASS_NAME} ${this.configuration.classname}`;\r\n } else {\r\n return CONSTANT.DEFAULT_CLASS_NAME;\r\n }\r\n }\r\n }\r\n getGlobalStyle(): BackgroundStyle {\r\n if (!this.isInvalidConfig) {\r\n const styles = {\r\n background : null\r\n };\r\n if (this.configuration.backgroundColor !== '' &&\r\n this.configuration.backgroundColor !== null &&\r\n this.configuration.backgroundColor !== undefined) {\r\n styles.background = this.configuration.backgroundColor;\r\n }\r\n return styles;\r\n }\r\n }\r\n isRtlLayout(): boolean {\r\n return this.nodeConfig.rtlLayout;\r\n }\r\n selectedListItem(event: MultilevelNodes): void {\r\n this.currentNode = event;\r\n if (event.items === undefined && !event.onSelected) {\r\n this.selectedItem.emit(event);\r\n } else {\r\n this.selectedLabel.emit(event);\r\n }\r\n }\r\n}\r\n","import { Component, OnChanges, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { trigger, style, transition, animate, state, group } from '@angular/animations';\r\n\r\nimport { MultilevelMenuService } from './../multilevel-menu.service';\r\n\r\nimport { Configuration, MultilevelNodes, ListStyle } from './../app.model';\r\nimport { CONSTANT } from './../constants';\r\n\r\n@Component({\r\n selector: 'ng-list-item',\r\n template: `<mat-list-item matRipple [ngClass]=\"selectedListClasses\" *ngIf=\"!node.hidden\" (click)=\"expand(node)\" title=\"{{node.label}}\"\r\n [ngStyle]=\"getListStyle()\">\r\n <div class=\"anml-data\" [dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\">\r\n <div class=\"icon-container\" [ngSwitch]=\"getListIcon(node)\">\r\n <span *ngSwitchCase=\"'faicon'\" class=\"amml-icon amml-icon-fa\">\r\n <i [ngClass]=\"node.faIcon\"></i>\r\n </span>\r\n <mat-icon *ngSwitchCase=\"'icon'\" class=\"amml-icon\">\r\n {{node.icon}}\r\n </mat-icon>\r\n <img matListAvatar *ngSwitchCase=\"'imageicon'\" class=\"amml-icon\" src=\"{{node.imageIcon}}\" alt=\"{{node.label}}\"/>\r\n </div> \r\n <span class=\"label\">{{node.label}}</span>\r\n </div>\r\n <ng-container *ngIf='hasItems()'>\r\n <mat-icon *ngIf='!isRtlLayout()' [@isExpandedLTR]=\"hasItems() && expanded ? 'yes' : 'no'\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n <mat-icon *ngIf='isRtlLayout()' [@isExpandedRTL]=\"hasItems() && expanded ? 'yes' : 'no'\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n </ng-container>\r\n</mat-list-item>\r\n\r\n<mat-divider></mat-divider>\r\n\r\n<div *ngIf=\"hasItems() && expanded\" [@slideInOut] [dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\" [ngClass]=\"classes\">\r\n <ng-list-item *ngFor=\"let singleNode of nodeChildren\"\r\n [nodeConfiguration]='nodeConfiguration'\r\n [node]='singleNode'\r\n [level]=\"level + 1\"\r\n [selectedNode]='selectedNode'\r\n (selectedItem)=\"selectedListItem($event)\">\r\n </ng-list-item>\r\n</div>\r\n`,\r\n styles: [`.amml-item{line-height:48px;position:relative;cursor:pointer}.anml-data{width:100%;text-transform:capitalize;display:flex;justify-content:start;height:48px}.amml-icon-fa{font-size:20px}.amml-icon,.label{line-height:48px}div[dir=ltr] .amml-icon{margin-right:16px}div[dir=ltr].amml-submenu,div[dir=rtl] .amml-icon{margin-left:16px}div[dir=rtl].amml-submenu{margin-right:16px}`],\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({ height: '*', opacity: 0 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 0.2 }),\r\n group([\r\n animate(300, style({ height: 0 })),\r\n animate('200ms ease-out', style({ opacity: 0 }))\r\n ])\r\n ]),\r\n transition(':enter', [\r\n style({ height: '0', opacity: 0 }),\r\n group([\r\n animate(200, style({ height: '*' })),\r\n animate('400ms ease-out', style({ opacity: 1 }))\r\n ])\r\n ])\r\n ]),\r\n trigger('isExpandedLTR', [\r\n state('no', style({ transform: 'rotate(-90deg)' })),\r\n state('yes', style({ transform: 'rotate(0deg)', })),\r\n\r\n transition('no => yes',\r\n animate(300)\r\n ),\r\n transition('yes => no',\r\n animate(300)\r\n )\r\n ]),\r\n trigger('isExpandedRTL', [\r\n state('no', style({ transform: 'rotate(90deg)' })),\r\n state('yes', style({ transform: 'rotate(0deg)', })),\r\n\r\n transition('no => yes',\r\n animate(300)\r\n ),\r\n transition('yes => no',\r\n animate(300)\r\n )\r\n ])\r\n ]\r\n})\r\nexport class ListItemComponent implements OnChanges {\r\n @Input() node: MultilevelNodes;\r\n @Input() level = 1;\r\n @Input() selectedNode: MultilevelNodes;\r\n @Input() nodeConfiguration: Configuration = null;\r\n @Output() selectedItem = new EventEmitter<MultilevelNodes>();\r\n isSelected = false;\r\n nodeChildren: MultilevelNodes[];\r\n classes: { [index: string]: boolean };\r\n selectedListClasses: { [index: string]: boolean };\r\n expanded = false;\r\n firstInitializer = false;\r\n constructor(\r\n private router: Router,\r\n private multilevelMenuService: MultilevelMenuService\r\n ) {\r\n this.selectedListClasses = {\r\n [CONSTANT.DEFAULT_LIST_CLASS_NAME]: true,\r\n [CONSTANT.SELECTED_LIST_CLASS_NAME]: false,\r\n };\r\n }\r\n ngOnChanges() {\r\n this.nodeChildren = this.node && this.node.items ? this.node.items.filter(n => !n.hidden) : [];\r\n if (this.selectedNode !== undefined && this.selectedNode !== null) {\r\n this.setSelectedClass(this.multilevelMenuService.recursiveCheckId(this.node, this.selectedNode.id));\r\n }\r\n }\r\n setSelectedClass(isFound: boolean): void {\r\n if (isFound) {\r\n if (!this.firstInitializer) {\r\n this.expanded = true;\r\n }\r\n this.isSelected = this.nodeConfiguration.highlightOnSelect || this.selectedNode.items === undefined ? true : false;\r\n } else {\r\n this.isSelected = false;\r\n if (this.nodeConfiguration.collapseOnSelect) {\r\n this.expanded = false;\r\n }\r\n }\r\n this.selectedListClasses = {\r\n [CONSTANT.DEFAULT_LIST_CLASS_NAME]: true,\r\n [CONSTANT.SELECTED_LIST_CLASS_NAME]: this.isSelected,\r\n };\r\n this.setClasses();\r\n }\r\n getPaddingAtStart(): boolean {\r\n return this.nodeConfiguration.paddingAtStart ? true : false;\r\n }\r\n getListStyle(): ListStyle {\r\n const styles = {\r\n background: CONSTANT.DEFAULT_LIST_BACKGROUND_COLOR,\r\n color: CONSTANT.DEFAULT_LIST_FONT_COLOR\r\n };\r\n if (this.nodeConfiguration.listBackgroundColor !== null) {\r\n styles.background = this.nodeConfiguration.listBackgroundColor;\r\n }\r\n if (this.isSelected) {\r\n this.nodeConfiguration.selectedListFontColor !== null ?\r\n styles.color = this.nodeConfiguration.selectedListFontColor : styles.color = CONSTANT.DEFAULT_SELECTED_FONT_COLOR;\r\n } else if (this.nodeConfiguration.fontColor !== null) {\r\n styles.color = this.nodeConfiguration.fontColor;\r\n }\r\n return styles;\r\n }\r\n getListIcon(node: MultilevelNodes): string {\r\n if (node.icon !== null && node.icon !== undefined && node.icon !== '') {\r\n return `icon`;\r\n } else if (node.faIcon !== null && node.faIcon !== undefined && node.faIcon !== '') {\r\n return `faicon`;\r\n } else if (node.imageIcon !== null && node.imageIcon !== undefined && node.imageIcon !== '') {\r\n return `imageicon`;\r\n } else {\r\n return ``;\r\n }\r\n }\r\n hasItems(): boolean {\r\n return this.nodeChildren.length > 0 ? true : false;\r\n }\r\n isRtlLayout(): boolean {\r\n return this.nodeConfiguration.rtlLayout;\r\n }\r\n setClasses(): void {\r\n this.classes = {\r\n ['level-' + this.level]: true,\r\n 'amml-submenu': this.hasItems() && this.getPaddingAtStart()\r\n };\r\n }\r\n expand(node: MultilevelNodes): void {\r\n this.expanded = !this.expanded;\r\n this.firstInitializer = true;\r\n this.setClasses();\r\n if (this.nodeConfiguration.interfaceWithRoute !== null\r\n && this.nodeConfiguration.interfaceWithRoute\r\n && node.link !== undefined\r\n ) {\r\n if (node.externalRedirect !== undefined && node.externalRedirect) {\r\n window.location.href = node.link;\r\n } else {\r\n this.router.navigate([node.link]);\r\n }\r\n } else if (node.items === undefined || this.nodeConfiguration.collapseOnSelect) {\r\n this.selectedListItem(node);\r\n } else if (node.onSelected) {\r\n node.onSelected(node);\r\n this.selectedListItem(node);\r\n }\r\n }\r\n selectedListItem(node: MultilevelNodes): void {\r\n this.selectedItem.emit(node);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaterialsModule } from './materials.module';\r\n\r\nimport { NgMaterialMultilevelMenuComponent } from './ng-material-multilevel-menu.component';\r\nimport { ListItemComponent } from './list-item/list-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaterialsModule\r\n ],\r\n declarations: [NgMaterialMultilevelMenuComponent, ListItemComponent],\r\n exports: [NgMaterialMultilevelMenuComponent]\r\n})\r\nexport class NgMaterialMultilevelMenuModule { }\r\n"],"names":["NgModule","MatIconModule","MatListModule","MatRippleModule","Injectable","router","EventEmitter","NavigationEnd","Component","Router","Input","Output","trigger","state","style","transition","group","animate","CommonModule"],"mappings":"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"}