@covalent/core
Version:
Core Teradata UI Platform for layouts, icons, custom components and themes. This should be added as a dependency for any project that wants to use layouts, icons and themes for Angular Material.
1 lines • 76.1 kB
Source Map (JSON)
{"version":3,"file":"covalent-core-layout.mjs","sources":["../../../../libs/angular/layout/src/layout.component.ts","../../../../libs/angular/layout/src/layout.component.html","../../../../libs/angular/layout/src/layout-toggle.class.ts","../../../../libs/angular/layout/src/layout.directives.ts","../../../../libs/angular/layout/src/layout-nav/layout-nav.component.html","../../../../libs/angular/layout/src/layout-nav/layout-nav.component.ts","../../../../libs/angular/layout/src/layout-nav-list/layout-nav-list.component.html","../../../../libs/angular/layout/src/layout-nav-list/layout-nav-list.component.ts","../../../../libs/angular/layout/src/layout-nav-list/layout-nav-list.directives.ts","../../../../libs/angular/layout/src/layout-card-over/layout-card-over.component.html","../../../../libs/angular/layout/src/layout-card-over/layout-card-over.component.ts","../../../../libs/angular/layout/src/layout-manage-list/layout-manage-list.component.ts","../../../../libs/angular/layout/src/layout-manage-list/layout-manage-list.component.html","../../../../libs/angular/layout/src/layout-manage-list/layout-manage-list.directives.ts","../../../../libs/angular/layout/src/layout-footer/layout-footer.component.ts","../../../../libs/angular/layout/src/layout-footer/layout-footer.component.html","../../../../libs/angular/layout/src/navigation-drawer/navigation-drawer.component.html","../../../../libs/angular/layout/src/navigation-drawer/navigation-drawer.component.ts","../../../../libs/angular/layout/src/layout.module.ts","../../../../libs/angular/layout/src/covalent-core-layout.ts"],"sourcesContent":["import { Component, Input, ViewChild } from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult, MatSidenavContainer } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from './layout-toggle.class';\n\n@Component({\n selector: 'td-layout',\n styleUrls: ['./layout.component.scss'],\n templateUrl: './layout.component.html',\n imports: [MatSidenav, MatSidenavContainer],\n})\nexport class TdLayoutComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav!: MatSidenav;\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"over\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'over';\n\n /**\n * opened?: boolean\n *\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"false\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() opened = false;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"320px\".\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() sidenavWidth = '320px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize = false;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","<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","import {\n Input,\n HostListener,\n Renderer2,\n ElementRef,\n AfterViewInit,\n OnDestroy,\n Directive,\n} from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ICanDisable, mixinDisabled } from '@covalent/core/common';\n\nimport { Subscription } from 'rxjs';\n\nexport interface ILayoutTogglable {\n opened: boolean;\n sidenav: MatSidenav;\n toggle(): Promise<MatDrawerToggleResult>;\n open(): Promise<MatDrawerToggleResult>;\n close(): Promise<MatDrawerToggleResult>;\n}\n\nexport class LayoutToggleBase {}\n\n/* tslint:disable-next-line */\nexport const _TdLayoutToggleMixinBase = mixinDisabled(LayoutToggleBase);\n\n@Directive()\nexport abstract class BaseLayoutToggleDirective\n extends _TdLayoutToggleMixinBase\n implements AfterViewInit, OnDestroy, ICanDisable\n{\n private _toggleSubs?: Subscription;\n\n private _initialized = false;\n private _hideWhenOpened = false;\n\n /**\n * hideWhenOpened?: boolean\n * When this is set to true, the host will be hidden when\n * the sidenav is opened.\n */\n @Input()\n set hideWhenOpened(hideWhenOpened: boolean) {\n this._hideWhenOpened = hideWhenOpened;\n if (this._initialized) {\n this._toggleVisibility();\n }\n }\n\n constructor(\n protected _layout: ILayoutTogglable,\n private _renderer: Renderer2,\n private _elementRef: ElementRef\n ) {\n super();\n // if layout has not been provided\n // show warn message\n if (!this._layout) {\n this._noLayoutMessage();\n }\n this._renderer.addClass(\n this._elementRef.nativeElement,\n 'td-layout-menu-button'\n );\n }\n\n ngAfterViewInit(): void {\n this._initialized = true;\n if (this._layout && this._layout.sidenav) {\n this._toggleSubs = this._layout.sidenav._animationStarted.subscribe(\n () => {\n this._toggleVisibility();\n }\n );\n }\n // execute toggleVisibility since the onOpenStart and onCloseStart\n // methods might not be executed always when the element is rendered\n this._toggleVisibility();\n }\n\n ngOnDestroy(): void {\n if (this._toggleSubs) {\n this._toggleSubs.unsubscribe();\n this._toggleSubs = undefined;\n }\n }\n\n /**\n * Listens to host click event to trigger the layout toggle\n */\n @HostListener('click', ['$event'])\n clickListener(event: Event): void {\n event.preventDefault();\n if (!this.disabled) {\n // if layout has been provided, try triggering the click on it\n // else show warn message\n if (this._layout) {\n this.onClick();\n } else {\n this._noLayoutMessage();\n }\n }\n }\n\n abstract onClick(): void;\n\n private _toggleVisibility(): void {\n if (this._layout) {\n if (this._layout.sidenav.opened && this._hideWhenOpened) {\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'display',\n 'none'\n );\n } else {\n this._renderer.setStyle(this._elementRef.nativeElement, 'display', '');\n }\n }\n }\n\n private _noLayoutMessage(): void {\n /* tslint:disable-next-line */\n console.warn(\n 'Covalent: Parent layout not found for layout toggle directive'\n );\n }\n}\n","import {\n Optional,\n Directive,\n Input,\n Renderer2,\n ElementRef,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { TdLayoutComponent } from './layout.component';\nimport { BaseLayoutToggleDirective } from './layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutToggle]',\n})\nexport class TdLayoutToggleDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutToggle(tdLayoutToggle: boolean | string) {\n this.disabled = !(<any>tdLayoutToggle === '' || tdLayoutToggle);\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutComponent))\n layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutClose]',\n})\nexport class TdLayoutCloseDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutClose(tdLayoutClose: boolean | string | undefined) {\n this.disabled = !(<any>tdLayoutClose === '' || tdLayoutClose);\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutComponent))\n layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutOpen]',\n})\nexport class TdLayoutOpenDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutOpen')\n set tdLayoutClose(tdLayoutOpen: boolean) {\n this.disabled = !(<any>tdLayoutOpen === '' || tdLayoutOpen);\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutComponent))\n layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { Component, Input, Optional } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'td-layout-nav',\n styleUrls: ['./layout-nav.component.scss'],\n templateUrl: './layout-nav.component.html',\n imports: [CommonModule, MatToolbar, MatIcon],\n})\nexport class TdLayoutNavComponent {\n /**\n * toolbarTitle?: string\n *\n * Title set in toolbar.\n */\n @Input() toolbarTitle?: string;\n\n /**\n * icon?: string\n *\n * icon name to be displayed before the title\n */\n @Input() icon?: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo?: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color?: 'accent' | 'primary' | 'warn';\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and toolbarTitle.\n */\n @Input() navigationRoute?: string;\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(@Optional() private _router: Router) {}\n\n handleNavigationClick(): void {\n if (this.routerEnabled && this.navigationRoute) {\n this._router.navigateByUrl(this.navigationRoute);\n }\n }\n}\n","<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","import { Component, Input, ViewChild, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { MatSidenav, MatDrawerToggleResult, MatSidenavContainer } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from '../layout-toggle.class';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { MatIcon } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'td-layout-nav-list',\n styleUrls: ['./layout-nav-list.component.scss'],\n templateUrl: './layout-nav-list.component.html',\n imports: [CommonModule, MatSidenav, MatSidenavContainer, MatToolbar, MatIcon],\n\n})\nexport class TdLayoutNavListComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav!: MatSidenav;\n\n /**\n * toolbarTitle?: string\n *\n * Title set in toolbar.\n */\n @Input() toolbarTitle?: string;\n\n /**\n * icon?: string\n * icon name to be displayed before the title\n */\n @Input() icon?: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo?: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color?: 'accent' | 'primary' | 'warn';\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"side\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'side';\n\n /**\n * opened?: boolean\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"true\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() opened = true;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"350px\".\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() sidenavWidth = '350px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize = false;\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and toolbarTitle.\n */\n @Input() navigationRoute?: string;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(@Optional() private _router: Router) {}\n\n handleNavigationClick(): void {\n if (this.routerEnabled && this.navigationRoute) {\n this._router.navigateByUrl(this.navigationRoute);\n }\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","import {\n Optional,\n Directive,\n Input,\n Renderer2,\n ElementRef,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { TdLayoutNavListComponent } from './layout-nav-list.component';\nimport { BaseLayoutToggleDirective } from '../layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutNavListToggle]',\n})\nexport class TdLayoutNavListToggleDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutNavListToggle(tdLayoutNavListToggle: boolean | string) {\n this.disabled = !(\n <any>tdLayoutNavListToggle === '' || tdLayoutNavListToggle\n );\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutNavListComponent))\n layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutNavListClose]',\n})\nexport class TdLayoutNavListCloseDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutNavListClose(tdLayoutNavListClose: boolean) {\n this.disabled = !(<any>tdLayoutNavListClose === '' || tdLayoutNavListClose);\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutNavListComponent))\n layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutNavListOpen]',\n})\nexport class TdLayoutNavListOpenDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutNavListOpen(tdLayoutNavListOpen: boolean | string) {\n this.disabled = !(<any>tdLayoutNavListOpen === '' || tdLayoutNavListOpen);\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutNavListComponent))\n layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","<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","import { Component } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDivider } from '@angular/material/divider';\nimport { CommonModule } from '@angular/common';\n@Component({\n selector: 'td-layout-card-over',\n styleUrls: ['./layout-card-over.component.scss'],\n templateUrl: './layout-card-over.component.html',\n imports: [CommonModule, MatToolbar, MatCardModule, MatDivider],\n})\nexport class TdLayoutCardOverComponent {\n /**\n * cardTitle?: string\n *\n * Title set in card.\n */\n @Input() cardTitle?: string;\n\n /**\n * cardSubtitle?: string\n *\n * Subtitle set in card.\n */\n @Input() cardSubtitle?: string;\n\n /**\n * cardWidth?: string\n *\n * Card flex width in %.\n * Defaults to 70%.\n */\n @Input() cardWidth? = 70;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color?: 'accent' | 'primary' | 'warn';\n}\n","import { Component, Input, ViewChild } from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult, MatSidenavContainer } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from '../layout-toggle.class';\n\n@Component({\n selector: 'td-layout-manage-list',\n styleUrls: ['./layout-manage-list.component.scss'],\n templateUrl: './layout-manage-list.component.html',\n imports: [MatSidenav, MatSidenavContainer],\n})\nexport class TdLayoutManageListComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav!: MatSidenav;\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"side\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'side';\n\n /**\n * opened?: boolean\n *\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"true\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() opened = true;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"257px\".\n *\n * https://github.com/angular/material2/tree/main/src/lib/sidenav\n */\n @Input() sidenavWidth = '257px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize = false;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","<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","import {\n Optional,\n Directive,\n Input,\n Renderer2,\n ElementRef,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { TdLayoutManageListComponent } from './layout-manage-list.component';\nimport { BaseLayoutToggleDirective } from '../layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutManageListToggle]',\n})\nexport class TdLayoutManageListToggleDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutManageListToggle(tdLayoutManageListToggle: boolean | string) {\n this.disabled = !(\n <any>tdLayoutManageListToggle === '' || tdLayoutManageListToggle\n );\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutManageListComponent))\n layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutManageListClose]',\n})\nexport class TdLayoutManageListCloseDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutManageListClose(tdLayoutManageListClose: boolean) {\n this.disabled = !(\n <any>tdLayoutManageListClose === '' || tdLayoutManageListClose\n );\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutManageListComponent))\n layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutManageListOpen]',\n})\nexport class TdLayoutManageListOpenDirective extends BaseLayoutToggleDirective {\n @Input()\n set tdLayoutManageListOpen(tdLayoutManageListOpen: boolean | string) {\n this.disabled = !(\n <any>tdLayoutManageListOpen === '' || tdLayoutManageListOpen\n );\n }\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => TdLayoutManageListComponent))\n layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","import { Component, Input, Renderer2, ElementRef } from '@angular/core';\n\n@Component({\n /* tslint:disable-next-line */\n selector: 'td-layout-footer,td-layout-footer-inner',\n styleUrls: ['./layout-footer.component.scss'],\n templateUrl: './layout-footer.component.html',\n})\nexport class TdLayoutFooterComponent {\n private _color?: 'primary' | 'accent' | 'warn';\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * Optional color option: primary | accent | warn.\n */\n @Input()\n set color(color: 'primary' | 'accent' | 'warn' | undefined) {\n if (color) {\n this._renderer.removeClass(\n this._elementRef.nativeElement,\n 'mat-' + this._color\n );\n this._color = color;\n this._renderer.addClass(\n this._elementRef.nativeElement,\n 'mat-' + this._color\n );\n }\n }\n get color(): 'primary' | 'accent' | 'warn' | undefined {\n return this._color;\n }\n\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef) {\n this._renderer.addClass(this._elementRef.nativeElement, 'td-layout-footer');\n }\n}\n","<ng-content></ng-content>\n","<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","import {\n Component,\n Directive,\n Input,\n ContentChildren,\n OnInit,\n OnDestroy,\n forwardRef,\n Inject,\n QueryList,\n SecurityContext,\n Optional,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SafeStyle, DomSanitizer } from '@angular/platform-browser';\nimport { MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TdLayoutComponent } from '../layout.component';\n\nimport { tdCollapseAnimation } from '@covalent/core/common';\nimport { CommonModule } from '@angular/common';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\n\n@Directive({\n selector: '[tdNavigationDrawerMenu]',\n})\nexport class TdNavigationDrawerMenuDirective {}\n\n@Directive({\n selector: '[tdNavigationDrawerToolbar]',\n})\nexport class TdNavigationDrawerToolbarDirective {}\n\n@Component({\n selector: 'td-navigation-drawer',\n styleUrls: ['./navigation-drawer.component.scss'],\n templateUrl: './navigation-drawer.component.html',\n animations: [tdCollapseAnimation],\n imports: [CommonModule, MatToolbar, MatIcon, MatIconButton],\n})\nexport class TdNavigationDrawerComponent implements OnInit, OnDestroy {\n private _menuToggled = false;\n private _backgroundImage!: SafeStyle | null;\n private _destroy$ = new Subject<void>();\n\n get menuToggled(): boolean {\n return this._menuToggled;\n }\n\n @ContentChildren(TdNavigationDrawerMenuDirective, { descendants: true })\n _drawerMenu!: QueryList<TdNavigationDrawerMenuDirective>;\n\n @ContentChildren(TdNavigationDrawerToolbarDirective, { descendants: true })\n _toolbar!: QueryList<TdNavigationDrawerToolbarDirective>;\n\n /**\n * Checks if there is a [TdNavigationDrawerMenuDirective] has content.\n */\n get isMenuAvailable(): boolean {\n return this._drawerMenu ? this._drawerMenu.length > 0 : false;\n }\n\n /**\n * Checks if there is a [TdNavigationDrawerToolbarDirective] has content.\n */\n get isCustomToolbar(): boolean {\n return this._toolbar ? this._toolbar.length > 0 : false;\n }\n\n /**\n * Checks if there is a background image for the toolbar.\n */\n get isBackgroundAvailable(): boolean {\n return !!this._backgroundImage;\n }\n\n /**\n * sidenavTitle?: string\n * Title set in sideNav.\n */\n @Input() sidenavTitle?: string;\n\n /**\n * icon?: string\n *\n * icon name to be displayed before the title\n */\n @Input() icon?: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo?: string;\n\n /**\n * avatar?: string\n *\n * avatar url to be displayed before the title\n * If [icon] or [logo] are set, then this will not be shown.\n */\n @Input() avatar?: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, default is used.\n */\n @Input() color?: 'accent' | 'primary' | 'warn';\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and sidenavTitle.\n */\n @Input() navigationRoute?: string;\n\n /**\n * backgroundUrl?: SafeResourceUrl\n *\n * image to be displayed as the background of the toolbar.\n * URL used will be sanitized, but it should be always from a trusted source to avoid XSS.\n */\n @Input()\n // TODO Angular complains with warnings if this is type [SafeResourceUrl].. so we will make it <any> until its fixed.\n // https://github.com/webpack/webpack/issues/2977\n set backgroundUrl(backgroundUrl: any) {\n if (backgroundUrl) {\n const sanitizedUrl = this._sanitize.sanitize(\n SecurityContext.RESOURCE_URL,\n backgroundUrl\n );\n this._backgroundImage = this._sanitize.sanitize(\n SecurityContext.STYLE,\n 'url(' + sanitizedUrl + ')'\n );\n }\n }\n get backgroundImage(): SafeStyle | null {\n return this._backgroundImage;\n }\n\n /**\n * name?: string\n *\n * string to be displayed as part of the navigation drawer sublabel.\n * if [email] is not set, then [name] will be the toggle menu text.\n */\n @Input() name?: string;\n\n /**\n * email?: string\n *\n * string to be displayed as part of the navigation drawer sublabel in the [toggle] menu text.\n * if [email] and [name] are not set, then the toggle menu is not rendered.\n */\n @Input() email?: string;\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(\n @Inject(forwardRef(() => TdLayoutComponent))\n private _layout: TdLayoutComponent,\n @Optional() private _router: Router,\n private _sanitize: DomSanitizer\n ) {}\n\n ngOnInit(): void {\n this._layout.sidenav.openedChange\n .pipe(takeUntil(this._destroy$))\n .subscribe((opened: boolean) => {\n if (!opened) {\n this._menuToggled = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n toggleMenu(): void {\n if (this.isMenuAvailable) {\n this._menuToggled = !this._menuToggled;\n }\n }\n\n handleNavigationClick(): void {\n if (this.routerEnabled && this.navigationRoute) {\n this._router.navigateByUrl(this.navigationRoute);\n this.close();\n }\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this._layout.toggle();\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this._layout.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this._layout.close();\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { TdLayoutComponent } from './layout.component';\nimport {\n TdLayoutToggleDirective,\n TdLayoutCloseDirective,\n TdLayoutOpenDirective,\n} from './layout.directives';\nimport { TdLayoutNavComponent } from './layout-nav/layout-nav.component';\nimport { TdLayoutNavListComponent } from './layout-nav-list/layout-nav-list.component';\nimport {\n TdLayoutNavListToggleDirective,\n TdLayoutNavListCloseDirective,\n TdLayoutNavListOpenDirective,\n} from './layout-nav-list/layout-nav-list.directives';\nimport { TdLayoutCardOverComponent } from './layout-card-over/layout-card-over.component';\nimport { TdLayoutManageListComponent } from './layout-manage-list/layout-manage-list.component';\nimport {\n TdLayoutManageListToggleDirective,\n TdLayoutManageListCloseDirective,\n TdLayoutManageListOpenDirective,\n} from './layout-manage-list/layout-manage-list.directives';\nimport { TdLayoutFooterComponent } from './layout-footer/layout-footer.component';\n\nimport {\n TdNavigationDrawerComponent,\n TdNavigationDrawerMenuDirective,\n TdNavigationDrawerToolbarDirective,\n} from './navigation-drawer/navigation-drawer.component';\n\nconst TD_LAYOUTS: Type<any>[] = [\n TdLayoutComponent,\n TdLayoutToggleDirective,\n TdLayoutCloseDirective,\n TdLayoutOpenDirective,\n\n TdLayoutNavComponent,\n\n TdLayoutNavListComponent,\n TdLayoutNavListToggleDirective,\n TdLayoutNavListCloseDirective,\n TdLayoutNavListOpenDirective,\n\n TdLayoutCardOverComponent,\n\n TdLayoutManageListComponent,\n TdLayoutManageListToggleDirective,\n TdLayoutManageListCloseDirective,\n TdLayoutManageListOpenDirective,\n\n TdLayoutFooterComponent,\n\n TdNavigationDrawerComponent,\n TdNavigationDrawerMenuDirective,\n TdNavigationDrawerToolbarDirective,\n];\n\n\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n imports: [...TD_LAYOUTS],\n exports: [...TD_LAYOUTS],\n})\nexport class CovalentLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_c1","i1","_c0","i2","i3"],"mappings":"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