Skip to content

Commit d03cb70

Browse files
committed
1 parent e2e7507 commit d03cb70

File tree

6 files changed

+14
-9
lines changed

6 files changed

+14
-9
lines changed

projects/ng-material-multilevel-menu/src/lib/app.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export interface MultilevelNodes {
1414
hidden?: boolean;
1515
link?: string;
1616
externalRedirect?: boolean;
17+
hrefTargetType?: string;
1718
data?: any;
1819
items?: MultilevelNodes[];
1920
onSelected?: Function;

projects/ng-material-multilevel-menu/src/lib/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ export const CONSTANT = {
88
DEFAULT_SELECTED_FONT_COLOR: `#1976d2`,
99
DEFAULT_LIST_BACKGROUND_COLOR: `transparent`,
1010
DEFAULT_LIST_FONT_COLOR: `rgba(0,0,0,.87)`,
11+
DEFAULT_HREF_TARGET_TYPE: '_self',
1112
ERROR_MESSAGE: `Invalid data for material Multilevel List Component`
1213
};

projects/ng-material-multilevel-menu/src/lib/list-item/list-item.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
</div>
2323

2424
<ng-template #linkTemplate>
25-
<a class="anml-link" *ngIf="node.externalRedirect" [href]="node.link">
25+
<a class="anml-link" *ngIf="node.externalRedirect" [href]="node.link" [target]="getHrefTargetType()">
2626
<ng-container *ngTemplateOutlet="linkLabelOutlet"></ng-container>
2727
</a>
2828
<a class="anml-link" *ngIf="!node.externalRedirect" [routerLink]="node.link">

projects/ng-material-multilevel-menu/src/lib/list-item/list-item.component.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,12 @@ export class ListItemComponent implements OnChanges, OnInit {
174174
}
175175
return this.node.imageIcon;
176176
}
177+
getHrefTargetType() {
178+
if (this.node.hrefTargetType) {
179+
return this.node.hrefTargetType;
180+
}
181+
return CONSTANT.DEFAULT_HREF_TARGET_TYPE;
182+
}
177183
hasItems(): boolean {
178184
return this.nodeChildren.length > 0 ? true : false;
179185
}
@@ -198,11 +204,7 @@ export class ListItemComponent implements OnChanges, OnInit {
198204
&& node.link !== undefined
199205
&& node.link
200206
) {
201-
if (node.externalRedirect !== undefined && node.externalRedirect) {
202-
window.location.href = node.link;
203-
} else {
204-
this.router.navigate([node.link], node.navigationExtras);
205-
}
207+
this.router.navigate([node.link], node.navigationExtras);
206208
} else if (node.onSelected && typeof node.onSelected === 'function') {
207209
node.onSelected(node);
208210
this.selectedListItem(node);

src/app/app.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { HttpClientModule } from '@angular/common/http';
66
import { MaterialsModule } from './modules/materials.module';
77
import { AppRoutingModule } from './app-routing.module';
88

9-
// import { NgMaterialMultilevelMenuModule } from './../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.module';
9+
import { NgMaterialMultilevelMenuModule } from './../../projects/ng-material-multilevel-menu/src/lib/ng-material-multilevel-menu.module';
1010

11-
import { NgMaterialMultilevelMenuModule } from 'ng-material-multilevel-menu';
11+
// import { NgMaterialMultilevelMenuModule } from 'ng-material-multilevel-menu';
1212

1313
import { AppComponent } from './app.component';
1414

src/app/constants.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ export const constant = {
6666
label: 'NPM',
6767
icon: 'info_outline',
6868
link: 'https://www.npmjs.com/package/ng-material-multilevel-menu',
69-
externalRedirect: true
69+
externalRedirect: true,
70+
hrefTargetType: '_blank'
7071
}
7172
],
7273
sidebarConfigurations: {

0 commit comments

Comments
 (0)