UNPKG

78.3 kBJavaScriptView Raw
1import * as i0 from '@angular/core';
2import { Component, ViewChild, Input, Directive, HostListener, forwardRef, Optional, Inject, SecurityContext, ContentChildren, NgModule } from '@angular/core';
3import * as i2 from '@angular/common';
4import { CommonModule } from '@angular/common';
5import * as i3 from '@angular/cdk/scrolling';
6import { ScrollingModule } from '@angular/cdk/scrolling';
7import * as i1 from '@angular/material/sidenav';
8import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
9import * as i4 from '@angular/material/toolbar';
10import { MatToolbarModule } from '@angular/material/toolbar';
11import * as i5 from '@angular/material/button';
12import { MatButtonModule } from '@angular/material/button';
13import * as i6 from '@angular/material/icon';
14import { MatIconModule } from '@angular/material/icon';
15import * as i3$1 from '@angular/material/card';
16import { MatCardModule } from '@angular/material/card';
17import * as i4$1 from '@angular/material/divider';
18import { MatDividerModule } from '@angular/material/divider';
19import { CovalentMenuModule } from '@covalent/core/menu';
20import { mixinDisabled, tdCollapseAnimation } from '@covalent/core/common';
21import * as i1$1 from '@angular/router';
22import * as i2$1 from '@angular/platform-browser';
23import { Subject } from 'rxjs';
24import { takeUntil } from 'rxjs/operators';
25
26class TdLayoutComponent {
27 sidenav;
28 /**
29 * mode?: 'side', 'push' or 'over'
30 *
31 * The mode or styling of the sidenav.
32 * Defaults to "over".
33 * See "MatSidenav" documentation for more info.
34 *
35 * https://github.com/angular/material2/tree/main/src/lib/sidenav
36 */
37 mode = 'over';
38 /**
39 * opened?: boolean
40 *
41 * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.
42 * Defaults to "false".
43 *
44 * See "MatSidenav" documentation for more info.
45 *
46 * https://github.com/angular/material2/tree/main/src/lib/sidenav
47 */
48 opened = false;
49 /**
50 * sidenavWidth?: string
51 *
52 * Sets the "width" of the sidenav in either "px" or "%"
53 * Defaults to "320px".
54 *
55 * https://github.com/angular/material2/tree/main/src/lib/sidenav
56 */
57 sidenavWidth = '320px';
58 /**
59 * containerAutosize?: boolean
60 *
61 * Sets "autosize" of the sidenav-container.
62 * Defaults to "false".
63 *
64 * See documentation for more info and potential performance risks.
65 *
66 * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
67 */
68 containerAutosize = false;
69 /**
70 * Checks if `ESC` should close the sidenav
71 * Should only close it for `push` and `over` modes
72 */
73 get disableClose() {
74 return this.mode === 'side';
75 }
76 /**
77 * Proxy toggle method to access sidenav from outside (from td-layout template).
78 */
79 toggle() {
80 return this.sidenav.toggle(!this.sidenav.opened);
81 }
82 /**
83 * Proxy open method to access sidenav from outside (from td-layout template).
84 */
85 open() {
86 return this.sidenav.open();
87 }
88 /**
89 * Proxy close method to access sidenav from outside (from td-layout template).
90 */
91 close() {
92 return this.sidenav.close();
93 }
94 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
95 static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutComponent, selector: "td-layout", inputs: { mode: "mode", opened: "opened", sidenavWidth: "sidenavWidth", containerAutosize: "containerAutosize" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container fullscreen [autosize]=\"containerAutosize\">\n <mat-sidenav\n #sidenav\n class=\"td-layout-sidenav\"\n [mode]=\"mode\"\n [opened]=\"opened\"\n [style.max-width]=\"sidenavWidth\"\n [style.min-width]=\"sidenavWidth\"\n [disableClose]=\"disableClose\"\n >\n <ng-content select=\"td-navigation-drawer\"></ng-content>\n <ng-content select=\"[td-sidenav-content]\"></ng-content>\n </mat-sidenav>\n <ng-content></ng-content>\n</mat-sidenav-container>\n", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host ::ng-deep>mat-sidenav-container .mat-drawer>.mat-drawer-inner-container{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: i1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }] });
96}
97i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutComponent, decorators: [{
98 type: Component,
99 args: [{ selector: 'td-layout', template: "<mat-sidenav-container fullscreen [autosize]=\"containerAutosize\">\n <mat-sidenav\n #sidenav\n class=\"td-layout-sidenav\"\n [mode]=\"mode\"\n [opened]=\"opened\"\n [style.max-width]=\"sidenavWidth\"\n [style.min-width]=\"sidenavWidth\"\n [disableClose]=\"disableClose\"\n >\n <ng-content select=\"td-navigation-drawer\"></ng-content>\n <ng-content select=\"[td-sidenav-content]\"></ng-content>\n </mat-sidenav>\n <ng-content></ng-content>\n</mat-sidenav-container>\n", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host ::ng-deep>mat-sidenav-container .mat-drawer>.mat-drawer-inner-container{display:flex;flex-direction:column}\n"] }]
100 }], propDecorators: { sidenav: [{
101 type: ViewChild,
102 args: [MatSidenav, { static: true }]
103 }], mode: [{
104 type: Input
105 }], opened: [{
106 type: Input
107 }], sidenavWidth: [{
108 type: Input
109 }], containerAutosize: [{
110 type: Input
111 }] } });
112
113class LayoutToggleBase {
114}
115/* tslint:disable-next-line */
116const _TdLayoutToggleMixinBase = mixinDisabled(LayoutToggleBase);
117class BaseLayoutToggleDirective extends _TdLayoutToggleMixinBase {
118 _layout;
119 _renderer;
120 _elementRef;
121 _toggleSubs;
122 _initialized = false;
123 _hideWhenOpened = false;
124 /**
125 * hideWhenOpened?: boolean
126 * When this is set to true, the host will be hidden when
127 * the sidenav is opened.
128 */
129 set hideWhenOpened(hideWhenOpened) {
130 this._hideWhenOpened = hideWhenOpened;
131 if (this._initialized) {
132 this._toggleVisibility();
133 }
134 }
135 constructor(_layout, _renderer, _elementRef) {
136 super();
137 this._layout = _layout;
138 this._renderer = _renderer;
139 this._elementRef = _elementRef;
140 // if layout has not been provided
141 // show warn message
142 if (!this._layout) {
143 this._noLayoutMessage();
144 }
145 this._renderer.addClass(this._elementRef.nativeElement, 'td-layout-menu-button');
146 }
147 ngAfterViewInit() {
148 this._initialized = true;
149 if (this._layout && this._layout.sidenav) {
150 this._toggleSubs = this._layout.sidenav._animationStarted.subscribe(() => {
151 this._toggleVisibility();
152 });
153 }
154 // execute toggleVisibility since the onOpenStart and onCloseStart
155 // methods might not be executed always when the element is rendered
156 this._toggleVisibility();
157 }
158 ngOnDestroy() {
159 if (this._toggleSubs) {
160 this._toggleSubs.unsubscribe();
161 this._toggleSubs = undefined;
162 }
163 }
164 /**
165 * Listens to host click event to trigger the layout toggle
166 */
167 clickListener(event) {
168 event.preventDefault();
169 if (!this.disabled) {
170 // if layout has been provided, try triggering the click on it
171 // else show warn message
172 if (this._layout) {
173 this.onClick();
174 }
175 else {
176 this._noLayoutMessage();
177 }
178 }
179 }
180 _toggleVisibility() {
181 if (this._layout) {
182 if (this._layout.sidenav.opened && this._hideWhenOpened) {
183 this._renderer.setStyle(this._elementRef.nativeElement, 'display', 'none');
184 }
185 else {
186 this._renderer.setStyle(this._elementRef.nativeElement, 'display', '');
187 }
188 }
189 }
190 _noLayoutMessage() {
191 /* tslint:disable-next-line */
192 console.warn('Covalent: Parent layout not found for layout toggle directive');
193 }
194 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseLayoutToggleDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
195 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: BaseLayoutToggleDirective, inputs: { hideWhenOpened: "hideWhenOpened" }, host: { listeners: { "click": "clickListener($event)" } }, usesInheritance: true, ngImport: i0 });
196}
197i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseLayoutToggleDirective, decorators: [{
198 type: Directive
199 }], ctorParameters: () => [{ type: undefined }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { hideWhenOpened: [{
200 type: Input
201 }], clickListener: [{
202 type: HostListener,
203 args: ['click', ['$event']]
204 }] } });
205
206class TdLayoutToggleDirective extends BaseLayoutToggleDirective {
207 set tdLayoutToggle(tdLayoutToggle) {
208 this.disabled = !(tdLayoutToggle === '' || tdLayoutToggle);
209 }
210 constructor(layout, renderer, elementRef) {
211 super(layout, renderer, elementRef);
212 }
213 onClick() {
214 this._layout.toggle();
215 }
216 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutToggleDirective, deps: [{ token: forwardRef(() => TdLayoutComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
217 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutToggleDirective, selector: "[tdLayoutToggle]", inputs: { tdLayoutToggle: "tdLayoutToggle" }, usesInheritance: true, ngImport: i0 });
218}
219i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutToggleDirective, decorators: [{
220 type: Directive,
221 args: [{
222 selector: '[tdLayoutToggle]',
223 }]
224 }], ctorParameters: () => [{ type: TdLayoutComponent, decorators: [{
225 type: Optional
226 }, {
227 type: Inject,
228 args: [forwardRef(() => TdLayoutComponent)]
229 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutToggle: [{
230 type: Input
231 }] } });
232class TdLayoutCloseDirective extends BaseLayoutToggleDirective {
233 set tdLayoutClose(tdLayoutClose) {
234 this.disabled = !(tdLayoutClose === '' || tdLayoutClose);
235 }
236 constructor(layout, renderer, elementRef) {
237 super(layout, renderer, elementRef);
238 }
239 onClick() {
240 this._layout.close();
241 }
242 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutCloseDirective, deps: [{ token: forwardRef(() => TdLayoutComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
243 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutCloseDirective, selector: "[tdLayoutClose]", inputs: { tdLayoutClose: "tdLayoutClose" }, usesInheritance: true, ngImport: i0 });
244}
245i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutCloseDirective, decorators: [{
246 type: Directive,
247 args: [{
248 selector: '[tdLayoutClose]',
249 }]
250 }], ctorParameters: () => [{ type: TdLayoutComponent, decorators: [{
251 type: Optional
252 }, {
253 type: Inject,
254 args: [forwardRef(() => TdLayoutComponent)]
255 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutClose: [{
256 type: Input
257 }] } });
258class TdLayoutOpenDirective extends BaseLayoutToggleDirective {
259 set tdLayoutClose(tdLayoutOpen) {
260 this.disabled = !(tdLayoutOpen === '' || tdLayoutOpen);
261 }
262 constructor(layout, renderer, elementRef) {
263 super(layout, renderer, elementRef);
264 }
265 onClick() {
266 this._layout.open();
267 }
268 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutOpenDirective, deps: [{ token: forwardRef(() => TdLayoutComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
269 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutOpenDirective, selector: "[tdLayoutOpen]", inputs: { tdLayoutClose: ["tdLayoutOpen", "tdLayoutClose"] }, usesInheritance: true, ngImport: i0 });
270}
271i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutOpenDirective, decorators: [{
272 type: Directive,
273 args: [{
274 selector: '[tdLayoutOpen]',
275 }]
276 }], ctorParameters: () => [{ type: TdLayoutComponent, decorators: [{
277 type: Optional
278 }, {
279 type: Inject,
280 args: [forwardRef(() => TdLayoutComponent)]
281 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutClose: [{
282 type: Input,
283 args: ['tdLayoutOpen']
284 }] } });
285
286class TdLayoutNavComponent {
287 _router;
288 /**
289 * toolbarTitle?: string
290 *
291 * Title set in toolbar.
292 */
293 toolbarTitle;
294 /**
295 * icon?: string
296 *
297 * icon name to be displayed before the title
298 */
299 icon;
300 /**
301 * logo?: string
302 *
303 * logo icon name to be displayed before the title.
304 * If [icon] is set, then this will not be shown.
305 */
306 logo;
307 /**
308 * color?: 'accent' | 'primary' | 'warn'
309 *
310 * toolbar color option: primary | accent | warn.
311 * If [color] is not set, primary is used.
312 */
313 color;
314 /**
315 * navigationRoute?: string
316 *
317 * option to set the combined route for the icon, logo, and toolbarTitle.
318 */
319 navigationRoute;
320 /**
321 * Checks if router was injected.
322 */
323 get routerEnabled() {
324 return !!this._router && !!this.navigationRoute;
325 }
326 constructor(_router) {
327 this._router = _router;
328 }
329 handleNavigationClick() {
330 if (this.routerEnabled && this.navigationRoute) {
331 this._router.navigateByUrl(this.navigationRoute);
332 }
333 }
334 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavComponent, deps: [{ token: i1$1.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
335 static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutNavComponent, selector: "td-layout-nav", inputs: { toolbarTitle: "toolbarTitle", icon: "icon", logo: "logo", color: "color", navigationRoute: "navigationRoute" }, ngImport: i0, template: "<div class=\"td-layout-nav-wrapper\">\n <mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\">\n <ng-content select=\"[td-menu-button]\"></ng-content>\n <span\n *ngIf=\"icon || logo || toolbarTitle\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n class=\"td-layout-nav-toolbar-content\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <span *ngIf=\"toolbarTitle\">{{ toolbarTitle }}</span>\n </span>\n <ng-content select=\"[td-toolbar-content]\"></ng-content>\n </mat-toolbar>\n <div class=\"td-layout-nav-content\" cdkScrollable>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"td-layout-footer\"></ng-content>\n</div>\n", styles: [".td-menu-button{margin-left:0}::ng-deep [dir=rtl] .td-menu-button{margin-right:0;margin-left:6px}:host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host .td-layout-nav-wrapper{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%}:host .td-layout-nav-wrapper .td-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .td-layout-nav-wrapper .td-layout-nav-content{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host mat-toolbar{z-index:2;box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
336}
337i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavComponent, decorators: [{
338 type: Component,
339 args: [{ selector: 'td-layout-nav', template: "<div class=\"td-layout-nav-wrapper\">\n <mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\">\n <ng-content select=\"[td-menu-button]\"></ng-content>\n <span\n *ngIf=\"icon || logo || toolbarTitle\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n class=\"td-layout-nav-toolbar-content\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <span *ngIf=\"toolbarTitle\">{{ toolbarTitle }}</span>\n </span>\n <ng-content select=\"[td-toolbar-content]\"></ng-content>\n </mat-toolbar>\n <div class=\"td-layout-nav-content\" cdkScrollable>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"td-layout-footer\"></ng-content>\n</div>\n", styles: [".td-menu-button{margin-left:0}::ng-deep [dir=rtl] .td-menu-button{margin-right:0;margin-left:6px}:host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host .td-layout-nav-wrapper{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%}:host .td-layout-nav-wrapper .td-layout-nav-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .td-layout-nav-wrapper .td-layout-nav-content{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host mat-toolbar{z-index:2;box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}\n"] }]
340 }], ctorParameters: () => [{ type: i1$1.Router, decorators: [{
341 type: Optional
342 }] }], propDecorators: { toolbarTitle: [{
343 type: Input
344 }], icon: [{
345 type: Input
346 }], logo: [{
347 type: Input
348 }], color: [{
349 type: Input
350 }], navigationRoute: [{
351 type: Input
352 }] } });
353
354class TdLayoutNavListComponent {
355 _router;
356 sidenav;
357 /**
358 * toolbarTitle?: string
359 *
360 * Title set in toolbar.
361 */
362 toolbarTitle;
363 /**
364 * icon?: string
365 * icon name to be displayed before the title
366 */
367 icon;
368 /**
369 * logo?: string
370 *
371 * logo icon name to be displayed before the title.
372 * If [icon] is set, then this will not be shown.
373 */
374 logo;
375 /**
376 * color?: 'accent' | 'primary' | 'warn'
377 *
378 * toolbar color option: primary | accent | warn.
379 * If [color] is not set, primary is used.
380 */
381 color;
382 /**
383 * mode?: 'side', 'push' or 'over'
384 *
385 * The mode or styling of the sidenav.
386 * Defaults to "side".
387 * See "MatSidenav" documentation for more info.
388 *
389 * https://github.com/angular/material2/tree/main/src/lib/sidenav
390 */
391 mode = 'side';
392 /**
393 * opened?: boolean
394 * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.
395 * Defaults to "true".
396 *
397 * See "MatSidenav" documentation for more info.
398 *
399 * https://github.com/angular/material2/tree/main/src/lib/sidenav
400 */
401 opened = true;
402 /**
403 * sidenavWidth?: string
404 *
405 * Sets the "width" of the sidenav in either "px" or "%"
406 * Defaults to "350px".
407 *
408 * https://github.com/angular/material2/tree/main/src/lib/sidenav
409 */
410 sidenavWidth = '350px';
411 /**
412 * containerAutosize?: boolean
413 *
414 * Sets "autosize" of the sidenav-container.
415 * Defaults to "false".
416 *
417 * See documentation for more info and potential performance risks.
418 *
419 * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
420 */
421 containerAutosize = false;
422 /**
423 * navigationRoute?: string
424 *
425 * option to set the combined route for the icon, logo, and toolbarTitle.
426 */
427 navigationRoute;
428 /**
429 * Checks if `ESC` should close the sidenav
430 * Should only close it for `push` and `over` modes
431 */
432 get disableClose() {
433 return this.mode === 'side';
434 }
435 /**
436 * Checks if router was injected.
437 */
438 get routerEnabled() {
439 return !!this._router && !!this.navigationRoute;
440 }
441 constructor(_router) {
442 this._router = _router;
443 }
444 handleNavigationClick() {
445 if (this.routerEnabled && this.navigationRoute) {
446 this._router.navigateByUrl(this.navigationRoute);
447 }
448 }
449 /**
450 * Proxy toggle method to access sidenav from outside (from td-layout template).
451 */
452 toggle() {
453 return this.sidenav.toggle(!this.sidenav.opened);
454 }
455 /**
456 * Proxy open method to access sidenav from outside (from td-layout template).
457 */
458 open() {
459 return this.sidenav.open();
460 }
461 /**
462 * Proxy close method to access sidenav from outside (from td-layout template).
463 */
464 close() {
465 return this.sidenav.close();
466 }
467 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListComponent, deps: [{ token: i1$1.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
468 static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutNavListComponent, selector: "td-layout-nav-list", inputs: { toolbarTitle: "toolbarTitle", icon: "icon", logo: "logo", color: "color", mode: "mode", opened: "opened", sidenavWidth: "sidenavWidth", containerAutosize: "containerAutosize", navigationRoute: "navigationRoute" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<div class=\"td-layout-nav-list-wrapper\">\n <mat-sidenav-container\n fullscreen\n [autosize]=\"containerAutosize\"\n class=\"td-layout-nav-list\"\n >\n <mat-sidenav\n #sidenav\n position=\"start\"\n [mode]=\"mode\"\n [opened]=\"opened\"\n [disableClose]=\"disableClose\"\n [style.max-width]=\"sidenavWidth\"\n [style.min-width]=\"sidenavWidth\"\n >\n <mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\">\n <ng-content select=\"[td-menu-button]\"></ng-content>\n <span\n *ngIf=\"icon || logo || toolbarTitle\"\n class=\"td-layout-nav-list-toolbar-content\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <span *ngIf=\"toolbarTitle\">{{ toolbarTitle }}</span>\n </span>\n <ng-content select=\"[td-sidenav-toolbar-content]\"></ng-content>\n </mat-toolbar>\n <div class=\"td-layout-nav-list-content\" cdkScrollable>\n <ng-content select=\"[td-sidenav-content]\"></ng-content>\n </div>\n </mat-sidenav>\n <div class=\"td-layout-nav-list-main\">\n <mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\">\n <ng-content select=\"[td-toolbar-content]\"></ng-content>\n </mat-toolbar>\n <div class=\"td-layout-nav-list-content\" cdkScrollable>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"td-layout-footer-inner\"></ng-content>\n </div>\n </mat-sidenav-container>\n</div>\n<ng-content select=\"td-layout-footer\"></ng-content>\n", styles: [":host{margin:0;width:100%;min-height:100%;height:100%;overflow:hidden;flex-direction:column;box-sizing:border-box;display:flex;flex:1}:host .td-layout-nav-list-wrapper>.mat-sidenav-container>mat-sidenav.mat-drawer-side{border-right:0}[dir=rtl] :host .td-layout-nav-list-wrapper>.mat-sidenav-container>mat-sidenav.mat-drawer-side{border-left:0}:host .td-layout-nav-list-wrapper{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .td-layout-nav-list-wrapper .td-layout-nav-list-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .td-layout-nav-list-wrapper .td-layout-nav-list-content{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .td-layout-nav-list-wrapper .td-layout-nav-list-main{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto}:host .td-layout-nav-list-wrapper .td-layout-nav-list-main .td-layout-nav-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list{flex:1}:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-opened,:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-opening,:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-closed,:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-closing{box-shadow:none}:host ::ng-deep mat-sidenav-container.td-layout-nav-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.td-layout-nav-list>.mat-drawer>.mat-drawer-inner-container{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
469}
470i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListComponent, decorators: [{
471 type: Component,
472 args: [{ selector: 'td-layout-nav-list', template: "<div class=\"td-layout-nav-list-wrapper\">\n <mat-sidenav-container\n fullscreen\n [autosize]=\"containerAutosize\"\n class=\"td-layout-nav-list\"\n >\n <mat-sidenav\n #sidenav\n position=\"start\"\n [mode]=\"mode\"\n [opened]=\"opened\"\n [disableClose]=\"disableClose\"\n [style.max-width]=\"sidenavWidth\"\n [style.min-width]=\"sidenavWidth\"\n >\n <mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\">\n <ng-content select=\"[td-menu-button]\"></ng-content>\n <span\n *ngIf=\"icon || logo || toolbarTitle\"\n class=\"td-layout-nav-list-toolbar-content\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <span *ngIf=\"toolbarTitle\">{{ toolbarTitle }}</span>\n </span>\n <ng-content select=\"[td-sidenav-toolbar-content]\"></ng-content>\n </mat-toolbar>\n <div class=\"td-layout-nav-list-content\" cdkScrollable>\n <ng-content select=\"[td-sidenav-content]\"></ng-content>\n </div>\n </mat-sidenav>\n <div class=\"td-layout-nav-list-main\">\n <mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\">\n <ng-content select=\"[td-toolbar-content]\"></ng-content>\n </mat-toolbar>\n <div class=\"td-layout-nav-list-content\" cdkScrollable>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"td-layout-footer-inner\"></ng-content>\n </div>\n </mat-sidenav-container>\n</div>\n<ng-content select=\"td-layout-footer\"></ng-content>\n", styles: [":host{margin:0;width:100%;min-height:100%;height:100%;overflow:hidden;flex-direction:column;box-sizing:border-box;display:flex;flex:1}:host .td-layout-nav-list-wrapper>.mat-sidenav-container>mat-sidenav.mat-drawer-side{border-right:0}[dir=rtl] :host .td-layout-nav-list-wrapper>.mat-sidenav-container>mat-sidenav.mat-drawer-side{border-left:0}:host .td-layout-nav-list-wrapper{flex-direction:column;box-sizing:border-box;display:flex;flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .td-layout-nav-list-wrapper .td-layout-nav-list-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host .td-layout-nav-list-wrapper .td-layout-nav-list-content{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .td-layout-nav-list-wrapper .td-layout-nav-list-main{flex-direction:column;box-sizing:border-box;display:flex;margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto}:host .td-layout-nav-list-wrapper .td-layout-nav-list-main .td-layout-nav-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list{flex:1}:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-opened,:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-opening,:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-closed,:host .td-layout-nav-list-wrapper mat-sidenav-container.td-layout-nav-list>mat-sidenav.mat-drawer-closing{box-shadow:none}:host ::ng-deep mat-sidenav-container.td-layout-nav-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.td-layout-nav-list>.mat-drawer>.mat-drawer-inner-container{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}\n"] }]
473 }], ctorParameters: () => [{ type: i1$1.Router, decorators: [{
474 type: Optional
475 }] }], propDecorators: { sidenav: [{
476 type: ViewChild,
477 args: [MatSidenav, { static: true }]
478 }], toolbarTitle: [{
479 type: Input
480 }], icon: [{
481 type: Input
482 }], logo: [{
483 type: Input
484 }], color: [{
485 type: Input
486 }], mode: [{
487 type: Input
488 }], opened: [{
489 type: Input
490 }], sidenavWidth: [{
491 type: Input
492 }], containerAutosize: [{
493 type: Input
494 }], navigationRoute: [{
495 type: Input
496 }] } });
497
498class TdLayoutNavListToggleDirective extends BaseLayoutToggleDirective {
499 set tdLayoutNavListToggle(tdLayoutNavListToggle) {
500 this.disabled = !(tdLayoutNavListToggle === '' || tdLayoutNavListToggle);
501 }
502 constructor(layout, renderer, elementRef) {
503 super(layout, renderer, elementRef);
504 }
505 onClick() {
506 this._layout.toggle();
507 }
508 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListToggleDirective, deps: [{ token: forwardRef(() => TdLayoutNavListComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
509 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutNavListToggleDirective, selector: "[tdLayoutNavListToggle]", inputs: { tdLayoutNavListToggle: "tdLayoutNavListToggle" }, usesInheritance: true, ngImport: i0 });
510}
511i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListToggleDirective, decorators: [{
512 type: Directive,
513 args: [{
514 selector: '[tdLayoutNavListToggle]',
515 }]
516 }], ctorParameters: () => [{ type: TdLayoutNavListComponent, decorators: [{
517 type: Optional
518 }, {
519 type: Inject,
520 args: [forwardRef(() => TdLayoutNavListComponent)]
521 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutNavListToggle: [{
522 type: Input
523 }] } });
524class TdLayoutNavListCloseDirective extends BaseLayoutToggleDirective {
525 set tdLayoutNavListClose(tdLayoutNavListClose) {
526 this.disabled = !(tdLayoutNavListClose === '' || tdLayoutNavListClose);
527 }
528 constructor(layout, renderer, elementRef) {
529 super(layout, renderer, elementRef);
530 }
531 onClick() {
532 this._layout.close();
533 }
534 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListCloseDirective, deps: [{ token: forwardRef(() => TdLayoutNavListComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
535 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutNavListCloseDirective, selector: "[tdLayoutNavListClose]", inputs: { tdLayoutNavListClose: "tdLayoutNavListClose" }, usesInheritance: true, ngImport: i0 });
536}
537i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListCloseDirective, decorators: [{
538 type: Directive,
539 args: [{
540 selector: '[tdLayoutNavListClose]',
541 }]
542 }], ctorParameters: () => [{ type: TdLayoutNavListComponent, decorators: [{
543 type: Optional
544 }, {
545 type: Inject,
546 args: [forwardRef(() => TdLayoutNavListComponent)]
547 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutNavListClose: [{
548 type: Input
549 }] } });
550class TdLayoutNavListOpenDirective extends BaseLayoutToggleDirective {
551 set tdLayoutNavListOpen(tdLayoutNavListOpen) {
552 this.disabled = !(tdLayoutNavListOpen === '' || tdLayoutNavListOpen);
553 }
554 constructor(layout, renderer, elementRef) {
555 super(layout, renderer, elementRef);
556 }
557 onClick() {
558 this._layout.open();
559 }
560 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListOpenDirective, deps: [{ token: forwardRef(() => TdLayoutNavListComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
561 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutNavListOpenDirective, selector: "[tdLayoutNavListOpen]", inputs: { tdLayoutNavListOpen: "tdLayoutNavListOpen" }, usesInheritance: true, ngImport: i0 });
562}
563i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutNavListOpenDirective, decorators: [{
564 type: Directive,
565 args: [{
566 selector: '[tdLayoutNavListOpen]',
567 }]
568 }], ctorParameters: () => [{ type: TdLayoutNavListComponent, decorators: [{
569 type: Optional
570 }, {
571 type: Inject,
572 args: [forwardRef(() => TdLayoutNavListComponent)]
573 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutNavListOpen: [{
574 type: Input
575 }] } });
576
577class TdLayoutCardOverComponent {
578 /**
579 * cardTitle?: string
580 *
581 * Title set in card.
582 */
583 cardTitle;
584 /**
585 * cardSubtitle?: string
586 *
587 * Subtitle set in card.
588 */
589 cardSubtitle;
590 /**
591 * cardWidth?: string
592 *
593 * Card flex width in %.
594 * Defaults to 70%.
595 */
596 cardWidth = 70;
597 /**
598 * color?: 'accent' | 'primary' | 'warn'
599 *
600 * toolbar color option: primary | accent | warn.
601 * If [color] is not set, primary is used.
602 */
603 color;
604 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutCardOverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
605 static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutCardOverComponent, selector: "td-layout-card-over", inputs: { cardTitle: "cardTitle", cardSubtitle: "cardSubtitle", cardWidth: "cardWidth", color: "color" }, ngImport: i0, template: "<mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\"></mat-toolbar>\n<div class=\"td-layout-card-over-wrapper\">\n <div\n class=\"td-layout-card-over\"\n [style.max-width.%]=\"cardWidth\"\n [style.flex]=\"'1 1 ' + cardWidth + '%'\"\n [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\"\n [style.-webkit-box-flex]=\"1\"\n >\n <mat-card>\n <mat-card-header>\n <mat-card-title *ngIf=\"cardTitle\">{{ cardTitle }}</mat-card-title>\n <mat-card-subtitle *ngIf=\"cardSubtitle\">{{\n cardSubtitle\n }}</mat-card-subtitle>\n </mat-card-header>\n <mat-divider *ngIf=\"cardTitle || cardSubtitle\"></mat-divider>\n <mat-card-content>\n <ng-content></ng-content>\n </mat-card-content>\n </mat-card>\n <ng-content select=\"[td-after-card]\"></ng-content>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;z-index:2;width:100%;min-height:100%;height:100%}:host [td-after-card]{display:block}.td-layout-card-over-wrapper{margin:-64px 0;width:100%;min-height:100%;height:100%}@media (min-width: 600px){.td-layout-card-over-wrapper{flex-direction:row;box-sizing:border-box;display:flex;align-items:flex-start;align-content:flex-start;justify-content:center}.td-layout-card-over-wrapper .td-layout-card-over{max-height:100%;box-sizing:border-box}}@media (max-width: 599px){.td-layout-card-over-wrapper .td-layout-card-over{max-width:100%!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i3$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i4$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
606}
607i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutCardOverComponent, decorators: [{
608 type: Component,
609 args: [{ selector: 'td-layout-card-over', template: "<mat-toolbar class=\"td-layout-toolbar\" [color]=\"color\"></mat-toolbar>\n<div class=\"td-layout-card-over-wrapper\">\n <div\n class=\"td-layout-card-over\"\n [style.max-width.%]=\"cardWidth\"\n [style.flex]=\"'1 1 ' + cardWidth + '%'\"\n [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\"\n [style.-webkit-box-flex]=\"1\"\n >\n <mat-card>\n <mat-card-header>\n <mat-card-title *ngIf=\"cardTitle\">{{ cardTitle }}</mat-card-title>\n <mat-card-subtitle *ngIf=\"cardSubtitle\">{{\n cardSubtitle\n }}</mat-card-subtitle>\n </mat-card-header>\n <mat-divider *ngIf=\"cardTitle || cardSubtitle\"></mat-divider>\n <mat-card-content>\n <ng-content></ng-content>\n </mat-card-content>\n </mat-card>\n <ng-content select=\"[td-after-card]\"></ng-content>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;z-index:2;width:100%;min-height:100%;height:100%}:host [td-after-card]{display:block}.td-layout-card-over-wrapper{margin:-64px 0;width:100%;min-height:100%;height:100%}@media (min-width: 600px){.td-layout-card-over-wrapper{flex-direction:row;box-sizing:border-box;display:flex;align-items:flex-start;align-content:flex-start;justify-content:center}.td-layout-card-over-wrapper .td-layout-card-over{max-height:100%;box-sizing:border-box}}@media (max-width: 599px){.td-layout-card-over-wrapper .td-layout-card-over{max-width:100%!important}}\n"] }]
610 }], propDecorators: { cardTitle: [{
611 type: Input
612 }], cardSubtitle: [{
613 type: Input
614 }], cardWidth: [{
615 type: Input
616 }], color: [{
617 type: Input
618 }] } });
619
620class TdLayoutManageListComponent {
621 sidenav;
622 /**
623 * mode?: 'side', 'push' or 'over'
624 *
625 * The mode or styling of the sidenav.
626 * Defaults to "side".
627 * See "MatSidenav" documentation for more info.
628 *
629 * https://github.com/angular/material2/tree/main/src/lib/sidenav
630 */
631 mode = 'side';
632 /**
633 * opened?: boolean
634 *
635 * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.
636 * Defaults to "true".
637 *
638 * See "MatSidenav" documentation for more info.
639 *
640 * https://github.com/angular/material2/tree/main/src/lib/sidenav
641 */
642 opened = true;
643 /**
644 * sidenavWidth?: string
645 *
646 * Sets the "width" of the sidenav in either "px" or "%"
647 * Defaults to "257px".
648 *
649 * https://github.com/angular/material2/tree/main/src/lib/sidenav
650 */
651 sidenavWidth = '257px';
652 /**
653 * containerAutosize?: boolean
654 *
655 * Sets "autosize" of the sidenav-container.
656 * Defaults to "false".
657 *
658 * See documentation for more info and potential performance risks.
659 *
660 * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
661 */
662 containerAutosize = false;
663 /**
664 * Checks if `ESC` should close the sidenav
665 * Should only close it for `push` and `over` modes
666 */
667 get disableClose() {
668 return this.mode === 'side';
669 }
670 /**
671 * Proxy toggle method to access sidenav from outside (from td-layout template).
672 */
673 toggle() {
674 return this.sidenav.toggle(!this.sidenav.opened);
675 }
676 /**
677 * Proxy open method to access sidenav from outside (from td-layout template).
678 */
679 open() {
680 return this.sidenav.open();
681 }
682 /**
683 * Proxy close method to access sidenav from outside (from td-layout template).
684 */
685 close() {
686 return this.sidenav.close();
687 }
688 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
689 static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutManageListComponent, selector: "td-layout-manage-list", inputs: { mode: "mode", opened: "opened", sidenavWidth: "sidenavWidth", containerAutosize: "containerAutosize" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container\n fullscreen\n [autosize]=\"containerAutosize\"\n class=\"td-layout-manage-list\"\n>\n <mat-sidenav\n #sidenav\n position=\"start\"\n [mode]=\"mode\"\n [opened]=\"opened\"\n [disableClose]=\"disableClose\"\n [style.max-width]=\"sidenavWidth\"\n [style.min-width]=\"sidenavWidth\"\n >\n <ng-content select=\"mat-toolbar[td-sidenav-content]\"></ng-content>\n <div class=\"td-layout-manage-list-sidenav\" cdkScrollable>\n <ng-content select=\"[td-sidenav-content]\"></ng-content>\n </div>\n </mat-sidenav>\n <div class=\"td-layout-manage-list-main\">\n <ng-content select=\"mat-toolbar\"></ng-content>\n <div class=\"td-layout-manage-list-content\" cdkScrollable>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"td-layout-footer-inner\"></ng-content>\n </div>\n</mat-sidenav-container>\n", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host mat-sidenav-container.td-layout-manage-list{flex:1}:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-opened,:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-opening,:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-closed,:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-closing{box-shadow:0 1px 3px #0003}:host .td-layout-manage-list-sidenav{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .td-layout-manage-list-main{margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto;flex-direction:column;box-sizing:border-box;display:flex}:host .td-layout-manage-list-main .td-layout-manage-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host ::ng-deep mat-sidenav-container.td-layout-manage-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep mat-nav-list a[mat-list-item] .mat-list-item-content{font-size:14px}:host ::ng-deep .mat-toolbar{font-weight:400}\n"], dependencies: [{ kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }] });
690}
691i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListComponent, decorators: [{
692 type: Component,
693 args: [{ selector: 'td-layout-manage-list', template: "<mat-sidenav-container\n fullscreen\n [autosize]=\"containerAutosize\"\n class=\"td-layout-manage-list\"\n>\n <mat-sidenav\n #sidenav\n position=\"start\"\n [mode]=\"mode\"\n [opened]=\"opened\"\n [disableClose]=\"disableClose\"\n [style.max-width]=\"sidenavWidth\"\n [style.min-width]=\"sidenavWidth\"\n >\n <ng-content select=\"mat-toolbar[td-sidenav-content]\"></ng-content>\n <div class=\"td-layout-manage-list-sidenav\" cdkScrollable>\n <ng-content select=\"[td-sidenav-content]\"></ng-content>\n </div>\n </mat-sidenav>\n <div class=\"td-layout-manage-list-main\">\n <ng-content select=\"mat-toolbar\"></ng-content>\n <div class=\"td-layout-manage-list-content\" cdkScrollable>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"td-layout-footer-inner\"></ng-content>\n </div>\n</mat-sidenav-container>\n", styles: [":host{display:flex;margin:0;width:100%;min-height:100%;height:100%;overflow:hidden}:host mat-sidenav-container.td-layout-manage-list{flex:1}:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-opened,:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-opening,:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-closed,:host mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container.mat-drawer-closing{box-shadow:0 1px 3px #0003}:host .td-layout-manage-list-sidenav{text-align:start;flex:1;display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}:host .td-layout-manage-list-main{margin:0;width:100%;min-height:100%;height:100%;position:relative;overflow:auto;flex-direction:column;box-sizing:border-box;display:flex}:host .td-layout-manage-list-main .td-layout-manage-list-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch;flex:1}:host ::ng-deep mat-sidenav-container.td-layout-manage-list>.mat-drawer-content{flex-grow:1}:host ::ng-deep mat-sidenav-container.td-layout-manage-list>.mat-drawer>.mat-drawer-inner-container{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep mat-nav-list a[mat-list-item] .mat-list-item-content{font-size:14px}:host ::ng-deep .mat-toolbar{font-weight:400}\n"] }]
694 }], propDecorators: { sidenav: [{
695 type: ViewChild,
696 args: [MatSidenav, { static: true }]
697 }], mode: [{
698 type: Input
699 }], opened: [{
700 type: Input
701 }], sidenavWidth: [{
702 type: Input
703 }], containerAutosize: [{
704 type: Input
705 }] } });
706
707class TdLayoutManageListToggleDirective extends BaseLayoutToggleDirective {
708 set tdLayoutManageListToggle(tdLayoutManageListToggle) {
709 this.disabled = !(tdLayoutManageListToggle === '' || tdLayoutManageListToggle);
710 }
711 constructor(layout, renderer, elementRef) {
712 super(layout, renderer, elementRef);
713 }
714 onClick() {
715 this._layout.toggle();
716 }
717 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListToggleDirective, deps: [{ token: forwardRef(() => TdLayoutManageListComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
718 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutManageListToggleDirective, selector: "[tdLayoutManageListToggle]", inputs: { tdLayoutManageListToggle: "tdLayoutManageListToggle" }, usesInheritance: true, ngImport: i0 });
719}
720i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListToggleDirective, decorators: [{
721 type: Directive,
722 args: [{
723 selector: '[tdLayoutManageListToggle]',
724 }]
725 }], ctorParameters: () => [{ type: TdLayoutManageListComponent, decorators: [{
726 type: Optional
727 }, {
728 type: Inject,
729 args: [forwardRef(() => TdLayoutManageListComponent)]
730 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutManageListToggle: [{
731 type: Input
732 }] } });
733class TdLayoutManageListCloseDirective extends BaseLayoutToggleDirective {
734 set tdLayoutManageListClose(tdLayoutManageListClose) {
735 this.disabled = !(tdLayoutManageListClose === '' || tdLayoutManageListClose);
736 }
737 constructor(layout, renderer, elementRef) {
738 super(layout, renderer, elementRef);
739 }
740 onClick() {
741 this._layout.close();
742 }
743 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListCloseDirective, deps: [{ token: forwardRef(() => TdLayoutManageListComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
744 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutManageListCloseDirective, selector: "[tdLayoutManageListClose]", inputs: { tdLayoutManageListClose: "tdLayoutManageListClose" }, usesInheritance: true, ngImport: i0 });
745}
746i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListCloseDirective, decorators: [{
747 type: Directive,
748 args: [{
749 selector: '[tdLayoutManageListClose]',
750 }]
751 }], ctorParameters: () => [{ type: TdLayoutManageListComponent, decorators: [{
752 type: Optional
753 }, {
754 type: Inject,
755 args: [forwardRef(() => TdLayoutManageListComponent)]
756 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutManageListClose: [{
757 type: Input
758 }] } });
759class TdLayoutManageListOpenDirective extends BaseLayoutToggleDirective {
760 set tdLayoutManageListOpen(tdLayoutManageListOpen) {
761 this.disabled = !(tdLayoutManageListOpen === '' || tdLayoutManageListOpen);
762 }
763 constructor(layout, renderer, elementRef) {
764 super(layout, renderer, elementRef);
765 }
766 onClick() {
767 this._layout.open();
768 }
769 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListOpenDirective, deps: [{ token: forwardRef(() => TdLayoutManageListComponent), optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
770 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutManageListOpenDirective, selector: "[tdLayoutManageListOpen]", inputs: { tdLayoutManageListOpen: "tdLayoutManageListOpen" }, usesInheritance: true, ngImport: i0 });
771}
772i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutManageListOpenDirective, decorators: [{
773 type: Directive,
774 args: [{
775 selector: '[tdLayoutManageListOpen]',
776 }]
777 }], ctorParameters: () => [{ type: TdLayoutManageListComponent, decorators: [{
778 type: Optional
779 }, {
780 type: Inject,
781 args: [forwardRef(() => TdLayoutManageListComponent)]
782 }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tdLayoutManageListOpen: [{
783 type: Input
784 }] } });
785
786class TdLayoutFooterComponent {
787 _renderer;
788 _elementRef;
789 _color;
790 /**
791 * color?: 'accent' | 'primary' | 'warn'
792 *
793 * Optional color option: primary | accent | warn.
794 */
795 set color(color) {
796 if (color) {
797 this._renderer.removeClass(this._elementRef.nativeElement, 'mat-' + this._color);
798 this._color = color;
799 this._renderer.addClass(this._elementRef.nativeElement, 'mat-' + this._color);
800 }
801 }
802 get color() {
803 return this._color;
804 }
805 constructor(_renderer, _elementRef) {
806 this._renderer = _renderer;
807 this._elementRef = _elementRef;
808 this._renderer.addClass(this._elementRef.nativeElement, 'td-layout-footer');
809 }
810 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutFooterComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
811 static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TdLayoutFooterComponent, selector: "td-layout-footer,td-layout-footer-inner", inputs: { color: "color" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block;padding:10px 16px}\n"] });
812}
813i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdLayoutFooterComponent, decorators: [{
814 type: Component,
815 args: [{ selector: 'td-layout-footer,td-layout-footer-inner', template: "<ng-content></ng-content>\n", styles: [":host{display:block;padding:10px 16px}\n"] }]
816 }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { color: [{
817 type: Input
818 }] } });
819
820class TdNavigationDrawerMenuDirective {
821 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdNavigationDrawerMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
822 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdNavigationDrawerMenuDirective, selector: "[tdNavigationDrawerMenu]", ngImport: i0 });
823}
824i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdNavigationDrawerMenuDirective, decorators: [{
825 type: Directive,
826 args: [{
827 selector: '[tdNavigationDrawerMenu]',
828 }]
829 }] });
830class TdNavigationDrawerToolbarDirective {
831 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdNavigationDrawerToolbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
832 static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdNavigationDrawerToolbarDirective, selector: "[tdNavigationDrawerToolbar]", ngImport: i0 });
833}
834i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdNavigationDrawerToolbarDirective, decorators: [{
835 type: Directive,
836 args: [{
837 selector: '[tdNavigationDrawerToolbar]',
838 }]
839 }] });
840class TdNavigationDrawerComponent {
841 _layout;
842 _router;
843 _sanitize;
844 _menuToggled = false;
845 _backgroundImage;
846 _destroy$ = new Subject();
847 get menuToggled() {
848 return this._menuToggled;
849 }
850 _drawerMenu;
851 _toolbar;
852 /**
853 * Checks if there is a [TdNavigationDrawerMenuDirective] has content.
854 */
855 get isMenuAvailable() {
856 return this._drawerMenu ? this._drawerMenu.length > 0 : false;
857 }
858 /**
859 * Checks if there is a [TdNavigationDrawerToolbarDirective] has content.
860 */
861 get isCustomToolbar() {
862 return this._toolbar ? this._toolbar.length > 0 : false;
863 }
864 /**
865 * Checks if there is a background image for the toolbar.
866 */
867 get isBackgroundAvailable() {
868 return !!this._backgroundImage;
869 }
870 /**
871 * sidenavTitle?: string
872 * Title set in sideNav.
873 */
874 sidenavTitle;
875 /**
876 * icon?: string
877 *
878 * icon name to be displayed before the title
879 */
880 icon;
881 /**
882 * logo?: string
883 *
884 * logo icon name to be displayed before the title.
885 * If [icon] is set, then this will not be shown.
886 */
887 logo;
888 /**
889 * avatar?: string
890 *
891 * avatar url to be displayed before the title
892 * If [icon] or [logo] are set, then this will not be shown.
893 */
894 avatar;
895 /**
896 * color?: 'accent' | 'primary' | 'warn'
897 *
898 * toolbar color option: primary | accent | warn.
899 * If [color] is not set, default is used.
900 */
901 color;
902 /**
903 * navigationRoute?: string
904 *
905 * option to set the combined route for the icon, logo, and sidenavTitle.
906 */
907 navigationRoute;
908 /**
909 * backgroundUrl?: SafeResourceUrl
910 *
911 * image to be displayed as the background of the toolbar.
912 * URL used will be sanitized, but it should be always from a trusted source to avoid XSS.
913 */
914 set backgroundUrl(backgroundUrl) {
915 if (backgroundUrl) {
916 const sanitizedUrl = this._sanitize.sanitize(SecurityContext.RESOURCE_URL, backgroundUrl);
917 this._backgroundImage = this._sanitize.sanitize(SecurityContext.STYLE, 'url(' + sanitizedUrl + ')');
918 }
919 }
920 get backgroundImage() {
921 return this._backgroundImage;
922 }
923 /**
924 * name?: string
925 *
926 * string to be displayed as part of the navigation drawer sublabel.
927 * if [email] is not set, then [name] will be the toggle menu text.
928 */
929 name;
930 /**
931 * email?: string
932 *
933 * string to be displayed as part of the navigation drawer sublabel in the [toggle] menu text.
934 * if [email] and [name] are not set, then the toggle menu is not rendered.
935 */
936 email;
937 /**
938 * Checks if router was injected.
939 */
940 get routerEnabled() {
941 return !!this._router && !!this.navigationRoute;
942 }
943 constructor(_layout, _router, _sanitize) {
944 this._layout = _layout;
945 this._router = _router;
946 this._sanitize = _sanitize;
947 }
948 ngOnInit() {
949 this._layout.sidenav.openedChange
950 .pipe(takeUntil(this._destroy$))
951 .subscribe((opened) => {
952 if (!opened) {
953 this._menuToggled = false;
954 }
955 });
956 }
957 ngOnDestroy() {
958 this._destroy$.next();
959 }
960 toggleMenu() {
961 if (this.isMenuAvailable) {
962 this._menuToggled = !this._menuToggled;
963 }
964 }
965 handleNavigationClick() {
966 if (this.routerEnabled && this.navigationRoute) {
967 this._router.navigateByUrl(this.navigationRoute);
968 this.close();
969 }
970 }
971 /**
972 * Proxy toggle method to access sidenav from outside (from td-layout template).
973 */
974 toggle() {
975 return this._layout.toggle();
976 }
977 /**
978 * Proxy open method to access sidenav from outside (from td-layout template).
979 */
980 open() {
981 return this._layout.open();
982 }
983 /**
984 * Proxy close method to access sidenav from outside (from td-layout template).
985 */
986 close() {
987 return this._layout.close();
988 }
989 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdNavigationDrawerComponent, deps: [{ token: forwardRef(() => TdLayoutComponent) }, { token: i1$1.Router, optional: true }, { token: i2$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
990 static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TdNavigationDrawerComponent, selector: "td-navigation-drawer", inputs: { sidenavTitle: "sidenavTitle", icon: "icon", logo: "logo", avatar: "avatar", color: "color", navigationRoute: "navigationRoute", backgroundUrl: "backgroundUrl", name: "name", email: "email" }, queries: [{ propertyName: "_drawerMenu", predicate: TdNavigationDrawerMenuDirective, descendants: true }, { propertyName: "_toolbar", predicate: TdNavigationDrawerToolbarDirective, descendants: true }], ngImport: i0, template: "<mat-toolbar\n [color]=\"color\"\n [style.background-image]=\"backgroundImage\"\n [class.td-toolbar-background]=\"!!isBackgroundAvailable\"\n class=\"td-nagivation-drawer-toolbar\"\n>\n <ng-content select=\"[td-navigation-drawer-toolbar]\"></ng-content>\n <ng-container *ngIf=\"!isCustomToolbar\">\n <div\n *ngIf=\"icon || logo || sidenavTitle || avatar\"\n class=\"td-navigation-drawer-toolbar-content\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <img\n *ngIf=\"avatar && !logo && !icon\"\n class=\"td-nagivation-drawer-toolbar-avatar\"\n [attr.src]=\"avatar\"\n />\n <span *ngIf=\"sidenavTitle\" class=\"td-navigation-drawer-title\">{{\n sidenavTitle\n }}</span>\n </div>\n <div class=\"td-navigation-drawer-name\" *ngIf=\"email && name\">\n {{ name }}\n </div>\n <div\n class=\"td-navigation-drawer-menu-toggle\"\n href\n *ngIf=\"email || name\"\n (click)=\"toggleMenu()\"\n >\n <span class=\"td-navigation-drawer-label\">{{ email || name }}</span>\n <button\n mat-icon-button\n class=\"td-navigation-drawer-menu-button\"\n *ngIf=\"isMenuAvailable\"\n >\n <mat-icon *ngIf=\"!menuToggled\">arrow_drop_down</mat-icon>\n <mat-icon *ngIf=\"menuToggled\">arrow_drop_up</mat-icon>\n </button>\n </div>\n </ng-container>\n</mat-toolbar>\n<div class=\"td-navigation-drawer-content\" [@tdCollapse]=\"menuToggled\">\n <ng-content></ng-content>\n</div>\n<div class=\"td-navigation-drawer-menu-content\" [@tdCollapse]=\"!menuToggled\">\n <ng-content select=\"[td-navigation-drawer-menu]\"></ng-content>\n</div>\n", styles: [":host{width:100%}:host .td-navigation-drawer-content.ng-animating,:host .td-navigation-drawer-menu-content.ng-animating{overflow:hidden}:host mat-toolbar{padding:16px}:host mat-toolbar.td-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.td-nagivation-drawer-toolbar{flex-direction:column;height:auto!important;display:block!important}:host mat-toolbar .td-navigation-drawer-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-nagivation-drawer-toolbar-avatar{border-radius:50%;height:60px;width:60px;margin:0 12px 12px 0}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-navigation-drawer-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-menu-button{width:24px;height:24px;padding:0}:host>div{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [tdCollapseAnimation] });
991}
992i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdNavigationDrawerComponent, decorators: [{
993 type: Component,
994 args: [{ selector: 'td-navigation-drawer', animations: [tdCollapseAnimation], template: "<mat-toolbar\n [color]=\"color\"\n [style.background-image]=\"backgroundImage\"\n [class.td-toolbar-background]=\"!!isBackgroundAvailable\"\n class=\"td-nagivation-drawer-toolbar\"\n>\n <ng-content select=\"[td-navigation-drawer-toolbar]\"></ng-content>\n <ng-container *ngIf=\"!isCustomToolbar\">\n <div\n *ngIf=\"icon || logo || sidenavTitle || avatar\"\n class=\"td-navigation-drawer-toolbar-content\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <img\n *ngIf=\"avatar && !logo && !icon\"\n class=\"td-nagivation-drawer-toolbar-avatar\"\n [attr.src]=\"avatar\"\n />\n <span *ngIf=\"sidenavTitle\" class=\"td-navigation-drawer-title\">{{\n sidenavTitle\n }}</span>\n </div>\n <div class=\"td-navigation-drawer-name\" *ngIf=\"email && name\">\n {{ name }}\n </div>\n <div\n class=\"td-navigation-drawer-menu-toggle\"\n href\n *ngIf=\"email || name\"\n (click)=\"toggleMenu()\"\n >\n <span class=\"td-navigation-drawer-label\">{{ email || name }}</span>\n <button\n mat-icon-button\n class=\"td-navigation-drawer-menu-button\"\n *ngIf=\"isMenuAvailable\"\n >\n <mat-icon *ngIf=\"!menuToggled\">arrow_drop_down</mat-icon>\n <mat-icon *ngIf=\"menuToggled\">arrow_drop_up</mat-icon>\n </button>\n </div>\n </ng-container>\n</mat-toolbar>\n<div class=\"td-navigation-drawer-content\" [@tdCollapse]=\"menuToggled\">\n <ng-content></ng-content>\n</div>\n<div class=\"td-navigation-drawer-menu-content\" [@tdCollapse]=\"!menuToggled\">\n <ng-content select=\"[td-navigation-drawer-menu]\"></ng-content>\n</div>\n", styles: [":host{width:100%}:host .td-navigation-drawer-content.ng-animating,:host .td-navigation-drawer-menu-content.ng-animating{overflow:hidden}:host mat-toolbar{padding:16px}:host mat-toolbar.td-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.td-nagivation-drawer-toolbar{flex-direction:column;height:auto!important;display:block!important}:host mat-toolbar .td-navigation-drawer-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-nagivation-drawer-toolbar-avatar{border-radius:50%;height:60px;width:60px;margin:0 12px 12px 0}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-navigation-drawer-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-menu-button{width:24px;height:24px;padding:0}:host>div{overflow:hidden}\n"] }]
995 }], ctorParameters: () => [{ type: TdLayoutComponent, decorators: [{
996 type: Inject,
997 args: [forwardRef(() => TdLayoutComponent)]
998 }] }, { type: i1$1.Router, decorators: [{
999 type: Optional
1000 }] }, { type: i2$1.DomSanitizer }], propDecorators: { _drawerMenu: [{
1001 type: ContentChildren,
1002 args: [TdNavigationDrawerMenuDirective, { descendants: true }]
1003 }], _toolbar: [{
1004 type: ContentChildren,
1005 args: [TdNavigationDrawerToolbarDirective, { descendants: true }]
1006 }], sidenavTitle: [{
1007 type: Input
1008 }], icon: [{
1009 type: Input
1010 }], logo: [{
1011 type: Input
1012 }], avatar: [{
1013 type: Input
1014 }], color: [{
1015 type: Input
1016 }], navigationRoute: [{
1017 type: Input
1018 }], backgroundUrl: [{
1019 type: Input
1020 }], name: [{
1021 type: Input
1022 }], email: [{
1023 type: Input
1024 }] } });
1025
1026const TD_LAYOUTS = [
1027 TdLayoutComponent,
1028 TdLayoutToggleDirective,
1029 TdLayoutCloseDirective,
1030 TdLayoutOpenDirective,
1031 TdLayoutNavComponent,
1032 TdLayoutNavListComponent,
1033 TdLayoutNavListToggleDirective,
1034 TdLayoutNavListCloseDirective,
1035 TdLayoutNavListOpenDirective,
1036 TdLayoutCardOverComponent,
1037 TdLayoutManageListComponent,
1038 TdLayoutManageListToggleDirective,
1039 TdLayoutManageListCloseDirective,
1040 TdLayoutManageListOpenDirective,
1041 TdLayoutFooterComponent,
1042 TdNavigationDrawerComponent,
1043 TdNavigationDrawerMenuDirective,
1044 TdNavigationDrawerToolbarDirective,
1045];
1046class CovalentLayoutModule {
1047 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CovalentLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1048 static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: CovalentLayoutModule, declarations: [TdLayoutComponent,
1049 TdLayoutToggleDirective,
1050 TdLayoutCloseDirective,
1051 TdLayoutOpenDirective,
1052 TdLayoutNavComponent,
1053 TdLayoutNavListComponent,
1054 TdLayoutNavListToggleDirective,
1055 TdLayoutNavListCloseDirective,
1056 TdLayoutNavListOpenDirective,
1057 TdLayoutCardOverComponent,
1058 TdLayoutManageListComponent,
1059 TdLayoutManageListToggleDirective,
1060 TdLayoutManageListCloseDirective,
1061 TdLayoutManageListOpenDirective,
1062 TdLayoutFooterComponent,
1063 TdNavigationDrawerComponent,
1064 TdNavigationDrawerMenuDirective,
1065 TdNavigationDrawerToolbarDirective], imports: [CommonModule,
1066 ScrollingModule,
1067 MatSidenavModule,
1068 MatToolbarModule,
1069 MatButtonModule,
1070 MatIconModule,
1071 MatCardModule,
1072 MatDividerModule,
1073 CovalentMenuModule], exports: [TdLayoutComponent,
1074 TdLayoutToggleDirective,
1075 TdLayoutCloseDirective,
1076 TdLayoutOpenDirective,
1077 TdLayoutNavComponent,
1078 TdLayoutNavListComponent,
1079 TdLayoutNavListToggleDirective,
1080 TdLayoutNavListCloseDirective,
1081 TdLayoutNavListOpenDirective,
1082 TdLayoutCardOverComponent,
1083 TdLayoutManageListComponent,
1084 TdLayoutManageListToggleDirective,
1085 TdLayoutManageListCloseDirective,
1086 TdLayoutManageListOpenDirective,
1087 TdLayoutFooterComponent,
1088 TdNavigationDrawerComponent,
1089 TdNavigationDrawerMenuDirective,
1090 TdNavigationDrawerToolbarDirective] });
1091 static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CovalentLayoutModule, imports: [CommonModule,
1092 ScrollingModule,
1093 MatSidenavModule,
1094 MatToolbarModule,
1095 MatButtonModule,
1096 MatIconModule,
1097 MatCardModule,
1098 MatDividerModule,
1099 CovalentMenuModule] });
1100}
1101i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CovalentLayoutModule, decorators: [{
1102 type: NgModule,
1103 args: [{
1104 imports: [
1105 CommonModule,
1106 ScrollingModule,
1107 MatSidenavModule,
1108 MatToolbarModule,
1109 MatButtonModule,
1110 MatIconModule,
1111 MatCardModule,
1112 MatDividerModule,
1113 CovalentMenuModule,
1114 ],
1115 declarations: [...TD_LAYOUTS],
1116 exports: [...TD_LAYOUTS],
1117 }]
1118 }] });
1119
1120/**
1121 * Generated bundle index. Do not edit.
1122 */
1123
1124export { BaseLayoutToggleDirective, CovalentLayoutModule, LayoutToggleBase, TdLayoutCardOverComponent, TdLayoutCloseDirective, TdLayoutComponent, TdLayoutFooterComponent, TdLayoutManageListCloseDirective, TdLayoutManageListComponent, TdLayoutManageListOpenDirective, TdLayoutManageListToggleDirective, TdLayoutNavComponent, TdLayoutNavListCloseDirective, TdLayoutNavListComponent, TdLayoutNavListOpenDirective, TdLayoutNavListToggleDirective, TdLayoutOpenDirective, TdLayoutToggleDirective, TdNavigationDrawerComponent, TdNavigationDrawerMenuDirective, TdNavigationDrawerToolbarDirective, _TdLayoutToggleMixinBase };
1125//# sourceMappingURL=covalent-core-layout.mjs.map