@covalent/core 4.1.1-beta.3 → 4.1.1-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +37 -2
  2. package/breadcrumbs/breadcrumbs.component.d.ts +2 -4
  3. package/common/material-icons.css +1 -0
  4. package/common/material-icons.css.map +1 -0
  5. package/common/platform.css +1 -0
  6. package/common/platform.css.map +1 -0
  7. package/common/styles/_elevation.scss +285 -0
  8. package/common/styles/_layout.scss +605 -0
  9. package/common/styles/_palette-dark.scss +326 -0
  10. package/common/styles/_palette-light.scss +637 -0
  11. package/common/styles/_rtl.scss +31 -0
  12. package/common/styles/_styles.scss +10 -0
  13. package/common/styles/_theme-functions.scss +25 -0
  14. package/common/styles/_typography-functions.scss +43 -0
  15. package/common/styles/_variables.scss +99 -0
  16. package/common/styles/colors/_colors-dark.scss +1399 -0
  17. package/common/styles/colors/_colors-light.scss +3235 -0
  18. package/common/styles/colors/_colors.scss +7 -0
  19. package/common/styles/core/_button.scss +90 -0
  20. package/common/styles/core/_card.scss +189 -0
  21. package/common/styles/core/_content.scss +43 -0
  22. package/common/styles/core/_core.scss +23 -0
  23. package/common/styles/core/_divider.scss +16 -0
  24. package/common/styles/core/_icons.scss +22 -0
  25. package/common/styles/core/_list.scss +8 -0
  26. package/common/styles/core/_sidenav.scss +22 -0
  27. package/common/styles/core/_structure.scss +127 -0
  28. package/common/styles/core/_toolbar.scss +53 -0
  29. package/common/styles/core/_whiteframe.scss +138 -0
  30. package/common/styles/font/MaterialIcons-Regular-v48.woff2 +0 -0
  31. package/common/styles/font/_font.scss +99 -0
  32. package/common/styles/utilities/_general.scss +65 -0
  33. package/common/styles/utilities/_pad.scss +36 -0
  34. package/common/styles/utilities/_pull.scss +36 -0
  35. package/common/styles/utilities/_push.scss +36 -0
  36. package/common/styles/utilities/_size.scss +24 -0
  37. package/common/styles/utilities/_text.scss +105 -0
  38. package/common/styles/utilities/_utilities.scss +15 -0
  39. package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +10 -9
  40. package/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +3 -3
  41. package/esm2020/breadcrumbs/breadcrumbs.component.mjs +8 -12
  42. package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +45 -16
  43. package/esm2020/file/directives/file-drop.directive.mjs +30 -34
  44. package/esm2020/file/file-input/file-input.component.mjs +9 -31
  45. package/esm2020/file/file-upload/file-upload.component.mjs +1 -1
  46. package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +5 -5
  47. package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +5 -5
  48. package/esm2020/layout/layout-toggle.class.mjs +2 -3
  49. package/esm2020/layout/layout.component.mjs +5 -5
  50. package/esm2020/search/search-input/search-input.component.mjs +2 -2
  51. package/esm2020/side-sheet/side-sheet.content-directives.mjs +3 -3
  52. package/fesm2015/covalent-core-breadcrumbs.mjs +9 -13
  53. package/fesm2015/covalent-core-breadcrumbs.mjs.map +1 -1
  54. package/fesm2015/covalent-core-dialogs.mjs +44 -16
  55. package/fesm2015/covalent-core-dialogs.mjs.map +1 -1
  56. package/fesm2015/covalent-core-file.mjs +39 -64
  57. package/fesm2015/covalent-core-file.mjs.map +1 -1
  58. package/fesm2015/covalent-core-layout.mjs +13 -14
  59. package/fesm2015/covalent-core-layout.mjs.map +1 -1
  60. package/fesm2015/covalent-core-search.mjs +1 -1
  61. package/fesm2015/covalent-core-search.mjs.map +1 -1
  62. package/fesm2015/covalent-core-side-sheet.mjs +2 -2
  63. package/fesm2015/covalent-core-side-sheet.mjs.map +1 -1
  64. package/fesm2020/covalent-core-breadcrumbs.mjs +9 -13
  65. package/fesm2020/covalent-core-breadcrumbs.mjs.map +1 -1
  66. package/fesm2020/covalent-core-dialogs.mjs +44 -16
  67. package/fesm2020/covalent-core-dialogs.mjs.map +1 -1
  68. package/fesm2020/covalent-core-file.mjs +38 -63
  69. package/fesm2020/covalent-core-file.mjs.map +1 -1
  70. package/fesm2020/covalent-core-layout.mjs +13 -14
  71. package/fesm2020/covalent-core-layout.mjs.map +1 -1
  72. package/fesm2020/covalent-core-search.mjs +1 -1
  73. package/fesm2020/covalent-core-search.mjs.map +1 -1
  74. package/fesm2020/covalent-core-side-sheet.mjs +2 -2
  75. package/fesm2020/covalent-core-side-sheet.mjs.map +1 -1
  76. package/file/directives/file-drop.directive.d.ts +8 -14
  77. package/file/file-input/file-input.component.d.ts +6 -13
  78. package/layout/README.md +1 -1
  79. package/layout/layout-manage-list/layout-manage-list.component.d.ts +4 -4
  80. package/layout/layout-nav-list/layout-nav-list.component.d.ts +4 -4
  81. package/layout/layout.component.d.ts +4 -4
  82. package/package.json +18 -8
  83. package/theming/prebuilt/blue-grey-deep-orange.css +1 -0
  84. package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -0
  85. package/theming/prebuilt/blue-orange.css +1 -0
  86. package/theming/prebuilt/blue-orange.css.map +1 -0
  87. package/theming/prebuilt/indigo-pink.css +1 -0
  88. package/theming/prebuilt/indigo-pink.css.map +1 -0
  89. package/theming/prebuilt/orange-light-blue.css +1 -0
  90. package/theming/prebuilt/orange-light-blue.css.map +1 -0
  91. package/theming/prebuilt/teal-orange.css +1 -0
  92. package/theming/prebuilt/teal-orange.css.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-search.mjs","sources":["../../../../libs/angular/search/src/search-input/search-input.component.ts","../../../../libs/angular/search/src/search-input/search-input.component.html","../../../../libs/angular/search/src/search-box/search-box.component.ts","../../../../libs/angular/search/src/search-box/search-box.component.html","../../../../libs/angular/search/src/search.module.ts","../../../../libs/angular/search/src/covalent-core-search.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n Input,\n Output,\n EventEmitter,\n Optional,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Dir } from '@angular/cdk/bidi';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { debounceTime, skip } from 'rxjs/operators';\nimport { noop } from 'rxjs';\n\nexport class TdSearchInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchInputComponent),\n multi: true,\n },\n ],\n selector: 'td-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('searchState', [\n state(\n 'hide-left',\n style({\n transform: 'translateX(-150%)',\n display: 'none',\n })\n ),\n state(\n 'hide-right',\n style({\n transform: 'translateX(150%)',\n display: 'none',\n })\n ),\n state(\n 'show',\n style({\n transform: 'translateX(0%)',\n display: 'block',\n })\n ),\n transition('* => show', animate('200ms ease-in')),\n transition('show => *', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchInputComponent implements ControlValueAccessor, OnInit {\n @ViewChild(MatInput, { static: true }) _input?: MatInput;\n\n /**\n * appearance?: MatFormFieldAppearance\n * Appearance style for the underlying input component.\n */\n @Input() appearance: MatFormFieldAppearance = 'outline';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n @Input() value?: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n constructor(\n @Optional() private _dir: Dir,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this._input?.ngControl?.valueChanges\n ?.pipe(\n debounceTime(this.debounce),\n skip(1) // skip first change when value is set to undefined\n )\n .subscribe((value: string) => {\n this._searchTermChanged(value);\n });\n }\n\n writeValue(value: unknown): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n noop;\n }\n\n registerOnTouched(): void {\n noop;\n }\n\n /**\n * Method to focus to underlying input.\n */\n focus(): void {\n this._input?.focus();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n handleSearch(event: Event): void {\n this.stopPropagation(event);\n if (typeof this.value == 'string') {\n this.search.emit(this.value);\n }\n }\n\n /**\n * Method to clear the underlying input.\n */\n clearSearch(): void {\n this.value = '';\n this._changeDetectorRef.markForCheck();\n this.clear.emit();\n }\n\n private _searchTermChanged(value: string): void {\n this.searchDebounce.emit(value);\n }\n}\n","<div class=\"td-search-input\">\n <mat-form-field\n class=\"td-search-input-field\"\n [class.mat-hide-underline]=\"!showUnderline\"\n [appearance]=\"appearance\"\n floatLabel=\"never\"\n >\n <input\n matInput\n #searchElement\n type=\"search\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"handleBlur()\"\n (search)=\"stopPropagation($event)\"\n (keyup.enter)=\"handleSearch($event)\"\n />\n <span\n matSuffix\n *ngIf=\"\n appearance === 'fill' ||\n appearance === 'outline' ||\n appearance === 'standard'\n \"\n >\n <ng-template [ngTemplateOutlet]=\"clearButton\"></ng-template>\n </span>\n </mat-form-field>\n <ng-template\n *ngIf=\"!appearance || appearance === 'legacy'\"\n [ngTemplateOutlet]=\"clearButton\"\n ></ng-template>\n</div>\n<ng-template #clearButton>\n <button\n mat-icon-button\n class=\"td-search-input-clear\"\n type=\"button\"\n [@searchState]=\"\n searchElement.value ? 'show' : isRTL ? 'hide-left' : 'hide-right'\n \"\n (click)=\"clearSearch()\"\n >\n <mat-icon>{{ clearIcon }}</mat-icon>\n </button>\n</ng-template>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n AUTO_STYLE,\n} from '@angular/animations';\n\nimport { TdSearchInputComponent } from '../search-input/search-input.component';\nimport { noop } from 'rxjs';\n\nexport class TdSearchBoxBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchBoxComponent),\n multi: true,\n },\n ],\n selector: 'td-search-box',\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('inputState', [\n state(\n '0',\n style({\n width: '0%',\n margin: '0px',\n })\n ),\n state(\n '1',\n style({\n width: '100%',\n margin: AUTO_STYLE,\n })\n ),\n transition('0 => 1', animate('200ms ease-in')),\n transition('1 => 0', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchBoxComponent implements ControlValueAccessor {\n private _searchVisible = false;\n @ViewChild(TdSearchInputComponent, { static: true })\n _searchInput?: TdSearchInputComponent;\n\n get searchVisible(): boolean {\n return this._searchVisible;\n }\n\n /**\n * backIcon?: string\n * The icon used to close the search toggle, only shown when [alwaysVisible] is false.\n * Defaults to 'search' icon.\n */\n @Input() backIcon = 'search';\n\n /**\n * searchIcon?: string\n * The icon used to open/focus the search toggle.\n * Defaults to 'search' icon.\n */\n @Input() searchIcon = 'search';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * alwaysVisible?: boolean\n * Sets if the input should always be visible. Defaults to 'false'.\n */\n @Input() alwaysVisible = false;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n @Input() value: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n writeValue(value: unknown): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n noop;\n }\n\n registerOnTouched(): void {\n noop;\n }\n\n /**\n * Method executed when the search icon is clicked.\n */\n searchClicked(): void {\n if (!this.alwaysVisible && this._searchVisible) {\n this.value = '';\n this.handleClear();\n } else if (this.alwaysVisible || !this._searchVisible) {\n this._searchInput?.focus();\n }\n this.toggleVisibility();\n }\n\n toggleVisibility(): void {\n this._searchVisible = !this._searchVisible;\n this._changeDetectorRef.markForCheck();\n }\n\n handleSearchDebounce(value: string): void {\n this.searchDebounce.emit(value);\n }\n\n handleSearch(value: string): void {\n this.search.emit(value);\n }\n\n handleClear(): void {\n this.clear.emit();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n}\n","<div class=\"td-search-box\">\n <button\n mat-icon-button\n type=\"button\"\n class=\"td-search-icon\"\n (click)=\"searchClicked()\"\n >\n <mat-icon *ngIf=\"searchVisible && !alwaysVisible\">{{ backIcon }}</mat-icon>\n <mat-icon *ngIf=\"!searchVisible || alwaysVisible\">{{\n searchIcon\n }}</mat-icon>\n </button>\n <td-search-input\n #searchInput\n [@inputState]=\"alwaysVisible || searchVisible\"\n [debounce]=\"debounce\"\n [(ngModel)]=\"value\"\n [showUnderline]=\"showUnderline\"\n [placeholder]=\"placeholder\"\n [clearIcon]=\"clearIcon\"\n (searchDebounce)=\"handleSearchDebounce($event)\"\n (search)=\"handleSearch($event)\"\n (clear)=\"handleClear(); toggleVisibility()\"\n (blur)=\"handleBlur()\"\n ></td-search-input>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdSearchInputComponent } from './search-input/search-input.component';\nimport { TdSearchBoxComponent } from './search-box/search-box.component';\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n ],\n declarations: [TdSearchInputComponent, TdSearchBoxComponent],\n exports: [TdSearchInputComponent, TdSearchBoxComponent],\n})\nexport class CovalentSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-search.mjs","sources":["../../../../libs/angular/search/src/search-input/search-input.component.ts","../../../../libs/angular/search/src/search-input/search-input.component.html","../../../../libs/angular/search/src/search-box/search-box.component.ts","../../../../libs/angular/search/src/search-box/search-box.component.html","../../../../libs/angular/search/src/search.module.ts","../../../../libs/angular/search/src/covalent-core-search.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n Input,\n Output,\n EventEmitter,\n Optional,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Dir } from '@angular/cdk/bidi';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { debounceTime, skip } from 'rxjs/operators';\nimport { noop } from 'rxjs';\n\nexport class TdSearchInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchInputComponent),\n multi: true,\n },\n ],\n selector: 'td-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('searchState', [\n state(\n 'hide-left',\n style({\n transform: 'translateX(-150%)',\n display: 'none',\n })\n ),\n state(\n 'hide-right',\n style({\n transform: 'translateX(150%)',\n display: 'none',\n })\n ),\n state(\n 'show',\n style({\n transform: 'translateX(0%)',\n display: 'block',\n })\n ),\n transition('* => show', animate('200ms ease-in')),\n transition('show => *', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchInputComponent implements ControlValueAccessor, OnInit {\n @ViewChild(MatInput, { static: true }) _input?: MatInput;\n\n /**\n * appearance?: MatFormFieldAppearance\n * Appearance style for the underlying input component.\n */\n @Input() appearance: MatFormFieldAppearance = 'legacy';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n @Input() value?: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n constructor(\n @Optional() private _dir: Dir,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this._input?.ngControl?.valueChanges\n ?.pipe(\n debounceTime(this.debounce),\n skip(1) // skip first change when value is set to undefined\n )\n .subscribe((value: string) => {\n this._searchTermChanged(value);\n });\n }\n\n writeValue(value: unknown): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n noop;\n }\n\n registerOnTouched(): void {\n noop;\n }\n\n /**\n * Method to focus to underlying input.\n */\n focus(): void {\n this._input?.focus();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n handleSearch(event: Event): void {\n this.stopPropagation(event);\n if (typeof this.value == 'string') {\n this.search.emit(this.value);\n }\n }\n\n /**\n * Method to clear the underlying input.\n */\n clearSearch(): void {\n this.value = '';\n this._changeDetectorRef.markForCheck();\n this.clear.emit();\n }\n\n private _searchTermChanged(value: string): void {\n this.searchDebounce.emit(value);\n }\n}\n","<div class=\"td-search-input\">\n <mat-form-field\n class=\"td-search-input-field\"\n [class.mat-hide-underline]=\"!showUnderline\"\n [appearance]=\"appearance\"\n floatLabel=\"never\"\n >\n <input\n matInput\n #searchElement\n type=\"search\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"handleBlur()\"\n (search)=\"stopPropagation($event)\"\n (keyup.enter)=\"handleSearch($event)\"\n />\n <span\n matSuffix\n *ngIf=\"\n appearance === 'fill' ||\n appearance === 'outline' ||\n appearance === 'standard'\n \"\n >\n <ng-template [ngTemplateOutlet]=\"clearButton\"></ng-template>\n </span>\n </mat-form-field>\n <ng-template\n *ngIf=\"!appearance || appearance === 'legacy'\"\n [ngTemplateOutlet]=\"clearButton\"\n ></ng-template>\n</div>\n<ng-template #clearButton>\n <button\n mat-icon-button\n class=\"td-search-input-clear\"\n type=\"button\"\n [@searchState]=\"\n searchElement.value ? 'show' : isRTL ? 'hide-left' : 'hide-right'\n \"\n (click)=\"clearSearch()\"\n >\n <mat-icon>{{ clearIcon }}</mat-icon>\n </button>\n</ng-template>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n AUTO_STYLE,\n} from '@angular/animations';\n\nimport { TdSearchInputComponent } from '../search-input/search-input.component';\nimport { noop } from 'rxjs';\n\nexport class TdSearchBoxBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchBoxComponent),\n multi: true,\n },\n ],\n selector: 'td-search-box',\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('inputState', [\n state(\n '0',\n style({\n width: '0%',\n margin: '0px',\n })\n ),\n state(\n '1',\n style({\n width: '100%',\n margin: AUTO_STYLE,\n })\n ),\n transition('0 => 1', animate('200ms ease-in')),\n transition('1 => 0', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchBoxComponent implements ControlValueAccessor {\n private _searchVisible = false;\n @ViewChild(TdSearchInputComponent, { static: true })\n _searchInput?: TdSearchInputComponent;\n\n get searchVisible(): boolean {\n return this._searchVisible;\n }\n\n /**\n * backIcon?: string\n * The icon used to close the search toggle, only shown when [alwaysVisible] is false.\n * Defaults to 'search' icon.\n */\n @Input() backIcon = 'search';\n\n /**\n * searchIcon?: string\n * The icon used to open/focus the search toggle.\n * Defaults to 'search' icon.\n */\n @Input() searchIcon = 'search';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * alwaysVisible?: boolean\n * Sets if the input should always be visible. Defaults to 'false'.\n */\n @Input() alwaysVisible = false;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n @Input() value: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n writeValue(value: unknown): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n noop;\n }\n\n registerOnTouched(): void {\n noop;\n }\n\n /**\n * Method executed when the search icon is clicked.\n */\n searchClicked(): void {\n if (!this.alwaysVisible && this._searchVisible) {\n this.value = '';\n this.handleClear();\n } else if (this.alwaysVisible || !this._searchVisible) {\n this._searchInput?.focus();\n }\n this.toggleVisibility();\n }\n\n toggleVisibility(): void {\n this._searchVisible = !this._searchVisible;\n this._changeDetectorRef.markForCheck();\n }\n\n handleSearchDebounce(value: string): void {\n this.searchDebounce.emit(value);\n }\n\n handleSearch(value: string): void {\n this.search.emit(value);\n }\n\n handleClear(): void {\n this.clear.emit();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n}\n","<div class=\"td-search-box\">\n <button\n mat-icon-button\n type=\"button\"\n class=\"td-search-icon\"\n (click)=\"searchClicked()\"\n >\n <mat-icon *ngIf=\"searchVisible && !alwaysVisible\">{{ backIcon }}</mat-icon>\n <mat-icon *ngIf=\"!searchVisible || alwaysVisible\">{{\n searchIcon\n }}</mat-icon>\n </button>\n <td-search-input\n #searchInput\n [@inputState]=\"alwaysVisible || searchVisible\"\n [debounce]=\"debounce\"\n [(ngModel)]=\"value\"\n [showUnderline]=\"showUnderline\"\n [placeholder]=\"placeholder\"\n [clearIcon]=\"clearIcon\"\n (searchDebounce)=\"handleSearchDebounce($event)\"\n (search)=\"handleSearch($event)\"\n (clear)=\"handleClear(); toggleVisibility()\"\n (blur)=\"handleBlur()\"\n ></td-search-input>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdSearchInputComponent } from './search-input/search-input.component';\nimport { TdSearchBoxComponent } from './search-box/search-box.component';\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n ],\n declarations: [TdSearchInputComponent, TdSearchBoxComponent],\n exports: [TdSearchInputComponent, TdSearchBoxComponent],\n})\nexport class CovalentSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -560,7 +560,7 @@ class CovalentSideSheetCloseDirective {
560
560
  }
561
561
  }
562
562
  CovalentSideSheetCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetCloseDirective, deps: [{ token: CovalentSideSheetRef, optional: true }, { token: i0.ElementRef }, { token: CovalentSideSheet }], target: i0.ɵɵFactoryTarget.Directive });
563
- CovalentSideSheetCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CovalentSideSheetCloseDirective, selector: "[td-side-sheet-close], [CovalentSideSheetClose]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", dialogResult: ["td-side-sheet-close", "dialogResult"], _CovalentSideSheetClose: ["CovalentSideSheetClose", "_CovalentSideSheetClose"] }, host: { listeners: { "click": "onClick()" }, properties: { "attr.arial-label": "this.ariaLabel", "attr.type": "this.type" } }, exportAs: ["CovalentSideSheetClose"], usesOnChanges: true, ngImport: i0 });
563
+ CovalentSideSheetCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CovalentSideSheetCloseDirective, selector: "[td-side-sheet-close], [CovalentSideSheetClose]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", dialogResult: ["td-side-sheet-close", "dialogResult"], _CovalentSideSheetClose: ["CovalentSideSheetClose", "_CovalentSideSheetClose"] }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.arial-label": "this.ariaLabel", "attr.type": "this.type" } }, exportAs: ["CovalentSideSheetClose"], usesOnChanges: true, ngImport: i0 });
564
564
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetCloseDirective, decorators: [{
565
565
  type: Directive,
566
566
  args: [{
@@ -588,7 +588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
588
588
  args: ['CovalentSideSheetClose']
589
589
  }], onClick: [{
590
590
  type: HostListener,
591
- args: ['click']
591
+ args: ['click', ['$event']]
592
592
  }] } });
593
593
  /**
594
594
  * Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-side-sheet.mjs","sources":["../../../../libs/angular/side-sheet/src/side-sheet.animation.ts","../../../../libs/angular/side-sheet/src/side-sheet.config.ts","../../../../libs/angular/side-sheet/src/side-sheet-container.ts","../../../../libs/angular/side-sheet/src/side-sheet-ref.ts","../../../../libs/angular/side-sheet/src/side-sheet.ts","../../../../libs/angular/side-sheet/src/side-sheet.content-directives.ts","../../../../libs/angular/side-sheet/src/side-sheet.module.ts","../../../../libs/angular/side-sheet/src/covalent-core-side-sheet.ts"],"sourcesContent":["import {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\nimport { AnimationCurves, AnimationDurations } from '@angular/material/core';\n\nexport const tdSideSheetAnimations: {\n readonly sideSheetContainer: AnimationTriggerMetadata;\n} = {\n /** Animation that is applied on the side-sheet container by default. */\n sideSheetContainer: trigger('sideSheetContainer', [\n state('void, exit', style({ transform: 'translateX(100%)' })),\n state('enter', style({ transform: 'translateX(0%)', opacity: 1 })),\n transition(\n '* => enter',\n animate(\n `${AnimationDurations.ENTERING} ${AnimationCurves.ACCELERATION_CURVE}`,\n style({ transform: 'translateX(0)', opacity: 1 })\n )\n ),\n transition(\n '* => void, * => exit',\n animate(\n `${AnimationDurations.EXITING} ${AnimationCurves.ACCELERATION_CURVE}`,\n style({ transform: 'translateX(100%)' })\n )\n ),\n ]),\n};\n","import { MatDialogConfig } from '@angular/material/dialog';\n\nexport class CovalentSideSheetConfig<D = any> extends MatDialogConfig<D> {}\n","/* tslint:disable */\nimport { AnimationEvent } from '@angular/animations';\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n FocusMonitor,\n FocusOrigin,\n} from '@angular/cdk/a11y';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Optional,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { tdSideSheetAnimations } from './side-sheet.animation';\nimport { CovalentSideSheetConfig } from './side-sheet.config';\n\nexport function _getFocusedElementPierceShadowDom(): HTMLElement | null {\n let activeElement =\n typeof document !== 'undefined' && document\n ? (document.activeElement as HTMLElement | null)\n : null;\n\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot\n .activeElement as HTMLElement | null;\n if (newActiveElement === activeElement) {\n break;\n } else {\n activeElement = newActiveElement;\n }\n }\n\n return activeElement;\n}\n\n/**\n * Base class for the `CovalentSideSheetContainer`. The base class does not implement\n * animations as these are left to implementers of the side-sheet container.\n */\n@Directive()\nexport abstract class _CovalentSideSheetContainerBase extends BasePortalOutlet {\n protected _document: Document;\n\n /** The portal outlet inside of this container into which the side-sheet content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) _portalOutlet!: CdkPortalOutlet;\n\n /** The class that traps and manages focus within the side-sheet. */\n private _focusTrap!: ConfigurableFocusTrap;\n\n /** Emits when an animation state changes. */\n _animationStateChanged = new EventEmitter<{\n state: 'opened' | 'opening' | 'closing' | 'closed';\n totalTime: number;\n }>();\n\n /** Element that was focused before the side-sheet was opened. Save this to restore upon close. */\n private _elementFocusedBeforeSideSheetWasOpened: HTMLElement | null = null;\n\n /**\n * Type of interaction that led to the side-sheet being closed. This is used to determine\n * whether the focus style will be applied when returning focus to its original location\n * after the side-sheet is closed.\n */\n _closeInteractionType: FocusOrigin | null = null;\n\n /** ID of the element that should be considered as the side-sheet's label. */\n _ariaLabelledBy: string | null;\n\n /** ID for the container DOM element. */\n _id!: string;\n\n constructor(\n protected _elementRef: ElementRef,\n protected _focusTrapFactory: ConfigurableFocusTrapFactory,\n protected _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) _document: any,\n /** The side-sheet configuration. */\n public _config: CovalentSideSheetConfig,\n private _focusMonitor?: FocusMonitor\n ) {\n super();\n this._ariaLabelledBy = _config.ariaLabelledBy || null;\n this._document = _document;\n }\n\n /** Starts the side-sheet exit animation. */\n abstract _startExitAnimation(): void;\n\n /** Initializes the side-sheet container with the attached content. */\n _initializeWithAttachedContent() {\n this._setupFocusTrap();\n // Save the previously focused element. This element will be re-focused\n // when the side-sheet closes.\n this._capturePreviouslyFocusedElement();\n }\n\n /**\n * Attach a ComponentPortal as content to this side-sheet container.\n * @param portal Portal to be attached as the side-sheet content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n /**\n * Attach a TemplatePortal as content to this side-sheet container.\n * @param portal Portal to be attached as the side-sheet content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /**\n * Attaches a DOM portal to the side-sheet container.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n */\n override attachDomPortal = (portal: DomPortal) => {\n return this._portalOutlet.attachDomPortal(portal);\n };\n\n /** Moves focus back into the side-sheet if it was moved out. */\n _recaptureFocus() {\n if (!this._containsFocus()) {\n this._trapFocus();\n }\n }\n\n /**\n * Moves the focus inside the focus trap. When autoFocus is not set to 'side-sheet', if focus\n * cannot be moved then focus will go to the side-sheet container.\n */\n protected _trapFocus() {\n const element = this._elementRef.nativeElement;\n if (!this._config.autoFocus) {\n if (!this._containsFocus()) {\n element.focus();\n }\n } else {\n this._focusTrap\n .focusInitialElementWhenReady()\n .then((focusedSuccessfully) => {\n // If we weren't able to find a focusable element in the side-sheet, then focus the side-sheet\n // container instead.\n if (!focusedSuccessfully) {\n this._focusSideSheetContainer();\n }\n });\n }\n }\n\n /** Restores focus to the element that was focused before the side-sheet opened. */\n protected _restoreFocus() {\n const previousElement = this._elementFocusedBeforeSideSheetWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (\n this._config.restoreFocus &&\n previousElement &&\n typeof previousElement.focus === 'function'\n ) {\n const activeElement = _getFocusedElementPierceShadowDom();\n const element = this._elementRef.nativeElement;\n\n // Make sure that focus is still inside the side-sheet or is on the body (usually because a\n // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n // the consumer moved it themselves before the animation was done, in which case we shouldn't\n // do anything.\n if (\n !activeElement ||\n activeElement === this._document.body ||\n activeElement === element ||\n element.contains(activeElement)\n ) {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(\n previousElement,\n this._closeInteractionType\n );\n this._closeInteractionType = null;\n } else {\n previousElement.focus();\n }\n }\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n\n /** Sets up the focus trap. */\n private _setupFocusTrap() {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement\n );\n }\n\n /** Captures the element that was focused before the side-sheet was opened. */\n private _capturePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeSideSheetWasOpened =\n _getFocusedElementPierceShadowDom();\n }\n }\n\n /** Focuses the side-sheet container. */\n private _focusSideSheetContainer() {\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n this._elementRef.nativeElement.focus();\n }\n }\n\n /** Returns whether focus is inside the side-sheet. */\n private _containsFocus() {\n const element = this._elementRef.nativeElement;\n const activeElement = _getFocusedElementPierceShadowDom();\n return element === activeElement || element.contains(activeElement);\n }\n}\n\n/**\n * Internal component that wraps the generated side-sheet content.\n * This animation below is the only reason for duplicating most of the Material dialog code\n */\n@Component({\n selector: 'td-side-sheet-container',\n template: ` <ng-template cdkPortalOutlet></ng-template> `,\n styleUrls: ['side-sheet.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [tdSideSheetAnimations.sideSheetContainer],\n})\nexport class CovalentSideSheetContainerComponent extends _CovalentSideSheetContainerBase {\n /** State of the side-sheet animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n @HostBinding('class.td-side-sheet-container') tdSideSheetContainerClass =\n true;\n @HostBinding('tabindex') tabIndex = -1;\n @HostBinding('aria-modal') arialModal = true;\n @HostBinding('id') idAttr = this._id;\n @HostBinding('attr.role') roleAttr = this._config.role;\n @HostBinding('attr.aria-labelledby') arialLabelByAttr = this._config.ariaLabel\n ? null\n : this._ariaLabelledBy;\n @HostBinding('attr.aria-describedby') arialDescribeByAttr =\n this._config.ariaDescribedBy || null;\n @HostBinding('attr.aria-label') arialLabelAttr = this._config.ariaLabel;\n @HostBinding('@sideSheetContainer') get sideSheetAnimationState() {\n return this._state;\n }\n @HostListener('@sideSheetContainer.start', ['$event']) onAnimateStart(\n $event: AnimationEvent\n ) {\n this._onAnimationStart($event);\n }\n\n @HostListener('@sideSheetContainer.done', ['$event']) onAnimateDone(\n $event: AnimationEvent\n ) {\n this._onAnimationDone($event);\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n _onAnimationDone({ toState, totalTime }: AnimationEvent) {\n if (toState === 'enter') {\n this._trapFocus();\n this._animationStateChanged.next({ state: 'opened', totalTime });\n } else if (toState === 'exit') {\n this._restoreFocus();\n this._animationStateChanged.next({ state: 'closed', totalTime });\n }\n }\n\n /** Callback, invoked when an animation on the host starts. */\n _onAnimationStart({ toState, totalTime }: AnimationEvent) {\n if (toState === 'enter') {\n this._animationStateChanged.next({ state: 'opening', totalTime });\n } else if (toState === 'exit' || toState === 'void') {\n this._animationStateChanged.next({ state: 'closing', totalTime });\n }\n }\n\n /** Starts the side-sheet exit animation. */\n _startExitAnimation(): void {\n this._state = 'exit';\n this._changeDetectorRef.markForCheck();\n }\n}\n","/* tslint:disable */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport {\n MatDialogRef,\n _MatDialogContainerBase,\n} from '@angular/material/dialog';\n\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n\n// Create a new side sheet ref to change the id of the ref\nexport class CovalentSideSheetRef<T, R = any> extends MatDialogRef<T, R> {\n constructor(\n public overlayRef: OverlayRef,\n public override _containerInstance: _MatDialogContainerBase,\n override readonly id: string = `td-side-sheet-${uniqueId++}`\n ) {\n super(overlayRef, _containerInstance, id);\n }\n}\n\nexport function _closeSideSheetVia<R>(\n ref: CovalentSideSheetRef<R>,\n interactionType: FocusOrigin,\n result?: R\n) {\n // Some mock dialog ref instances in tests do not have the `_containerInstance` property.\n // For those, we keep the behavior as is and do not deal with the interaction type.\n if (ref._containerInstance !== undefined) {\n ref._containerInstance._closeInteractionType = interactionType;\n }\n return ref.close(result);\n}\n","/* tslint:disable */\nimport {\n Directive,\n Inject,\n Injectable,\n InjectFlags,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n StaticProvider,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport {\n Overlay,\n OverlayConfig,\n OverlayRef,\n GlobalPositionStrategy,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n MAT_DIALOG_DATA,\n MAT_DIALOG_DEFAULT_OPTIONS,\n} from '@angular/material/dialog';\nimport { AnimationCurves, AnimationDurations } from '@angular/material/core';\nimport {\n CovalentSideSheetContainerComponent,\n _CovalentSideSheetContainerBase,\n} from './side-sheet-container';\nimport { Subject, Subscription, of } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Directionality } from '@angular/cdk/bidi';\n\nimport { CovalentSideSheetRef } from './side-sheet-ref';\nimport { CovalentSideSheetConfig } from './side-sheet.config';\n\n@Directive()\nexport class _CovalentSideSheetBase<C extends _CovalentSideSheetContainerBase>\n implements OnDestroy\n{\n private _openSideSheetsAtThisLevel: CovalentSideSheetRef<unknown>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<\n CovalentSideSheetRef<unknown>\n >();\n private _animationStateSubscriptions!: Subscription;\n\n private defaultSidebarConfig = {\n minWidth: '400px',\n maxWidth: '100vw',\n };\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n private _defaultOptions: CovalentSideSheetConfig | undefined,\n private _parentSideSheet: _CovalentSideSheetBase<C> | undefined,\n private _sideSheetRefConstructor: Type<CovalentSideSheetRef<any>>,\n private _sideSheetContainerType: Type<C>,\n private _sideSheetDataToken: InjectionToken<unknown>\n ) {}\n\n /** Keeps track of the currently-open side-sheets. */\n get openSideSheets(): CovalentSideSheetRef<unknown>[] {\n return this._parentSideSheet\n ? this._parentSideSheet.openSideSheets\n : this._openSideSheetsAtThisLevel;\n }\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: CovalentSideSheetConfig<D>\n ): CovalentSideSheetRef<T, R> {\n config = {\n ...(this._defaultOptions || new CovalentSideSheetConfig()),\n ...this.defaultSidebarConfig,\n ...config,\n };\n\n const overlayRef = this._createOverlay(config);\n const sideSheetContainer = this._attachSideSheetContainer(\n overlayRef,\n config\n );\n const sideSheetRef = this._attachSideSheetContent<T, R>(\n componentOrTemplateRef,\n sideSheetContainer,\n overlayRef,\n config\n );\n const prevSideSheetRef: CovalentSideSheetRef<unknown> =\n this.openSideSheets.slice(-1)[0];\n const prevOverlayRef = prevSideSheetRef?.overlayRef;\n\n // Animate previous side sheet to full width\n if (prevOverlayRef?.overlayElement) {\n prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.COMPLEX} ${AnimationCurves.DECELERATION_CURVE}`;\n prevOverlayRef.overlayElement.style.minWidth = `${\n (window as any).innerWidth\n }px`;\n }\n\n // Revert the previous side sheet config & size\n sideSheetRef._containerInstance._animationStateChanged\n .pipe(\n filter(\n (event) =>\n event.state === 'closing' && !!(prevSideSheetRef && prevOverlayRef)\n ),\n take(1)\n )\n .subscribe(() => {\n prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`;\n prevSideSheetRef.updateSize();\n });\n\n // Add new side sheet to open list\n this.openSideSheets.push(sideSheetRef);\n\n // Remove side sheet ref after closed\n sideSheetRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => this._removeOpenSideSheet(sideSheetRef));\n\n // Notify the side-sheet container that the content has been attached.\n sideSheetContainer._initializeWithAttachedContent();\n\n return sideSheetRef;\n }\n\n ngOnDestroy() {\n // Only close the side-sheets at this level on destroy\n // since the parent service may still be active.\n this._closeSideSheets(this._openSideSheetsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n // Clean up any subscriptions to side-sheet that never finished opening.\n if (this._animationStateSubscriptions) {\n this._animationStateSubscriptions.unsubscribe();\n }\n }\n\n /**\n * Closes all of the currently-open side-sheets.\n */\n closeAll(): void {\n this._closeSideSheets(this.openSideSheets);\n }\n\n private _createOverlay<T>(config: CovalentSideSheetConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n });\n const overlayRef = this._overlay.create(overlayConfig);\n const positionStrategy = overlayRef.getConfig()\n .positionStrategy as GlobalPositionStrategy;\n positionStrategy.right('0px');\n\n return overlayRef;\n }\n\n /**\n * Attaches a container to a side-sheets's already-created overlay.\n * @param overlay Reference to the side-sheet's underlying overlay.\n * @param config The side-sheet configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n private _attachSideSheetContainer(\n overlay: OverlayRef,\n config: CovalentSideSheetConfig\n ): C {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: CovalentSideSheetConfig, useValue: config }],\n });\n\n const containerPortal = new ComponentPortal(\n this._sideSheetContainerType,\n config.viewContainerRef,\n injector,\n config.componentFactoryResolver\n );\n const containerRef = overlay.attach<C>(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Attaches the user-provided component to the already-created side sheet container.\n * @param componentOrTemplateRef The type of component being loaded into the side-sheet,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping side-sheet container.\n * @param overlayRef Reference to the overlay in which the side-sheet resides.\n * @param config The side-sheet configuration.\n * @returns A promise resolving to the CovalentSideSheetRef that should be returned to the user.\n */\n private _attachSideSheetContent<T, R>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n sideSheetContainer: C,\n overlayRef: OverlayRef,\n config: CovalentSideSheetConfig\n ): CovalentSideSheetRef<T, R> {\n // Create a reference to the side-sheet we're creating in order to give the user a handle\n // to modify and close it.\n const sideSheetRef = new this._sideSheetRefConstructor(\n overlayRef,\n sideSheetContainer,\n config.id\n );\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n sideSheetContainer.attachTemplatePortal(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n new TemplatePortal<T>(componentOrTemplateRef, null!, <any>{\n $implicit: config.data,\n sideSheetRef,\n })\n );\n } else {\n const injector = this._createInjector<T>(\n config,\n sideSheetRef,\n sideSheetContainer\n );\n const contentRef = sideSheetContainer.attach<T>(\n new ComponentPortal(\n componentOrTemplateRef,\n config.viewContainerRef,\n injector\n )\n );\n sideSheetRef.componentInstance = contentRef.instance;\n }\n\n sideSheetRef.updateSize(config.width, config.height);\n\n return sideSheetRef;\n }\n\n private _createInjector<T>(\n config: CovalentSideSheetConfig,\n sideSheetRef: CovalentSideSheetRef<T>,\n sideSheetContainer: C\n ): Injector {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n\n // The side-sheet container should be provided as the side-sheet container and the side-sheet's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the side-sheet\n // container is explicitly provided in the injector.\n const providers: StaticProvider[] = [\n { provide: this._sideSheetContainerType, useValue: sideSheetContainer },\n { provide: this._sideSheetDataToken, useValue: config.data },\n { provide: this._sideSheetRefConstructor, useValue: sideSheetRef },\n ];\n\n if (\n config.direction &&\n (!userInjector ||\n !userInjector.get<Directionality | null>(\n Directionality,\n null,\n InjectFlags.Optional\n ))\n ) {\n providers.push({\n provide: Directionality,\n useValue: { value: config.direction, change: of() },\n });\n }\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers,\n });\n }\n\n /**\n * Removes a side sheet from the array of open side sheets.\n * @param sideSheetRef Side Sheet to be removed.\n */\n private _removeOpenSideSheet(sideSheetRef: CovalentSideSheetRef<unknown>) {\n const index = this.openSideSheets.indexOf(sideSheetRef);\n\n if (index > -1) {\n this.openSideSheets.splice(index, 1);\n }\n }\n\n /** Closes all of the side-sheet in an array. */\n private _closeSideSheets(sideSheets: CovalentSideSheetRef<any>[]) {\n let i = sideSheets.length;\n\n while (i--) {\n sideSheets[i].close();\n }\n }\n}\n\n/**\n * Service to open Covalent Design side-sheet.\n */\n@Injectable()\nexport class CovalentSideSheet extends _CovalentSideSheetBase<CovalentSideSheetContainerComponent> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(MAT_DIALOG_DEFAULT_OPTIONS)\n defaultOptions: CovalentSideSheetConfig,\n @Optional() @SkipSelf() parentSideSheet: CovalentSideSheet\n ) {\n super(\n overlay,\n injector,\n defaultOptions,\n parentSideSheet,\n CovalentSideSheetRef,\n CovalentSideSheetContainerComponent,\n MAT_DIALOG_DATA\n );\n }\n}\n","/* tslint:disable */\nimport {\n Directive,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n ElementRef,\n HostBinding,\n HostListener,\n} from '@angular/core';\nimport { CovalentSideSheet } from './side-sheet';\nimport { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';\n\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n selector: '[td-side-sheet-close], [CovalentSideSheetClose]',\n exportAs: 'CovalentSideSheetClose',\n})\nexport class CovalentSideSheetCloseDirective implements OnInit, OnChanges {\n /** Screenreader label for the button. */\n @HostBinding('attr.arial-label')\n @Input('aria-label')\n ariaLabel?: string;\n\n /** Default to \"button\" to prevents accidental form submits. */\n @HostBinding('attr.type')\n @Input()\n type: 'submit' | 'button' | 'reset' = 'button';\n\n /** Dialog close input. */\n @Input('td-side-sheet-close') dialogResult: any;\n\n @Input('CovalentSideSheetClose') _CovalentSideSheetClose: any;\n\n @HostListener('click') onClick($event: MouseEvent) {\n this._onButtonClick($event);\n }\n\n constructor(\n @Optional() public dialogRef: CovalentSideSheetRef<any>,\n private _elementRef: ElementRef<HTMLElement>,\n private _dialog: CovalentSideSheet\n ) {}\n\n ngOnInit(): void {\n if (!this.dialogRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.dialogRef = getClosestDialog(\n this._elementRef,\n this._dialog.openSideSheets\n );\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange =\n changes['_CovalentSideSheetClose'] ||\n changes['_CovalentSideSheetCloseResult'];\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n\n _onButtonClick(event: MouseEvent) {\n // Determinate the focus origin using the click event, because using the FocusMonitor will\n // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n // dialog, and therefore clicking the button won't result in a focus change. This means that\n // the FocusMonitor won't detect any origin change, and will always output `program`.\n _closeSideSheetVia(\n this.dialogRef,\n event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n this.dialogResult\n );\n }\n}\n\n/**\n * Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.\n */\n@Directive({\n selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',\n exportAs: 'CovalentSideSheetTitle',\n})\nexport class CovalentSideSheetTitleDirective implements OnInit {\n /** Unique id for the dialog title. If none is supplied, it will be auto-generated. */\n @Input() id = `td-side-sheet-title-${dialogElementUid++}`;\n\n @HostBinding('class.td-side-sheet-title') tdSideSheetTitle = true;\n\n @HostBinding('attr.id') idAttr = this.id;\n\n constructor(\n // The dialog title directive is always used in combination with a `CovalentSideSheetRef`.\n // tslint:disable-next-line: lightweight-tokens\n @Optional() private _dialogRef: CovalentSideSheetRef<any>,\n private _elementRef: ElementRef<HTMLElement>,\n private _dialog: CovalentSideSheet\n ) {}\n\n ngOnInit(): void {\n if (this._dialogRef) {\n Promise.resolve().then(() => {\n const container = this._dialogRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\n } else {\n this._dialogRef = getClosestDialog(\n this._elementRef,\n this._dialog.openSideSheets\n );\n }\n }\n}\n\n/**\n * Scrollable content container of a dialog.\n */\n@Directive({\n selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,\n})\nexport class CovalentSideSheetContentDirective {\n @HostBinding('class.td-side-sheet-content') tdSideSheetContent = true;\n}\n\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\n@Directive({\n selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,\n})\nexport class CovalentSideSheetActionsDirective {\n @HostBinding('class.td-side-sheet-actions') tdSideSheetActions = true;\n}\n\n/**\n * Container for the wrapper part of the dialog\n */\n@Directive({\n selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,\n})\nexport class CovalentSideSheetWrapperDirective {\n @HostBinding('class.td-side-sheet-wrapper') tdSideSheetWrapper = true;\n}\n\n/**\n * Finds the closest CovalentSideSheetRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(\n element: ElementRef<HTMLElement>,\n openDialogs: CovalentSideSheetRef<any>[]\n): CovalentSideSheetRef<any> {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('td-side-sheet-container')) {\n parent = parent.parentElement;\n }\n\n return parent\n ? openDialogs.find((dialog) => dialog.id === parent?.id) ?? openDialogs[0]\n : openDialogs[0];\n}\n","import { NgModule } from '@angular/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { CovalentSideSheet } from './side-sheet';\nimport { CovalentSideSheetContainerComponent } from './side-sheet-container';\nimport {\n CovalentSideSheetActionsDirective,\n CovalentSideSheetCloseDirective,\n CovalentSideSheetContentDirective,\n CovalentSideSheetTitleDirective,\n CovalentSideSheetWrapperDirective,\n} from './side-sheet.content-directives';\n\n@NgModule({\n declarations: [\n CovalentSideSheetContainerComponent,\n CovalentSideSheetActionsDirective,\n CovalentSideSheetCloseDirective,\n CovalentSideSheetContentDirective,\n CovalentSideSheetTitleDirective,\n CovalentSideSheetWrapperDirective,\n ],\n exports: [\n CovalentSideSheetActionsDirective,\n CovalentSideSheetCloseDirective,\n CovalentSideSheetContentDirective,\n CovalentSideSheetTitleDirective,\n CovalentSideSheetWrapperDirective,\n ],\n imports: [PortalModule, MatDialogModule, MatCommonModule],\n providers: [CovalentSideSheet],\n})\nexport class CovalentSideSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-side-sheet.mjs","sources":["../../../../libs/angular/side-sheet/src/side-sheet.animation.ts","../../../../libs/angular/side-sheet/src/side-sheet.config.ts","../../../../libs/angular/side-sheet/src/side-sheet-container.ts","../../../../libs/angular/side-sheet/src/side-sheet-ref.ts","../../../../libs/angular/side-sheet/src/side-sheet.ts","../../../../libs/angular/side-sheet/src/side-sheet.content-directives.ts","../../../../libs/angular/side-sheet/src/side-sheet.module.ts","../../../../libs/angular/side-sheet/src/covalent-core-side-sheet.ts"],"sourcesContent":["import {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\nimport { AnimationCurves, AnimationDurations } from '@angular/material/core';\n\nexport const tdSideSheetAnimations: {\n readonly sideSheetContainer: AnimationTriggerMetadata;\n} = {\n /** Animation that is applied on the side-sheet container by default. */\n sideSheetContainer: trigger('sideSheetContainer', [\n state('void, exit', style({ transform: 'translateX(100%)' })),\n state('enter', style({ transform: 'translateX(0%)', opacity: 1 })),\n transition(\n '* => enter',\n animate(\n `${AnimationDurations.ENTERING} ${AnimationCurves.ACCELERATION_CURVE}`,\n style({ transform: 'translateX(0)', opacity: 1 })\n )\n ),\n transition(\n '* => void, * => exit',\n animate(\n `${AnimationDurations.EXITING} ${AnimationCurves.ACCELERATION_CURVE}`,\n style({ transform: 'translateX(100%)' })\n )\n ),\n ]),\n};\n","import { MatDialogConfig } from '@angular/material/dialog';\n\nexport class CovalentSideSheetConfig<D = any> extends MatDialogConfig<D> {}\n","/* tslint:disable */\nimport { AnimationEvent } from '@angular/animations';\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n FocusMonitor,\n FocusOrigin,\n} from '@angular/cdk/a11y';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Optional,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { tdSideSheetAnimations } from './side-sheet.animation';\nimport { CovalentSideSheetConfig } from './side-sheet.config';\n\nexport function _getFocusedElementPierceShadowDom(): HTMLElement | null {\n let activeElement =\n typeof document !== 'undefined' && document\n ? (document.activeElement as HTMLElement | null)\n : null;\n\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot\n .activeElement as HTMLElement | null;\n if (newActiveElement === activeElement) {\n break;\n } else {\n activeElement = newActiveElement;\n }\n }\n\n return activeElement;\n}\n\n/**\n * Base class for the `CovalentSideSheetContainer`. The base class does not implement\n * animations as these are left to implementers of the side-sheet container.\n */\n@Directive()\nexport abstract class _CovalentSideSheetContainerBase extends BasePortalOutlet {\n protected _document: Document;\n\n /** The portal outlet inside of this container into which the side-sheet content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) _portalOutlet!: CdkPortalOutlet;\n\n /** The class that traps and manages focus within the side-sheet. */\n private _focusTrap!: ConfigurableFocusTrap;\n\n /** Emits when an animation state changes. */\n _animationStateChanged = new EventEmitter<{\n state: 'opened' | 'opening' | 'closing' | 'closed';\n totalTime: number;\n }>();\n\n /** Element that was focused before the side-sheet was opened. Save this to restore upon close. */\n private _elementFocusedBeforeSideSheetWasOpened: HTMLElement | null = null;\n\n /**\n * Type of interaction that led to the side-sheet being closed. This is used to determine\n * whether the focus style will be applied when returning focus to its original location\n * after the side-sheet is closed.\n */\n _closeInteractionType: FocusOrigin | null = null;\n\n /** ID of the element that should be considered as the side-sheet's label. */\n _ariaLabelledBy: string | null;\n\n /** ID for the container DOM element. */\n _id!: string;\n\n constructor(\n protected _elementRef: ElementRef,\n protected _focusTrapFactory: ConfigurableFocusTrapFactory,\n protected _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) _document: any,\n /** The side-sheet configuration. */\n public _config: CovalentSideSheetConfig,\n private _focusMonitor?: FocusMonitor\n ) {\n super();\n this._ariaLabelledBy = _config.ariaLabelledBy || null;\n this._document = _document;\n }\n\n /** Starts the side-sheet exit animation. */\n abstract _startExitAnimation(): void;\n\n /** Initializes the side-sheet container with the attached content. */\n _initializeWithAttachedContent() {\n this._setupFocusTrap();\n // Save the previously focused element. This element will be re-focused\n // when the side-sheet closes.\n this._capturePreviouslyFocusedElement();\n }\n\n /**\n * Attach a ComponentPortal as content to this side-sheet container.\n * @param portal Portal to be attached as the side-sheet content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n /**\n * Attach a TemplatePortal as content to this side-sheet container.\n * @param portal Portal to be attached as the side-sheet content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /**\n * Attaches a DOM portal to the side-sheet container.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n */\n override attachDomPortal = (portal: DomPortal) => {\n return this._portalOutlet.attachDomPortal(portal);\n };\n\n /** Moves focus back into the side-sheet if it was moved out. */\n _recaptureFocus() {\n if (!this._containsFocus()) {\n this._trapFocus();\n }\n }\n\n /**\n * Moves the focus inside the focus trap. When autoFocus is not set to 'side-sheet', if focus\n * cannot be moved then focus will go to the side-sheet container.\n */\n protected _trapFocus() {\n const element = this._elementRef.nativeElement;\n if (!this._config.autoFocus) {\n if (!this._containsFocus()) {\n element.focus();\n }\n } else {\n this._focusTrap\n .focusInitialElementWhenReady()\n .then((focusedSuccessfully) => {\n // If we weren't able to find a focusable element in the side-sheet, then focus the side-sheet\n // container instead.\n if (!focusedSuccessfully) {\n this._focusSideSheetContainer();\n }\n });\n }\n }\n\n /** Restores focus to the element that was focused before the side-sheet opened. */\n protected _restoreFocus() {\n const previousElement = this._elementFocusedBeforeSideSheetWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (\n this._config.restoreFocus &&\n previousElement &&\n typeof previousElement.focus === 'function'\n ) {\n const activeElement = _getFocusedElementPierceShadowDom();\n const element = this._elementRef.nativeElement;\n\n // Make sure that focus is still inside the side-sheet or is on the body (usually because a\n // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n // the consumer moved it themselves before the animation was done, in which case we shouldn't\n // do anything.\n if (\n !activeElement ||\n activeElement === this._document.body ||\n activeElement === element ||\n element.contains(activeElement)\n ) {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(\n previousElement,\n this._closeInteractionType\n );\n this._closeInteractionType = null;\n } else {\n previousElement.focus();\n }\n }\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n\n /** Sets up the focus trap. */\n private _setupFocusTrap() {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement\n );\n }\n\n /** Captures the element that was focused before the side-sheet was opened. */\n private _capturePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeSideSheetWasOpened =\n _getFocusedElementPierceShadowDom();\n }\n }\n\n /** Focuses the side-sheet container. */\n private _focusSideSheetContainer() {\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n this._elementRef.nativeElement.focus();\n }\n }\n\n /** Returns whether focus is inside the side-sheet. */\n private _containsFocus() {\n const element = this._elementRef.nativeElement;\n const activeElement = _getFocusedElementPierceShadowDom();\n return element === activeElement || element.contains(activeElement);\n }\n}\n\n/**\n * Internal component that wraps the generated side-sheet content.\n * This animation below is the only reason for duplicating most of the Material dialog code\n */\n@Component({\n selector: 'td-side-sheet-container',\n template: ` <ng-template cdkPortalOutlet></ng-template> `,\n styleUrls: ['side-sheet.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [tdSideSheetAnimations.sideSheetContainer],\n})\nexport class CovalentSideSheetContainerComponent extends _CovalentSideSheetContainerBase {\n /** State of the side-sheet animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n @HostBinding('class.td-side-sheet-container') tdSideSheetContainerClass =\n true;\n @HostBinding('tabindex') tabIndex = -1;\n @HostBinding('aria-modal') arialModal = true;\n @HostBinding('id') idAttr = this._id;\n @HostBinding('attr.role') roleAttr = this._config.role;\n @HostBinding('attr.aria-labelledby') arialLabelByAttr = this._config.ariaLabel\n ? null\n : this._ariaLabelledBy;\n @HostBinding('attr.aria-describedby') arialDescribeByAttr =\n this._config.ariaDescribedBy || null;\n @HostBinding('attr.aria-label') arialLabelAttr = this._config.ariaLabel;\n @HostBinding('@sideSheetContainer') get sideSheetAnimationState() {\n return this._state;\n }\n @HostListener('@sideSheetContainer.start', ['$event']) onAnimateStart(\n $event: AnimationEvent\n ) {\n this._onAnimationStart($event);\n }\n\n @HostListener('@sideSheetContainer.done', ['$event']) onAnimateDone(\n $event: AnimationEvent\n ) {\n this._onAnimationDone($event);\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n _onAnimationDone({ toState, totalTime }: AnimationEvent) {\n if (toState === 'enter') {\n this._trapFocus();\n this._animationStateChanged.next({ state: 'opened', totalTime });\n } else if (toState === 'exit') {\n this._restoreFocus();\n this._animationStateChanged.next({ state: 'closed', totalTime });\n }\n }\n\n /** Callback, invoked when an animation on the host starts. */\n _onAnimationStart({ toState, totalTime }: AnimationEvent) {\n if (toState === 'enter') {\n this._animationStateChanged.next({ state: 'opening', totalTime });\n } else if (toState === 'exit' || toState === 'void') {\n this._animationStateChanged.next({ state: 'closing', totalTime });\n }\n }\n\n /** Starts the side-sheet exit animation. */\n _startExitAnimation(): void {\n this._state = 'exit';\n this._changeDetectorRef.markForCheck();\n }\n}\n","/* tslint:disable */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport {\n MatDialogRef,\n _MatDialogContainerBase,\n} from '@angular/material/dialog';\n\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n\n// Create a new side sheet ref to change the id of the ref\nexport class CovalentSideSheetRef<T, R = any> extends MatDialogRef<T, R> {\n constructor(\n public overlayRef: OverlayRef,\n public override _containerInstance: _MatDialogContainerBase,\n override readonly id: string = `td-side-sheet-${uniqueId++}`\n ) {\n super(overlayRef, _containerInstance, id);\n }\n}\n\nexport function _closeSideSheetVia<R>(\n ref: CovalentSideSheetRef<R>,\n interactionType: FocusOrigin,\n result?: R\n) {\n // Some mock dialog ref instances in tests do not have the `_containerInstance` property.\n // For those, we keep the behavior as is and do not deal with the interaction type.\n if (ref._containerInstance !== undefined) {\n ref._containerInstance._closeInteractionType = interactionType;\n }\n return ref.close(result);\n}\n","/* tslint:disable */\nimport {\n Directive,\n Inject,\n Injectable,\n InjectFlags,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n StaticProvider,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport {\n Overlay,\n OverlayConfig,\n OverlayRef,\n GlobalPositionStrategy,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n MAT_DIALOG_DATA,\n MAT_DIALOG_DEFAULT_OPTIONS,\n} from '@angular/material/dialog';\nimport { AnimationCurves, AnimationDurations } from '@angular/material/core';\nimport {\n CovalentSideSheetContainerComponent,\n _CovalentSideSheetContainerBase,\n} from './side-sheet-container';\nimport { Subject, Subscription, of } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Directionality } from '@angular/cdk/bidi';\n\nimport { CovalentSideSheetRef } from './side-sheet-ref';\nimport { CovalentSideSheetConfig } from './side-sheet.config';\n\n@Directive()\nexport class _CovalentSideSheetBase<C extends _CovalentSideSheetContainerBase>\n implements OnDestroy\n{\n private _openSideSheetsAtThisLevel: CovalentSideSheetRef<unknown>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<\n CovalentSideSheetRef<unknown>\n >();\n private _animationStateSubscriptions!: Subscription;\n\n private defaultSidebarConfig = {\n minWidth: '400px',\n maxWidth: '100vw',\n };\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n private _defaultOptions: CovalentSideSheetConfig | undefined,\n private _parentSideSheet: _CovalentSideSheetBase<C> | undefined,\n private _sideSheetRefConstructor: Type<CovalentSideSheetRef<any>>,\n private _sideSheetContainerType: Type<C>,\n private _sideSheetDataToken: InjectionToken<unknown>\n ) {}\n\n /** Keeps track of the currently-open side-sheets. */\n get openSideSheets(): CovalentSideSheetRef<unknown>[] {\n return this._parentSideSheet\n ? this._parentSideSheet.openSideSheets\n : this._openSideSheetsAtThisLevel;\n }\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: CovalentSideSheetConfig<D>\n ): CovalentSideSheetRef<T, R> {\n config = {\n ...(this._defaultOptions || new CovalentSideSheetConfig()),\n ...this.defaultSidebarConfig,\n ...config,\n };\n\n const overlayRef = this._createOverlay(config);\n const sideSheetContainer = this._attachSideSheetContainer(\n overlayRef,\n config\n );\n const sideSheetRef = this._attachSideSheetContent<T, R>(\n componentOrTemplateRef,\n sideSheetContainer,\n overlayRef,\n config\n );\n const prevSideSheetRef: CovalentSideSheetRef<unknown> =\n this.openSideSheets.slice(-1)[0];\n const prevOverlayRef = prevSideSheetRef?.overlayRef;\n\n // Animate previous side sheet to full width\n if (prevOverlayRef?.overlayElement) {\n prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.COMPLEX} ${AnimationCurves.DECELERATION_CURVE}`;\n prevOverlayRef.overlayElement.style.minWidth = `${\n (window as any).innerWidth\n }px`;\n }\n\n // Revert the previous side sheet config & size\n sideSheetRef._containerInstance._animationStateChanged\n .pipe(\n filter(\n (event) =>\n event.state === 'closing' && !!(prevSideSheetRef && prevOverlayRef)\n ),\n take(1)\n )\n .subscribe(() => {\n prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`;\n prevSideSheetRef.updateSize();\n });\n\n // Add new side sheet to open list\n this.openSideSheets.push(sideSheetRef);\n\n // Remove side sheet ref after closed\n sideSheetRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => this._removeOpenSideSheet(sideSheetRef));\n\n // Notify the side-sheet container that the content has been attached.\n sideSheetContainer._initializeWithAttachedContent();\n\n return sideSheetRef;\n }\n\n ngOnDestroy() {\n // Only close the side-sheets at this level on destroy\n // since the parent service may still be active.\n this._closeSideSheets(this._openSideSheetsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n // Clean up any subscriptions to side-sheet that never finished opening.\n if (this._animationStateSubscriptions) {\n this._animationStateSubscriptions.unsubscribe();\n }\n }\n\n /**\n * Closes all of the currently-open side-sheets.\n */\n closeAll(): void {\n this._closeSideSheets(this.openSideSheets);\n }\n\n private _createOverlay<T>(config: CovalentSideSheetConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n });\n const overlayRef = this._overlay.create(overlayConfig);\n const positionStrategy = overlayRef.getConfig()\n .positionStrategy as GlobalPositionStrategy;\n positionStrategy.right('0px');\n\n return overlayRef;\n }\n\n /**\n * Attaches a container to a side-sheets's already-created overlay.\n * @param overlay Reference to the side-sheet's underlying overlay.\n * @param config The side-sheet configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n private _attachSideSheetContainer(\n overlay: OverlayRef,\n config: CovalentSideSheetConfig\n ): C {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: CovalentSideSheetConfig, useValue: config }],\n });\n\n const containerPortal = new ComponentPortal(\n this._sideSheetContainerType,\n config.viewContainerRef,\n injector,\n config.componentFactoryResolver\n );\n const containerRef = overlay.attach<C>(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Attaches the user-provided component to the already-created side sheet container.\n * @param componentOrTemplateRef The type of component being loaded into the side-sheet,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping side-sheet container.\n * @param overlayRef Reference to the overlay in which the side-sheet resides.\n * @param config The side-sheet configuration.\n * @returns A promise resolving to the CovalentSideSheetRef that should be returned to the user.\n */\n private _attachSideSheetContent<T, R>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n sideSheetContainer: C,\n overlayRef: OverlayRef,\n config: CovalentSideSheetConfig\n ): CovalentSideSheetRef<T, R> {\n // Create a reference to the side-sheet we're creating in order to give the user a handle\n // to modify and close it.\n const sideSheetRef = new this._sideSheetRefConstructor(\n overlayRef,\n sideSheetContainer,\n config.id\n );\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n sideSheetContainer.attachTemplatePortal(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n new TemplatePortal<T>(componentOrTemplateRef, null!, <any>{\n $implicit: config.data,\n sideSheetRef,\n })\n );\n } else {\n const injector = this._createInjector<T>(\n config,\n sideSheetRef,\n sideSheetContainer\n );\n const contentRef = sideSheetContainer.attach<T>(\n new ComponentPortal(\n componentOrTemplateRef,\n config.viewContainerRef,\n injector\n )\n );\n sideSheetRef.componentInstance = contentRef.instance;\n }\n\n sideSheetRef.updateSize(config.width, config.height);\n\n return sideSheetRef;\n }\n\n private _createInjector<T>(\n config: CovalentSideSheetConfig,\n sideSheetRef: CovalentSideSheetRef<T>,\n sideSheetContainer: C\n ): Injector {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n\n // The side-sheet container should be provided as the side-sheet container and the side-sheet's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the side-sheet\n // container is explicitly provided in the injector.\n const providers: StaticProvider[] = [\n { provide: this._sideSheetContainerType, useValue: sideSheetContainer },\n { provide: this._sideSheetDataToken, useValue: config.data },\n { provide: this._sideSheetRefConstructor, useValue: sideSheetRef },\n ];\n\n if (\n config.direction &&\n (!userInjector ||\n !userInjector.get<Directionality | null>(\n Directionality,\n null,\n InjectFlags.Optional\n ))\n ) {\n providers.push({\n provide: Directionality,\n useValue: { value: config.direction, change: of() },\n });\n }\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers,\n });\n }\n\n /**\n * Removes a side sheet from the array of open side sheets.\n * @param sideSheetRef Side Sheet to be removed.\n */\n private _removeOpenSideSheet(sideSheetRef: CovalentSideSheetRef<unknown>) {\n const index = this.openSideSheets.indexOf(sideSheetRef);\n\n if (index > -1) {\n this.openSideSheets.splice(index, 1);\n }\n }\n\n /** Closes all of the side-sheet in an array. */\n private _closeSideSheets(sideSheets: CovalentSideSheetRef<any>[]) {\n let i = sideSheets.length;\n\n while (i--) {\n sideSheets[i].close();\n }\n }\n}\n\n/**\n * Service to open Covalent Design side-sheet.\n */\n@Injectable()\nexport class CovalentSideSheet extends _CovalentSideSheetBase<CovalentSideSheetContainerComponent> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(MAT_DIALOG_DEFAULT_OPTIONS)\n defaultOptions: CovalentSideSheetConfig,\n @Optional() @SkipSelf() parentSideSheet: CovalentSideSheet\n ) {\n super(\n overlay,\n injector,\n defaultOptions,\n parentSideSheet,\n CovalentSideSheetRef,\n CovalentSideSheetContainerComponent,\n MAT_DIALOG_DATA\n );\n }\n}\n","/* tslint:disable */\nimport {\n Directive,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n ElementRef,\n HostBinding,\n HostListener,\n} from '@angular/core';\nimport { CovalentSideSheet } from './side-sheet';\nimport { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';\n\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n selector: '[td-side-sheet-close], [CovalentSideSheetClose]',\n exportAs: 'CovalentSideSheetClose',\n})\nexport class CovalentSideSheetCloseDirective implements OnInit, OnChanges {\n /** Screenreader label for the button. */\n @HostBinding('attr.arial-label')\n @Input('aria-label')\n ariaLabel?: string;\n\n /** Default to \"button\" to prevents accidental form submits. */\n @HostBinding('attr.type')\n @Input()\n type: 'submit' | 'button' | 'reset' = 'button';\n\n /** Dialog close input. */\n @Input('td-side-sheet-close') dialogResult: any;\n\n @Input('CovalentSideSheetClose') _CovalentSideSheetClose: any;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n this._onButtonClick($event);\n }\n\n constructor(\n @Optional() public dialogRef: CovalentSideSheetRef<any>,\n private _elementRef: ElementRef<HTMLElement>,\n private _dialog: CovalentSideSheet\n ) {}\n\n ngOnInit(): void {\n if (!this.dialogRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.dialogRef = getClosestDialog(\n this._elementRef,\n this._dialog.openSideSheets\n );\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange =\n changes['_CovalentSideSheetClose'] ||\n changes['_CovalentSideSheetCloseResult'];\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n\n _onButtonClick(event: MouseEvent) {\n // Determinate the focus origin using the click event, because using the FocusMonitor will\n // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n // dialog, and therefore clicking the button won't result in a focus change. This means that\n // the FocusMonitor won't detect any origin change, and will always output `program`.\n _closeSideSheetVia(\n this.dialogRef,\n event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n this.dialogResult\n );\n }\n}\n\n/**\n * Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.\n */\n@Directive({\n selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',\n exportAs: 'CovalentSideSheetTitle',\n})\nexport class CovalentSideSheetTitleDirective implements OnInit {\n /** Unique id for the dialog title. If none is supplied, it will be auto-generated. */\n @Input() id = `td-side-sheet-title-${dialogElementUid++}`;\n\n @HostBinding('class.td-side-sheet-title') tdSideSheetTitle = true;\n\n @HostBinding('attr.id') idAttr = this.id;\n\n constructor(\n // The dialog title directive is always used in combination with a `CovalentSideSheetRef`.\n // tslint:disable-next-line: lightweight-tokens\n @Optional() private _dialogRef: CovalentSideSheetRef<any>,\n private _elementRef: ElementRef<HTMLElement>,\n private _dialog: CovalentSideSheet\n ) {}\n\n ngOnInit(): void {\n if (this._dialogRef) {\n Promise.resolve().then(() => {\n const container = this._dialogRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\n } else {\n this._dialogRef = getClosestDialog(\n this._elementRef,\n this._dialog.openSideSheets\n );\n }\n }\n}\n\n/**\n * Scrollable content container of a dialog.\n */\n@Directive({\n selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,\n})\nexport class CovalentSideSheetContentDirective {\n @HostBinding('class.td-side-sheet-content') tdSideSheetContent = true;\n}\n\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\n@Directive({\n selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,\n})\nexport class CovalentSideSheetActionsDirective {\n @HostBinding('class.td-side-sheet-actions') tdSideSheetActions = true;\n}\n\n/**\n * Container for the wrapper part of the dialog\n */\n@Directive({\n selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,\n})\nexport class CovalentSideSheetWrapperDirective {\n @HostBinding('class.td-side-sheet-wrapper') tdSideSheetWrapper = true;\n}\n\n/**\n * Finds the closest CovalentSideSheetRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(\n element: ElementRef<HTMLElement>,\n openDialogs: CovalentSideSheetRef<any>[]\n): CovalentSideSheetRef<any> {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('td-side-sheet-container')) {\n parent = parent.parentElement;\n }\n\n return parent\n ? openDialogs.find((dialog) => dialog.id === parent?.id) ?? openDialogs[0]\n : openDialogs[0];\n}\n","import { NgModule } from '@angular/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { CovalentSideSheet } from './side-sheet';\nimport { CovalentSideSheetContainerComponent } from './side-sheet-container';\nimport {\n CovalentSideSheetActionsDirective,\n CovalentSideSheetCloseDirective,\n CovalentSideSheetContentDirective,\n CovalentSideSheetTitleDirective,\n CovalentSideSheetWrapperDirective,\n} from './side-sheet.content-directives';\n\n@NgModule({\n declarations: [\n CovalentSideSheetContainerComponent,\n CovalentSideSheetActionsDirective,\n CovalentSideSheetCloseDirective,\n CovalentSideSheetContentDirective,\n CovalentSideSheetTitleDirective,\n CovalentSideSheetWrapperDirective,\n ],\n exports: [\n CovalentSideSheetActionsDirective,\n CovalentSideSheetCloseDirective,\n CovalentSideSheetContentDirective,\n CovalentSideSheetTitleDirective,\n CovalentSideSheetWrapperDirective,\n ],\n imports: [PortalModule, MatDialogModule, MatCommonModule],\n providers: [CovalentSideSheet],\n})\nexport class CovalentSideSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { ElementRef, Renderer2 } from '@angular/core';
1
+ import { EventEmitter, ElementRef, Renderer2, OnInit, OnDestroy, NgZone } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class TdFileDropBase {
5
4
  }
6
- export declare class TdFileDropDirective {
5
+ export declare class TdFileDropDirective implements OnInit, OnDestroy {
7
6
  private _renderer;
8
7
  private _element;
8
+ private _ngZone;
9
9
  private _multiple;
10
+ private _dragenterListener?;
11
+ private _dragleaveListener?;
10
12
  /**
11
13
  * multiple?: boolean
12
14
  * Sets whether multiple files can be dropped at once in host element, or just a single file.
@@ -28,7 +30,9 @@ export declare class TdFileDropDirective {
28
30
  * Binds native 'disabled' attribute if [disabled] property is 'true'.
29
31
  */
30
32
  get disabledBinding(): string | undefined;
31
- constructor(_renderer: Renderer2, _element: ElementRef);
33
+ constructor(_renderer: Renderer2, _element: ElementRef<HTMLElement>, _ngZone: NgZone);
34
+ ngOnInit(): void;
35
+ ngOnDestroy(): void;
32
36
  /**
33
37
  * Listens to 'drop' host event to get validated transfer items.
34
38
  * Emits the 'fileDrop' event with a [FileList] or [File] depending if 'multiple' attr exists in host.
@@ -41,16 +45,6 @@ export declare class TdFileDropDirective {
41
45
  * Stops event propagation and default action from browser for 'dragover' event.
42
46
  */
43
47
  onDragOver(event: Event): void;
44
- /**
45
- * Listens to 'dragenter' host event to add animation class 'drop-zone' which can be overriden in host.
46
- * Stops event propagation and default action from browser for 'dragenter' event.
47
- */
48
- onDragEnter(event: Event): void;
49
- /**
50
- * Listens to 'dragleave' host event to remove animation class 'drop-zone'.
51
- * Stops event propagation and default action from browser for 'dragleave' event.
52
- */
53
- onDragLeave(event: Event): void;
54
48
  /**
55
49
  * Validates if the transfer item types are 'Files'.
56
50
  */
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter, ElementRef, Renderer2, TemplateRef, ViewContainerRef, ChangeDetectorRef } from '@angular/core';
2
2
  import { TemplatePortalDirective } from '@angular/cdk/portal';
3
- import { ControlValueAccessor } from '@angular/forms';
3
+ import { ICanDisable, IControlValueAccessor } from '@covalent/core/common';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class TdFileInputLabelDirective extends TemplatePortalDirective {
6
6
  constructor(templateRef: TemplateRef<unknown>, viewContainerRef: ViewContainerRef);
@@ -11,13 +11,12 @@ export declare class TdFileInputBase {
11
11
  _changeDetectorRef: ChangeDetectorRef;
12
12
  constructor(_changeDetectorRef: ChangeDetectorRef);
13
13
  }
14
- export declare class TdFileInputComponent implements ControlValueAccessor {
14
+ export declare const _TdFileInputMixinBase: (new (...args: any[]) => IControlValueAccessor) & (new (...args: any[]) => ICanDisable) & typeof TdFileInputBase;
15
+ export declare class TdFileInputComponent extends _TdFileInputMixinBase implements IControlValueAccessor, ICanDisable {
15
16
  private _renderer;
16
- private _changeDetectorRef;
17
17
  private _multiple;
18
- private _disabled;
19
18
  /** The native `<input type="file"> element */
20
- _inputElement?: ElementRef;
19
+ _inputElement: ElementRef;
21
20
  get inputElement(): HTMLInputElement;
22
21
  /**
23
22
  * color?: 'accent' | 'primary' | 'warn'
@@ -29,16 +28,13 @@ export declare class TdFileInputComponent implements ControlValueAccessor {
29
28
  * Sets if multiple files can be dropped/selected at once in [TdFileInputComponent].
30
29
  */
31
30
  set multiple(multiple: boolean | string);
32
- get multiple(): boolean | string;
31
+ get multiple(): boolean;
33
32
  /**
34
33
  * accept?: string
35
34
  * Sets files accepted when opening the file browser dialog.
36
35
  * Same as 'accept' attribute in <input/> element.
37
36
  */
38
37
  accept?: string;
39
- set disabled(disabled: boolean);
40
- get disabled(): boolean;
41
- value?: unknown;
42
38
  /**
43
39
  * select?: function
44
40
  * Event emitted a file is selected
@@ -46,9 +42,6 @@ export declare class TdFileInputComponent implements ControlValueAccessor {
46
42
  */
47
43
  selectFile: EventEmitter<File | FileList>;
48
44
  constructor(_renderer: Renderer2, _changeDetectorRef: ChangeDetectorRef);
49
- writeValue(value: unknown): void;
50
- registerOnChange(newValue: unknown): void;
51
- registerOnTouched(): void;
52
45
  /**
53
46
  * Method executed when a file is selected.
54
47
  */
@@ -64,5 +57,5 @@ export declare class TdFileInputComponent implements ControlValueAccessor {
64
57
  */
65
58
  setDisabledState(isDisabled: boolean): void;
66
59
  static ɵfac: i0.ɵɵFactoryDeclaration<TdFileInputComponent, never>;
67
- static ɵcmp: i0.ɵɵComponentDeclaration<TdFileInputComponent, "td-file-input", never, { "color": "color"; "multiple": "multiple"; "accept": "accept"; "disabled": "disabled"; "value": "value"; }, { "selectFile": "selectFile"; }, never, ["*"]>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdFileInputComponent, "td-file-input", never, { "disabled": "disabled"; "value": "value"; "color": "color"; "multiple": "multiple"; "accept": "accept"; }, { "selectFile": "selectFile"; }, never, ["*"]>;
68
61
  }
package/layout/README.md CHANGED
@@ -130,7 +130,7 @@ Example for Main Layout / Navigation Drawer Combo:
130
130
  navigationRoute="/"
131
131
  >
132
132
  .. main drawer content
133
- <div td-navigation-drawer-menu>.. menu drawer content</div>
133
+ <div tdNavigationDrawerMenu>.. menu drawer content</div>
134
134
  </td-navigation-drawer>
135
135
  <div td-sidenav-content>.. more sidenav content</div>
136
136
  .. main content
@@ -10,7 +10,7 @@ export declare class TdLayoutManageListComponent implements ILayoutTogglable {
10
10
  * Defaults to "side".
11
11
  * See "MatSidenav" documentation for more info.
12
12
  *
13
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
13
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
14
14
  */
15
15
  mode: 'side' | 'push' | 'over';
16
16
  /**
@@ -21,7 +21,7 @@ export declare class TdLayoutManageListComponent implements ILayoutTogglable {
21
21
  *
22
22
  * See "MatSidenav" documentation for more info.
23
23
  *
24
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
24
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
25
25
  */
26
26
  opened: boolean;
27
27
  /**
@@ -30,7 +30,7 @@ export declare class TdLayoutManageListComponent implements ILayoutTogglable {
30
30
  * Sets the "width" of the sidenav in either "px" or "%"
31
31
  * Defaults to "257px".
32
32
  *
33
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
33
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
34
34
  */
35
35
  sidenavWidth: string;
36
36
  /**
@@ -41,7 +41,7 @@ export declare class TdLayoutManageListComponent implements ILayoutTogglable {
41
41
  *
42
42
  * See documentation for more info and potential performance risks.
43
43
  *
44
- * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
44
+ * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
45
45
  */
46
46
  containerAutosize: boolean;
47
47
  /**
@@ -37,7 +37,7 @@ export declare class TdLayoutNavListComponent implements ILayoutTogglable {
37
37
  * Defaults to "side".
38
38
  * See "MatSidenav" documentation for more info.
39
39
  *
40
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
40
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
41
41
  */
42
42
  mode: 'side' | 'push' | 'over';
43
43
  /**
@@ -47,7 +47,7 @@ export declare class TdLayoutNavListComponent implements ILayoutTogglable {
47
47
  *
48
48
  * See "MatSidenav" documentation for more info.
49
49
  *
50
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
50
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
51
51
  */
52
52
  opened: boolean;
53
53
  /**
@@ -56,7 +56,7 @@ export declare class TdLayoutNavListComponent implements ILayoutTogglable {
56
56
  * Sets the "width" of the sidenav in either "px" or "%"
57
57
  * Defaults to "350px".
58
58
  *
59
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
59
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
60
60
  */
61
61
  sidenavWidth: string;
62
62
  /**
@@ -67,7 +67,7 @@ export declare class TdLayoutNavListComponent implements ILayoutTogglable {
67
67
  *
68
68
  * See documentation for more info and potential performance risks.
69
69
  *
70
- * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
70
+ * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
71
71
  */
72
72
  containerAutosize: boolean;
73
73
  /**
@@ -10,7 +10,7 @@ export declare class TdLayoutComponent implements ILayoutTogglable {
10
10
  * Defaults to "over".
11
11
  * See "MatSidenav" documentation for more info.
12
12
  *
13
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
13
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
14
14
  */
15
15
  mode: 'side' | 'push' | 'over';
16
16
  /**
@@ -21,7 +21,7 @@ export declare class TdLayoutComponent implements ILayoutTogglable {
21
21
  *
22
22
  * See "MatSidenav" documentation for more info.
23
23
  *
24
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
24
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
25
25
  */
26
26
  opened: boolean;
27
27
  /**
@@ -30,7 +30,7 @@ export declare class TdLayoutComponent implements ILayoutTogglable {
30
30
  * Sets the "width" of the sidenav in either "px" or "%"
31
31
  * Defaults to "320px".
32
32
  *
33
- * https://github.com/angular/material2/tree/master/src/lib/sidenav
33
+ * https://github.com/angular/material2/tree/main/src/lib/sidenav
34
34
  */
35
35
  sidenavWidth: string;
36
36
  /**
@@ -41,7 +41,7 @@ export declare class TdLayoutComponent implements ILayoutTogglable {
41
41
  *
42
42
  * See documentation for more info and potential performance risks.
43
43
  *
44
- * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
44
+ * https://github.com/angular/material2/blob/main/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav
45
45
  */
46
46
  containerAutosize: boolean;
47
47
  /**