File tree Expand file tree Collapse file tree 9 files changed +77
-23
lines changed Expand file tree Collapse file tree 9 files changed +77
-23
lines changed Original file line number Diff line number Diff line change 1+ import { AppSidebarNavBadgePipe } from './app-sidebar-nav-badge.pipe' ;
2+
3+ describe ( 'AppSidebarNavBadgePipe' , ( ) => {
4+ it ( 'create an instance' , ( ) => {
5+ const pipe = new AppSidebarNavBadgePipe ( ) ;
6+ expect ( pipe ) . toBeTruthy ( ) ;
7+ } ) ;
8+ } ) ;
Original file line number Diff line number Diff line change 1+ import { Pipe , PipeTransform } from '@angular/core' ;
2+
3+ @Pipe ( {
4+ name : 'appSidebarNavBadge'
5+ } )
6+ export class AppSidebarNavBadgePipe implements PipeTransform {
7+
8+ transform ( item : any , args ?: any ) : any {
9+ const classes = {
10+ 'badge' : true
11+ } ;
12+ const variant = `badge-${ item . badge . variant } ` ;
13+ classes [ variant ] = ! ! item . badge . variant ;
14+ return classes ;
15+ }
16+
17+ }
Original file line number Diff line number Diff line change 1+ import { AppSidebarNavIconPipe } from './app-sidebar-nav-icon.pipe' ;
2+
3+ describe ( 'AppSidebarNavIconPipe' , ( ) => {
4+ it ( 'create an instance' , ( ) => {
5+ const pipe = new AppSidebarNavIconPipe ( ) ;
6+ expect ( pipe ) . toBeTruthy ( ) ;
7+ } ) ;
8+ } ) ;
Original file line number Diff line number Diff line change 1+ import { Pipe , PipeTransform } from '@angular/core' ;
2+
3+ @Pipe ( {
4+ name : 'appSidebarNavIcon'
5+ } )
6+ export class AppSidebarNavIconPipe implements PipeTransform {
7+
8+ transform ( item : any , args ?: any ) : any {
9+ const classes = {
10+ 'nav-icon' : true
11+ } ;
12+ const icon = item . icon ;
13+ classes [ icon ] = ! ! item . icon ;
14+ return classes ;
15+ }
16+ }
Original file line number Diff line number Diff line change 33 [appHtmlAttr] ="item.attributes ">
44 < i *ngIf ="helper.hasIcon(item) " [ngClass] ="getLabelIconClass() "> </ i >
55 < ng-container > {{item.name}}</ ng-container >
6- < span *ngIf ="helper.hasBadge(item) " [ngClass] ="helper.getBadgeClass( item) "> {{ item.badge.text }}</ span >
6+ < span *ngIf ="helper.hasBadge(item) " [ngClass] ="item | appSidebarNavBadge "> {{ item.badge.text }}</ span >
77</ a >
Original file line number Diff line number Diff line change @@ -8,28 +8,30 @@ import {SidebarNavHelper} from '../app-sidebar-nav.service';
88export class AppSidebarNavLabelComponent implements OnInit {
99 @Input ( ) item : any ;
1010
11+ private classes = {
12+ 'nav-label' : true ,
13+ 'active' : true
14+ } ;
15+ private iconClasses = { } ;
16+
1117 constructor (
1218 public helper : SidebarNavHelper
1319 ) { }
1420
1521 ngOnInit ( ) {
22+ this . iconClasses = this . helper . getIconClass ( this . item ) ;
1623 }
1724
1825 getItemClass ( ) {
19- const labelClass = {
20- 'nav-label' : true ,
21- 'active' : true
22- } ;
2326 const itemClass = this . item . class ;
24- labelClass [ itemClass ] = ! ! itemClass ;
25- return labelClass ;
27+ this . classes [ itemClass ] = ! ! itemClass ;
28+ return this . classes ;
2629 }
2730 getLabelIconClass ( ) {
28- const classes = this . helper . getIconClass ( this . item ) ;
2931 const variant = `text-${ this . item . label . variant } ` ;
30- classes [ variant ] = ! ! variant ;
32+ this . iconClasses [ variant ] = ! ! this . item . label . variant ;
3133 const labelClass = this . item . label . class ;
32- classes [ labelClass ] = ! ! labelClass ;
33- return classes ;
34+ this . iconClasses [ labelClass ] = ! ! labelClass ;
35+ return this . iconClasses ;
3436 }
3537}
Original file line number Diff line number Diff line change 33 [ngClass] ="getLinkClass() "
44 href ="{{item.url}} "
55 [appHtmlAttr] ="item.attributes ">
6- < i *ngIf ="helper.hasIcon(item) " [ngClass] ="helper.getIconClass( item) "> </ i >
6+ < i *ngIf ="helper.hasIcon(item) " [ngClass] ="item | appSidebarNavIcon "> </ i >
77 < ng-container > {{item.name}}</ ng-container >
8- < span *ngIf ="helper.hasBadge(item) " [ngClass] ="helper.getBadgeClass( item) "> {{ item.badge.text }}</ span >
8+ < span *ngIf ="helper.hasBadge(item) " [ngClass] ="item | appSidebarNavBadge "> {{ item.badge.text }}</ span >
99 </ a >
1010 < a *ngSwitchDefault
1111 [ngClass] ="getLinkClass() "
1414 routerLinkActive ="active "
1515 [routerLink] ="[item.url] "
1616 (click) ="hideMobile() ">
17- < i *ngIf ="helper.hasIcon(item) " [ngClass] ="helper.getIconClass( item) "> </ i >
17+ < i *ngIf ="helper.hasIcon(item) " [ngClass] ="item | appSidebarNavIcon "> </ i >
1818 < ng-container > {{item.name}}</ ng-container >
19- < span *ngIf ="helper.hasBadge(item) " [ngClass] ="helper.getBadgeClass( item) "> {{ item.badge.text }}</ span >
19+ < span *ngIf ="helper.hasBadge(item) " [ngClass] ="item | appSidebarNavBadge "> {{ item.badge.text }}</ span >
2020 </ a >
2121</ ng-container >
Original file line number Diff line number Diff line change @@ -12,6 +12,8 @@ export class AppSidebarNavLinkComponent implements OnInit {
1212 public linkType : string ;
1313 public href : string ;
1414
15+ private classes = { 'nav-link' : true } ;
16+
1517 constructor (
1618 @Inject ( DOCUMENT ) private document : any ,
1719 private renderer : Renderer2 ,
@@ -25,16 +27,13 @@ export class AppSidebarNavLinkComponent implements OnInit {
2527
2628 public getLinkClass ( ) {
2729 const disabled = this . isDisabled ( ) ;
28- const classes = {
29- 'nav-link' : true ,
30- 'disabled' : disabled ,
31- 'btn-link' : disabled
32- } ;
30+ this . classes [ 'disabled' ] = disabled ;
31+ this . classes [ 'btn-link' ] = disabled ;
3332 if ( this . hasVariant ( ) ) {
3433 const variant = `nav-link-${ this . item . variant } ` ;
35- classes [ variant ] = true ;
34+ this . classes [ variant ] = true ;
3635 }
37- return classes ;
36+ return this . classes ;
3837 }
3938
4039 public getLinkType ( ) {
Original file line number Diff line number Diff line change @@ -19,6 +19,8 @@ import { AppSidebarNavLinkComponent } from './app-sidebar-nav/app-sidebar-nav-li
1919import { AppSidebarNavTitleComponent } from './app-sidebar-nav/app-sidebar-nav-title.component' ;
2020import { SidebarNavHelper } from './app-sidebar-nav.service' ;
2121import { AppSidebarNavLabelComponent } from './app-sidebar-nav/app-sidebar-nav-label.component' ;
22+ import { AppSidebarNavIconPipe } from './app-sidebar-nav/app-sidebar-nav-icon.pipe' ;
23+ import { AppSidebarNavBadgePipe } from './app-sidebar-nav/app-sidebar-nav-badge.pipe' ;
2224
2325@NgModule ( {
2426 imports : [
@@ -57,7 +59,9 @@ import { AppSidebarNavLabelComponent } from './app-sidebar-nav/app-sidebar-nav-l
5759 AppSidebarNavTitleComponent ,
5860 NavDropdownDirective ,
5961 NavDropdownToggleDirective ,
60- AppSidebarNavLabelComponent
62+ AppSidebarNavLabelComponent ,
63+ AppSidebarNavIconPipe ,
64+ AppSidebarNavBadgePipe
6165 ] ,
6266 providers : [
6367 SidebarNavHelper
You can’t perform that action at this time.
0 commit comments