1- import { Directive , HostListener , inject , Input } from '@angular/core' ;
1+ import { Directive , inject , input } from '@angular/core' ;
22
33import { SidebarService } from '../sidebar.service' ;
44
@@ -7,28 +7,29 @@ import { SidebarService } from '../sidebar.service';
77 */
88@Directive ( {
99 selector : '[cSidebarToggle]' ,
10- exportAs : 'cSidebarToggle'
10+ exportAs : 'cSidebarToggle' ,
11+ host : {
12+ '(click)' : 'toggleOpen($event)'
13+ }
1114} )
1215export class SidebarToggleDirective {
1316 readonly #sidebarService = inject ( SidebarService ) ;
1417
1518 /**
16- * Id of sidebar for toggle action. [docs]
17- *
18- * @type string
19+ * Id of sidebar for toggle action.
20+ * @return string
1921 */
20- @ Input ( 'cSidebarToggle' ) id ?: string ;
22+ readonly id = input < string > ( undefined , { alias : 'cSidebarToggle' } ) ;
2123 /**
22- * Sidebar property name for toggle action. [docs]
24+ * Sidebar property name for toggle action.
2325 *
24- * @type 'visible' | 'unfoldable'
26+ * @return 'visible' | 'unfoldable'
2527 * @default 'visible'
2628 */
27- @ Input ( ) toggle : 'visible' | 'unfoldable' = 'visible' ;
29+ readonly toggle = input < 'visible' | 'unfoldable' > ( 'visible' ) ;
2830
29- @HostListener ( 'click' , [ '$event' ] )
3031 toggleOpen ( $event : any ) : void {
3132 $event . preventDefault ( ) ;
32- this . #sidebarService. toggle ( { toggle : this . toggle , id : this . id } ) ;
33+ this . #sidebarService. toggle ( { toggle : this . toggle ( ) , id : this . id ( ) } ) ;
3334 }
3435}
0 commit comments