import { Component, OnInit, AfterViewInit } from '@angular/core'; import { Router, NavigationEnd, NavigationError } from '@angular/router'; import { Mediator } from './services/mediator'; import { CoreMediatorChannels } from './utils/mediator-channels'; import { MenubarData } from './menubar/menubar-data'; import { MenubarDataConfig, MenubarObjects } from './types/menubar-types'; import { CoreRouterPath } from './utils/core-router-paths'; import { CoreRemoteRestURL } from './utils/core-remote-rest-urls'; @Component({ selector: 'core-root', templateUrl: './core.component.html', styleUrls: ['./core.component.css'] }) export class CoreComponent { private loginPopupUrl: string = CoreRemoteRestURL.LOGIN_AUTHUNTICATION_POPUP_URL; constructor(private router: Router) { this.router.events.subscribe((event: any) => { if (event instanceof NavigationError) { console.error(event.error.message); //this.router.navigateByUrl(CoreRouterPath.PAGE_NOT_FOUND_PATH); } if (event instanceof NavigationEnd) { let urlParts = event.urlAfterRedirects.split('/'); if (urlParts && urlParts.length > 0) { let selectedModule: MenubarDataConfig = MenubarData.getMenubarDataByModulePath(urlParts[1]); let selectedObject: MenubarObjects; if (selectedModule) { selectedObject = MenubarData.getLevelThreeObjectByPath(urlParts[2]); let data = { selectedModule: selectedModule, selectedObject: selectedObject }; Mediator.emit(CoreMediatorChannels.ON_MAIN_MODULE_START, data); } } } }); } }