infinite-menu
Version:
Infinite Menu helps you to create a menu with infinite number of sub menus
1 lines • 31.4 kB
Source Map (JSON)
{"version":3,"file":"infinite-menu.mjs","sources":["../../../projects/infinite-menu/src/lib/infinite-menu.service.ts","../../../projects/infinite-menu/src/lib/OtherComponents/MenuItem/menu-item.component.ts","../../../projects/infinite-menu/src/lib/OtherComponents/MenuItem/menu-item.component.html","../../../projects/infinite-menu/src/lib/infinite-menu.component.ts","../../../projects/infinite-menu/src/lib/infinite-menu.component.html","../../../projects/infinite-menu/src/lib/infinite-menu.module.ts","../../../projects/infinite-menu/src/public-api.ts","../../../projects/infinite-menu/src/infinite-menu.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfiniteMenuService {\r\n\r\n constructor(\r\n private sanitizer: DomSanitizer\r\n ) { }\r\n\r\n static LoadedIcons: any = {};\r\n\r\n public GetFluentUiIconsSvgName(iconName: string) {\r\n let finalName: string = \"https://rohanpatel4846.github.io/FluentIconsV1/Icons/\" + iconName + \".svg\";\r\n let uniq = 'icon-' + iconName;\r\n if (!InfiniteMenuService.LoadedIcons[uniq]) {\r\n InfiniteMenuService.LoadedIcons[uniq] = \" \";\r\n\r\n var xhr = new XMLHttpRequest();\r\n var url = finalName;\r\n xhr.open(\"GET\", url, true);\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState == 4 && xhr.status == 200) {\r\n InfiniteMenuService.LoadedIcons[uniq] = this.sanitizer.bypassSecurityTrustHtml(xhr.responseText);\r\n }\r\n }\r\n xhr.send();\r\n }\r\n return InfiniteMenuService.LoadedIcons[uniq];\r\n }\r\n}\r\n\r\nexport interface MenuData {\r\n Title: string,\r\n Children: Array<MenuData>,\r\n MenuLoc?:number,\r\n IsOpen?:boolean,\r\n CustomData?:any,\r\n Id?:string,\r\n Icon?: string,\r\n IconType?: IconType,\r\n OpenSubOnAnyClick?: boolean\r\n}\r\n\r\nexport interface RGBModel{\r\n r:number,\r\n g:number,\r\n b:number\r\n}\r\n\r\nexport enum IconType {\r\n SVG,\r\n FluentIcons,\r\n Image\r\n}\r\n\r\nexport interface MenuStyles{\r\n Location:number,\r\n BackgroundColor?:string,\r\n TextColor?:string,\r\n PaddingLeft?:string,\r\n OnHoverBackgroundColor?:string,\r\n OnHoverTextColor?:string,\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport {\r\n InfiniteMenuService,\r\n IconType,\r\n MenuStyles,\r\n MenuData,\r\n RGBModel,\r\n} from '../../infinite-menu.service';\r\n\r\n@Component({\n selector: 'menu-item',\n templateUrl: './menu-item.component.html',\n standalone: false\n})\r\nexport class MenuItemComponent {\r\n @Input() MenuModel: Array<MenuData> = [];\r\n @Input() RGB: RGBModel = { r: 0, g: 21, b: 40 };\r\n @Input() ShadeMultiplier: number = 1;\r\n @Input() ShowOpenForAll: boolean = false;\r\n @Input() IconHeight: string = '25px';\r\n @Input() IconWidth: string = '25px';\r\n @Input() MenuStyles: Array<MenuStyles> = [];\r\n @Input() ShowOnlyIcon: boolean = false;\r\n @Input() SingleMenuHeight: number = 45;\r\n @Input() ContextMenuTemplate: TemplateRef<any> | null = null;\r\n\r\n @Output() MenuSelected = new EventEmitter<MenuData>();\r\n @Output() MenuOpenCloseChanged = new EventEmitter<MenuData>();\r\n @Output() MenuItemOnContextMenu = new EventEmitter<any>();\r\n\r\n constructor(\r\n private sanitizer: DomSanitizer,\r\n public _InfiniteMenu: InfiniteMenuService\r\n ) {}\r\n\r\n public get IconType(): typeof IconType {\r\n return IconType;\r\n }\r\n\r\n GetDomSanitizeredImage(image: string) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(image);\r\n }\r\n\r\n ToggleOption(Id: string | undefined) {\r\n if (Id) {\r\n var menu = this.MenuModel.find((x) => x.Id == Id);\r\n if (menu) {\r\n menu.IsOpen = !menu.IsOpen;\r\n }\r\n\r\n this.MenuOpenCloseChanged.emit(menu);\r\n }\r\n }\r\n\r\n GetBackgoundColor(MenuData: MenuData) {\r\n let Loc = MenuData.MenuLoc;\r\n let localRGB = structuredClone(this.RGB);\r\n if (!Loc) Loc = 1;\r\n localRGB.r = localRGB.r * (Loc * this.ShadeMultiplier);\r\n localRGB.g = localRGB.g * (Loc * this.ShadeMultiplier);\r\n localRGB.b = localRGB.b * (Loc * this.ShadeMultiplier);\r\n\r\n let currentMenuStyle = structuredClone(\r\n this.MenuStyles.find((x) => x.Location == Loc)\r\n );\r\n\r\n if (currentMenuStyle && currentMenuStyle.BackgroundColor) {\r\n return currentMenuStyle.BackgroundColor;\r\n }\r\n\r\n return `rgb(${localRGB.r}, ${localRGB.g}, ${localRGB.b})`;\r\n }\r\n\r\n GetTextColor(MenuData: MenuData) {\r\n let currentMenuStyle = structuredClone(\r\n this.MenuStyles.find((x) => x.Location == MenuData.MenuLoc)\r\n );\r\n\r\n if (currentMenuStyle && currentMenuStyle.TextColor) {\r\n return currentMenuStyle.TextColor;\r\n }\r\n\r\n return `inherit`;\r\n }\r\n\r\n GetPadding(Loc: number | undefined) {\r\n let currentMenuStyle = structuredClone(\r\n this.MenuStyles.find((x) => x.Location == Loc)\r\n );\r\n if (currentMenuStyle && currentMenuStyle.PaddingLeft) {\r\n return currentMenuStyle.PaddingLeft;\r\n }\r\n\r\n return `0px`;\r\n }\r\n\r\n GetOnHoverBackgroundColor(Loc: number | undefined) {\r\n let currentMenuStyle = structuredClone(\r\n this.MenuStyles.find((x) => x.Location == Loc)\r\n );\r\n if (currentMenuStyle && currentMenuStyle.OnHoverBackgroundColor) {\r\n return currentMenuStyle.OnHoverBackgroundColor;\r\n }\r\n\r\n return `inherit`;\r\n }\r\n\r\n GetOnHoverTextColor(Loc: number | undefined) {\r\n let currentMenuStyle = structuredClone(\r\n this.MenuStyles.find((x) => x.Location == Loc)\r\n );\r\n if (currentMenuStyle && currentMenuStyle.OnHoverTextColor) {\r\n return currentMenuStyle.OnHoverTextColor;\r\n }\r\n\r\n return `inherit`;\r\n }\r\n\r\n GetMenuTitleWidth(MenuData: MenuData) {\r\n let widthString = `calc(100% - (${this.IconWidth}px + 10px))`;\r\n return widthString;\r\n }\r\n\r\n GetMenuHeadWithWithOUtArrow(MenuData: MenuData) {\r\n let paddingLeft = this.GetPadding(MenuData.MenuLoc);\r\n let widthString = `calc(100% - (20px + ${paddingLeft} + 40px))`;\r\n return widthString;\r\n }\r\n\r\n GetOptionBodyHeight(MenuData: MenuData) {\r\n if (MenuData.IsOpen) {\r\n var toReturn = this.GetChildBodyHeight(MenuData) + 'px';\r\n return toReturn;\r\n }\r\n return '0px';\r\n }\r\n\r\n GetChildBodyHeight(MenuData: MenuData) {\r\n if (MenuData.IsOpen) {\r\n let total = 45;\r\n MenuData.Children.forEach((Menu) => {\r\n total += this.GetChildBodyHeight(Menu);\r\n });\r\n\r\n return total;\r\n }\r\n return 45;\r\n }\r\n\r\n _MenuSelected(MenuData: MenuData) {\r\n if (MenuData.OpenSubOnAnyClick) {\r\n this.ToggleOption(MenuData.Id);\r\n } else {\r\n this.MenuSelected.emit(MenuData);\r\n }\r\n }\r\n\r\n _MenuOpenCloseChanged(MenuData: MenuData) {\r\n this.MenuOpenCloseChanged.emit(MenuData);\r\n }\r\n\r\n ByPassSecurityTrustHtml(Data: any) {\r\n return this.sanitizer.bypassSecurityTrustHtml(Data);\r\n }\r\n\r\n HoverOnMenu_MouseEnter(MenuData: MenuData, Element: HTMLElement) {\r\n var rect = Element.getBoundingClientRect();\r\n var tooltip = document.createElement('div');\r\n tooltip.innerHTML = MenuData.Title;\r\n tooltip.style.position = 'fixed';\r\n tooltip.style.backgroundColor = '#00000096';\r\n tooltip.style.height = 'max-content';\r\n tooltip.style.width = 'max-content';\r\n tooltip.classList.add(MenuData.Id + 'ElementId');\r\n tooltip.classList.add('Tooltip_InfiniteMenu');\r\n tooltip.style.top = rect.top + 'px';\r\n tooltip.style.left = rect.left + Element.offsetWidth + 10 + 'px';\r\n tooltip.style.color = 'white';\r\n tooltip.style.padding = '10px';\r\n tooltip.style.borderRadius = '5px';\r\n document.getElementsByTagName('body')[0].appendChild(tooltip);\r\n\r\n Element.style.backgroundColor = this.GetOnHoverBackgroundColor(\r\n MenuData.MenuLoc\r\n );\r\n Element.style.color = this.GetOnHoverTextColor(MenuData.MenuLoc);\r\n }\r\n\r\n HoverOnMenu_MouseLeave(MenuData: MenuData, Element: HTMLElement) {\r\n let elementsAll = document.getElementsByClassName('Tooltip_InfiniteMenu');\r\n for (let index = 0; index < elementsAll.length; index++) {\r\n const element = elementsAll[index];\r\n if (element) element.remove();\r\n }\r\n\r\n let elements = document.getElementsByClassName(MenuData.Id + 'ElementId');\r\n for (let index = 0; index < elements.length; index++) {\r\n const element = elements[index];\r\n if (element) element.remove();\r\n }\r\n\r\n Element.style.backgroundColor = this.GetBackgoundColor(MenuData);\r\n Element.style.color = this.GetTextColor(MenuData);\r\n }\r\n\r\n _MenuItemOnContextMenu(EventData: any, MenuModel: MenuData) {\r\n var Data = {\r\n EventData: EventData,\r\n MenuModel: MenuModel,\r\n };\r\n this.MenuItemOnContextMenu.emit(Data);\r\n }\r\n\r\n _MenuItemOnContextMenu2(EventData: any) {\r\n this.MenuItemOnContextMenu.emit(EventData);\r\n }\r\n}\r\n","<ng-container *ngIf=\"MenuModel\">\r\n <div [ngClass]=\"{'open': Menu.IsOpen}\" class=\"OptionContainer\" *ngFor=\"let Menu of MenuModel\" #OptionContainer\r\n [ngStyle]=\"{'background-color': GetBackgoundColor(Menu)}\">\r\n <ng-template #ContextMenuTemplateLocal>\r\n <div cdkMenu>\r\n <ng-container *ngTemplateOutlet=\"ContextMenuTemplate; context: { Menu: Menu }\">\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n <div [cdkContextMenuTriggerFor]=\"ContextMenuTemplateLocal\" (contextmenu)=\"_MenuItemOnContextMenu($event, Menu)\"\r\n class=\"OptionHead\" #OptionHead [ngStyle]=\"{'color': GetTextColor(Menu) }\"\r\n (mouseenter)=\"HoverOnMenu_MouseEnter(Menu, OptionHead)\"\r\n (mouseleave)=\"HoverOnMenu_MouseLeave(Menu, OptionHead)\">\r\n <div class=\"TitleOuterContainer\" (click)=\"_MenuSelected(Menu)\"\r\n [ngStyle]=\"{'padding-left': 'calc(10px + ' + GetPadding(Menu.MenuLoc) +')', 'width': GetMenuHeadWithWithOUtArrow(Menu)}\">\r\n <div class=\"IconsContainer\" [ngClass]=\"{'ShowOnlyIcon': ShowOnlyIcon}\">\r\n <ng-container *ngIf=\"Menu.IconType == IconType.SVG && Menu.Icon\">\r\n <div [innerHTML]=\"ByPassSecurityTrustHtml(Menu.Icon)\"\r\n [ngStyle]=\"{ 'height': IconHeight, 'width': IconWidth }\"></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"Menu.IconType == IconType.FluentIcons && Menu.Icon\">\r\n <div [innerHTML]=\"_InfiniteMenu.GetFluentUiIconsSvgName(Menu.Icon)\"\r\n [ngStyle]=\"{ 'height': IconHeight, 'width': IconWidth }\"></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"Menu.IconType == IconType.Image && Menu.Icon\">\r\n <img [src]=\"GetDomSanitizeredImage(Menu.Icon)\" class=\"MenuIcon\"\r\n [ngStyle]=\"{ 'height': IconHeight, 'width': IconWidth }\">\r\n </ng-container>\r\n <ng-container *ngIf=\"!Menu.Icon && ShowOnlyIcon\">\r\n <b>{{Menu.Title[0].toUpperCase()}}</b>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!ShowOnlyIcon\" class=\"MenuTitleContainer\" [ngStyle]=\"{'width': GetMenuTitleWidth(Menu)}\">\r\n <span>{{Menu.Title}}</span>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"Menu.Children.length > 0 || ShowOpenForAll\">\r\n <div style=\"padding: 10px; display: flex; justify-content: center;align-items: center;\"\r\n (click)=\"ToggleOption(Menu.Id)\"><svg class=\"ArrowIcon\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\"\r\n y=\"0px\" width=\"20\" height=\"20\" viewBox=\"0 0 30 30\">\r\n <path\r\n d=\"M 24.990234 8.9863281 A 1.0001 1.0001 0 0 0 24.292969 9.2929688 L 15 18.585938 L 5.7070312 9.2929688 A 1.0001 1.0001 0 0 0 4.9902344 8.9902344 A 1.0001 1.0001 0 0 0 4.2929688 10.707031 L 14.292969 20.707031 A 1.0001 1.0001 0 0 0 15.707031 20.707031 L 25.707031 10.707031 A 1.0001 1.0001 0 0 0 24.990234 8.9863281 z\">\r\n </path>\r\n </svg></div>\r\n </ng-container>\r\n </div>\r\n <div class=\"OptionBody\" [ngStyle]=\"{'max-height': GetOptionBodyHeight(Menu)}\">\r\n <menu-item [MenuModel]=\"Menu.Children\" [RGB]=\"RGB\" [ShadeMultiplier]=\"ShadeMultiplier\"\r\n [ShowOpenForAll]=\"ShowOpenForAll\" [IconHeight]=\"IconHeight\" [IconWidth]=\"IconWidth\"\r\n [MenuStyles]=\"MenuStyles\" [ShowOnlyIcon]=\"ShowOnlyIcon\" [SingleMenuHeight]=\"SingleMenuHeight\"\r\n (MenuSelected)=\"_MenuSelected($event)\" (MenuOpenCloseChanged)=\"_MenuOpenCloseChanged($event)\"\r\n (MenuItemOnContextMenu)=\"_MenuItemOnContextMenu2($event)\"\r\n [ContextMenuTemplate]=\"ContextMenuTemplate\"></menu-item>\r\n </div>\r\n </div>\r\n</ng-container>","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { MenuStyles, MenuData, RGBModel } from './infinite-menu.service';\r\n\r\n@Component({\n selector: 'InfiniteMenu',\n templateUrl: './infinite-menu.component.html',\n styles: [],\n standalone: false\n})\r\nexport class InfiniteMenuComponent {\r\n @Input() MenuModel: Array<MenuData> = [];\r\n @Input() RGB: RGBModel = { r: 0, g: 21, b: 40 };\r\n @Input() ShadeMultiplier: number = 1;\r\n @Input() ShowOpenForAll: boolean = false;\r\n @Input() IconHeight: string = '25px';\r\n @Input() IconWidth: string = '25px';\r\n @Input() MenuStyles: Array<MenuStyles> = [];\r\n @Input() Loading: boolean = false;\r\n @Input() ShowOnlyIcon: boolean = false;\r\n @Input() SingleMenuHeight: number = 45;\r\n @Input() ContextMenuTemplate: TemplateRef<any> | null = null;\r\n\r\n @Output() MenuModelChange = new EventEmitter<Array<MenuData>>();\r\n @Output() MenuSelected = new EventEmitter<MenuData>();\r\n @Output() MenuOpenCloseChanged = new EventEmitter<MenuData>();\r\n @Output() MenuItemOnContextMenu = new EventEmitter<any>();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.SetUpMenuModel();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.SetUpMenuModel();\r\n }\r\n\r\n SetUpMenuModel() {\r\n this.MenuModel.forEach((element) => {\r\n this.UpdateIDandLocForMenu(element, 1);\r\n });\r\n }\r\n\r\n UpdateIDandLocForMenu(MenuData: MenuData, Loc: number) {\r\n if (!MenuData.Id) {\r\n MenuData.Id =\r\n 'id' + new Date().getTime() + Math.random().toString(16).slice(2);\r\n }\r\n\r\n MenuData.MenuLoc = Loc;\r\n\r\n MenuData.Children.forEach((element) => {\r\n this.UpdateIDandLocForMenu(element, Loc + 1);\r\n });\r\n }\r\n\r\n _MenuSelected(MenuData: MenuData) {\r\n this.MenuSelected.emit(MenuData);\r\n }\r\n\r\n _MenuOpenCloseChanged(MenuData: MenuData) {\r\n this.MenuOpenCloseChanged.emit(MenuData);\r\n }\r\n\r\n UnselectAll() {\r\n this.MenuModel.forEach((MenuData: MenuData) => {\r\n this._UnselectAll(MenuData);\r\n });\r\n }\r\n\r\n private _UnselectAll(MenuData: MenuData) {\r\n MenuData.Children.forEach((_MenuData: MenuData) => {\r\n this._UnselectAll(_MenuData);\r\n });\r\n }\r\n\r\n _MenuItemOnContextMenu(EventData: any) {\r\n this.MenuItemOnContextMenu.emit(EventData);\r\n }\r\n}\r\n","<div class=\"MenuContainer\">\r\n <div class=\"OuterLoaderContainer\" [ngClass]=\"{'show': Loading}\">\r\n <div class=\"LoaderContainer\">\r\n <div class=\"horizontalLinesLoader\">\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n </div>\r\n </div>\r\n </div>\r\n <menu-item [MenuModel]=\"MenuModel\" [RGB]=\"RGB\" [ShadeMultiplier]=\"ShadeMultiplier\" [ShowOpenForAll]=\"ShowOpenForAll\"\r\n [IconHeight]=\"IconHeight\" [IconWidth]=\"IconWidth\" [MenuStyles]=\"MenuStyles\" [ShowOnlyIcon]=\"ShowOnlyIcon\"\r\n [SingleMenuHeight]=\"SingleMenuHeight\" (MenuSelected)=\"_MenuSelected($event)\"\r\n (MenuOpenCloseChanged)=\"_MenuOpenCloseChanged($event)\" (MenuItemOnContextMenu)=\"_MenuItemOnContextMenu($event)\"\r\n [ContextMenuTemplate]=\"ContextMenuTemplate\"></menu-item>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { InfiniteMenuComponent } from './infinite-menu.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MenuItemComponent } from './OtherComponents/MenuItem/menu-item.component';\r\nimport { CdkMenuModule } from '@angular/cdk/menu';\r\n\r\n@NgModule({\r\n declarations: [InfiniteMenuComponent, MenuItemComponent],\r\n imports: [CommonModule, CdkMenuModule],\r\n exports: [InfiniteMenuComponent],\r\n})\r\nexport class InfiniteMenuModule {}\r\n","/*\r\n * Public API Surface of infinite-menu\r\n */\r\n\r\nexport * from './lib/infinite-menu.service';\r\nexport * from './lib/infinite-menu.component';\r\nexport * from './lib/infinite-menu.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.InfiniteMenuService","i1","i2.MenuItemComponent"],"mappings":"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"}