{ "version": 3, "sources": ["src/@omnial/_services/navigation/sitemap.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { SiteMapItem } from 'src/@omnial/_models/navigation/site-map.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { RepositoryStaticService } from '../repository-static.service';\r\nimport { RepositoryService } from '../repository.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Injectable()\r\nexport class SiteMapService {\r\n public siteMap: BehaviorSubject = new BehaviorSubject(null);\r\n private $siteMap: SiteMapItem[] = null;\r\n private subscriptions: Subscription[] = [];\r\n private useCache = environment.useCache;\r\n\r\n constructor(\r\n private repoService: RepositoryService,\r\n private staticService: RepositoryStaticService,\r\n private location: Location,\r\n private route: ActivatedRoute) {\r\n this.route.fragment.subscribe({\r\n next: (fragment: string) => {\r\n if (fragment && fragment === 'CacheBust') {\r\n this.useCache = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscriptions && this.subscriptions.length > 0) {\r\n this.subscriptions.forEach((sub) => { sub.unsubscribe(); });\r\n }\r\n }\r\n\r\n public load(init?: SiteMapItem[], bypassCache?: boolean): void {\r\n if (init && !bypassCache) {\r\n this.$siteMap = init;\r\n this.siteMap.next(this.$siteMap);\r\n return;\r\n }\r\n if (this.useCache && !bypassCache) {\r\n this.subscriptions.push(this.staticService.getById('Menu/Full', environment.rootCatId).subscribe({\r\n next: (staticRes) => {\r\n if (!staticRes) {\r\n this.subscriptions.push(this.repoService.getData(`Sitemap`).subscribe({\r\n next: (apiRes) => {\r\n this.$siteMap = apiRes as SiteMapItem[];\r\n this.siteMap.next(apiRes as SiteMapItem[]);\r\n }\r\n }));\r\n } else {\r\n this.$siteMap = staticRes as SiteMapItem[];\r\n this.siteMap.next(staticRes as SiteMapItem[]);\r\n }\r\n },\r\n error: () => {\r\n this.subscriptions.push(this.repoService.getData(`Sitemap`).subscribe({\r\n next: (apiRes) => {\r\n this.$siteMap = apiRes as SiteMapItem[];\r\n this.siteMap.next(apiRes as SiteMapItem[]);\r\n }\r\n }));\r\n }\r\n }));\r\n } else {\r\n this.subscriptions.push(this.repoService.getData(`Sitemap`).subscribe({\r\n next: (apiRes) => {\r\n this.$siteMap = apiRes as SiteMapItem[];\r\n this.siteMap.next(apiRes as SiteMapItem[]);\r\n }\r\n }));\r\n }\r\n }\r\n\r\n public expandActiveSubMenu(): void {\r\n this.closeAllSubMenus();\r\n const url = this.location.path();\r\n let routerLink = decodeURIComponent(url);\r\n if (!url || !routerLink || !this.$siteMap || routerLink === '/') {\r\n return\r\n }\r\n const activeMenuItem = this.$siteMap.filter(item => item.link === routerLink || item.routerLink === routerLink);\r\n if (activeMenuItem[0]) {\r\n let menuItem = activeMenuItem[0];\r\n while (menuItem && menuItem.parentId !== 'root') {\r\n menuItem = this.$siteMap.filter(item => item.id === menuItem.parentId)[0];\r\n if (menuItem) {\r\n this.openMenuItem(menuItem.id);\r\n }\r\n }\r\n } else { // Look up one level in case we are at a Product page\r\n const parentArray = this.location.path().split('/');\r\n parentArray.pop();\r\n const parentPath = parentArray.join('/');\r\n const parentItem = this.$siteMap.find(i => i.link === parentPath || i.routerLink === parentPath);\r\n if (parentItem) {\r\n let menuItem = parentItem;\r\n while (menuItem && menuItem.parentId !== 'root') {\r\n menuItem = this.$siteMap.filter(item => item.id === menuItem.parentId)[0];\r\n if (menuItem) {\r\n this.openMenuItem(menuItem.id);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public openMenuItem(menuId: string): void {\r\n const menuItem = document.getElementById('menu-item-' + menuId);\r\n const subMenu = document.getElementById('sub-menu-' + menuId);\r\n if (subMenu) {\r\n subMenu.classList.add('show');\r\n menuItem.classList.add('expanded');\r\n }\r\n }\r\n\r\n public toggleMenuItem(menuId: string): void {\r\n const menuItem = document.getElementById('menu-item-' + menuId);\r\n const subMenu = document.getElementById('sub-menu-' + menuId);\r\n if (subMenu) {\r\n if (subMenu.classList.contains('show')) {\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n } else {\r\n subMenu.classList.add('show');\r\n menuItem.classList.add('expanded');\r\n }\r\n }\r\n }\r\n\r\n public closeOtherSubMenus(menu: Array, menuId: string): void {\r\n const currentMenuItem = menu.filter(item => item.id === menuId)[0];\r\n menu.forEach(item => {\r\n if (item && currentMenuItem) {\r\n if ((item.id !== menuId && item.parentId === currentMenuItem.parentId) ||\r\n (currentMenuItem.parentId === \"root\" && item.id !== menuId)) {\r\n const subMenu = document.getElementById('sub-menu-' + item.id);\r\n const menuItem = document.getElementById('menu-item-' + item.id);\r\n if (subMenu) {\r\n if (subMenu.classList.contains('show')) {\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public closeAllSubMenus(): void {\r\n this.$siteMap?.forEach(item => {\r\n const subMenu = document.getElementById('sub-menu-' + item.id);\r\n const menuItem = document.getElementById('menu-item-' + item.id);\r\n if (subMenu) {\r\n if (subMenu.classList.contains('show')) {\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n }\r\n }\r\n });\r\n }\r\n}\r\n"], "mappings": "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", "names": ["SiteMapService", "constructor", "repoService", "staticService", "location", "route", "siteMap", "BehaviorSubject", "$siteMap", "subscriptions", "useCache", "environment", "fragment", "subscribe", "next", "ngOnDestroy", "length", "forEach", "sub", "unsubscribe", "load", "init", "bypassCache", "push", "getById", "rootCatId", "staticRes", "getData", "apiRes", "error", "expandActiveSubMenu", "closeAllSubMenus", "url", "path", "routerLink", "decodeURIComponent", "activeMenuItem", "filter", "item", "link", "menuItem", "parentId", "id", "openMenuItem", "parentArray", "split", "pop", "parentPath", "join", "parentItem", "find", "i", "menuId", "document", "getElementById", "subMenu", "classList", "add", "toggleMenuItem", "contains", "remove", "closeOtherSubMenus", "menu", "currentMenuItem", "\u0275\u0275inject", "RepositoryService", "RepositoryStaticService", "Location", "ActivatedRoute", "factory", "\u0275fac"] }