1
- import { Directive , HostListener , inject , Input } from '@angular/core' ;
1
+ import { Directive , inject , input } from '@angular/core' ;
2
2
3
3
import { SidebarService } from '../sidebar.service' ;
4
4
@@ -7,28 +7,29 @@ import { SidebarService } from '../sidebar.service';
7
7
*/
8
8
@Directive ( {
9
9
selector : '[cSidebarToggle]' ,
10
- exportAs : 'cSidebarToggle'
10
+ exportAs : 'cSidebarToggle' ,
11
+ host : {
12
+ '(click)' : 'toggleOpen($event)'
13
+ }
11
14
} )
12
15
export class SidebarToggleDirective {
13
16
readonly #sidebarService = inject ( SidebarService ) ;
14
17
15
18
/**
16
- * Id of sidebar for toggle action. [docs]
17
- *
18
- * @type string
19
+ * Id of sidebar for toggle action.
20
+ * @return string
19
21
*/
20
- @ Input ( 'cSidebarToggle' ) id ?: string ;
22
+ readonly id = input < string > ( undefined , { alias : 'cSidebarToggle' } ) ;
21
23
/**
22
- * Sidebar property name for toggle action. [docs]
24
+ * Sidebar property name for toggle action.
23
25
*
24
- * @type 'visible' | 'unfoldable'
26
+ * @return 'visible' | 'unfoldable'
25
27
* @default 'visible'
26
28
*/
27
- @ Input ( ) toggle : 'visible' | 'unfoldable' = 'visible' ;
29
+ readonly toggle = input < 'visible' | 'unfoldable' > ( 'visible' ) ;
28
30
29
- @HostListener ( 'click' , [ '$event' ] )
30
31
toggleOpen ( $event : any ) : void {
31
32
$event . preventDefault ( ) ;
32
- this . #sidebarService. toggle ( { toggle : this . toggle , id : this . id } ) ;
33
+ this . #sidebarService. toggle ( { toggle : this . toggle ( ) , id : this . id ( ) } ) ;
33
34
}
34
35
}
0 commit comments