-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathnav-item.component.ts
More file actions
52 lines (48 loc) · 1.97 KB
/
Copy pathnav-item.component.ts
File metadata and controls
52 lines (48 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// angular import
import { Component, input } from '@angular/core';
import { RouterModule } from '@angular/router';
// project import
import { NavigationItem } from '../../navigation';
import { SharedModule } from 'src/app/theme/shared/shared.module';
@Component({
selector: 'app-nav-item',
imports: [SharedModule, RouterModule],
templateUrl: './nav-item.component.html',
styleUrls: ['./nav-item.component.scss']
})
export class NavItemComponent {
// public props
item = input<NavigationItem>();
// public method
closeOtherMenu(event: MouseEvent) {
const ele = event.target as HTMLElement;
if (ele !== null && ele !== undefined) {
const parent = ele.parentElement as HTMLElement;
const up_parent = ((parent.parentElement as HTMLElement).parentElement as HTMLElement).parentElement as HTMLElement;
const last_parent = (up_parent.parentElement as HTMLElement).parentElement as HTMLElement;
if (last_parent.classList.contains('pcoded-submenu')) {
up_parent.classList.remove('pcoded-trigger');
up_parent.classList.remove('active');
} else {
const sections = document.querySelectorAll('.pcoded-hasmenu');
for (let i = 0; i < sections.length; i++) {
sections[i].classList.remove('active');
sections[i].classList.remove('pcoded-trigger');
}
}
if (parent.classList.contains('pcoded-hasmenu')) {
parent.classList.add('pcoded-trigger');
parent.classList.add('active');
} else if (up_parent.classList.contains('pcoded-hasmenu')) {
up_parent.classList.add('pcoded-trigger');
up_parent.classList.add('active');
} else if (last_parent.classList.contains('pcoded-hasmenu')) {
last_parent.classList.add('pcoded-trigger');
last_parent.classList.add('active');
}
}
if (document.querySelector('app-navigation.pcoded-navbar').classList.contains('mob-open')) {
document.dispatchEvent(new Event('closeMobMenu'));
}
}
}