ng-mat-multilevel-menu 7.0.2 → 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ng-mat-multilevel-menu.mjs +90 -325
- package/fesm2022/ng-mat-multilevel-menu.mjs.map +1 -1
- package/lib/list-item/list-item-content/list-item-content.component.d.ts +1 -1
- package/lib/list-item/list-item.component.d.ts +1 -1
- package/lib/ng-material-multilevel-menu.component.d.ts +1 -1
- package/lib/ng-material-multilevel-menu.module.d.ts +4 -7
- package/package.json +6 -8
- package/esm2022/lib/animation.mjs +0 -31
- package/esm2022/lib/app.model.mjs +0 -7
- package/esm2022/lib/common-utils.mjs +0 -9
- package/esm2022/lib/constants.mjs +0 -19
- package/esm2022/lib/list-item/list-item-content/list-item-content.component.mjs +0 -68
- package/esm2022/lib/list-item/list-item.component.mjs +0 -176
- package/esm2022/lib/materials.module.mjs +0 -35
- package/esm2022/lib/multilevel-menu.service.mjs +0 -93
- package/esm2022/lib/ng-material-multilevel-menu.component.mjs +0 -204
- package/esm2022/lib/ng-material-multilevel-menu.module.mjs +0 -36
- package/esm2022/ng-mat-multilevel-menu.mjs +0 -5
- package/esm2022/public_api.mjs +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-mat-multilevel-menu.mjs","sources":["../../../projects/ng-material-multilevel-menu/src/lib/app.model.ts","../../../projects/ng-material-multilevel-menu/src/lib/constants.ts","../../../projects/ng-material-multilevel-menu/src/lib/animation.ts","../../../projects/ng-material-multilevel-menu/src/lib/common-utils.ts","../../../projects/ng-material-multilevel-menu/src/lib/multilevel-menu.service.ts","../../../projects/ng-material-multilevel-menu/src/lib/list-item/list-item-content/list-item-content.component.ts","../../../projects/ng-material-multilevel-menu/src/lib/list-item/list-item-content/list-item-content.component.html","../../../projects/ng-material-multilevel-menu/src/lib/list-item/list-item.component.ts","../../../projects/ng-material-multilevel-menu/src/lib/list-item/list-item.component.html","../../../projects/ng-material-multilevel-menu/src/lib/materials.module.ts","../../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.component.ts","../../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.component.html","../../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.module.ts","../../../projects/ng-material-multilevel-menu/src/public_api.ts","../../../projects/ng-material-multilevel-menu/src/ng-mat-multilevel-menu.ts"],"sourcesContent":["import { NavigationExtras } from '@angular/router';\r\n\r\nexport interface MultilevelNode {\r\n id?: string;\r\n label: string;\r\n faIcon?: string;\r\n icon?: string;\r\n imageIcon?: string;\r\n svgIcon?: string;\r\n activeFaIcon?: string;\r\n activeIcon?: string;\r\n activeImageIcon?: string;\r\n activeSvgIcon?: string;\r\n hidden?: boolean;\r\n link?: string;\r\n externalRedirect?: boolean;\r\n hrefTargetType?: string;\r\n data?: any;\r\n items?: MultilevelNode[];\r\n onSelected?: Function;\r\n disabled?: boolean;\r\n expanded?: boolean;\r\n navigationExtras?: NavigationExtras;\r\n dontEmit?: boolean;\r\n hasChildren?: boolean;\r\n isSelected?: boolean;\r\n}\r\n\r\nexport interface Configuration {\r\n classname?: string;\r\n paddingAtStart?: boolean;\r\n backgroundColor?: string;\r\n listBackgroundColor?: string;\r\n fontColor?: string;\r\n selectedListFontColor?: string;\r\n interfaceWithRoute?: boolean;\r\n collapseOnSelect?: boolean;\r\n highlightOnSelect?: boolean;\r\n useDividers?: boolean;\r\n rtlLayout?: boolean;\r\n customTemplate?: boolean;\r\n}\r\n\r\nexport interface BackgroundStyle {\r\n background: string;\r\n}\r\n\r\nexport interface ListStyle {\r\n background: string;\r\n color: string;\r\n}\r\n\r\nexport enum ExpandCollapseStatusEnum {\r\n expand = 'expand',\r\n collapse = 'collapse',\r\n neutral = 'neutral',\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 ACTIVE_ITEM_CLASS_NAME: `active-amml-item`,\r\n DISABLED_ITEM_CLASS_NAME: `disabled-amml-item`,\r\n SUBMENU_ITEM_CLASS_NAME: `amml-submenu`,\r\n HAS_SUBMENU_ITEM_CLASS_NAME: `has-amml-submenu`,\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 DEFAULT_HREF_TARGET_TYPE: '_self',\r\n ERROR_MESSAGE: `Invalid data for material Multilevel List Component`,\r\n POSSIBLE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',\r\n YES: 'yes',\r\n NO: 'no'\r\n};\r\n","import { animate, group, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const SlideInOut = trigger('SlideInOut', [\r\n state(\r\n 'in',\r\n style({ height: '*', opacity: 0 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 0.2 }),\r\n group([\r\n animate(200, 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);\r\n\r\nexport const ExpandedLTR = trigger('ExpandedLTR', [\r\n state('no', style({ transform: 'rotate(-90deg)' })),\r\n state('yes', style({ transform: 'rotate(0deg)', })),\r\n\r\n transition('no => yes', animate(200)),\r\n transition('yes => no', animate(200))\r\n]);\r\n\r\nexport const ExpandedRTL = trigger('ExpandedRTL', [\r\n state('no', style({ transform: 'rotate(90deg)' })),\r\n state('yes', style({ transform: 'rotate(0deg)', })),\r\n\r\n transition('no => yes', animate(200)),\r\n transition('yes => no', animate(200))\r\n]);\r\n","export class CommonUtils {\r\n\r\n static isNullOrUndefinedOrEmpty = function (object: any): boolean {\r\n return CommonUtils.isNullOrUndefined(object) || object === '';\r\n };\r\n\r\n static isNullOrUndefined = function (object: any): boolean {\r\n return object === null || object === undefined;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\r\nimport { MultilevelNode, ExpandCollapseStatusEnum } from './app.model';\r\nimport {CONSTANT} from './constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MultilevelMenuService {\r\n foundLinkObject: MultilevelNode;\r\n private expandCollapseStatus: Subject<ExpandCollapseStatusEnum> = new Subject<ExpandCollapseStatusEnum>();\r\n expandCollapseStatus$: Observable<ExpandCollapseStatusEnum> = this.expandCollapseStatus.asObservable();\r\n\r\n private selectedMenuID: Subject<string> = new Subject<string>();\r\n selectedMenuID$: Observable<string> = this.selectedMenuID.asObservable();\r\n\r\n private generateId(): string {\r\n let text = '';\r\n for (let i = 0; i < 20; i++) {\r\n text += CONSTANT.POSSIBLE.charAt(Math.floor(Math.random() * CONSTANT.POSSIBLE.length));\r\n }\r\n return text;\r\n }\r\n addRandomId(nodes: MultilevelNode[]): void {\r\n nodes.forEach((node: MultilevelNode) => {\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: MultilevelNode, 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: MultilevelNode) => {\r\n return this.recursiveCheckId(nestedNode, nodeId);\r\n });\r\n }\r\n }\r\n }\r\n private findNodeRecursively({nodes, link, id}: {nodes: MultilevelNode[], link?: string, id?: 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 if (node.id === id) {\r\n this.foundLinkObject = node;\r\n } else {\r\n if (node.items !== undefined) {\r\n this.findNodeRecursively({\r\n nodes: node.items,\r\n link: link ? link : null,\r\n id: id ? id : null\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n getMatchedObjectByUrl(nodes: MultilevelNode[], link: string): MultilevelNode {\r\n this.findNodeRecursively({nodes, link});\r\n return this.foundLinkObject;\r\n }\r\n getMatchedObjectById(nodes: MultilevelNode[], id: string): MultilevelNode {\r\n this.findNodeRecursively({nodes, id});\r\n return this.foundLinkObject;\r\n }\r\n // overrides key-value pipe's default reordering (by key) by implementing dummy comprarer function\r\n // https://angular.io/api/common/KeyValuePipe#description\r\n kvDummyComparerFn() {\r\n return 0;\r\n }\r\n setMenuExpandCollapseStatus(status: ExpandCollapseStatusEnum): void {\r\n this.expandCollapseStatus.next(status ? status : ExpandCollapseStatusEnum.neutral);\r\n }\r\n selectMenuByID(menuID: string) {\r\n this.selectedMenuID.next(menuID);\r\n return this.foundLinkObject;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {Configuration, MultilevelNode, ListStyle} from '../../app.model';\r\nimport {ExpandedLTR, ExpandedRTL} from '../../animation';\r\nimport {CommonUtils} from '../../common-utils';\r\nimport {CONSTANT} from '../../constants';\r\n\r\n@Component({\r\n selector: 'ng-list-item-content',\r\n templateUrl: './list-item-content.component.html',\r\n styleUrls: ['./list-item-content.component.css'],\r\n animations: [ExpandedLTR, ExpandedRTL]\r\n})\r\nexport class ListItemContentComponent implements OnInit {\r\n @Input() node: MultilevelNode;\r\n @Input() isRtlLayout: boolean;\r\n @Input() listContentStyle: ListStyle;\r\n @Input() nodeConfiguration: Configuration = null;\r\n\r\n constructor() {\r\n // NOOP\r\n }\r\n\r\n ngOnInit(): void {\r\n // NOOP\r\n }\r\n\r\n getListIcon(node: MultilevelNode): string {\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(node.icon)) {\r\n return `icon`;\r\n } else if (!CommonUtils.isNullOrUndefinedOrEmpty(node.faIcon)) {\r\n return `faIcon`;\r\n } else if (!CommonUtils.isNullOrUndefinedOrEmpty(node.imageIcon)) {\r\n return `imageIcon`;\r\n } else if (!CommonUtils.isNullOrUndefinedOrEmpty(node.svgIcon)) {\r\n return `svgIcon`;\r\n } else {\r\n return ``;\r\n }\r\n }\r\n\r\n getHrefTargetType(): string {\r\n return this.node.hrefTargetType ? this.node.hrefTargetType : CONSTANT.DEFAULT_HREF_TARGET_TYPE;\r\n }\r\n\r\n getSelectedSvgIcon(): string {\r\n return this.node.isSelected && this.node.activeSvgIcon ? this.node.activeSvgIcon : this.node.svgIcon;\r\n }\r\n\r\n getSelectedIcon(): string {\r\n return this.node.isSelected && this.node.activeIcon ? this.node.activeIcon : this.node.icon;\r\n }\r\n\r\n getSelectedFaIcon(): string {\r\n return this.node.isSelected && this.node.activeFaIcon ? this.node.activeFaIcon : this.node.faIcon;\r\n }\r\n\r\n getSelectedImageIcon(): string {\r\n return this.node.isSelected && this.node.activeImageIcon ? this.node.activeImageIcon : this.node.imageIcon;\r\n }\r\n\r\n nodeExpandStatus(): string {\r\n return this.node.expanded ? CONSTANT.YES : CONSTANT.NO;\r\n }\r\n}\r\n","<ng-container *ngTemplateOutlet=\"node.externalRedirect ? redirectLinkTemplate : routerLinkTemplate\"></ng-container>\r\n\r\n<ng-template #redirectLinkTemplate>\r\n <a class=\"anml-link\" [href]=\"node.link\" [target]=\"getHrefTargetType()\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #routerLinkTemplate>\r\n <ng-container *ngIf=\"node.link && nodeConfiguration.interfaceWithRoute; else defaultContentContainer\">\r\n <a class=\"anml-link\" [routerLink]=\"node.link\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultContentContainer>\r\n <a class=\"anml-link\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #linkLabelLtrOutlet>\r\n <div class=\"anml-data\" [dir]=\"'ltr'\">\r\n <ng-container *ngTemplateOutlet=\"iconContainer\"></ng-container>\r\n <span class=\"label\">{{node.label}}</span>\r\n </div>\r\n <div class=\"amml-icon-arrow-container\" *ngIf='node.hasChildren'>\r\n <mat-icon [@ExpandedLTR]=\"nodeExpandStatus()\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #linkLabelRtlOutlet>\r\n <div class=\"anml-data\" [dir]=\"'rtl'\">\r\n <ng-container *ngTemplateOutlet=\"iconContainer\"></ng-container>\r\n <span class=\"label\">{{node.label}}</span>\r\n </div>\r\n <div class=\"amml-icon-arrow-container\" *ngIf='node.hasChildren'>\r\n <mat-icon [@ExpandedRTL]=\"nodeExpandStatus()\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #iconContainer>\r\n <div class=\"icon-container\" [ngSwitch]=\"getListIcon(node)\">\r\n <span *ngSwitchCase=\"'faIcon'\" class=\"amml-icon amml-icon-fa\">\r\n <i [ngClass]=\"getSelectedFaIcon()\"></i>\r\n </span>\r\n <mat-icon *ngSwitchCase=\"'icon'\" class=\"amml-icon\">\r\n {{getSelectedIcon()}}\r\n </mat-icon>\r\n <mat-icon *ngSwitchCase=\"'svgIcon'\" class=\"amml-icon amml-svg-icon\"\r\n svgIcon=\"{{getSelectedSvgIcon()}}\">\r\n </mat-icon>\r\n <img *ngSwitchCase=\"'imageIcon'\" class=\"amml-icon amml-img-icon\"\r\n src=\"{{getSelectedImageIcon()}}\" alt=\"{{node.label}}\"/>\r\n </div>\r\n</ng-template>\r\n\r\n","import { Component, Input, OnChanges, OnInit, Output, EventEmitter, TemplateRef, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Configuration, ListStyle, MultilevelNode, ExpandCollapseStatusEnum } from '../app.model';\r\nimport { CONSTANT } from '../constants';\r\nimport { MultilevelMenuService } from '../multilevel-menu.service';\r\nimport { SlideInOut } from '../animation';\r\nimport {CommonUtils} from '../common-utils';\r\n\r\n@Component({\r\n selector: 'ng-list-item',\r\n templateUrl: './list-item.component.html',\r\n styleUrls: ['./list-item.component.css'],\r\n animations: [SlideInOut]\r\n})\r\nexport class ListItemComponent implements OnChanges, OnInit {\r\n @Input() node: MultilevelNode;\r\n @Input() level = 1;\r\n @Input() submenuLevel = 0;\r\n @Input() selectedNode: MultilevelNode;\r\n @Input() nodeConfiguration: Configuration = null;\r\n @Input() nodeExpandCollapseStatus: ExpandCollapseStatusEnum = null;\r\n @Input() listTemplate: TemplateRef<ElementRef> = null;\r\n\r\n @Output() selectedItem = new EventEmitter<MultilevelNode>();\r\n\r\n isSelected = false;\r\n expanded = false;\r\n firstInitializer = false;\r\n\r\n nodeChildren: MultilevelNode[];\r\n classes: { [index: string]: boolean };\r\n selectedListClasses: { [index: string]: boolean };\r\n\r\n constructor(private router: Router,\r\n public multilevelMenuService: MultilevelMenuService) {\r\n this.selectedListClasses = {\r\n [CONSTANT.DEFAULT_LIST_CLASS_NAME]: true,\r\n [CONSTANT.SELECTED_LIST_CLASS_NAME]: false,\r\n [CONSTANT.ACTIVE_ITEM_CLASS_NAME]: false,\r\n };\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 this.node.hasChildren = this.hasItems();\r\n\r\n if (!CommonUtils.isNullOrUndefined(this.selectedNode)) {\r\n this.setSelectedClass(this.multilevelMenuService.recursiveCheckId(this.node, this.selectedNode.id));\r\n }\r\n this.setExpandCollapseStatus();\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedListClasses[CONSTANT.DISABLED_ITEM_CLASS_NAME] = this.node.disabled;\r\n\r\n if (!CommonUtils.isNullOrUndefined(this.node.faIcon) &&\r\n this.node.faIcon.match(/\\bfa\\w(?!-)/) === null) {\r\n this.node.faIcon = `fas ${this.node.faIcon}`;\r\n }\r\n\r\n this.selectedListClasses[`level-${this.level}-submenulevel-${this.submenuLevel}`] = true;\r\n if (typeof this.node.expanded === 'boolean') {\r\n this.expanded = this.node.expanded;\r\n }\r\n this.setClasses();\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;\r\n } else {\r\n this.isSelected = false;\r\n if (this.nodeConfiguration.collapseOnSelect) {\r\n this.node.expanded = false;\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 [CONSTANT.ACTIVE_ITEM_CLASS_NAME]: this.selectedNode.id === this.node.id,\r\n [CONSTANT.DISABLED_ITEM_CLASS_NAME]: this.node.disabled,\r\n [`level-${this.level}-submenulevel-${this.submenuLevel}`]: true,\r\n };\r\n this.node.isSelected = this.isSelected;\r\n this.setClasses();\r\n }\r\n\r\n getPaddingAtStart(): boolean {\r\n return this.nodeConfiguration.paddingAtStart;\r\n }\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\r\n hasItems(): boolean {\r\n return this.nodeChildren.length > 0;\r\n }\r\n\r\n isRtlLayout(): boolean {\r\n return this.nodeConfiguration.rtlLayout;\r\n }\r\n\r\n setClasses(): void {\r\n this.classes = {\r\n [`level-${this.level + 1}`]: true,\r\n [CONSTANT.SUBMENU_ITEM_CLASS_NAME]: this.hasItems() && this.getPaddingAtStart(),\r\n [CONSTANT.HAS_SUBMENU_ITEM_CLASS_NAME]: this.hasItems()\r\n };\r\n }\r\n\r\n setExpandCollapseStatus(): void {\r\n if (!CommonUtils.isNullOrUndefined(this.nodeExpandCollapseStatus)) {\r\n if (this.nodeExpandCollapseStatus === ExpandCollapseStatusEnum.expand) {\r\n this.expanded = true;\r\n if (this.nodeConfiguration.customTemplate) {\r\n this.node.expanded = true;\r\n }\r\n }\r\n if (this.nodeExpandCollapseStatus === ExpandCollapseStatusEnum.collapse) {\r\n this.expanded = false;\r\n if (this.nodeConfiguration.customTemplate) {\r\n this.node.expanded = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n expand(node: MultilevelNode): void {\r\n if (node.disabled) {\r\n return;\r\n }\r\n this.nodeExpandCollapseStatus = ExpandCollapseStatusEnum.neutral;\r\n this.expanded = !this.expanded;\r\n this.node.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 && node.link\r\n ) {\r\n this.router.navigate([node.link], node.navigationExtras).then();\r\n } else if (node.onSelected && typeof node.onSelected === 'function') {\r\n node.onSelected(node);\r\n this.selectedListItem(node);\r\n } else if (node.items === undefined || this.nodeConfiguration.collapseOnSelect) {\r\n this.selectedListItem(node);\r\n }\r\n }\r\n\r\n selectedListItem(node: MultilevelNode): void {\r\n this.selectedItem.emit(node);\r\n }\r\n\r\n}\r\n","<div class=\"amml-menu-container\">\r\n <!-- Base Template rendering condition starts -->\r\n <div *ngIf=\"nodeConfiguration.customTemplate && !node.hidden;else baseTemplate\"\r\n [ngClass]=\"selectedListClasses\"\r\n (click)=\"expand(node)\">\r\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\r\n [ngTemplateOutletContext]=\"{item: node, configuration: nodeConfiguration}\">\r\n </ng-container>\r\n </div>\r\n <!-- Base Template rendering condition ends -->\r\n\r\n <!-- Recursive Template calls begins -->\r\n <div *ngIf=\"hasItems() && expanded\" [@SlideInOut] [dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\" [ngClass]=\"classes\">\r\n <ng-list-item *ngFor=\"let singleNode of nodeChildren | keyvalue : multilevelMenuService.kvDummyComparerFn\"\r\n [nodeConfiguration]='nodeConfiguration'\r\n [node]=\"singleNode.value\"\r\n [level]=\"level + 1\"\r\n [submenuLevel]=\"singleNode.key\"\r\n [selectedNode]='selectedNode'\r\n [nodeExpandCollapseStatus]='nodeExpandCollapseStatus'\r\n (selectedItem)=\"selectedListItem($event)\"\r\n [listTemplate]=\"listTemplate\">\r\n </ng-list-item>\r\n </div>\r\n</div>\r\n<!-- Recursive Template calls ends -->\r\n\r\n<!-- Base Template starts from here -->\r\n<ng-template #baseTemplate>\r\n <mat-list-item matRipple\r\n *ngIf=\"!node.hidden\"\r\n title=\"{{node.label}}\"\r\n [matRippleDisabled]=\"node.disabled\"\r\n [ngClass]=\"selectedListClasses\"\r\n (click)=\"expand(node)\">\r\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\r\n </mat-list-item>\r\n <mat-divider *ngIf=\"nodeConfiguration.useDividers\"></mat-divider>\r\n</ng-template>\r\n\r\n<ng-template #linkTemplate>\r\n <ng-list-item-content class=\"filled\" [node]=\"node\" [nodeConfiguration]=\"nodeConfiguration\" [isRtlLayout]=\"isRtlLayout()\" [listContentStyle]=\"getListStyle()\"></ng-list-item-content>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\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 { Component, OnChanges, OnInit, OnDestroy, Output, EventEmitter, Input, ContentChild, TemplateRef, ElementRef } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { BackgroundStyle, Configuration, MultilevelNode, ExpandCollapseStatusEnum } from './app.model';\r\nimport { CONSTANT } from './constants';\r\nimport { MultilevelMenuService } from './multilevel-menu.service';\r\nimport {CommonUtils} from './common-utils';\r\n\r\n@Component({\r\n selector: 'ng-material-multilevel-menu',\r\n templateUrl: './ng-material-multilevel-menu.component.html',\r\n styleUrls: ['./ng-material-multilevel-menu.component.css'],\r\n})\r\nexport class NgMaterialMultilevelMenuComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() items: MultilevelNode[];\r\n @Input() configuration: Configuration = null;\r\n @Output() selectedItem = new EventEmitter<MultilevelNode>();\r\n @Output() selectedLabel = new EventEmitter<MultilevelNode>();\r\n @Output() menuIsReady = new EventEmitter<MultilevelNode[]>();\r\n @ContentChild('listTemplate', {static: true}) listTemplate: TemplateRef<ElementRef>;\r\n\r\n expandCollapseStatusSubscription: Subscription = null;\r\n selectMenuByIDSubscription: Subscription = null;\r\n currentNode: MultilevelNode = null;\r\n\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 useDividers: true,\r\n rtlLayout: false,\r\n customTemplate: false\r\n };\r\n isInvalidConfig = true;\r\n isInvalidData = true;\r\n nodeExpandCollapseStatus: ExpandCollapseStatusEnum = ExpandCollapseStatusEnum.neutral;\r\n\r\n constructor(private router: Router,\r\n public multilevelMenuService: MultilevelMenuService) {\r\n // NOOP\r\n }\r\n ngOnChanges() {\r\n this.detectInvalidConfig();\r\n this.initExpandCollapseStatus();\r\n this.initSelectedMenuID();\r\n if (!this.isInvalidData) {\r\n this.menuIsReady.emit(this.items);\r\n }\r\n }\r\n ngOnInit() {\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(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.urlAfterRedirects);\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 (foundNode !== undefined && !CommonUtils.isNullOrUndefinedOrEmpty(foundNode.link)\r\n // && !foundNode.disabled // Prevent route redirection for disabled menu\r\n ) {\r\n this.currentNode = foundNode;\r\n if (!CommonUtils.isNullOrUndefined(foundNode.dontEmit) && !foundNode.dontEmit) {\r\n this.selectedListItem(foundNode);\r\n }\r\n }\r\n }\r\n checkValidData(): void {\r\n if (this.items === undefined || (Array.isArray(this.items) && this.items.length === 0)) {\r\n console.warn(CONSTANT.ERROR_MESSAGE);\r\n return;\r\n }\r\n this.items = this.items.filter(n => !n.hidden);\r\n this.multilevelMenuService.addRandomId(this.items);\r\n this.isInvalidData = false;\r\n }\r\n detectInvalidConfig(): void {\r\n if (CommonUtils.isNullOrUndefinedOrEmpty(this.configuration)) {\r\n this.isInvalidConfig = true;\r\n } else {\r\n this.isInvalidConfig = false;\r\n const config = this.configuration;\r\n if (!CommonUtils.isNullOrUndefined(config.paddingAtStart) &&\r\n typeof config.paddingAtStart === 'boolean') {\r\n this.nodeConfig.paddingAtStart = config.paddingAtStart;\r\n }\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(config.listBackgroundColor)) {\r\n this.nodeConfig.listBackgroundColor = config.listBackgroundColor;\r\n }\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(config.fontColor)) {\r\n this.nodeConfig.fontColor = config.fontColor;\r\n }\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(config.selectedListFontColor)) {\r\n this.nodeConfig.selectedListFontColor = config.selectedListFontColor;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.interfaceWithRoute) &&\r\n typeof config.interfaceWithRoute === 'boolean') {\r\n this.nodeConfig.interfaceWithRoute = config.interfaceWithRoute;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.collapseOnSelect) &&\r\n typeof config.collapseOnSelect === 'boolean') {\r\n this.nodeConfig.collapseOnSelect = config.collapseOnSelect;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.highlightOnSelect) &&\r\n typeof config.highlightOnSelect === 'boolean') {\r\n this.nodeConfig.highlightOnSelect = config.highlightOnSelect;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.useDividers) &&\r\n typeof config.useDividers === 'boolean') {\r\n this.nodeConfig.useDividers = config.useDividers;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.rtlLayout) &&\r\n typeof config.rtlLayout === 'boolean') {\r\n this.nodeConfig.rtlLayout = config.rtlLayout;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.customTemplate) &&\r\n typeof config.customTemplate === 'boolean') {\r\n this.nodeConfig.customTemplate = config.customTemplate;\r\n }\r\n }\r\n this.checkValidData();\r\n }\r\n initExpandCollapseStatus(): void {\r\n this.expandCollapseStatusSubscription = this.multilevelMenuService.expandCollapseStatus$\r\n .subscribe( (expandCollapseStatus: ExpandCollapseStatusEnum) => {\r\n this.nodeExpandCollapseStatus = expandCollapseStatus ? expandCollapseStatus : ExpandCollapseStatusEnum.neutral;\r\n }, () => {\r\n this.nodeExpandCollapseStatus = ExpandCollapseStatusEnum.neutral;\r\n });\r\n }\r\n initSelectedMenuID(): void {\r\n this.selectMenuByIDSubscription = this.multilevelMenuService.selectedMenuID$.subscribe( (selectedMenuID: string) => {\r\n if (selectedMenuID) {\r\n const foundNode = this.multilevelMenuService.getMatchedObjectById(this.items, selectedMenuID);\r\n if (foundNode !== undefined) {\r\n this.currentNode = foundNode;\r\n this.selectedListItem(foundNode);\r\n }\r\n }\r\n });\r\n }\r\n getClassName(): string {\r\n if (!this.isInvalidConfig && !CommonUtils.isNullOrUndefinedOrEmpty(this.configuration.classname)) {\r\n return `${CONSTANT.DEFAULT_CLASS_NAME} ${this.configuration.classname}`;\r\n }\r\n return CONSTANT.DEFAULT_CLASS_NAME;\r\n }\r\n getGlobalStyle(): BackgroundStyle {\r\n if (!this.isInvalidConfig) {\r\n const styles = {\r\n background : null\r\n };\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(this.configuration.backgroundColor)) {\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: MultilevelNode): void {\r\n this.nodeExpandCollapseStatus = ExpandCollapseStatusEnum.neutral;\r\n this.currentNode = event;\r\n if (!CommonUtils.isNullOrUndefined(event.dontEmit) && event.dontEmit) {\r\n return;\r\n }\r\n if (event.items === undefined && (!event.onSelected || typeof event.onSelected !== 'function') ) {\r\n this.selectedItem.emit(event);\r\n } else {\r\n this.selectedLabel.emit(event);\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.expandCollapseStatusSubscription.unsubscribe();\r\n this.selectMenuByIDSubscription.unsubscribe();\r\n }\r\n}\r\n","<div [ngClass]=\"getClassName()\" [ngStyle]=\"getGlobalStyle()\" *ngIf='!isInvalidData && items.length !== 0' [dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\">\r\n <mat-list>\r\n <ng-list-item\r\n *ngFor=\"let node of items | keyvalue: multilevelMenuService.kvDummyComparerFn\"\r\n [nodeConfiguration]='nodeConfig'\r\n [node]='node.value'\r\n [level]=\"1\"\r\n [submenuLevel]=\"node.key\"\r\n [selectedNode]='currentNode'\r\n [nodeExpandCollapseStatus]='nodeExpandCollapseStatus'\r\n (selectedItem)=\"selectedListItem($event)\"\r\n [listTemplate] = \"listTemplate\"\r\n >\r\n </ng-list-item>\r\n </mat-list>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { ListItemComponent } from './list-item/list-item.component';\r\nimport { MaterialsModule } from './materials.module';\r\nimport { NgMaterialMultilevelMenuComponent } from './ng-material-multilevel-menu.component';\r\nimport { ListItemContentComponent } from './list-item/list-item-content/list-item-content.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaterialsModule,\r\n RouterModule,\r\n ],\r\n declarations: [\r\n NgMaterialMultilevelMenuComponent,\r\n ListItemComponent,\r\n ListItemContentComponent,\r\n ],\r\n exports: [NgMaterialMultilevelMenuComponent]\r\n})\r\nexport class NgMaterialMultilevelMenuModule {}\r\n","/*\r\n * Public API Surface of ng-material-multilevel-menu\r\n */\r\n\r\nexport * from './lib/ng-material-multilevel-menu.module';\r\nexport * from './lib/ng-material-multilevel-menu.component';\r\nexport * from './lib/multilevel-menu.service';\r\nexport * from './lib/animation';\r\nexport { MultilevelNode, Configuration, ExpandCollapseStatusEnum } from './lib/app.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3","i4","i2.MultilevelMenuService","i8.ListItemContentComponent","i6.ListItemComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-mat-multilevel-menu.mjs","sources":["../../../projects/ng-material-multilevel-menu/src/lib/materials.module.ts","../../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.module.ts","../../../projects/ng-material-multilevel-menu/src/lib/app.model.ts","../../../projects/ng-material-multilevel-menu/src/lib/constants.ts","../../../projects/ng-material-multilevel-menu/src/lib/common-utils.ts","../../../projects/ng-material-multilevel-menu/src/lib/multilevel-menu.service.ts","../../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.component.ts","../../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.component.html","../../../projects/ng-material-multilevel-menu/src/lib/animation.ts","../../../projects/ng-material-multilevel-menu/src/public_api.ts","../../../projects/ng-material-multilevel-menu/src/ng-mat-multilevel-menu.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\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 { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { ListItemComponent } from './list-item/list-item.component';\r\nimport { MaterialsModule } from './materials.module';\r\nimport { NgMaterialMultilevelMenuComponent } from './ng-material-multilevel-menu.component';\r\nimport { ListItemContentComponent } from './list-item/list-item-content/list-item-content.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaterialsModule,\r\n RouterModule,\r\n ]\r\n})\r\nexport class NgMaterialMultilevelMenuModule {}\r\n","import { NavigationExtras } from '@angular/router';\r\n\r\nexport interface MultilevelNode {\r\n id?: string;\r\n label: string;\r\n faIcon?: string;\r\n icon?: string;\r\n imageIcon?: string;\r\n svgIcon?: string;\r\n activeFaIcon?: string;\r\n activeIcon?: string;\r\n activeImageIcon?: string;\r\n activeSvgIcon?: string;\r\n hidden?: boolean;\r\n link?: string;\r\n externalRedirect?: boolean;\r\n hrefTargetType?: string;\r\n data?: any;\r\n items?: MultilevelNode[];\r\n onSelected?: Function;\r\n disabled?: boolean;\r\n expanded?: boolean;\r\n navigationExtras?: NavigationExtras;\r\n dontEmit?: boolean;\r\n hasChildren?: boolean;\r\n isSelected?: boolean;\r\n}\r\n\r\nexport interface Configuration {\r\n classname?: string;\r\n paddingAtStart?: boolean;\r\n backgroundColor?: string;\r\n listBackgroundColor?: string;\r\n fontColor?: string;\r\n selectedListFontColor?: string;\r\n interfaceWithRoute?: boolean;\r\n collapseOnSelect?: boolean;\r\n highlightOnSelect?: boolean;\r\n useDividers?: boolean;\r\n rtlLayout?: boolean;\r\n customTemplate?: boolean;\r\n}\r\n\r\nexport interface BackgroundStyle {\r\n background: string;\r\n}\r\n\r\nexport interface ListStyle {\r\n background: string;\r\n color: string;\r\n}\r\n\r\nexport enum ExpandCollapseStatusEnum {\r\n expand = 'expand',\r\n collapse = 'collapse',\r\n neutral = 'neutral',\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 ACTIVE_ITEM_CLASS_NAME: `active-amml-item`,\r\n DISABLED_ITEM_CLASS_NAME: `disabled-amml-item`,\r\n SUBMENU_ITEM_CLASS_NAME: `amml-submenu`,\r\n HAS_SUBMENU_ITEM_CLASS_NAME: `has-amml-submenu`,\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 DEFAULT_HREF_TARGET_TYPE: '_self',\r\n ERROR_MESSAGE: `Invalid data for material Multilevel List Component`,\r\n POSSIBLE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',\r\n YES: 'yes',\r\n NO: 'no'\r\n};\r\n","export class CommonUtils {\r\n\r\n static isNullOrUndefinedOrEmpty = function (object: any): boolean {\r\n return CommonUtils.isNullOrUndefined(object) || object === '';\r\n };\r\n\r\n static isNullOrUndefined = function (object: any): boolean {\r\n return object === null || object === undefined;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\r\nimport { MultilevelNode, ExpandCollapseStatusEnum } from './app.model';\r\nimport {CONSTANT} from './constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MultilevelMenuService {\r\n foundLinkObject: MultilevelNode;\r\n private expandCollapseStatus: Subject<ExpandCollapseStatusEnum> = new Subject<ExpandCollapseStatusEnum>();\r\n expandCollapseStatus$: Observable<ExpandCollapseStatusEnum> = this.expandCollapseStatus.asObservable();\r\n\r\n private selectedMenuID: Subject<string> = new Subject<string>();\r\n selectedMenuID$: Observable<string> = this.selectedMenuID.asObservable();\r\n\r\n private generateId(): string {\r\n let text = '';\r\n for (let i = 0; i < 20; i++) {\r\n text += CONSTANT.POSSIBLE.charAt(Math.floor(Math.random() * CONSTANT.POSSIBLE.length));\r\n }\r\n return text;\r\n }\r\n addRandomId(nodes: MultilevelNode[]): void {\r\n nodes.forEach((node: MultilevelNode) => {\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: MultilevelNode, 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: MultilevelNode) => {\r\n return this.recursiveCheckId(nestedNode, nodeId);\r\n });\r\n }\r\n }\r\n }\r\n private findNodeRecursively({nodes, link, id}: {nodes: MultilevelNode[], link?: string, id?: 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 if (node.id === id) {\r\n this.foundLinkObject = node;\r\n } else {\r\n if (node.items !== undefined) {\r\n this.findNodeRecursively({\r\n nodes: node.items,\r\n link: link ? link : null,\r\n id: id ? id : null\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n getMatchedObjectByUrl(nodes: MultilevelNode[], link: string): MultilevelNode {\r\n this.findNodeRecursively({nodes, link});\r\n return this.foundLinkObject;\r\n }\r\n getMatchedObjectById(nodes: MultilevelNode[], id: string): MultilevelNode {\r\n this.findNodeRecursively({nodes, id});\r\n return this.foundLinkObject;\r\n }\r\n // overrides key-value pipe's default reordering (by key) by implementing dummy comprarer function\r\n // https://angular.io/api/common/KeyValuePipe#description\r\n kvDummyComparerFn() {\r\n return 0;\r\n }\r\n setMenuExpandCollapseStatus(status: ExpandCollapseStatusEnum): void {\r\n this.expandCollapseStatus.next(status ? status : ExpandCollapseStatusEnum.neutral);\r\n }\r\n selectMenuByID(menuID: string) {\r\n this.selectedMenuID.next(menuID);\r\n return this.foundLinkObject;\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, OnDestroy, Output, EventEmitter, Input, ContentChild, TemplateRef, ElementRef } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { BackgroundStyle, Configuration, MultilevelNode, ExpandCollapseStatusEnum } from './app.model';\r\nimport { CONSTANT } from './constants';\r\nimport { MultilevelMenuService } from './multilevel-menu.service';\r\nimport {CommonUtils} from './common-utils';\r\n\r\n@Component({\r\n selector: 'ng-material-multilevel-menu',\r\n templateUrl: './ng-material-multilevel-menu.component.html',\r\n styleUrls: ['./ng-material-multilevel-menu.component.css'],\r\n})\r\nexport class NgMaterialMultilevelMenuComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() items: MultilevelNode[];\r\n @Input() configuration: Configuration = null;\r\n @Output() selectedItem = new EventEmitter<MultilevelNode>();\r\n @Output() selectedLabel = new EventEmitter<MultilevelNode>();\r\n @Output() menuIsReady = new EventEmitter<MultilevelNode[]>();\r\n @ContentChild('listTemplate', {static: true}) listTemplate: TemplateRef<ElementRef>;\r\n\r\n expandCollapseStatusSubscription: Subscription = null;\r\n selectMenuByIDSubscription: Subscription = null;\r\n currentNode: MultilevelNode = null;\r\n\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 useDividers: true,\r\n rtlLayout: false,\r\n customTemplate: false\r\n };\r\n isInvalidConfig = true;\r\n isInvalidData = true;\r\n nodeExpandCollapseStatus: ExpandCollapseStatusEnum = ExpandCollapseStatusEnum.neutral;\r\n\r\n constructor(private router: Router,\r\n public multilevelMenuService: MultilevelMenuService) {\r\n // NOOP\r\n }\r\n ngOnChanges() {\r\n this.detectInvalidConfig();\r\n this.initExpandCollapseStatus();\r\n this.initSelectedMenuID();\r\n if (!this.isInvalidData) {\r\n this.menuIsReady.emit(this.items);\r\n }\r\n }\r\n ngOnInit() {\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(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.urlAfterRedirects);\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 (foundNode !== undefined && !CommonUtils.isNullOrUndefinedOrEmpty(foundNode.link)\r\n // && !foundNode.disabled // Prevent route redirection for disabled menu\r\n ) {\r\n this.currentNode = foundNode;\r\n if (!CommonUtils.isNullOrUndefined(foundNode.dontEmit) && !foundNode.dontEmit) {\r\n this.selectedListItem(foundNode);\r\n }\r\n }\r\n }\r\n checkValidData(): void {\r\n if (this.items === undefined || (Array.isArray(this.items) && this.items.length === 0)) {\r\n console.warn(CONSTANT.ERROR_MESSAGE);\r\n return;\r\n }\r\n this.items = this.items.filter(n => !n.hidden);\r\n this.multilevelMenuService.addRandomId(this.items);\r\n this.isInvalidData = false;\r\n }\r\n detectInvalidConfig(): void {\r\n if (CommonUtils.isNullOrUndefinedOrEmpty(this.configuration)) {\r\n this.isInvalidConfig = true;\r\n } else {\r\n this.isInvalidConfig = false;\r\n const config = this.configuration;\r\n if (!CommonUtils.isNullOrUndefined(config.paddingAtStart) &&\r\n typeof config.paddingAtStart === 'boolean') {\r\n this.nodeConfig.paddingAtStart = config.paddingAtStart;\r\n }\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(config.listBackgroundColor)) {\r\n this.nodeConfig.listBackgroundColor = config.listBackgroundColor;\r\n }\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(config.fontColor)) {\r\n this.nodeConfig.fontColor = config.fontColor;\r\n }\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(config.selectedListFontColor)) {\r\n this.nodeConfig.selectedListFontColor = config.selectedListFontColor;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.interfaceWithRoute) &&\r\n typeof config.interfaceWithRoute === 'boolean') {\r\n this.nodeConfig.interfaceWithRoute = config.interfaceWithRoute;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.collapseOnSelect) &&\r\n typeof config.collapseOnSelect === 'boolean') {\r\n this.nodeConfig.collapseOnSelect = config.collapseOnSelect;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.highlightOnSelect) &&\r\n typeof config.highlightOnSelect === 'boolean') {\r\n this.nodeConfig.highlightOnSelect = config.highlightOnSelect;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.useDividers) &&\r\n typeof config.useDividers === 'boolean') {\r\n this.nodeConfig.useDividers = config.useDividers;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.rtlLayout) &&\r\n typeof config.rtlLayout === 'boolean') {\r\n this.nodeConfig.rtlLayout = config.rtlLayout;\r\n }\r\n if (!CommonUtils.isNullOrUndefined(config.customTemplate) &&\r\n typeof config.customTemplate === 'boolean') {\r\n this.nodeConfig.customTemplate = config.customTemplate;\r\n }\r\n }\r\n this.checkValidData();\r\n }\r\n initExpandCollapseStatus(): void {\r\n this.expandCollapseStatusSubscription = this.multilevelMenuService.expandCollapseStatus$\r\n .subscribe( (expandCollapseStatus: ExpandCollapseStatusEnum) => {\r\n this.nodeExpandCollapseStatus = expandCollapseStatus ? expandCollapseStatus : ExpandCollapseStatusEnum.neutral;\r\n }, () => {\r\n this.nodeExpandCollapseStatus = ExpandCollapseStatusEnum.neutral;\r\n });\r\n }\r\n initSelectedMenuID(): void {\r\n this.selectMenuByIDSubscription = this.multilevelMenuService.selectedMenuID$.subscribe( (selectedMenuID: string) => {\r\n if (selectedMenuID) {\r\n const foundNode = this.multilevelMenuService.getMatchedObjectById(this.items, selectedMenuID);\r\n if (foundNode !== undefined) {\r\n this.currentNode = foundNode;\r\n this.selectedListItem(foundNode);\r\n }\r\n }\r\n });\r\n }\r\n getClassName(): string {\r\n if (!this.isInvalidConfig && !CommonUtils.isNullOrUndefinedOrEmpty(this.configuration.classname)) {\r\n return `${CONSTANT.DEFAULT_CLASS_NAME} ${this.configuration.classname}`;\r\n }\r\n return CONSTANT.DEFAULT_CLASS_NAME;\r\n }\r\n getGlobalStyle(): BackgroundStyle {\r\n if (!this.isInvalidConfig) {\r\n const styles = {\r\n background : null\r\n };\r\n if (!CommonUtils.isNullOrUndefinedOrEmpty(this.configuration.backgroundColor)) {\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: MultilevelNode): void {\r\n this.nodeExpandCollapseStatus = ExpandCollapseStatusEnum.neutral;\r\n this.currentNode = event;\r\n if (!CommonUtils.isNullOrUndefined(event.dontEmit) && event.dontEmit) {\r\n return;\r\n }\r\n if (event.items === undefined && (!event.onSelected || typeof event.onSelected !== 'function') ) {\r\n this.selectedItem.emit(event);\r\n } else {\r\n this.selectedLabel.emit(event);\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.expandCollapseStatusSubscription.unsubscribe();\r\n this.selectMenuByIDSubscription.unsubscribe();\r\n }\r\n}\r\n","<div [ngClass]=\"getClassName()\" [ngStyle]=\"getGlobalStyle()\" *ngIf='!isInvalidData && items.length !== 0' [dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\">\r\n <mat-list>\r\n <ng-list-item\r\n *ngFor=\"let node of items | keyvalue: multilevelMenuService.kvDummyComparerFn\"\r\n [nodeConfiguration]='nodeConfig'\r\n [node]='node.value'\r\n [level]=\"1\"\r\n [submenuLevel]=\"node.key\"\r\n [selectedNode]='currentNode'\r\n [nodeExpandCollapseStatus]='nodeExpandCollapseStatus'\r\n (selectedItem)=\"selectedListItem($event)\"\r\n [listTemplate] = \"listTemplate\"\r\n >\r\n </ng-list-item>\r\n </mat-list>\r\n</div>\r\n","import { animate, group, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const SlideInOut = trigger('SlideInOut', [\r\n state(\r\n 'in',\r\n style({ height: '*', opacity: 0 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 0.2 }),\r\n group([\r\n animate(200, 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);\r\n\r\nexport const ExpandedLTR = trigger('ExpandedLTR', [\r\n state('no', style({ transform: 'rotate(-90deg)' })),\r\n state('yes', style({ transform: 'rotate(0deg)', })),\r\n\r\n transition('no => yes', animate(200)),\r\n transition('yes => no', animate(200))\r\n]);\r\n\r\nexport const ExpandedRTL = trigger('ExpandedRTL', [\r\n state('no', style({ transform: 'rotate(90deg)' })),\r\n state('yes', style({ transform: 'rotate(0deg)', })),\r\n\r\n transition('no => yes', animate(200)),\r\n transition('yes => no', animate(200))\r\n]);\r\n","/*\r\n * Public API Surface of ng-material-multilevel-menu\r\n */\r\n\r\nexport * from './lib/ng-material-multilevel-menu.module';\r\nexport * from './lib/ng-material-multilevel-menu.component';\r\nexport * from './lib/multilevel-menu.service';\r\nexport * from './lib/animation';\r\nexport { MultilevelNode, Configuration, ExpandCollapseStatusEnum } from './lib/app.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.MultilevelMenuService"],"mappings":";;;;;;;;;;;MAmBa,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAXxB,aAAa;YACb,aAAa;AACb,YAAA,eAAe,aAIf,aAAa;YACb,aAAa;YACb,eAAe,CAAA,EAAA,CAAA,CAAA;AAGN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAXxB,aAAa;YACb,aAAa;AACb,YAAA,eAAe,EAIf,aAAa;YACb,aAAa;YACb,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAGN,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,aAAa;wBACb,aAAa;wBACb,eAAe;AAChB,qBAAA;AACD,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,aAAa;wBACb,aAAa;wBACb,eAAe;AAChB;AACF,iBAAA;;;MCFY,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,YALvC,YAAY;YACZ,eAAe;YACf,YAAY,CAAA,EAAA,CAAA,CAAA;AAGH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,YALvC,YAAY;YACZ,eAAe;YACf,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGH,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,YAAY;AACb;AACF,iBAAA;;;ICqCW;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAChC,IAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACvB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,GAInC,EAAA,CAAA,CAAA;;ACxDM,MAAM,QAAQ,GAAG;AACpB,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,kBAAkB,EAAE,CAAgB,cAAA,CAAA;AACpC,IAAA,uBAAuB,EAAE,CAAW,SAAA,CAAA;AACpC,IAAA,wBAAwB,EAAE,CAAoB,kBAAA,CAAA;AAC9C,IAAA,sBAAsB,EAAE,CAAkB,gBAAA,CAAA;AAC1C,IAAA,wBAAwB,EAAE,CAAoB,kBAAA,CAAA;AAC9C,IAAA,uBAAuB,EAAE,CAAc,YAAA,CAAA;AACvC,IAAA,2BAA2B,EAAE,CAAkB,gBAAA,CAAA;AAC/C,IAAA,2BAA2B,EAAE,CAAS,OAAA,CAAA;AACtC,IAAA,6BAA6B,EAAE,CAAa,WAAA,CAAA;AAC5C,IAAA,uBAAuB,EAAE,CAAiB,eAAA,CAAA;AAC1C,IAAA,wBAAwB,EAAE,OAAO;AACjC,IAAA,aAAa,EAAE,CAAqD,mDAAA,CAAA;AACpE,IAAA,QAAQ,EAAE,gEAAgE;AAC1E,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,EAAE,EAAE;CACP;;MCjBY,WAAW,CAAA;aAEf,IAAwB,CAAA,wBAAA,GAAG,UAAU,MAAW,EAAA;QACrD,OAAO,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,EAAE;AAC/D,KAAC,CAAC;aAEK,IAAiB,CAAA,iBAAA,GAAG,UAAU,MAAW,EAAA;AAC9C,QAAA,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;AAChD,KAAC,CAAC;;;MCAS,qBAAqB,CAAA;AAHlC,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,oBAAoB,GAAsC,IAAI,OAAO,EAA4B;AACzG,QAAA,IAAA,CAAA,qBAAqB,GAAyC,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;AAE9F,QAAA,IAAA,CAAA,cAAc,GAAoB,IAAI,OAAO,EAAU;AAC/D,QAAA,IAAA,CAAA,eAAe,GAAuB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAsEzE;IApES,UAAU,GAAA;QAChB,IAAI,IAAI,GAAG,EAAE;AACb,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;;AAExF,QAAA,OAAO,IAAI;;AAEb,IAAA,WAAW,CAAC,KAAuB,EAAA;AACjC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAoB,KAAI;AACrC,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5B,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEhC,SAAC,CAAC;;IAEJ,gBAAgB,CAAC,IAAoB,EAAE,MAAc,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE;AACtB,YAAA,OAAO,IAAI;;aACN;AACL,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAA0B,KAAI;oBACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC;AAClD,iBAAC,CAAC;;;;AAIA,IAAA,mBAAmB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAwD,EAAA;AAClG,QAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;AAC7D,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;AAC7B,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC5B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AACjC,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;AACtB,yBAAA,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;AACzB,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;yBACtB;AACL,wBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;4BAC5B,IAAI,CAAC,mBAAmB,CAAC;gCACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gCACjB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;gCACxB,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG;AACf,6BAAA,CAAC;;;;;;;IAOd,qBAAqB,CAAC,KAAuB,EAAE,IAAY,EAAA;QACzD,IAAI,CAAC,mBAAmB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;QACvC,OAAO,IAAI,CAAC,eAAe;;IAE7B,oBAAoB,CAAC,KAAuB,EAAE,EAAU,EAAA;QACtD,IAAI,CAAC,mBAAmB,CAAC,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC;QACrC,OAAO,IAAI,CAAC,eAAe;;;;IAI7B,iBAAiB,GAAA;AACf,QAAA,OAAO,CAAC;;AAEV,IAAA,2BAA2B,CAAC,MAAgC,EAAA;AAC1D,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC;;AAEpF,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,OAAO,IAAI,CAAC,eAAe;;+GA1ElB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCMY,iCAAiC,CAAA;IA4B5C,WAAoB,CAAA,MAAc,EACf,qBAA4C,EAAA;QAD3C,IAAM,CAAA,MAAA,GAAN,MAAM;QACP,IAAqB,CAAA,qBAAA,GAArB,qBAAqB;QA3B/B,IAAa,CAAA,aAAA,GAAkB,IAAI;AAClC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAkB;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAkB;AAClD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAoB;QAG5D,IAAgC,CAAA,gCAAA,GAAiB,IAAI;QACrD,IAA0B,CAAA,0BAAA,GAAiB,IAAI;QAC/C,IAAW,CAAA,WAAA,GAAmB,IAAI;AAElC,QAAA,IAAA,CAAA,UAAU,GAAkB;AAC1B,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,cAAc,EAAE;SACjB;QACD,IAAe,CAAA,eAAA,GAAG,IAAI;QACtB,IAAa,CAAA,aAAA,GAAG,IAAI;AACpB,QAAA,IAAA,CAAA,wBAAwB,GAA6B,wBAAwB,CAAC,OAAO;;;IAMrF,WAAW,GAAA;QACT,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAGrC,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3D,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;YACzF,IAAI,CAAC,MAAM,CAAC;AACT,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,IAAI,KAAK,YAAY,aAAa,EAAE;AAClC,oBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC;;AAEjD,aAAC,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;;AAGzC,IAAA,eAAe,CAAC,GAAW,EAAA;AACzB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;AACnF,QAAA,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI;;UAEjF;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC7E,gBAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;;;;IAItC,cAAc,GAAA;QACZ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACtF,YAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YACpC;;AAEF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;IAE5B,mBAAmB,GAAA;QACjB,IAAI,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;aACtB;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;YACjC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC;AACvD,gBAAA,OAAO,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;gBAC5C,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;;YAExD,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;gBACrE,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;;YAElE,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;gBAC3D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;;YAE9C,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE;gBACvE,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB;;YAEtE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,kBAAkB,CAAC;AAC3D,gBAAA,OAAO,MAAM,CAAC,kBAAkB,KAAK,SAAS,EAAE;gBAChD,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB;;YAEhE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC;AACzD,gBAAA,OAAO,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBAC9C,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;;YAE5D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC1D,gBAAA,OAAO,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE;gBAC/C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB;;YAE9D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;AACpD,gBAAA,OAAO,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;;YAElD,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AAClD,gBAAA,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;gBACvC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;;YAE9C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC;AACvD,gBAAA,OAAO,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;gBAC5C,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;;;QAG1D,IAAI,CAAC,cAAc,EAAE;;IAEvB,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,qBAAqB,CAAC;AAChE,aAAA,SAAS,CAAE,CAAC,oBAA8C,KAAI;AAC/D,YAAA,IAAI,CAAC,wBAAwB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC,OAAO;SAC/G,EAAE,MAAK;AACN,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,OAAO;AAClE,SAAC,CAAC;;IAEJ,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,SAAS,CAAE,CAAC,cAAsB,KAAI;YACjH,IAAI,cAAc,EAAE;AAClB,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;AAC7F,gBAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,oBAAA,IAAI,CAAC,WAAW,GAAG,SAAS;AAC5B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;;;AAGtC,SAAC,CAAC;;IAEJ,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;YAChG,OAAO,CAAA,EAAG,QAAQ,CAAC,kBAAkB,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAA,CAAE;;QAEzE,OAAO,QAAQ,CAAC,kBAAkB;;IAEpC,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,MAAM,MAAM,GAAG;AACb,gBAAA,UAAU,EAAG;aACd;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;gBAC7E,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe;;AAExD,YAAA,OAAO,MAAM;;;IAGjB,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS;;AAElC,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,OAAO;AAChE,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;YACpE;;QAEF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,EAAG;AAC/F,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;aACxB;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAGlC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gCAAgC,CAAC,WAAW,EAAE;AACnD,QAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE;;+GA3KpC,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,uYCb9C,8pBAgBA,EAAA,MAAA,EAAA,CAAA,ieAAA,CAAA,EAAA,CAAA,CAAA;;4FDHa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,8pBAAA,EAAA,MAAA,EAAA,CAAA,ieAAA,CAAA,EAAA;4GAK9B,KAAK,EAAA,CAAA;sBAAb;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACS,YAAY,EAAA,CAAA;sBAArB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBAC6C,YAAY,EAAA,CAAA;sBAAzD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;;;AEjBjC,MAAA,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE;AAC5C,IAAA,KAAK,CACD,IAAI,EACJ,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,UAAU,CAAC,QAAQ,EAAE;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACpC,QAAA,KAAK,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;SAC9C;KACJ,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAClC,QAAA,KAAK,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;SAC9C;KACJ;AACJ,CAAA;AAGQ,MAAA,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE;IAC9C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,cAAc,GAAG,CAAC,CAAC;AAEnD,IAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACrC,IAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC;AACvC,CAAA;AAEY,MAAA,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE;IAC9C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,cAAc,GAAG,CAAC,CAAC;AAEnD,IAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACrC,IAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC;AACvC,CAAA;;ACrCD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -16,5 +16,5 @@ export declare class ListItemContentComponent implements OnInit {
|
|
|
16
16
|
getSelectedImageIcon(): string;
|
|
17
17
|
nodeExpandStatus(): string;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<ListItemContentComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ListItemContentComponent, "ng-list-item-content", never, { "node": { "alias": "node"; "required": false; }; "isRtlLayout": { "alias": "isRtlLayout"; "required": false; }; "listContentStyle": { "alias": "listContentStyle"; "required": false; }; "nodeConfiguration": { "alias": "nodeConfiguration"; "required": false; }; }, {}, never, never,
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListItemContentComponent, "ng-list-item-content", never, { "node": { "alias": "node"; "required": false; }; "isRtlLayout": { "alias": "isRtlLayout"; "required": false; }; "listContentStyle": { "alias": "listContentStyle"; "required": false; }; "nodeConfiguration": { "alias": "nodeConfiguration"; "required": false; }; }, {}, never, never, true, never>;
|
|
20
20
|
}
|
|
@@ -37,5 +37,5 @@ export declare class ListItemComponent implements OnChanges, OnInit {
|
|
|
37
37
|
expand(node: MultilevelNode): void;
|
|
38
38
|
selectedListItem(node: MultilevelNode): void;
|
|
39
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<ListItemComponent, never>;
|
|
40
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "ng-list-item", never, { "node": { "alias": "node"; "required": false; }; "level": { "alias": "level"; "required": false; }; "submenuLevel": { "alias": "submenuLevel"; "required": false; }; "selectedNode": { "alias": "selectedNode"; "required": false; }; "nodeConfiguration": { "alias": "nodeConfiguration"; "required": false; }; "nodeExpandCollapseStatus": { "alias": "nodeExpandCollapseStatus"; "required": false; }; "listTemplate": { "alias": "listTemplate"; "required": false; }; }, { "selectedItem": "selectedItem"; }, never, never,
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "ng-list-item", never, { "node": { "alias": "node"; "required": false; }; "level": { "alias": "level"; "required": false; }; "submenuLevel": { "alias": "submenuLevel"; "required": false; }; "selectedNode": { "alias": "selectedNode"; "required": false; }; "nodeConfiguration": { "alias": "nodeConfiguration"; "required": false; }; "nodeExpandCollapseStatus": { "alias": "nodeExpandCollapseStatus"; "required": false; }; "listTemplate": { "alias": "listTemplate"; "required": false; }; }, { "selectedItem": "selectedItem"; }, never, never, true, never>;
|
|
41
41
|
}
|
|
@@ -34,5 +34,5 @@ export declare class NgMaterialMultilevelMenuComponent implements OnInit, OnChan
|
|
|
34
34
|
selectedListItem(event: MultilevelNode): void;
|
|
35
35
|
ngOnDestroy(): void;
|
|
36
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgMaterialMultilevelMenuComponent, never>;
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgMaterialMultilevelMenuComponent, "ng-material-multilevel-menu", never, { "items": { "alias": "items"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; }, { "selectedItem": "selectedItem"; "selectedLabel": "selectedLabel"; "menuIsReady": "menuIsReady"; }, ["listTemplate"], never,
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgMaterialMultilevelMenuComponent, "ng-material-multilevel-menu", never, { "items": { "alias": "items"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; }, { "selectedItem": "selectedItem"; "selectedLabel": "selectedLabel"; "menuIsReady": "menuIsReady"; }, ["listTemplate"], never, true, never>;
|
|
38
38
|
}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "
|
|
3
|
-
import * as i2 from "./
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "@angular/common";
|
|
6
|
-
import * as i5 from "./materials.module";
|
|
7
|
-
import * as i6 from "@angular/router";
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "./materials.module";
|
|
4
|
+
import * as i3 from "@angular/router";
|
|
8
5
|
export declare class NgMaterialMultilevelMenuModule {
|
|
9
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgMaterialMultilevelMenuModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NgMaterialMultilevelMenuModule,
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgMaterialMultilevelMenuModule, never, [typeof i1.CommonModule, typeof i2.MaterialsModule, typeof i3.RouterModule], never>;
|
|
11
8
|
static ɵinj: i0.ɵɵInjectorDeclaration<NgMaterialMultilevelMenuModule>;
|
|
12
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-mat-multilevel-menu",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/packe100/ng-material-multilevel-menu.git"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"angular-multilevel-list",
|
|
14
14
|
"ng-material-multilevel-menu"
|
|
15
15
|
],
|
|
16
|
-
"author": "
|
|
16
|
+
"author": "Max <packe100@gmail.com>",
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"bugs": {
|
|
19
19
|
"url": "https://github.com/packe100/ng-material-multilevel-menu/issues"
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"tslib": "^2.6.0"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@angular/common": "^
|
|
26
|
-
"@angular/core": "^
|
|
27
|
-
"@angular/cdk": "^
|
|
28
|
-
"@angular/material": "^
|
|
25
|
+
"@angular/common": "^19.0.0",
|
|
26
|
+
"@angular/core": "^19.0.0",
|
|
27
|
+
"@angular/cdk": "^19.0.0",
|
|
28
|
+
"@angular/material": "^19.0.0"
|
|
29
29
|
},
|
|
30
30
|
"module": "fesm2022/ng-mat-multilevel-menu.mjs",
|
|
31
31
|
"typings": "index.d.ts",
|
|
@@ -35,8 +35,6 @@
|
|
|
35
35
|
},
|
|
36
36
|
".": {
|
|
37
37
|
"types": "./index.d.ts",
|
|
38
|
-
"esm2022": "./esm2022/ng-mat-multilevel-menu.mjs",
|
|
39
|
-
"esm": "./esm2022/ng-mat-multilevel-menu.mjs",
|
|
40
38
|
"default": "./fesm2022/ng-mat-multilevel-menu.mjs"
|
|
41
39
|
}
|
|
42
40
|
},
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { animate, group, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
export const SlideInOut = trigger('SlideInOut', [
|
|
3
|
-
state('in', style({ height: '*', opacity: 0 })),
|
|
4
|
-
transition(':leave', [
|
|
5
|
-
style({ height: '*', opacity: 0.2 }),
|
|
6
|
-
group([
|
|
7
|
-
animate(200, style({ height: 0 })),
|
|
8
|
-
animate('200ms ease-out', style({ opacity: 0 }))
|
|
9
|
-
])
|
|
10
|
-
]),
|
|
11
|
-
transition(':enter', [
|
|
12
|
-
style({ height: '0', opacity: 0 }),
|
|
13
|
-
group([
|
|
14
|
-
animate(200, style({ height: '*' })),
|
|
15
|
-
animate('400ms ease-out', style({ opacity: 1 }))
|
|
16
|
-
])
|
|
17
|
-
])
|
|
18
|
-
]);
|
|
19
|
-
export const ExpandedLTR = trigger('ExpandedLTR', [
|
|
20
|
-
state('no', style({ transform: 'rotate(-90deg)' })),
|
|
21
|
-
state('yes', style({ transform: 'rotate(0deg)', })),
|
|
22
|
-
transition('no => yes', animate(200)),
|
|
23
|
-
transition('yes => no', animate(200))
|
|
24
|
-
]);
|
|
25
|
-
export const ExpandedRTL = trigger('ExpandedRTL', [
|
|
26
|
-
state('no', style({ transform: 'rotate(90deg)' })),
|
|
27
|
-
state('yes', style({ transform: 'rotate(0deg)', })),
|
|
28
|
-
transition('no => yes', animate(200)),
|
|
29
|
-
transition('yes => no', animate(200))
|
|
30
|
-
]);
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWF0ZXJpYWwtbXVsdGlsZXZlbC1tZW51L3NyYy9saWIvYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFO0lBQzVDLEtBQUssQ0FDRCxJQUFJLEVBQ0osS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ2pCLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLEtBQUssQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9DLENBQUM7S0FDTCxDQUFDO0lBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNqQixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxLQUFLLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvQyxDQUFDO0tBQ0wsQ0FBQztDQUNMLENBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFO0lBQzlDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNuRCxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBRW5ELFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQ3hDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFO0lBQzlDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDbEQsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUVuRCxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUN4QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBncm91cCwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcblxyXG5leHBvcnQgY29uc3QgU2xpZGVJbk91dCA9IHRyaWdnZXIoJ1NsaWRlSW5PdXQnLCBbXHJcbiAgICBzdGF0ZShcclxuICAgICAgICAnaW4nLFxyXG4gICAgICAgIHN0eWxlKHsgaGVpZ2h0OiAnKicsIG9wYWNpdHk6IDAgfSkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICAgICAgc3R5bGUoeyBoZWlnaHQ6ICcqJywgb3BhY2l0eTogMC4yIH0pLFxyXG4gICAgICAgICAgICBncm91cChbXHJcbiAgICAgICAgICAgIGFuaW1hdGUoMjAwLCBzdHlsZSh7IGhlaWdodDogMCB9KSksXHJcbiAgICAgICAgICAgIGFuaW1hdGUoJzIwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKVxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgc3R5bGUoeyBoZWlnaHQ6ICcwJywgb3BhY2l0eTogMCB9KSxcclxuICAgICAgICAgICAgZ3JvdXAoW1xyXG4gICAgICAgICAgICBhbmltYXRlKDIwMCwgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXHJcbiAgICAgICAgICAgIGFuaW1hdGUoJzQwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKVxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIF0pXHJcbiAgICBdXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3QgRXhwYW5kZWRMVFIgPSB0cmlnZ2VyKCdFeHBhbmRlZExUUicsIFtcclxuICAgIHN0YXRlKCdubycsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKC05MGRlZyknIH0pKSxcclxuICAgIHN0YXRlKCd5ZXMnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsIH0pKSxcclxuXHJcbiAgICB0cmFuc2l0aW9uKCdubyA9PiB5ZXMnLCBhbmltYXRlKDIwMCkpLFxyXG4gICAgdHJhbnNpdGlvbigneWVzID0+IG5vJywgYW5pbWF0ZSgyMDApKVxyXG5dKTtcclxuXHJcbmV4cG9ydCBjb25zdCBFeHBhbmRlZFJUTCA9IHRyaWdnZXIoJ0V4cGFuZGVkUlRMJywgW1xyXG4gICAgc3RhdGUoJ25vJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoOTBkZWcpJyB9KSksXHJcbiAgICBzdGF0ZSgneWVzJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoMGRlZyknLCB9KSksXHJcblxyXG4gICAgdHJhbnNpdGlvbignbm8gPT4geWVzJywgYW5pbWF0ZSgyMDApKSxcclxuICAgIHRyYW5zaXRpb24oJ3llcyA9PiBubycsIGFuaW1hdGUoMjAwKSlcclxuXSk7XHJcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export var ExpandCollapseStatusEnum;
|
|
2
|
-
(function (ExpandCollapseStatusEnum) {
|
|
3
|
-
ExpandCollapseStatusEnum["expand"] = "expand";
|
|
4
|
-
ExpandCollapseStatusEnum["collapse"] = "collapse";
|
|
5
|
-
ExpandCollapseStatusEnum["neutral"] = "neutral";
|
|
6
|
-
})(ExpandCollapseStatusEnum || (ExpandCollapseStatusEnum = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWF0ZXJpYWwtbXVsdGlsZXZlbC1tZW51L3NyYy9saWIvYXBwLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EQSxNQUFNLENBQU4sSUFBWSx3QkFJWDtBQUpELFdBQVksd0JBQXdCO0lBQ2hDLDZDQUFpQixDQUFBO0lBQ2pCLGlEQUFxQixDQUFBO0lBQ3JCLCtDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBSW5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpbGV2ZWxOb2RlIHtcclxuICBpZD86IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGZhSWNvbj86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGltYWdlSWNvbj86IHN0cmluZztcclxuICBzdmdJY29uPzogc3RyaW5nO1xyXG4gIGFjdGl2ZUZhSWNvbj86IHN0cmluZztcclxuICBhY3RpdmVJY29uPzogc3RyaW5nO1xyXG4gIGFjdGl2ZUltYWdlSWNvbj86IHN0cmluZztcclxuICBhY3RpdmVTdmdJY29uPzogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgbGluaz86IHN0cmluZztcclxuICBleHRlcm5hbFJlZGlyZWN0PzogYm9vbGVhbjtcclxuICBocmVmVGFyZ2V0VHlwZT86IHN0cmluZztcclxuICBkYXRhPzogYW55O1xyXG4gIGl0ZW1zPzogTXVsdGlsZXZlbE5vZGVbXTtcclxuICBvblNlbGVjdGVkPzogRnVuY3Rpb247XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcclxuICBuYXZpZ2F0aW9uRXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcztcclxuICBkb250RW1pdD86IGJvb2xlYW47XHJcbiAgaGFzQ2hpbGRyZW4/OiBib29sZWFuO1xyXG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb24ge1xyXG4gICAgY2xhc3NuYW1lPzogc3RyaW5nO1xyXG4gICAgcGFkZGluZ0F0U3RhcnQ/OiBib29sZWFuO1xyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gICAgbGlzdEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIGZvbnRDb2xvcj86IHN0cmluZztcclxuICAgIHNlbGVjdGVkTGlzdEZvbnRDb2xvcj86IHN0cmluZztcclxuICAgIGludGVyZmFjZVdpdGhSb3V0ZT86IGJvb2xlYW47XHJcbiAgICBjb2xsYXBzZU9uU2VsZWN0PzogYm9vbGVhbjtcclxuICAgIGhpZ2hsaWdodE9uU2VsZWN0PzogYm9vbGVhbjtcclxuICAgIHVzZURpdmlkZXJzPzogYm9vbGVhbjtcclxuICAgIHJ0bExheW91dD86IGJvb2xlYW47XHJcbiAgICBjdXN0b21UZW1wbGF0ZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFja2dyb3VuZFN0eWxlIHtcclxuICAgIGJhY2tncm91bmQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaXN0U3R5bGUge1xyXG4gICAgYmFja2dyb3VuZDogc3RyaW5nO1xyXG4gICAgY29sb3I6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRXhwYW5kQ29sbGFwc2VTdGF0dXNFbnVtIHtcclxuICAgIGV4cGFuZCA9ICdleHBhbmQnLFxyXG4gICAgY29sbGFwc2UgPSAnY29sbGFwc2UnLFxyXG4gICAgbmV1dHJhbCA9ICduZXV0cmFsJyxcclxufVxyXG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export class CommonUtils {
|
|
2
|
-
static { this.isNullOrUndefinedOrEmpty = function (object) {
|
|
3
|
-
return CommonUtils.isNullOrUndefined(object) || object === '';
|
|
4
|
-
}; }
|
|
5
|
-
static { this.isNullOrUndefined = function (object) {
|
|
6
|
-
return object === null || object === undefined;
|
|
7
|
-
}; }
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWF0ZXJpYWwtbXVsdGlsZXZlbC1tZW51L3NyYy9saWIvY29tbW9uLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO2FBRWYsNkJBQXdCLEdBQUcsVUFBVSxNQUFXO1FBQ3JELE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxFQUFFLENBQUM7SUFDaEUsQ0FBQyxDQUFDO2FBRUssc0JBQWlCLEdBQUcsVUFBVSxNQUFXO1FBQzlDLE9BQU8sTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDO0lBQ2pELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb21tb25VdGlscyB7XHJcblxyXG4gIHN0YXRpYyBpc051bGxPclVuZGVmaW5lZE9yRW1wdHkgPSBmdW5jdGlvbiAob2JqZWN0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDb21tb25VdGlscy5pc051bGxPclVuZGVmaW5lZChvYmplY3QpIHx8IG9iamVjdCA9PT0gJyc7XHJcbiAgfTtcclxuXHJcbiAgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkID0gZnVuY3Rpb24gKG9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gb2JqZWN0ID09PSBudWxsIHx8IG9iamVjdCA9PT0gdW5kZWZpbmVkO1xyXG4gIH07XHJcbn1cclxuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export const CONSTANT = {
|
|
2
|
-
PADDING_AT_START: true,
|
|
3
|
-
DEFAULT_CLASS_NAME: `amml-container`,
|
|
4
|
-
DEFAULT_LIST_CLASS_NAME: `amml-item`,
|
|
5
|
-
SELECTED_LIST_CLASS_NAME: `selected-amml-item`,
|
|
6
|
-
ACTIVE_ITEM_CLASS_NAME: `active-amml-item`,
|
|
7
|
-
DISABLED_ITEM_CLASS_NAME: `disabled-amml-item`,
|
|
8
|
-
SUBMENU_ITEM_CLASS_NAME: `amml-submenu`,
|
|
9
|
-
HAS_SUBMENU_ITEM_CLASS_NAME: `has-amml-submenu`,
|
|
10
|
-
DEFAULT_SELECTED_FONT_COLOR: `#1976d2`,
|
|
11
|
-
DEFAULT_LIST_BACKGROUND_COLOR: `transparent`,
|
|
12
|
-
DEFAULT_LIST_FONT_COLOR: `rgba(0,0,0,.87)`,
|
|
13
|
-
DEFAULT_HREF_TARGET_TYPE: '_self',
|
|
14
|
-
ERROR_MESSAGE: `Invalid data for material Multilevel List Component`,
|
|
15
|
-
POSSIBLE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
|
|
16
|
-
YES: 'yes',
|
|
17
|
-
NO: 'no'
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWF0ZXJpYWwtbXVsdGlsZXZlbC1tZW51L3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUNwQixnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLGtCQUFrQixFQUFFLGdCQUFnQjtJQUNwQyx1QkFBdUIsRUFBRSxXQUFXO0lBQ3BDLHdCQUF3QixFQUFFLG9CQUFvQjtJQUM5QyxzQkFBc0IsRUFBRSxrQkFBa0I7SUFDMUMsd0JBQXdCLEVBQUUsb0JBQW9CO0lBQzlDLHVCQUF1QixFQUFFLGNBQWM7SUFDdkMsMkJBQTJCLEVBQUUsa0JBQWtCO0lBQy9DLDJCQUEyQixFQUFFLFNBQVM7SUFDdEMsNkJBQTZCLEVBQUUsYUFBYTtJQUM1Qyx1QkFBdUIsRUFBRSxpQkFBaUI7SUFDMUMsd0JBQXdCLEVBQUUsT0FBTztJQUNqQyxhQUFhLEVBQUUscURBQXFEO0lBQ3BFLFFBQVEsRUFBRSxnRUFBZ0U7SUFDMUUsR0FBRyxFQUFFLEtBQUs7SUFDVixFQUFFLEVBQUUsSUFBSTtDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09OU1RBTlQgPSB7XHJcbiAgICBQQURESU5HX0FUX1NUQVJUOiB0cnVlLFxyXG4gICAgREVGQVVMVF9DTEFTU19OQU1FOiBgYW1tbC1jb250YWluZXJgLFxyXG4gICAgREVGQVVMVF9MSVNUX0NMQVNTX05BTUU6IGBhbW1sLWl0ZW1gLFxyXG4gICAgU0VMRUNURURfTElTVF9DTEFTU19OQU1FOiBgc2VsZWN0ZWQtYW1tbC1pdGVtYCxcclxuICAgIEFDVElWRV9JVEVNX0NMQVNTX05BTUU6IGBhY3RpdmUtYW1tbC1pdGVtYCxcclxuICAgIERJU0FCTEVEX0lURU1fQ0xBU1NfTkFNRTogYGRpc2FibGVkLWFtbWwtaXRlbWAsXHJcbiAgICBTVUJNRU5VX0lURU1fQ0xBU1NfTkFNRTogYGFtbWwtc3VibWVudWAsXHJcbiAgICBIQVNfU1VCTUVOVV9JVEVNX0NMQVNTX05BTUU6IGBoYXMtYW1tbC1zdWJtZW51YCxcclxuICAgIERFRkFVTFRfU0VMRUNURURfRk9OVF9DT0xPUjogYCMxOTc2ZDJgLFxyXG4gICAgREVGQVVMVF9MSVNUX0JBQ0tHUk9VTkRfQ09MT1I6IGB0cmFuc3BhcmVudGAsXHJcbiAgICBERUZBVUxUX0xJU1RfRk9OVF9DT0xPUjogYHJnYmEoMCwwLDAsLjg3KWAsXHJcbiAgICBERUZBVUxUX0hSRUZfVEFSR0VUX1RZUEU6ICdfc2VsZicsXHJcbiAgICBFUlJPUl9NRVNTQUdFOiBgSW52YWxpZCBkYXRhIGZvciBtYXRlcmlhbCBNdWx0aWxldmVsIExpc3QgQ29tcG9uZW50YCxcclxuICAgIFBPU1NJQkxFOiAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknLFxyXG4gICAgWUVTOiAneWVzJyxcclxuICAgIE5POiAnbm8nXHJcbn07XHJcbiJdfQ==
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { ExpandedLTR, ExpandedRTL } from '../../animation';
|
|
3
|
-
import { CommonUtils } from '../../common-utils';
|
|
4
|
-
import { CONSTANT } from '../../constants';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/material/icon";
|
|
8
|
-
import * as i3 from "@angular/cdk/bidi";
|
|
9
|
-
import * as i4 from "@angular/router";
|
|
10
|
-
export class ListItemContentComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.nodeConfiguration = null;
|
|
13
|
-
// NOOP
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
// NOOP
|
|
17
|
-
}
|
|
18
|
-
getListIcon(node) {
|
|
19
|
-
if (!CommonUtils.isNullOrUndefinedOrEmpty(node.icon)) {
|
|
20
|
-
return `icon`;
|
|
21
|
-
}
|
|
22
|
-
else if (!CommonUtils.isNullOrUndefinedOrEmpty(node.faIcon)) {
|
|
23
|
-
return `faIcon`;
|
|
24
|
-
}
|
|
25
|
-
else if (!CommonUtils.isNullOrUndefinedOrEmpty(node.imageIcon)) {
|
|
26
|
-
return `imageIcon`;
|
|
27
|
-
}
|
|
28
|
-
else if (!CommonUtils.isNullOrUndefinedOrEmpty(node.svgIcon)) {
|
|
29
|
-
return `svgIcon`;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
return ``;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
getHrefTargetType() {
|
|
36
|
-
return this.node.hrefTargetType ? this.node.hrefTargetType : CONSTANT.DEFAULT_HREF_TARGET_TYPE;
|
|
37
|
-
}
|
|
38
|
-
getSelectedSvgIcon() {
|
|
39
|
-
return this.node.isSelected && this.node.activeSvgIcon ? this.node.activeSvgIcon : this.node.svgIcon;
|
|
40
|
-
}
|
|
41
|
-
getSelectedIcon() {
|
|
42
|
-
return this.node.isSelected && this.node.activeIcon ? this.node.activeIcon : this.node.icon;
|
|
43
|
-
}
|
|
44
|
-
getSelectedFaIcon() {
|
|
45
|
-
return this.node.isSelected && this.node.activeFaIcon ? this.node.activeFaIcon : this.node.faIcon;
|
|
46
|
-
}
|
|
47
|
-
getSelectedImageIcon() {
|
|
48
|
-
return this.node.isSelected && this.node.activeImageIcon ? this.node.activeImageIcon : this.node.imageIcon;
|
|
49
|
-
}
|
|
50
|
-
nodeExpandStatus() {
|
|
51
|
-
return this.node.expanded ? CONSTANT.YES : CONSTANT.NO;
|
|
52
|
-
}
|
|
53
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ListItemContentComponent, selector: "ng-list-item-content", inputs: { node: "node", isRtlLayout: "isRtlLayout", listContentStyle: "listContentStyle", nodeConfiguration: "nodeConfiguration" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"node.externalRedirect ? redirectLinkTemplate : routerLinkTemplate\"></ng-container>\r\n\r\n<ng-template #redirectLinkTemplate>\r\n <a class=\"anml-link\" [href]=\"node.link\" [target]=\"getHrefTargetType()\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #routerLinkTemplate>\r\n <ng-container *ngIf=\"node.link && nodeConfiguration.interfaceWithRoute; else defaultContentContainer\">\r\n <a class=\"anml-link\" [routerLink]=\"node.link\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultContentContainer>\r\n <a class=\"anml-link\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #linkLabelLtrOutlet>\r\n <div class=\"anml-data\" [dir]=\"'ltr'\">\r\n <ng-container *ngTemplateOutlet=\"iconContainer\"></ng-container>\r\n <span class=\"label\">{{node.label}}</span>\r\n </div>\r\n <div class=\"amml-icon-arrow-container\" *ngIf='node.hasChildren'>\r\n <mat-icon [@ExpandedLTR]=\"nodeExpandStatus()\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #linkLabelRtlOutlet>\r\n <div class=\"anml-data\" [dir]=\"'rtl'\">\r\n <ng-container *ngTemplateOutlet=\"iconContainer\"></ng-container>\r\n <span class=\"label\">{{node.label}}</span>\r\n </div>\r\n <div class=\"amml-icon-arrow-container\" *ngIf='node.hasChildren'>\r\n <mat-icon [@ExpandedRTL]=\"nodeExpandStatus()\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #iconContainer>\r\n <div class=\"icon-container\" [ngSwitch]=\"getListIcon(node)\">\r\n <span *ngSwitchCase=\"'faIcon'\" class=\"amml-icon amml-icon-fa\">\r\n <i [ngClass]=\"getSelectedFaIcon()\"></i>\r\n </span>\r\n <mat-icon *ngSwitchCase=\"'icon'\" class=\"amml-icon\">\r\n {{getSelectedIcon()}}\r\n </mat-icon>\r\n <mat-icon *ngSwitchCase=\"'svgIcon'\" class=\"amml-icon amml-svg-icon\"\r\n svgIcon=\"{{getSelectedSvgIcon()}}\">\r\n </mat-icon>\r\n <img *ngSwitchCase=\"'imageIcon'\" class=\"amml-icon amml-img-icon\"\r\n src=\"{{getSelectedImageIcon()}}\" alt=\"{{node.label}}\"/>\r\n </div>\r\n</ng-template>\r\n\r\n", styles: [".amml-item{position:relative;cursor:pointer}.anml-link{width:100%;display:flex;justify-content:flex-start;text-transform:capitalize;text-decoration:none}.anml-data{width:100%;height:48px;display:flex;justify-content:flex-start}.icon-container{display:flex;flex-direction:column;justify-content:center}.amml-icon-fa{font-size:20px}.label{line-height:48px;font-weight:400}.amml-svg-icon{width:22px;height:22px;margin-top:-12px}.amml-img-icon{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.amml-icon-arrow-container{direction:ltr;display:flex;align-items:center}div[dir=ltr] .amml-icon{margin-right:16px}div[dir=rtl] .amml-icon{margin-left:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], animations: [ExpandedLTR, ExpandedRTL] }); }
|
|
55
|
-
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListItemContentComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{ selector: 'ng-list-item-content', animations: [ExpandedLTR, ExpandedRTL], template: "<ng-container *ngTemplateOutlet=\"node.externalRedirect ? redirectLinkTemplate : routerLinkTemplate\"></ng-container>\r\n\r\n<ng-template #redirectLinkTemplate>\r\n <a class=\"anml-link\" [href]=\"node.link\" [target]=\"getHrefTargetType()\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #routerLinkTemplate>\r\n <ng-container *ngIf=\"node.link && nodeConfiguration.interfaceWithRoute; else defaultContentContainer\">\r\n <a class=\"anml-link\" [routerLink]=\"node.link\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultContentContainer>\r\n <a class=\"anml-link\" [ngStyle]=\"listContentStyle\">\r\n <ng-container *ngTemplateOutlet=\"isRtlLayout ? linkLabelRtlOutlet : linkLabelLtrOutlet\"></ng-container>\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #linkLabelLtrOutlet>\r\n <div class=\"anml-data\" [dir]=\"'ltr'\">\r\n <ng-container *ngTemplateOutlet=\"iconContainer\"></ng-container>\r\n <span class=\"label\">{{node.label}}</span>\r\n </div>\r\n <div class=\"amml-icon-arrow-container\" *ngIf='node.hasChildren'>\r\n <mat-icon [@ExpandedLTR]=\"nodeExpandStatus()\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #linkLabelRtlOutlet>\r\n <div class=\"anml-data\" [dir]=\"'rtl'\">\r\n <ng-container *ngTemplateOutlet=\"iconContainer\"></ng-container>\r\n <span class=\"label\">{{node.label}}</span>\r\n </div>\r\n <div class=\"amml-icon-arrow-container\" *ngIf='node.hasChildren'>\r\n <mat-icon [@ExpandedRTL]=\"nodeExpandStatus()\">\r\n keyboard_arrow_down\r\n </mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #iconContainer>\r\n <div class=\"icon-container\" [ngSwitch]=\"getListIcon(node)\">\r\n <span *ngSwitchCase=\"'faIcon'\" class=\"amml-icon amml-icon-fa\">\r\n <i [ngClass]=\"getSelectedFaIcon()\"></i>\r\n </span>\r\n <mat-icon *ngSwitchCase=\"'icon'\" class=\"amml-icon\">\r\n {{getSelectedIcon()}}\r\n </mat-icon>\r\n <mat-icon *ngSwitchCase=\"'svgIcon'\" class=\"amml-icon amml-svg-icon\"\r\n svgIcon=\"{{getSelectedSvgIcon()}}\">\r\n </mat-icon>\r\n <img *ngSwitchCase=\"'imageIcon'\" class=\"amml-icon amml-img-icon\"\r\n src=\"{{getSelectedImageIcon()}}\" alt=\"{{node.label}}\"/>\r\n </div>\r\n</ng-template>\r\n\r\n", styles: [".amml-item{position:relative;cursor:pointer}.anml-link{width:100%;display:flex;justify-content:flex-start;text-transform:capitalize;text-decoration:none}.anml-data{width:100%;height:48px;display:flex;justify-content:flex-start}.icon-container{display:flex;flex-direction:column;justify-content:center}.amml-icon-fa{font-size:20px}.label{line-height:48px;font-weight:400}.amml-svg-icon{width:22px;height:22px;margin-top:-12px}.amml-img-icon{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.amml-icon-arrow-container{direction:ltr;display:flex;align-items:center}div[dir=ltr] .amml-icon{margin-right:16px}div[dir=rtl] .amml-icon{margin-left:16px}\n"] }]
|
|
59
|
-
}], ctorParameters: () => [], propDecorators: { node: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], isRtlLayout: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], listContentStyle: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], nodeConfiguration: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWF0ZXJpYWwtbXVsdGlsZXZlbC1tZW51L3NyYy9saWIvbGlzdC1pdGVtL2xpc3QtaXRlbS1jb250ZW50L2xpc3QtaXRlbS1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1hdGVyaWFsLW11bHRpbGV2ZWwtbWVudS9zcmMvbGliL2xpc3QtaXRlbS9saXN0LWl0ZW0tY29udGVudC9saXN0LWl0ZW0tY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVF6QyxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DO1FBRlMsc0JBQWlCLEdBQWtCLElBQUksQ0FBQztRQUcvQyxPQUFPO0lBQ1QsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPO0lBQ1QsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFvQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7YUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUM7SUFDakcsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdkcsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDOUYsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwRyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUN6RCxDQUFDOytHQWxEVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixnTUNackMseWtGQThEQSw4ekREcERjLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQzs7NEZBRTNCLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FHcEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO3dEQUc3QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb24sIE11bHRpbGV2ZWxOb2RlLCBMaXN0U3R5bGV9IGZyb20gJy4uLy4uL2FwcC5tb2RlbCc7XHJcbmltcG9ydCB7RXhwYW5kZWRMVFIsIEV4cGFuZGVkUlRMfSBmcm9tICcuLi8uLi9hbmltYXRpb24nO1xyXG5pbXBvcnQge0NvbW1vblV0aWxzfSBmcm9tICcuLi8uLi9jb21tb24tdXRpbHMnO1xyXG5pbXBvcnQge0NPTlNUQU5UfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZy1saXN0LWl0ZW0tY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9saXN0LWl0ZW0tY29udGVudC5jb21wb25lbnQuY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW0V4cGFuZGVkTFRSLCBFeHBhbmRlZFJUTF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RJdGVtQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbm9kZTogTXVsdGlsZXZlbE5vZGU7XHJcbiAgQElucHV0KCkgaXNSdGxMYXlvdXQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbGlzdENvbnRlbnRTdHlsZTogTGlzdFN0eWxlO1xyXG4gIEBJbnB1dCgpIG5vZGVDb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyBOT09QXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIE5PT1BcclxuICB9XHJcblxyXG4gIGdldExpc3RJY29uKG5vZGU6IE11bHRpbGV2ZWxOb2RlKTogc3RyaW5nIHtcclxuICAgIGlmICghQ29tbW9uVXRpbHMuaXNOdWxsT3JVbmRlZmluZWRPckVtcHR5KG5vZGUuaWNvbikpIHtcclxuICAgICAgcmV0dXJuIGBpY29uYDtcclxuICAgIH0gZWxzZSBpZiAoIUNvbW1vblV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkT3JFbXB0eShub2RlLmZhSWNvbikpIHtcclxuICAgICAgcmV0dXJuIGBmYUljb25gO1xyXG4gICAgfSBlbHNlIGlmICghQ29tbW9uVXRpbHMuaXNOdWxsT3JVbmRlZmluZWRPckVtcHR5KG5vZGUuaW1hZ2VJY29uKSkge1xyXG4gICAgICByZXR1cm4gYGltYWdlSWNvbmA7XHJcbiAgICB9IGVsc2UgaWYgKCFDb21tb25VdGlscy5pc051bGxPclVuZGVmaW5lZE9yRW1wdHkobm9kZS5zdmdJY29uKSkge1xyXG4gICAgICByZXR1cm4gYHN2Z0ljb25gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGBgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SHJlZlRhcmdldFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm5vZGUuaHJlZlRhcmdldFR5cGUgPyB0aGlzLm5vZGUuaHJlZlRhcmdldFR5cGUgOiBDT05TVEFOVC5ERUZBVUxUX0hSRUZfVEFSR0VUX1RZUEU7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZFN2Z0ljb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm5vZGUuaXNTZWxlY3RlZCAmJiB0aGlzLm5vZGUuYWN0aXZlU3ZnSWNvbiA/IHRoaXMubm9kZS5hY3RpdmVTdmdJY29uIDogdGhpcy5ub2RlLnN2Z0ljb247XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZEljb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm5vZGUuaXNTZWxlY3RlZCAmJiB0aGlzLm5vZGUuYWN0aXZlSWNvbiA/IHRoaXMubm9kZS5hY3RpdmVJY29uIDogdGhpcy5ub2RlLmljb247XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZEZhSWNvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubm9kZS5pc1NlbGVjdGVkICYmIHRoaXMubm9kZS5hY3RpdmVGYUljb24gPyB0aGlzLm5vZGUuYWN0aXZlRmFJY29uIDogdGhpcy5ub2RlLmZhSWNvbjtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkSW1hZ2VJY29uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5ub2RlLmlzU2VsZWN0ZWQgJiYgdGhpcy5ub2RlLmFjdGl2ZUltYWdlSWNvbiA/IHRoaXMubm9kZS5hY3RpdmVJbWFnZUljb24gOiB0aGlzLm5vZGUuaW1hZ2VJY29uO1xyXG4gIH1cclxuXHJcbiAgbm9kZUV4cGFuZFN0YXR1cygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubm9kZS5leHBhbmRlZCA/IENPTlNUQU5ULllFUyA6IENPTlNUQU5ULk5PO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZS5leHRlcm5hbFJlZGlyZWN0ID8gcmVkaXJlY3RMaW5rVGVtcGxhdGUgOiByb3V0ZXJMaW5rVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmVkaXJlY3RMaW5rVGVtcGxhdGU+XHJcbiAgPGEgY2xhc3M9XCJhbm1sLWxpbmtcIiBbaHJlZl09XCJub2RlLmxpbmtcIiBbdGFyZ2V0XT1cImdldEhyZWZUYXJnZXRUeXBlKClcIiBbbmdTdHlsZV09XCJsaXN0Q29udGVudFN0eWxlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNSdGxMYXlvdXQgPyBsaW5rTGFiZWxSdGxPdXRsZXQgOiBsaW5rTGFiZWxMdHJPdXRsZXRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2E+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3JvdXRlckxpbmtUZW1wbGF0ZT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZS5saW5rICYmIG5vZGVDb25maWd1cmF0aW9uLmludGVyZmFjZVdpdGhSb3V0ZTsgZWxzZSBkZWZhdWx0Q29udGVudENvbnRhaW5lclwiPlxyXG4gICAgPGEgY2xhc3M9XCJhbm1sLWxpbmtcIiBbcm91dGVyTGlua109XCJub2RlLmxpbmtcIiBbbmdTdHlsZV09XCJsaXN0Q29udGVudFN0eWxlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc1J0bExheW91dCA/IGxpbmtMYWJlbFJ0bE91dGxldCA6IGxpbmtMYWJlbEx0ck91dGxldFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudENvbnRhaW5lcj5cclxuICA8YSBjbGFzcz1cImFubWwtbGlua1wiIFtuZ1N0eWxlXT1cImxpc3RDb250ZW50U3R5bGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc1J0bExheW91dCA/IGxpbmtMYWJlbFJ0bE91dGxldCA6IGxpbmtMYWJlbEx0ck91dGxldFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvYT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbGlua0xhYmVsTHRyT3V0bGV0PlxyXG4gIDxkaXYgY2xhc3M9XCJhbm1sLWRhdGFcIiBbZGlyXT1cIidsdHInXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbkNvbnRhaW5lclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7bm9kZS5sYWJlbH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhbW1sLWljb24tYXJyb3ctY29udGFpbmVyXCIgKm5nSWY9J25vZGUuaGFzQ2hpbGRyZW4nPlxyXG4gICAgPG1hdC1pY29uIFtARXhwYW5kZWRMVFJdPVwibm9kZUV4cGFuZFN0YXR1cygpXCI+XHJcbiAgICAgIGtleWJvYXJkX2Fycm93X2Rvd25cclxuICAgIDwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xpbmtMYWJlbFJ0bE91dGxldD5cclxuICA8ZGl2IGNsYXNzPVwiYW5tbC1kYXRhXCIgW2Rpcl09XCIncnRsJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25Db250YWluZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57e25vZGUubGFiZWx9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYW1tbC1pY29uLWFycm93LWNvbnRhaW5lclwiICpuZ0lmPSdub2RlLmhhc0NoaWxkcmVuJz5cclxuICAgIDxtYXQtaWNvbiBbQEV4cGFuZGVkUlRMXT1cIm5vZGVFeHBhbmRTdGF0dXMoKVwiPlxyXG4gICAgICBrZXlib2FyZF9hcnJvd19kb3duXHJcbiAgICA8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpY29uQ29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiIFtuZ1N3aXRjaF09XCJnZXRMaXN0SWNvbihub2RlKVwiPlxyXG4gICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2ZhSWNvbidcIiBjbGFzcz1cImFtbWwtaWNvbiBhbW1sLWljb24tZmFcIj5cclxuICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRTZWxlY3RlZEZhSWNvbigpXCI+PC9pPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8bWF0LWljb24gKm5nU3dpdGNoQ2FzZT1cIidpY29uJ1wiIGNsYXNzPVwiYW1tbC1pY29uXCI+XHJcbiAgICAgIHt7Z2V0U2VsZWN0ZWRJY29uKCl9fVxyXG4gICAgPC9tYXQtaWNvbj5cclxuICAgIDxtYXQtaWNvbiAqbmdTd2l0Y2hDYXNlPVwiJ3N2Z0ljb24nXCIgY2xhc3M9XCJhbW1sLWljb24gYW1tbC1zdmctaWNvblwiXHJcbiAgICAgICAgICAgICAgc3ZnSWNvbj1cInt7Z2V0U2VsZWN0ZWRTdmdJY29uKCl9fVwiPlxyXG4gICAgPC9tYXQtaWNvbj5cclxuICAgIDxpbWcgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZUljb24nXCIgY2xhc3M9XCJhbW1sLWljb24gYW1tbC1pbWctaWNvblwiXHJcbiAgICAgICAgIHNyYz1cInt7Z2V0U2VsZWN0ZWRJbWFnZUljb24oKX19XCIgYWx0PVwie3tub2RlLmxhYmVsfX1cIi8+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=
|