2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
6 * ===================================================================
8 * Unless otherwise specified, all software contained herein is licensed
9 * under the Apache License, Version 2.0 (the "License");
10 * you may not use this software except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * Unless otherwise specified, all documentation contained herein is licensed
22 * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23 * you may not use this documentation except in compliance with the License.
24 * You may obtain a copy of the License at
26 * https://creativecommons.org/licenses/by/4.0/
28 * Unless required by applicable law or agreed to in writing, documentation
29 * distributed under the License is distributed on an "AS IS" BASIS,
30 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 * See the License for the specific language governing permissions and
32 * limitations under the License.
34 * ============LICENSE_END============================================
38 import { Component, Output, EventEmitter, OnInit } from '@angular/core';
39 import { Router, NavigationEnd } from '@angular/router';
40 import { SidebarService} from '../../../shared/services/index'
43 selector: 'app-sidebar',
44 templateUrl: './sidebar.component.html',
45 styleUrls: ['./sidebar.component.scss']
47 export class SidebarComponent implements OnInit {
51 pushRightClass: string;
56 menuData:Array<object> = [];
59 @Output() collapsedEvent = new EventEmitter<boolean>();
61 constructor(public router: Router, public sidebarService: SidebarService) {
62 this.router.events.subscribe(val => {
64 val instanceof NavigationEnd &&
65 window.innerWidth <= 992 &&
74 this.isActive = false;
75 this.collapsed = false;
77 this.pushRightClass = 'push-right';
78 this.sidebarService.getLeftMenu()
82 this.leftParentData = JSON.parse(this.result.data);
83 this.leftChildData = JSON.parse(this.result.data2);
85 for (let i = 0; i < this.leftParentData.length; i++) {
93 console.log(this.leftParentData[i].label);
94 parentItem.name = this.leftParentData[i].label;
95 parentItem.imageSrc = this.leftParentData[i].imageSrc;
96 // Add link to items with no subitems
97 if (this.leftChildData[i].length === 0){
98 parentItem.href = this.leftParentData[i].action;
102 for (let j = 0; j < this.leftChildData[i].length; j++) {
109 if (this.leftChildData[i][j].label != null && this.leftChildData[i][j].label.length > 0) {
111 childItem.name = this.leftChildData[i][j].label;
112 if(null!==this.leftChildData[i][j].action){
113 if(this.leftChildData[i][j].action.match('v2/*'))
114 childItem.router = '/'+ this.leftChildData[i][j].action;
115 else childItem.href = this.leftChildData[i][j].action;
116 parentItem.menuItems.push(childItem)
121 this.menuData.push(parentItem);
122 console.log(this.menuData);
129 this.isActive = !this.isActive;
132 addExpandClass(element: any) {
133 if (element === this.showMenu) {
136 this.showMenu = element;
141 this.collapsed = !this.collapsed;
142 this.collapsedEvent.emit(this.collapsed);
145 isToggled(): boolean {
146 const dom: Element = document.querySelector('body');
147 return dom.classList.contains(this.pushRightClass);
151 const dom: any = document.querySelector('body');
152 dom.classList.toggle(this.pushRightClass);
156 localStorage.removeItem('isLoggedin');