CngxDrawer
projects/common/layout/drawer/drawer.directive.ts
Import#
import { CngxDrawer } from '@cngx/common/layout'
Description#
State owner for a drawer / sidebar system.
Holds the open/close state and handles the Escape key. Supports both
controlled ([cngxDrawerOpened]="signal()") and uncontrolled
(internal state via open() / close() / toggle()) modes.
Child directives (CngxDrawerPanel, CngxDrawerContent) receive a
reference to this directive via an explicit input - no ancestor injection.
Uncontrolled
<div cngxDrawer #drawer="cngxDrawer">
<button (click)="drawer.toggle()">Menu</button>
<nav [cngxDrawerPanel]="drawer" position="left">…</nav>
<main [cngxDrawerContent]="drawer">…</main>
</div>Controlled
<div cngxDrawer [cngxDrawerOpened]="sidebarOpen()"
(openedChange)="sidebarOpen.set($event)">
…
</div>Metadata#
Host#
Index#
Inputs
Outputs
Derived State
HostBindings
HostListeners
Inputs#
boolean | undefinedControlled opened state. When bound, takes precedence over internal state.
undefined, { alias: 'cngxDrawerOpened' }Outputs#
Methods#
HostBindings#
| Binding | Expression |
|---|---|
[class.cngx-drawer--opened] | opened() |
HostListeners#
| Event | Handler |
|---|---|
(keydown.escape) | keydown.escape() |