@dontdrinkandroot/ngx-material-extensions 0.5.0 → 0.5.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.
package/_extensions.scss CHANGED
@@ -1,92 +1,53 @@
1
- html, body {
2
- height: 100%;
3
- }
4
-
5
- body {
6
- margin: 0;
7
- font-family: Roboto, "Helvetica Neue", sans-serif;
8
- background-color: rgb(250, 250, 250);
9
- }
10
-
11
- @media (prefers-color-scheme: dark) {
12
- body {
13
- background-color: rgb(48, 48, 48)
14
- }
15
- }
16
-
17
1
  .mat-sidenav-container {
18
2
 
19
- ddr-mat-sidenav-toggle {
20
- margin-right: .5rem;
21
- }
3
+ height: 100vh;
22
4
 
23
- &.side {
5
+ .mat-sidenav {
6
+ &.mat-drawer-over {
7
+ max-width: 90vw;
24
8
 
25
- ddr-mat-sidenav-toggle {
26
- display: none;
9
+ .mat-mdc-nav-list {
10
+ margin-right: 1rem;
11
+ }
27
12
  }
28
13
 
29
- .mat-sidenav-content {
30
- .mat-toolbar {
31
- transition-duration: 400ms;
32
- transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);
33
- transition-property: left, width;
34
- left: $ddr-mat-sidenav-width;
35
- width: calc(100vw - #{$ddr-mat-sidenav-width});
36
- }
14
+ &.mat-drawer-side {
15
+ padding-right: 1rem;
37
16
  }
38
- }
39
17
 
40
- .mat-sidenav {
41
- min-width: $ddr-mat-sidenav-width;
42
- z-index: 100;
18
+ .mat-mdc-nav-list {
19
+ .mat-mdc-list-item {
20
+ border-top-left-radius: 0;
21
+ border-bottom-left-radius: 0;
22
+ }
23
+ }
43
24
  }
44
25
 
45
26
  .mat-sidenav-content {
46
-
47
- padding-top: $ddr-mat-toolbar-height;
48
- min-height: calc(100vh - #{$ddr-mat-toolbar-height});
49
-
50
- .mat-toolbar {
51
- position: fixed;
52
- left: 0;
53
- top: 0;
54
- z-index: 99;
55
- }
56
-
57
- @media (min-width: $ddr-breakpoint-sm) {
58
- padding-top: $ddr-mat-toolbar-height-sm-up;
59
- min-height: calc(100vh - #{$ddr-mat-toolbar-height-sm-up});
60
- }
27
+ min-height: 100vh;
61
28
  }
62
29
  }
63
30
 
64
31
  .ddr-mat-fab-container {
65
32
 
66
- height: $ddr-mat-fab-height;
33
+ height: calc($ddr-mat-fab-height + 2rem);
67
34
 
68
- .mat-mdc-fab {
69
- position: fixed !important;
70
- right: 0;
71
- bottom: 0;
72
- margin-right: 1rem !important;
73
- margin-bottom: 1rem !important;
74
- z-index: 2;
35
+ .mdc-fab {
36
+ position: fixed;
37
+ bottom: 1rem;
38
+ right: 1rem;
75
39
  }
76
40
  }
77
41
 
78
42
  .mat-toolbar {
79
43
 
80
- @extend .mat-elevation-z1;
81
-
82
- h1 {
83
- margin-right: auto;
84
- overflow: hidden;
85
- text-overflow: ellipsis;
44
+ .ddr-mat-heading {
45
+ @extend .text-overflow-ellipsis;
46
+ @extend .flex-auto;
86
47
  }
87
48
 
88
- .spacer {
89
- flex: 1 1 auto;
49
+ ddr-mat-sidenav-toggle {
50
+ margin-right: .5rem;
90
51
  }
91
52
  }
92
53
 
@@ -99,10 +60,6 @@ ddr-filter {
99
60
  }
100
61
  }
101
62
 
102
- .mat-mdc-nav-list {
103
- .mat-mdc-list-item {
104
- a.mat-mdc-list-item-title {
105
- text-decoration: none;
106
- }
107
- }
63
+ p.mat-mdc-list-item-line {
64
+ margin-bottom: 0;
108
65
  }
package/_theme.scss CHANGED
@@ -1,30 +1,42 @@
1
+ @use '@angular/material-experimental' as matx;
1
2
  @use '@angular/material' as mat;
2
3
 
3
4
  @include mat.core();
4
5
 
5
- $ddr-mat-primary-light: mat.define-palette(mat.$blue-palette, 700, 600, 800) !default;
6
- $ddr-mat-primary-dark: mat.define-palette(mat.$blue-palette, 600, 500, 700) !default;
6
+ $ddr-mat-primary-light: matx.$m3-azure-palette !default;
7
+ $ddr-mat-primary-dark: matx.$m3-azure-palette !default;
7
8
  $ddr-mat-accent: mat.define-palette(mat.$pink-palette) !default;
8
- $typography: mat.define-typography-config() !default;
9
9
 
10
- $ddr-mat-light-theme: mat.define-light-theme((
10
+ $ddr-light-theme: matx.define-theme((
11
11
  color: (
12
12
  primary: $ddr-mat-primary-light,
13
- accent: $ddr-mat-accent,
14
13
  ),
15
- typography: $typography
16
14
  )) !default;
17
- $ddr-mat-dark-theme: mat.define-dark-theme((
15
+
16
+ $ddr-dark-theme: matx.define-theme((
18
17
  color: (
18
+ theme-type: dark,
19
19
  primary: $ddr-mat-primary-dark,
20
- accent: $ddr-mat-accent,
21
20
  ),
22
- typography: $typography
23
21
  )) !default;
24
22
 
25
- @include mat.all-component-themes($ddr-mat-light-theme);
23
+ html {
24
+ @include mat.all-component-themes($ddr-light-theme);
25
+ }
26
+
26
27
  @media (prefers-color-scheme: dark) {
27
- @include mat.all-component-colors($ddr-mat-dark-theme);
28
+ html {
29
+ @include mat.all-component-colors($ddr-dark-theme);
30
+ }
28
31
  }
29
32
 
30
- @include mat.all-component-typographies($typography);
33
+ @include mat.typography-hierarchy($ddr-light-theme);
34
+
35
+ html, body {
36
+ height: 100%;
37
+ }
38
+
39
+ body {
40
+ margin: 0;
41
+ font-family: Roboto, "Helvetica Neue", sans-serif;
42
+ }
package/_utilities.scss CHANGED
@@ -10,6 +10,10 @@
10
10
  flex-direction: column !important;
11
11
  }
12
12
 
13
+ .flex-auto {
14
+ flex: 1 1 auto !important;
15
+ }
16
+
13
17
  .d-grid {
14
18
  display: grid !important;
15
19
  grid-gap: 1rem;
@@ -75,3 +79,24 @@
75
79
  .text-muted {
76
80
  color: #9e9e9e !important;
77
81
  }
82
+
83
+ .text-overflow-ellipsis {
84
+ overflow: hidden !important;
85
+ text-overflow: ellipsis !important;
86
+ white-space: nowrap !important;
87
+ }
88
+
89
+ .sticky-top {
90
+ position: sticky !important;
91
+ top: 0 !important;
92
+ z-index: 1 !important;
93
+ }
94
+
95
+ .list-unstyled {
96
+ list-style-type: none !important;
97
+ padding-left: 0 !important;
98
+ }
99
+
100
+ .cursor-pointer {
101
+ cursor: pointer !important;
102
+ }
package/_variables.scss CHANGED
@@ -1,11 +1,11 @@
1
1
  $ddr-spacer: 1rem !default;
2
2
  $ddr-spacers: (
3
- 0: 0,
4
- 1: $ddr-spacer * .25,
5
- 2: $ddr-spacer * .5,
6
- 3: $ddr-spacer,
7
- 4: $ddr-spacer * 1.5,
8
- 5: $ddr-spacer * 3,
3
+ none: 0,
4
+ quarter: $ddr-spacer * .25,
5
+ half: $ddr-spacer * .5,
6
+ full: $ddr-spacer,
7
+ one-half: $ddr-spacer * 1.5,
8
+ double: $ddr-spacer * 2
9
9
  ) !default;
10
10
 
11
11
  $ddr-paddings: (
@@ -24,10 +24,7 @@ $ddr-margins: (
24
24
  'mb': 'margin-bottom'
25
25
  ) !default;
26
26
 
27
- $ddr-mat-fab-height: 88px !default;
28
- $ddr-mat-sidenav-width: 300px !default;
29
- $ddr-mat-toolbar-height: 56px !default;
30
- $ddr-mat-toolbar-height-sm-up: 64px !default;
27
+ $ddr-mat-fab-height: 56px !default;
31
28
 
32
29
  $ddr-breakpoint-sm: 600px;
33
30
  $ddr-breakpoint-md: 960px;
@@ -12,10 +12,11 @@ import { ReactiveFormsModule } from '@angular/forms';
12
12
  import { MatFormFieldModule } from '@angular/material/form-field';
13
13
  import { MatInputModule } from '@angular/material/input';
14
14
  import { MatCardModule } from '@angular/material/card';
15
+ import { MatToolbarModule } from '@angular/material/toolbar';
15
16
  import * as i0 from "@angular/core";
16
17
  export class DdrMaterialExtensionsModule {
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, declarations: [FilterComponent,
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, declarations: [FilterComponent,
19
20
  SidenavToggleComponent,
20
21
  GridTileLazyImageContainerDirective,
21
22
  GridTileLazyImgDirective,
@@ -26,21 +27,23 @@ export class DdrMaterialExtensionsModule {
26
27
  MatInputModule,
27
28
  MatButtonModule,
28
29
  MatFormFieldModule,
30
+ MatToolbarModule,
29
31
  ReactiveFormsModule], exports: [FilterComponent,
30
32
  SidenavToggleComponent,
31
33
  GridTileLazyImageContainerDirective,
32
34
  GridTileLazyImgDirective,
33
35
  SidenavContainerComponent] }); }
34
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, imports: [CommonModule,
36
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, imports: [CommonModule,
35
37
  MatCardModule,
36
38
  MatSidenavModule,
37
39
  MatIconModule,
38
40
  MatInputModule,
39
41
  MatButtonModule,
40
42
  MatFormFieldModule,
43
+ MatToolbarModule,
41
44
  ReactiveFormsModule] }); }
42
45
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, decorators: [{
44
47
  type: NgModule,
45
48
  args: [{
46
49
  declarations: [
@@ -48,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
48
51
  SidenavToggleComponent,
49
52
  GridTileLazyImageContainerDirective,
50
53
  GridTileLazyImgDirective,
51
- SidenavContainerComponent
54
+ SidenavContainerComponent,
52
55
  ],
53
56
  imports: [
54
57
  CommonModule,
@@ -58,6 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
58
61
  MatInputModule,
59
62
  MatButtonModule,
60
63
  MatFormFieldModule,
64
+ MatToolbarModule,
61
65
  ReactiveFormsModule
62
66
  ],
63
67
  exports: [
@@ -65,8 +69,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
65
69
  SidenavToggleComponent,
66
70
  GridTileLazyImageContainerDirective,
67
71
  GridTileLazyImgDirective,
68
- SidenavContainerComponent
72
+ SidenavContainerComponent,
69
73
  ]
70
74
  }]
71
75
  }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLW1hdGVyaWFsLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rkci1tYXRlcmlhbC1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDeEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQTRCckQsTUFBTSxPQUFPLDJCQUEyQjs4R0FBM0IsMkJBQTJCOytHQUEzQiwyQkFBMkIsaUJBeEJoQyxlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLG1DQUFtQztZQUNuQyx3QkFBd0I7WUFDeEIseUJBQXlCLGFBR3pCLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixtQkFBbUIsYUFHbkIsZUFBZTtZQUNmLHNCQUFzQjtZQUN0QixtQ0FBbUM7WUFDbkMsd0JBQXdCO1lBQ3hCLHlCQUF5QjsrR0FHcEIsMkJBQTJCLFlBakJoQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsY0FBYztZQUNkLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsbUJBQW1COzsyRkFVZCwyQkFBMkI7a0JBMUJ2QyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsbUNBQW1DO3dCQUNuQyx3QkFBd0I7d0JBQ3hCLHlCQUF5QjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLG1DQUFtQzt3QkFDbkMsd0JBQXdCO3dCQUN4Qix5QkFBeUI7cUJBQzVCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NpZGVuYXZUb2dnbGVDb21wb25lbnR9IGZyb20gJy4vc2lkZW5hdi9zaWRlbmF2LXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRTaWRlbmF2TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7R3JpZFRpbGVMYXp5SW1hZ2VDb250YWluZXJEaXJlY3RpdmV9IGZyb20gJy4vZ3JpZGxpc3QvZ3JpZC10aWxlLWxhenktaW1hZ2UtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0dyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZX0gZnJvbSAnLi9ncmlkbGlzdC9ncmlkLXRpbGUtbGF6eS1pbWcuZGlyZWN0aXZlJztcbmltcG9ydCB7U2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9zaWRlbmF2L3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RmlsdGVyQ29tcG9uZW50fSBmcm9tICcuL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRDYXJkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBTaWRlbmF2VG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICBHcmlkVGlsZUxhenlJbWFnZUNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgICAgICAgR3JpZFRpbGVMYXp5SW1nRGlyZWN0aXZlLFxuICAgICAgICBTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgU2lkZW5hdlRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgR3JpZFRpbGVMYXp5SW1hZ2VDb250YWluZXJEaXJlY3RpdmUsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZSxcbiAgICAgICAgU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGRyTWF0ZXJpYWxFeHRlbnNpb25zTW9kdWxlXG57XG59XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLW1hdGVyaWFsLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rkci1tYXRlcmlhbC1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDeEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQTZCM0QsTUFBTSxPQUFPLDJCQUEyQjs4R0FBM0IsMkJBQTJCOytHQUEzQiwyQkFBMkIsaUJBekJoQyxlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLG1DQUFtQztZQUNuQyx3QkFBd0I7WUFDeEIseUJBQXlCLGFBR3pCLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsbUJBQW1CLGFBR25CLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIsbUNBQW1DO1lBQ25DLHdCQUF3QjtZQUN4Qix5QkFBeUI7K0dBR3BCLDJCQUEyQixZQWxCaEMsWUFBWTtZQUNaLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixtQkFBbUI7OzJGQVVkLDJCQUEyQjtrQkEzQnZDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixtQ0FBbUM7d0JBQ25DLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixtQ0FBbUM7d0JBQ25DLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3FCQUM1QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaWRlbmF2VG9nZ2xlQ29tcG9uZW50fSBmcm9tICcuL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0U2lkZW5hdk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge0dyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlfSBmcm9tICcuL2dyaWRsaXN0L2dyaWQtdGlsZS1sYXp5LWltYWdlLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmV9IGZyb20gJy4vZ3JpZGxpc3QvZ3JpZC10aWxlLWxhenktaW1nLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NpZGVuYXZDb250YWluZXJDb21wb25lbnR9IGZyb20gJy4vc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0ZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7TWF0Q2FyZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQge01hdFRvb2xiYXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFNpZGVuYXZUb2dnbGVDb21wb25lbnQsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmUsXG4gICAgICAgIFNpZGVuYXZDb250YWluZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgU2lkZW5hdlRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgR3JpZFRpbGVMYXp5SW1hZ2VDb250YWluZXJEaXJlY3RpdmUsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZSxcbiAgICAgICAgU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERkck1hdGVyaWFsRXh0ZW5zaW9uc01vZHVsZVxue1xufVxuIl19
@@ -39,10 +39,10 @@ export class FilterComponent {
39
39
  this.formControl.setValue(null);
40
40
  this.onFilterChanged.emit(undefined);
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FilterComponent, selector: "ddr-filter", inputs: { bouncePeriod: "bouncePeriod" }, outputs: { onFilterChanged: "onFilterChanged" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n", dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: FilterComponent, selector: "ddr-filter", inputs: { bouncePeriod: "bouncePeriod" }, outputs: { onFilterChanged: "onFilterChanged" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n", dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FilterComponent, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FilterComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{ selector: 'ddr-filter', template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n" }]
48
48
  }], propDecorators: { onFilterChanged: [{
@@ -30,8 +30,8 @@ export class GridTileLazyImageContainerDirective {
30
30
  ngOnDestroy() {
31
31
  this.changeSubscription.unsubscribe();
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: GridTileLazyImageContainerDirective, selector: "[ddrGridTileLazyImgContainer]", host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" } }, queries: [{ propertyName: "lazyImages", predicate: GridTileLazyImgDirective, descendants: true }], ngImport: i0 }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: GridTileLazyImageContainerDirective, selector: "[ddrGridTileLazyImgContainer]", host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" } }, queries: [{ propertyName: "lazyImages", predicate: GridTileLazyImgDirective, descendants: true }], ngImport: i0 }); }
35
35
  }
36
36
  __decorate([
37
37
  Debounce()
@@ -39,7 +39,7 @@ __decorate([
39
39
  __decorate([
40
40
  Limit()
41
41
  ], GridTileLazyImageContainerDirective.prototype, "windowScroll", null);
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImageContainerDirective, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImageContainerDirective, decorators: [{
43
43
  type: Directive,
44
44
  args: [{ selector: '[ddrGridTileLazyImgContainer]' }]
45
45
  }], propDecorators: { lazyImages: [{
@@ -83,10 +83,10 @@ export class GridTileLazyImgDirective {
83
83
  // console.log('isHidden');
84
84
  return window.getComputedStyle(nativeElement).display === 'none';
85
85
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImgDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
87
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: GridTileLazyImgDirective, selector: "[ddrGridTileLazyImg]", inputs: { src: ["ddrGridTileLazyImg", "src"], offset: "offset", objectFit: "objectFit" }, host: { properties: { "src": "this.hostSrc", "style.object-fit": "this.hostStyleObjectFit", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.opacity": "this.hostStyleOpacity" } }, usesOnChanges: true, ngImport: i0 }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImgDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
87
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: GridTileLazyImgDirective, selector: "[ddrGridTileLazyImg]", inputs: { src: ["ddrGridTileLazyImg", "src"], offset: "offset", objectFit: "objectFit" }, host: { properties: { "src": "this.hostSrc", "style.object-fit": "this.hostStyleObjectFit", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.opacity": "this.hostStyleOpacity" } }, usesOnChanges: true, ngImport: i0 }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImgDirective, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImgDirective, decorators: [{
90
90
  type: Directive,
91
91
  args: [{ selector: '[ddrGridTileLazyImg]' }]
92
92
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { src: [{
@@ -1,4 +1,6 @@
1
1
  import { Component, Input, ViewChild } from '@angular/core';
2
+ import { distinctUntilChanged, startWith } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
2
4
  import * as i0 from "@angular/core";
3
5
  import * as i1 from "./sidenav.service";
4
6
  import * as i2 from "@angular/cdk/layout";
@@ -23,17 +25,27 @@ export class SidenavContainerComponent {
23
25
  */
24
26
  ngOnInit() {
25
27
  this.sidenavService.setSidenav(this.sidenav);
28
+ this.scrollSubscription = this.sidenavContent.elementScrolled().pipe(startWith(false), map(() => this.sidenavContent.measureScrollOffset('top') > 0), distinctUntilChanged()).subscribe((scrolled) => this.sidenavContent.getElementRef().nativeElement.classList.toggle('scrolled', scrolled));
26
29
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavContainerComponent, deps: [{ token: i1.SidenavService }, { token: i2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: SidenavContainerComponent, selector: "ddr-mat-sidenav-container", inputs: { stayOpenOnLargeScreen: "stayOpenOnLargeScreen" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
30
+ /**
31
+ * @override
32
+ */
33
+ ngOnDestroy() {
34
+ this.scrollSubscription.unsubscribe();
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavContainerComponent, deps: [{ token: i1.SidenavService }, { token: i2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: SidenavContainerComponent, selector: "ddr-mat-sidenav-container", inputs: { stayOpenOnLargeScreen: "stayOpenOnLargeScreen" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }, { propertyName: "sidenavContent", first: true, predicate: ["sidenavContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content #sidenavContent>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
29
38
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavContainerComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavContainerComponent, decorators: [{
31
40
  type: Component,
32
- args: [{ selector: 'ddr-mat-sidenav-container', template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n" }]
41
+ args: [{ selector: 'ddr-mat-sidenav-container', template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content #sidenavContent>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n" }]
33
42
  }], ctorParameters: () => [{ type: i1.SidenavService }, { type: i2.BreakpointObserver }], propDecorators: { sidenav: [{
34
43
  type: ViewChild,
35
44
  args: ['sidenav', { static: true }]
45
+ }], sidenavContent: [{
46
+ type: ViewChild,
47
+ args: ['sidenavContent', { static: true }]
36
48
  }], stayOpenOnLargeScreen: [{
37
49
  type: Input
38
50
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQW9DLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBVTVGLE1BQU0sT0FBTyx5QkFBeUI7SUFZbEMsWUFBb0IsY0FBOEIsRUFBVSxrQkFBc0M7UUFBOUUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQU4zRiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFOUIsVUFBSyxHQUE4QixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFM0UsWUFBTyxHQUF3QixJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFJaEYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBRXJDLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUVYLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQTlCUSx5QkFBeUI7a0dBQXpCLHlCQUF5QixvUUNWdEMsK2JBWUE7OzJGREZhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDSSwyQkFBMkI7b0hBTTlCLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUk3QixxQkFBcUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREcmF3ZXJNb2RlLCBNYXRTaWRlbmF2fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7U2lkZW5hdlNlcnZpY2V9IGZyb20gJy4vc2lkZW5hdi5zZXJ2aWNlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGRyLW1hdC1zaWRlbmF2LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgICBAVmlld0NoaWxkKCdzaWRlbmF2Jywge3N0YXRpYzogdHJ1ZX0pXG4gICAgcHVibGljIHNpZGVuYXYhOiBNYXRTaWRlbmF2O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RheU9wZW5PbkxhcmdlU2NyZWVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgbW9kZSQ6IE9ic2VydmFibGU8TWF0RHJhd2VyTW9kZT4gPSB0aGlzLnNpZGVuYXZTZXJ2aWNlLmdldE1vZGVPYnNlcnZhYmxlKCk7XG5cbiAgICBwdWJsaWMgb3BlbmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuc2lkZW5hdlNlcnZpY2UuZ2V0T3BlbmVkT2JzZXJ2YWJsZSgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzaWRlbmF2U2VydmljZTogU2lkZW5hdlNlcnZpY2UsIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIpXG4gICAge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5zZXRTdGF5T3Blbk9uTGFyZ2VTY3JlZW4oY2hhbmdlc1snc3RheU9wZW5PbkxhcmdlU2NyZWVuJ10uY3VycmVudFZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5zZXRTaWRlbmF2KHRoaXMuc2lkZW5hdik7XG4gICAgfVxufVxuIiwiPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBbbmdDbGFzc109XCIobW9kZSR8YXN5bmMpXCI+XG4gICAgPG1hdC1zaWRlbmF2XG4gICAgICAgICNzaWRlbmF2XG4gICAgICAgIGZpeGVkSW5WaWV3cG9ydD1cInRydWVcIlxuICAgICAgICBbbW9kZV09XCIobW9kZSR8YXN5bmMpID8/ICdvdmVyJ1wiXG4gICAgICAgIFtvcGVuZWRdPVwiKG9wZW5lZCR8YXN5bmMpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PW1hdC1zaWRlbmF2XVwiPjwvbmctY29udGVudD5cbiAgICA8L21hdC1zaWRlbmF2PlxuICAgIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1tYXQtc2lkZW5hdi1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L21hdC1zaWRlbmF2LWNvbnRlbnQ+XG48L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQStDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl2RyxPQUFPLEVBQUMsb0JBQW9CLEVBQWMsU0FBUyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBTW5DLE1BQU0sT0FBTyx5QkFBeUI7SUFpQmxDLFlBQW9CLGNBQThCLEVBQVUsa0JBQXNDO1FBQTlFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFSM0YsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLFVBQUssR0FBOEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRTNFLFlBQU8sR0FBd0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBTWhGLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFzQjtRQUVyQyxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFFWCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUNoRSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQ2hCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUM3RCxvQkFBb0IsRUFBRSxDQUN6QixDQUFDLFNBQVMsQ0FDUCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQ3pHLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBRWQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7OEdBbERRLHlCQUF5QjtrR0FBekIseUJBQXlCLHFYQ1h0Qyw2YUFXQTs7MkZEQWEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNJLDJCQUEyQjtvSEFNOUIsT0FBTztzQkFEYixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSTdCLGNBQWM7c0JBRHBCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUlwQyxxQkFBcUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERyYXdlck1vZGUsIE1hdFNpZGVuYXYsIE1hdFNpZGVuYXZDb250ZW50fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7U2lkZW5hdlNlcnZpY2V9IGZyb20gJy4vc2lkZW5hdi5zZXJ2aWNlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGRyLW1hdC1zaWRlbmF2LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ3NpZGVuYXYnLCB7c3RhdGljOiB0cnVlfSlcbiAgICBwdWJsaWMgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XG5cbiAgICBAVmlld0NoaWxkKCdzaWRlbmF2Q29udGVudCcsIHtzdGF0aWM6IHRydWV9KVxuICAgIHB1YmxpYyBzaWRlbmF2Q29udGVudCE6IE1hdFNpZGVuYXZDb250ZW50O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RheU9wZW5PbkxhcmdlU2NyZWVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgbW9kZSQ6IE9ic2VydmFibGU8TWF0RHJhd2VyTW9kZT4gPSB0aGlzLnNpZGVuYXZTZXJ2aWNlLmdldE1vZGVPYnNlcnZhYmxlKCk7XG5cbiAgICBwdWJsaWMgb3BlbmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuc2lkZW5hdlNlcnZpY2UuZ2V0T3BlbmVkT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNpZGVuYXZTZXJ2aWNlOiBTaWRlbmF2U2VydmljZSwgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcilcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkXG4gICAge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnNldFN0YXlPcGVuT25MYXJnZVNjcmVlbihjaGFuZ2VzWydzdGF5T3Blbk9uTGFyZ2VTY3JlZW4nXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkXG4gICAge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnNldFNpZGVuYXYodGhpcy5zaWRlbmF2KTtcbiAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24gPSB0aGlzLnNpZGVuYXZDb250ZW50LmVsZW1lbnRTY3JvbGxlZCgpLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuc2lkZW5hdkNvbnRlbnQubWVhc3VyZVNjcm9sbE9mZnNldCgndG9wJykgPiAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHNjcm9sbGVkKSA9PiB0aGlzLnNpZGVuYXZDb250ZW50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ3Njcm9sbGVkJywgc2Nyb2xsZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KClcbiAgICB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIiwiPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBbbmdDbGFzc109XCIobW9kZSR8YXN5bmMpXCI+XG4gICAgPG1hdC1zaWRlbmF2XG4gICAgICAgICNzaWRlbmF2XG4gICAgICAgIFttb2RlXT1cIihtb2RlJHxhc3luYykgPz8gJ292ZXInXCJcbiAgICAgICAgW29wZW5lZF09XCIob3BlbmVkJHxhc3luYylcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9bWF0LXNpZGVuYXZdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbWF0LXNpZGVuYXY+XG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgI3NpZGVuYXZDb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1tYXQtc2lkZW5hdi1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L21hdC1zaWRlbmF2LWNvbnRlbnQ+XG48L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Component } from '@angular/core';
2
+ import { toSignal } from '@angular/core/rxjs-interop';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "./sidenav.service";
4
5
  import * as i2 from "@angular/material/icon";
@@ -6,24 +7,28 @@ import * as i3 from "@angular/material/button";
6
7
  export class SidenavToggleComponent {
7
8
  constructor(sidenavService) {
8
9
  this.sidenavService = sidenavService;
10
+ this.visible = toSignal(this.sidenavService.watchToggleVisible(), { initialValue: false });
9
11
  }
10
12
  toggleSidenav() {
11
13
  this.sidenavService.toggle();
12
14
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavToggleComponent, deps: [{ token: i1.SidenavService }], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: SidenavToggleComponent, selector: "ddr-mat-sidenav-toggle", ngImport: i0, template: `
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavToggleComponent, deps: [{ token: i1.SidenavService }], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: SidenavToggleComponent, selector: "ddr-mat-sidenav-toggle", host: { properties: { "style.display": "visible() ? \"block\" : \"none\"" } }, ngImport: i0, template: `
15
17
  <button mat-icon-button (click)="toggleSidenav()">
16
18
  <mat-icon>menu</mat-icon>
17
19
  </button>`, isInline: true, dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
18
20
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavToggleComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavToggleComponent, decorators: [{
20
22
  type: Component,
21
23
  args: [{
22
24
  selector: 'ddr-mat-sidenav-toggle',
23
25
  template: `
24
26
  <button mat-icon-button (click)="toggleSidenav()">
25
27
  <mat-icon>menu</mat-icon>
26
- </button>`
28
+ </button>`,
29
+ host: {
30
+ '[style.display]': 'visible() ? "block" : "none"'
31
+ }
27
32
  }]
28
33
  }], ctorParameters: () => [{ type: i1.SidenavService }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVXhDLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRWxELENBQUM7SUFFTSxhQUFhO1FBRWhCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0FUUSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw4REFMckI7OztrQkFHSTs7MkZBRUwsc0JBQXNCO2tCQVBsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7O2tCQUdJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2lkZW5hdlNlcnZpY2V9IGZyb20gJy4vc2lkZW5hdi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkZHItbWF0LXNpZGVuYXYtdG9nZ2xlJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU2lkZW5hdigpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPmBcbn0pXG5leHBvcnQgY2xhc3MgU2lkZW5hdlRvZ2dsZUNvbXBvbmVudFxue1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2lkZW5hdlNlcnZpY2U6IFNpZGVuYXZTZXJ2aWNlKVxuICAgIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlU2lkZW5hdigpXG4gICAge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnRvZ2dsZSgpO1xuICAgIH1cbn1cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7OztBQVlwRCxNQUFNLE9BQU8sc0JBQXNCO0lBSS9CLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUYzQyxZQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBSTNGLENBQUM7SUFFTSxhQUFhO1FBRWhCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0FYUSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw2SUFSckI7OztrQkFHSTs7MkZBS0wsc0JBQXNCO2tCQVZsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7O2tCQUdJO29CQUNkLElBQUksRUFBRTt3QkFDRixpQkFBaUIsRUFBRSw4QkFBOEI7cUJBQ3BEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaWRlbmF2U2VydmljZX0gZnJvbSAnLi9zaWRlbmF2LnNlcnZpY2UnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rkci1tYXQtc2lkZW5hdi10b2dnbGUnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVTaWRlbmF2KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+YCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3R5bGUuZGlzcGxheV0nOiAndmlzaWJsZSgpID8gXCJibG9ja1wiIDogXCJub25lXCInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2VG9nZ2xlQ29tcG9uZW50XG57XG4gICAgcHVibGljIHZpc2libGUgPSB0b1NpZ25hbCh0aGlzLnNpZGVuYXZTZXJ2aWNlLndhdGNoVG9nZ2xlVmlzaWJsZSgpLCB7aW5pdGlhbFZhbHVlOiBmYWxzZX0pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzaWRlbmF2U2VydmljZTogU2lkZW5hdlNlcnZpY2UpXG4gICAge1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVTaWRlbmF2KClcbiAgICB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UudG9nZ2xlKCk7XG4gICAgfVxufVxuIl19
@@ -53,13 +53,16 @@ export class SidenavService {
53
53
  getOpenedObservable() {
54
54
  return this.opened$;
55
55
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavService, deps: [{ token: i1.BreakpointObserver }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
57
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavService, providedIn: 'root' }); }
56
+ watchToggleVisible() {
57
+ return this.screenLarge$.pipe(map(large => !large || !this.stayOpenOnLargeScreen));
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavService, deps: [{ token: i1.BreakpointObserver }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavService, providedIn: 'root' }); }
58
61
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavService, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavService, decorators: [{
60
63
  type: Injectable,
61
64
  args: [{
62
65
  providedIn: 'root'
63
66
  }]
64
67
  }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i2.Router }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFxQixXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGVBQWUsRUFBUyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBS3hELE1BQU0sT0FBTyxjQUFjO0lBa0J2QixZQUFvQixrQkFBc0MsRUFBVSxNQUFjO1FBQTlELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZDFFLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBRztZQUN2QixXQUFXLENBQUMsTUFBTTtZQUNsQixXQUFXLENBQUMsS0FBSztZQUNqQixXQUFXLENBQUMsTUFBTTtTQUNyQixDQUFDO1FBVUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FDM0UsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUNoQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDdEUsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FDcEQsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQyxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBbUI7UUFFakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVNLHdCQUF3QjtRQUUzQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBRU0sd0JBQXdCLENBQUMsS0FBYztRQUUxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNO1FBRVQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLFlBQVk7UUFFZixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQjtRQUVwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVNLG1CQUFtQjtRQUV0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs4R0EvRVEsY0FBYztrSEFBZCxjQUFjLGNBRlgsTUFBTTs7MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREcmF3ZXJNb2RlLCBNYXREcmF3ZXJUb2dnbGVSZXN1bHQsIE1hdFNpZGVuYXZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2U2VydmljZVxue1xuICAgIHByaXZhdGUgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XG5cbiAgICBwcml2YXRlIHN0YXlPcGVuT25MYXJnZVNjcmVlbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsYXJnZUJyZWFrcG9pbnRzID0gW1xuICAgICAgICBCcmVha3BvaW50cy5NZWRpdW0sXG4gICAgICAgIEJyZWFrcG9pbnRzLkxhcmdlLFxuICAgICAgICBCcmVha3BvaW50cy5YTGFyZ2VcbiAgICBdO1xuXG4gICAgcHJpdmF0ZSBzY3JlZW5MYXJnZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwcml2YXRlIG1vZGUkOiBPYnNlcnZhYmxlPE1hdERyYXdlck1vZGU+O1xuXG4gICAgcHJpdmF0ZSBvcGVuZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlciwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcilcbiAgICB7XG4gICAgICAgIHRoaXMuc2NyZWVuTGFyZ2UkID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmxhcmdlQnJlYWtwb2ludHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5tYXRjaGVzKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1vZGUkID0gdGhpcy5zY3JlZW5MYXJnZSQucGlwZShcbiAgICAgICAgICAgIG1hcChsYXJnZSA9PiBsYXJnZSAmJiB0aGlzLnN0YXlPcGVuT25MYXJnZVNjcmVlbiA/ICdzaWRlJyA6ICdvdmVyJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vcGVuZWQkID0gdGhpcy5zY3JlZW5MYXJnZSQucGlwZShcbiAgICAgICAgICAgIG1hcChsYXJnZSA9PiBsYXJnZSAmJiB0aGlzLnN0YXlPcGVuT25MYXJnZVNjcmVlbilcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlU2lkZWJhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2lkZW5hdihzaWRlbmF2OiBNYXRTaWRlbmF2KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2ID0gc2lkZW5hdjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3RheU9wZW5PbkxhcmdlU2NyZWVuKCk6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXlPcGVuT25MYXJnZVNjcmVlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U3RheU9wZW5PbkxhcmdlU2NyZWVuKHZhbHVlOiBib29sZWFuKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zdGF5T3Blbk9uTGFyZ2VTY3JlZW4gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IFByb21pc2U8TWF0RHJhd2VyVG9nZ2xlUmVzdWx0PlxuICAgIHtcbiAgICAgICAgaWYgKG51bGwgPT0gdGhpcy5zaWRlbmF2KSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ05vIE1hdFNpZGVuYXYgZm91bmQuIFVzZSBzZXRTaWRlbmF2KCkgb2YgU2lkZW5hdlNlcnZpY2UnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghKHRoaXMuc3RheU9wZW5PbkxhcmdlU2NyZWVuICYmIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZCh0aGlzLmxhcmdlQnJlYWtwb2ludHMpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2lkZW5hdi50b2dnbGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5zaWRlbmF2Lm9wZW5lZCA/ICdvcGVuJyA6ICdjbG9zZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZVNpZGViYXIoKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKCEodGhpcy5zdGF5T3Blbk9uTGFyZ2VTY3JlZW4gJiYgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKHRoaXMubGFyZ2VCcmVha3BvaW50cykpKSB7XG4gICAgICAgICAgICB0aGlzLnNpZGVuYXYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNb2RlT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPE1hdERyYXdlck1vZGU+XG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3BlbmVkT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWQkO1xuICAgIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFxQixXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGVBQWUsRUFBUyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBS3hELE1BQU0sT0FBTyxjQUFjO0lBa0J2QixZQUFvQixrQkFBc0MsRUFBVSxNQUFjO1FBQTlELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZDFFLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBRztZQUN2QixXQUFXLENBQUMsTUFBTTtZQUNsQixXQUFXLENBQUMsS0FBSztZQUNqQixXQUFXLENBQUMsTUFBTTtTQUNyQixDQUFDO1FBVUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FDM0UsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUNoQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDdEUsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FDcEQsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQyxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBbUI7UUFFakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVNLHdCQUF3QjtRQUUzQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBRU0sd0JBQXdCLENBQUMsS0FBYztRQUUxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNO1FBRVQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLFlBQVk7UUFFZixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQjtRQUVwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVNLG1CQUFtQjtRQUV0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVNLGtCQUFrQjtRQUVyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUN0RCxDQUFDO0lBQ04sQ0FBQzs4R0F0RlEsY0FBYztrSEFBZCxjQUFjLGNBRlgsTUFBTTs7MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREcmF3ZXJNb2RlLCBNYXREcmF3ZXJUb2dnbGVSZXN1bHQsIE1hdFNpZGVuYXZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2U2VydmljZVxue1xuICAgIHByaXZhdGUgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XG5cbiAgICBwcml2YXRlIHN0YXlPcGVuT25MYXJnZVNjcmVlbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsYXJnZUJyZWFrcG9pbnRzID0gW1xuICAgICAgICBCcmVha3BvaW50cy5NZWRpdW0sXG4gICAgICAgIEJyZWFrcG9pbnRzLkxhcmdlLFxuICAgICAgICBCcmVha3BvaW50cy5YTGFyZ2VcbiAgICBdO1xuXG4gICAgcHJpdmF0ZSBzY3JlZW5MYXJnZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwcml2YXRlIG1vZGUkOiBPYnNlcnZhYmxlPE1hdERyYXdlck1vZGU+O1xuXG4gICAgcHJpdmF0ZSBvcGVuZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlciwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcilcbiAgICB7XG4gICAgICAgIHRoaXMuc2NyZWVuTGFyZ2UkID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmxhcmdlQnJlYWtwb2ludHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5tYXRjaGVzKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1vZGUkID0gdGhpcy5zY3JlZW5MYXJnZSQucGlwZShcbiAgICAgICAgICAgIG1hcChsYXJnZSA9PiBsYXJnZSAmJiB0aGlzLnN0YXlPcGVuT25MYXJnZVNjcmVlbiA/ICdzaWRlJyA6ICdvdmVyJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vcGVuZWQkID0gdGhpcy5zY3JlZW5MYXJnZSQucGlwZShcbiAgICAgICAgICAgIG1hcChsYXJnZSA9PiBsYXJnZSAmJiB0aGlzLnN0YXlPcGVuT25MYXJnZVNjcmVlbilcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlU2lkZWJhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2lkZW5hdihzaWRlbmF2OiBNYXRTaWRlbmF2KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2ID0gc2lkZW5hdjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3RheU9wZW5PbkxhcmdlU2NyZWVuKCk6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXlPcGVuT25MYXJnZVNjcmVlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U3RheU9wZW5PbkxhcmdlU2NyZWVuKHZhbHVlOiBib29sZWFuKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zdGF5T3Blbk9uTGFyZ2VTY3JlZW4gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IFByb21pc2U8TWF0RHJhd2VyVG9nZ2xlUmVzdWx0PlxuICAgIHtcbiAgICAgICAgaWYgKG51bGwgPT0gdGhpcy5zaWRlbmF2KSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ05vIE1hdFNpZGVuYXYgZm91bmQuIFVzZSBzZXRTaWRlbmF2KCkgb2YgU2lkZW5hdlNlcnZpY2UnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghKHRoaXMuc3RheU9wZW5PbkxhcmdlU2NyZWVuICYmIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZCh0aGlzLmxhcmdlQnJlYWtwb2ludHMpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2lkZW5hdi50b2dnbGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5zaWRlbmF2Lm9wZW5lZCA/ICdvcGVuJyA6ICdjbG9zZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZVNpZGViYXIoKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKCEodGhpcy5zdGF5T3Blbk9uTGFyZ2VTY3JlZW4gJiYgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKHRoaXMubGFyZ2VCcmVha3BvaW50cykpKSB7XG4gICAgICAgICAgICB0aGlzLnNpZGVuYXYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNb2RlT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPE1hdERyYXdlck1vZGU+XG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3BlbmVkT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWQkO1xuICAgIH1cblxuICAgIHB1YmxpYyB3YXRjaFRvZ2dsZVZpc2libGUoKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NyZWVuTGFyZ2UkLnBpcGUoXG4gICAgICAgICAgICBtYXAobGFyZ2UgPT4gIWxhcmdlIHx8ICF0aGlzLnN0YXlPcGVuT25MYXJnZVNjcmVlbilcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Output, Input, ViewChild, Injectable, Directive, HostBinding, ContentChildren, HostListener, NgModule } from '@angular/core';
3
3
  import * as i6 from '@angular/forms';
4
4
  import { FormControl, ReactiveFormsModule } from '@angular/forms';
5
- import { interval } from 'rxjs';
5
+ import { interval, startWith, distinctUntilChanged } from 'rxjs';
6
6
  import { debounce, map } from 'rxjs/operators';
7
7
  import * as i1 from '@angular/material/card';
8
8
  import { MatCardModule } from '@angular/material/card';
@@ -22,8 +22,10 @@ import * as i3$1 from '@angular/common';
22
22
  import { CommonModule } from '@angular/common';
23
23
  import * as i4$1 from '@angular/material/sidenav';
24
24
  import { MatSidenavModule } from '@angular/material/sidenav';
25
+ import { toSignal } from '@angular/core/rxjs-interop';
25
26
  import { __decorate } from 'tslib';
26
27
  import { NumberUtils, StringUtils, Debounce, Limit } from '@dontdrinkandroot/ngx-extensions';
28
+ import { MatToolbarModule } from '@angular/material/toolbar';
27
29
 
28
30
  class FilterComponent {
29
31
  constructor() {
@@ -55,10 +57,10 @@ class FilterComponent {
55
57
  this.formControl.setValue(null);
56
58
  this.onFilterChanged.emit(undefined);
57
59
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FilterComponent, selector: "ddr-filter", inputs: { bouncePeriod: "bouncePeriod" }, outputs: { onFilterChanged: "onFilterChanged" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n", dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: FilterComponent, selector: "ddr-filter", inputs: { bouncePeriod: "bouncePeriod" }, outputs: { onFilterChanged: "onFilterChanged" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n", dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
60
62
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FilterComponent, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FilterComponent, decorators: [{
62
64
  type: Component,
63
65
  args: [{ selector: 'ddr-filter', template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n" }]
64
66
  }], propDecorators: { onFilterChanged: [{
@@ -118,10 +120,13 @@ class SidenavService {
118
120
  getOpenedObservable() {
119
121
  return this.opened$;
120
122
  }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavService, deps: [{ token: i1$1.BreakpointObserver }, { token: i2$1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
122
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavService, providedIn: 'root' }); }
123
+ watchToggleVisible() {
124
+ return this.screenLarge$.pipe(map(large => !large || !this.stayOpenOnLargeScreen));
125
+ }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavService, deps: [{ token: i1$1.BreakpointObserver }, { token: i2$1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
127
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavService, providedIn: 'root' }); }
123
128
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavService, decorators: [{
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavService, decorators: [{
125
130
  type: Injectable,
126
131
  args: [{
127
132
  providedIn: 'root'
@@ -147,16 +152,26 @@ class SidenavContainerComponent {
147
152
  */
148
153
  ngOnInit() {
149
154
  this.sidenavService.setSidenav(this.sidenav);
155
+ this.scrollSubscription = this.sidenavContent.elementScrolled().pipe(startWith(false), map(() => this.sidenavContent.measureScrollOffset('top') > 0), distinctUntilChanged()).subscribe((scrolled) => this.sidenavContent.getElementRef().nativeElement.classList.toggle('scrolled', scrolled));
150
156
  }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavContainerComponent, deps: [{ token: SidenavService }, { token: i1$1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: SidenavContainerComponent, selector: "ddr-mat-sidenav-container", inputs: { stayOpenOnLargeScreen: "stayOpenOnLargeScreen" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4$1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4$1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4$1.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] }); }
157
+ /**
158
+ * @override
159
+ */
160
+ ngOnDestroy() {
161
+ this.scrollSubscription.unsubscribe();
162
+ }
163
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavContainerComponent, deps: [{ token: SidenavService }, { token: i1$1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: SidenavContainerComponent, selector: "ddr-mat-sidenav-container", inputs: { stayOpenOnLargeScreen: "stayOpenOnLargeScreen" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }, { propertyName: "sidenavContent", first: true, predicate: ["sidenavContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content #sidenavContent>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4$1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4$1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4$1.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] }); }
153
165
  }
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavContainerComponent, decorators: [{
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavContainerComponent, decorators: [{
155
167
  type: Component,
156
- args: [{ selector: 'ddr-mat-sidenav-container', template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n" }]
168
+ args: [{ selector: 'ddr-mat-sidenav-container', template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content #sidenavContent>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n" }]
157
169
  }], ctorParameters: () => [{ type: SidenavService }, { type: i1$1.BreakpointObserver }], propDecorators: { sidenav: [{
158
170
  type: ViewChild,
159
171
  args: ['sidenav', { static: true }]
172
+ }], sidenavContent: [{
173
+ type: ViewChild,
174
+ args: ['sidenavContent', { static: true }]
160
175
  }], stayOpenOnLargeScreen: [{
161
176
  type: Input
162
177
  }] } });
@@ -164,24 +179,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
164
179
  class SidenavToggleComponent {
165
180
  constructor(sidenavService) {
166
181
  this.sidenavService = sidenavService;
182
+ this.visible = toSignal(this.sidenavService.watchToggleVisible(), { initialValue: false });
167
183
  }
168
184
  toggleSidenav() {
169
185
  this.sidenavService.toggle();
170
186
  }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavToggleComponent, deps: [{ token: SidenavService }], target: i0.ɵɵFactoryTarget.Component }); }
172
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: SidenavToggleComponent, selector: "ddr-mat-sidenav-toggle", ngImport: i0, template: `
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavToggleComponent, deps: [{ token: SidenavService }], target: i0.ɵɵFactoryTarget.Component }); }
188
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: SidenavToggleComponent, selector: "ddr-mat-sidenav-toggle", host: { properties: { "style.display": "visible() ? \"block\" : \"none\"" } }, ngImport: i0, template: `
173
189
  <button mat-icon-button (click)="toggleSidenav()">
174
190
  <mat-icon>menu</mat-icon>
175
191
  </button>`, isInline: true, dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
176
192
  }
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SidenavToggleComponent, decorators: [{
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SidenavToggleComponent, decorators: [{
178
194
  type: Component,
179
195
  args: [{
180
196
  selector: 'ddr-mat-sidenav-toggle',
181
197
  template: `
182
198
  <button mat-icon-button (click)="toggleSidenav()">
183
199
  <mat-icon>menu</mat-icon>
184
- </button>`
200
+ </button>`,
201
+ host: {
202
+ '[style.display]': 'visible() ? "block" : "none"'
203
+ }
185
204
  }]
186
205
  }], ctorParameters: () => [{ type: SidenavService }] });
187
206
 
@@ -267,10 +286,10 @@ class GridTileLazyImgDirective {
267
286
  // console.log('isHidden');
268
287
  return window.getComputedStyle(nativeElement).display === 'none';
269
288
  }
270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImgDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
271
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: GridTileLazyImgDirective, selector: "[ddrGridTileLazyImg]", inputs: { src: ["ddrGridTileLazyImg", "src"], offset: "offset", objectFit: "objectFit" }, host: { properties: { "src": "this.hostSrc", "style.object-fit": "this.hostStyleObjectFit", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.opacity": "this.hostStyleOpacity" } }, usesOnChanges: true, ngImport: i0 }); }
289
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImgDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
290
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: GridTileLazyImgDirective, selector: "[ddrGridTileLazyImg]", inputs: { src: ["ddrGridTileLazyImg", "src"], offset: "offset", objectFit: "objectFit" }, host: { properties: { "src": "this.hostSrc", "style.object-fit": "this.hostStyleObjectFit", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.opacity": "this.hostStyleOpacity" } }, usesOnChanges: true, ngImport: i0 }); }
272
291
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImgDirective, decorators: [{
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImgDirective, decorators: [{
274
293
  type: Directive,
275
294
  args: [{ selector: '[ddrGridTileLazyImg]' }]
276
295
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { src: [{
@@ -324,8 +343,8 @@ class GridTileLazyImageContainerDirective {
324
343
  ngOnDestroy() {
325
344
  this.changeSubscription.unsubscribe();
326
345
  }
327
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
328
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: GridTileLazyImageContainerDirective, selector: "[ddrGridTileLazyImgContainer]", host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" } }, queries: [{ propertyName: "lazyImages", predicate: GridTileLazyImgDirective, descendants: true }], ngImport: i0 }); }
346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
347
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: GridTileLazyImageContainerDirective, selector: "[ddrGridTileLazyImgContainer]", host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" } }, queries: [{ propertyName: "lazyImages", predicate: GridTileLazyImgDirective, descendants: true }], ngImport: i0 }); }
329
348
  }
330
349
  __decorate([
331
350
  Debounce()
@@ -333,7 +352,7 @@ __decorate([
333
352
  __decorate([
334
353
  Limit()
335
354
  ], GridTileLazyImageContainerDirective.prototype, "windowScroll", null);
336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: GridTileLazyImageContainerDirective, decorators: [{
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: GridTileLazyImageContainerDirective, decorators: [{
337
356
  type: Directive,
338
357
  args: [{ selector: '[ddrGridTileLazyImgContainer]' }]
339
358
  }], propDecorators: { lazyImages: [{
@@ -348,8 +367,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
348
367
  }] } });
349
368
 
350
369
  class DdrMaterialExtensionsModule {
351
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
352
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, declarations: [FilterComponent,
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
371
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, declarations: [FilterComponent,
353
372
  SidenavToggleComponent,
354
373
  GridTileLazyImageContainerDirective,
355
374
  GridTileLazyImgDirective,
@@ -360,21 +379,23 @@ class DdrMaterialExtensionsModule {
360
379
  MatInputModule,
361
380
  MatButtonModule,
362
381
  MatFormFieldModule,
382
+ MatToolbarModule,
363
383
  ReactiveFormsModule], exports: [FilterComponent,
364
384
  SidenavToggleComponent,
365
385
  GridTileLazyImageContainerDirective,
366
386
  GridTileLazyImgDirective,
367
387
  SidenavContainerComponent] }); }
368
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, imports: [CommonModule,
388
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, imports: [CommonModule,
369
389
  MatCardModule,
370
390
  MatSidenavModule,
371
391
  MatIconModule,
372
392
  MatInputModule,
373
393
  MatButtonModule,
374
394
  MatFormFieldModule,
395
+ MatToolbarModule,
375
396
  ReactiveFormsModule] }); }
376
397
  }
377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrMaterialExtensionsModule, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, decorators: [{
378
399
  type: NgModule,
379
400
  args: [{
380
401
  declarations: [
@@ -382,7 +403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
382
403
  SidenavToggleComponent,
383
404
  GridTileLazyImageContainerDirective,
384
405
  GridTileLazyImgDirective,
385
- SidenavContainerComponent
406
+ SidenavContainerComponent,
386
407
  ],
387
408
  imports: [
388
409
  CommonModule,
@@ -392,6 +413,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
392
413
  MatInputModule,
393
414
  MatButtonModule,
394
415
  MatFormFieldModule,
416
+ MatToolbarModule,
395
417
  ReactiveFormsModule
396
418
  ],
397
419
  exports: [
@@ -399,7 +421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
399
421
  SidenavToggleComponent,
400
422
  GridTileLazyImageContainerDirective,
401
423
  GridTileLazyImgDirective,
402
- SidenavContainerComponent
424
+ SidenavContainerComponent,
403
425
  ]
404
426
  }]
405
427
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/sidenav/sidenav-toggle.component.ts","../../src/gridlist/grid-tile-lazy-img.directive.ts","../../src/gridlist/grid-tile-lazy-image-container.directive.ts","../../src/ddr-material-extensions.module.ts","../../public-api.ts","../../dontdrinkandroot-ngx-material-extensions.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {interval, Subscription} from 'rxjs';\nimport {debounce} from 'rxjs/operators';\n\n@Component({\n selector: 'ddr-filter',\n templateUrl: './filter.component.html',\n})\nexport class FilterComponent implements OnInit, OnDestroy, AfterContentInit\n{\n public formControl: FormControl = new FormControl();\n\n @Output()\n public onFilterChanged = new EventEmitter<string>();\n\n @Input()\n public bouncePeriod = 500;\n\n @ViewChild('input', {static: true})\n public inputElement!: ElementRef;\n\n private valueChangesSubscription!: Subscription;\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.valueChangesSubscription = this.formControl.valueChanges\n .pipe(debounce(() => interval(this.bouncePeriod)))\n .subscribe((value => this.onFilterChanged.emit(value)));\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.valueChangesSubscription.unsubscribe();\n }\n\n /**\n * @override\n */\n public ngAfterContentInit()\n {\n this.inputElement.nativeElement.focus();\n }\n\n\n public clear()\n {\n this.formControl.setValue(null);\n this.onFilterChanged.emit(undefined);\n }\n}\n","<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n","import {Injectable} from '@angular/core';\nimport {MatDrawerMode, MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SidenavService\n{\n private sidenav!: MatSidenav;\n\n private stayOpenOnLargeScreen = false;\n\n private largeBreakpoints = [\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ];\n\n private screenLarge$: Observable<boolean>;\n\n private mode$: Observable<MatDrawerMode>;\n\n private opened$: Observable<boolean>;\n\n constructor(private breakpointObserver: BreakpointObserver, private router: Router)\n {\n this.screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(\n map(result => result.matches)\n );\n this.mode$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen ? 'side' : 'over')\n );\n this.opened$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen)\n );\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.closeSidebar();\n }\n });\n }\n\n public setSidenav(sidenav: MatSidenav): void\n {\n this.sidenav = sidenav;\n }\n\n public getStayOpenOnLargeScreen(): boolean\n {\n return this.stayOpenOnLargeScreen;\n }\n\n public setStayOpenOnLargeScreen(value: boolean): void\n {\n this.stayOpenOnLargeScreen = value;\n }\n\n public toggle(): Promise<MatDrawerToggleResult>\n {\n if (null == this.sidenav) {\n return Promise.reject('No MatSidenav found. Use setSidenav() of SidenavService');\n }\n\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n return this.sidenav.toggle();\n }\n\n return Promise.resolve(this.sidenav.opened ? 'open' : 'close');\n }\n\n public closeSidebar(): void\n {\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n this.sidenav.close();\n }\n }\n\n public getModeObservable(): Observable<MatDrawerMode>\n {\n return this.mode$;\n }\n\n public getOpenedObservable(): Observable<boolean>\n {\n return this.opened$;\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {MatDrawerMode, MatSidenav} from '@angular/material/sidenav';\nimport {SidenavService} from './sidenav.service';\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html'\n})\nexport class SidenavContainerComponent implements OnInit, OnChanges\n{\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n @Input()\n public stayOpenOnLargeScreen = false;\n\n public mode$: Observable<MatDrawerMode> = this.sidenavService.getModeObservable();\n\n public opened$: Observable<boolean> = this.sidenavService.getOpenedObservable();\n\n constructor(private sidenavService: SidenavService, private breakpointObserver: BreakpointObserver)\n {\n }\n\n /**\n * @override\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n this.sidenavService.setStayOpenOnLargeScreen(changes['stayOpenOnLargeScreen'].currentValue);\n }\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.sidenavService.setSidenav(this.sidenav);\n }\n}\n","<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import {Component} from '@angular/core';\nimport {SidenavService} from './sidenav.service';\n\n@Component({\n selector: 'ddr-mat-sidenav-toggle',\n template: `\n <button mat-icon-button (click)=\"toggleSidenav()\">\n <mat-icon>menu</mat-icon>\n </button>`\n})\nexport class SidenavToggleComponent\n{\n constructor(private sidenavService: SidenavService)\n {\n }\n\n public toggleSidenav()\n {\n this.sidenavService.toggle();\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnChanges, SimpleChanges} from '@angular/core';\nimport {NumberUtils, StringUtils} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({selector: '[ddrGridTileLazyImg]'})\nexport class GridTileLazyImgDirective implements OnChanges\n{\n @Input('ddrGridTileLazyImg')\n public src!: string;\n\n @HostBinding('src')\n public hostSrc = 'assets/placeholder.gif';\n\n @HostBinding('style.object-fit')\n public hostStyleObjectFit = 'contain';\n\n @HostBinding('style.width.px')\n public hostStyleWidthPx!: number;\n\n @HostBinding('style.height.px')\n public hostStyleHeightPx!: number;\n\n @HostBinding('style.opacity')\n public hostStyleOpacity = 0;\n\n @Input()\n public offset = 1000;\n\n @Input()\n public objectFit = 'cover';\n\n private displayed = false;\n\n private maxLoadedDimension: { width: number, height: number } | null = null;\n\n constructor(private element: ElementRef, private cd: ChangeDetectorRef)\n {\n }\n\n public recheck()\n {\n this.displayed = false;\n this.check();\n }\n\n public check()\n {\n if (\n this.displayed\n || this.isHidden(this.element.nativeElement)\n || !this.isInsideViewport(this.element.nativeElement, this.offset)\n ) {\n return;\n }\n\n this.displayed = true;\n const dimension = this.getDimension();\n\n if (\n null != this.maxLoadedDimension\n && this.maxLoadedDimension.width >= dimension.width\n && this.maxLoadedDimension.height >= dimension.height\n ) {\n return;\n }\n\n this.maxLoadedDimension = dimension;\n this.hostStyleWidthPx = dimension.width;\n this.hostStyleHeightPx = dimension.height;\n let wantedSize: number;\n if (this.objectFit === 'cover') {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'cover';\n } else {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'contain';\n }\n this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));\n this.hostStyleOpacity = 1;\n this.cd.detectChanges();\n }\n\n /**\n * @override\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n this.displayed = false;\n this.maxLoadedDimension = null;\n this.hostStyleOpacity = 0;\n if (this.element.nativeElement.parentElement.offsetWidth > 0) {\n this.check();\n }\n }\n\n private isInsideViewport(nativeElement: HTMLElement, offset: number): boolean\n {\n // console.log('isInsideViewport');\n const ownerDocument = nativeElement.ownerDocument;\n const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;\n const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;\n\n const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);\n const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);\n const topOffset = nativeElement.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;\n const leftOffset = nativeElement.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;\n\n // console.log(documentWidth, documentHeight, topOffset, leftOffset);\n\n const isBelowViewport = documentHeight + documentTop <= topOffset - offset;\n const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - offset;\n const isAboveViewport = documentTop >= topOffset + offset + nativeElement.offsetHeight;\n const isAtLeftOfViewport = documentLeft >= leftOffset + offset + nativeElement.offsetWidth;\n\n return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;\n }\n\n private getDimension(): { width: number, height: number }\n {\n return {\n width: this.element.nativeElement.parentElement.offsetWidth,\n height: this.element.nativeElement.parentElement.offsetHeight,\n };\n }\n\n private isHidden(nativeElement: HTMLElement)\n {\n // console.log('isHidden');\n return window.getComputedStyle(nativeElement).display === 'none';\n }\n}\n","import {AfterContentInit, ContentChildren, Directive, HostListener, OnDestroy, QueryList} from '@angular/core';\nimport {GridTileLazyImgDirective} from './grid-tile-lazy-img.directive';\nimport {Subscription} from 'rxjs';\nimport {Debounce, Limit} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({selector: '[ddrGridTileLazyImgContainer]'})\nexport class GridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy\n{\n @ContentChildren(GridTileLazyImgDirective, {descendants: true}) lazyImages!: QueryList<GridTileLazyImgDirective>;\n\n private changeSubscription!: Subscription;\n\n @HostListener('window:resize', ['$event'])\n @Debounce()\n public windowResized($event: Event)\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.recheck());\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @Limit()\n public windowScroll($event: Event)\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.check());\n }\n }\n\n /**\n * @override\n */\n public ngAfterContentInit(): void\n {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.check());\n this.changeSubscription = this.lazyImages.changes.subscribe(() => {\n /* Wait one tick until layout is ready */\n setTimeout(\n () => this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.recheck())\n , 1\n );\n });\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.changeSubscription.unsubscribe();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {SidenavToggleComponent} from './sidenav/sidenav-toggle.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {GridTileLazyImageContainerDirective} from './gridlist/grid-tile-lazy-image-container.directive';\nimport {GridTileLazyImgDirective} from './gridlist/grid-tile-lazy-img.directive';\nimport {SidenavContainerComponent} from './sidenav/sidenav-container.component';\nimport {CommonModule} from '@angular/common';\nimport {FilterComponent} from './filter/filter.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatCardModule} from '@angular/material/card';\n\n@NgModule({\n declarations: [\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent\n ],\n imports: [\n CommonModule,\n MatCardModule,\n MatSidenavModule,\n MatIconModule,\n MatInputModule,\n MatButtonModule,\n MatFormFieldModule,\n ReactiveFormsModule\n ],\n exports: [\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent\n ]\n})\nexport class DdrMaterialExtensionsModule\n{\n}\n","/*\n * Public API Surface of ngx-material-extensions\n */\n\nexport * from './src/filter/filter.component';\n\nexport * from './src/sidenav/sidenav-container.component';\nexport * from './src/sidenav/sidenav-toggle.component';\nexport * from './src/sidenav/sidenav.service';\n\nexport * from './src/ddr-material-extensions.module';\nexport * from './src/gridlist/grid-tile-lazy-image-container.directive';\nexport * from './src/gridlist/grid-tile-lazy-img.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SidenavService","i3","i4"],"mappings":"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"}
1
+ {"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/sidenav/sidenav-toggle.component.ts","../../src/gridlist/grid-tile-lazy-img.directive.ts","../../src/gridlist/grid-tile-lazy-image-container.directive.ts","../../src/ddr-material-extensions.module.ts","../../public-api.ts","../../dontdrinkandroot-ngx-material-extensions.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {interval, Subscription} from 'rxjs';\nimport {debounce} from 'rxjs/operators';\n\n@Component({\n selector: 'ddr-filter',\n templateUrl: './filter.component.html',\n})\nexport class FilterComponent implements OnInit, OnDestroy, AfterContentInit\n{\n public formControl: FormControl = new FormControl();\n\n @Output()\n public onFilterChanged = new EventEmitter<string>();\n\n @Input()\n public bouncePeriod = 500;\n\n @ViewChild('input', {static: true})\n public inputElement!: ElementRef;\n\n private valueChangesSubscription!: Subscription;\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.valueChangesSubscription = this.formControl.valueChanges\n .pipe(debounce(() => interval(this.bouncePeriod)))\n .subscribe((value => this.onFilterChanged.emit(value)));\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.valueChangesSubscription.unsubscribe();\n }\n\n /**\n * @override\n */\n public ngAfterContentInit()\n {\n this.inputElement.nativeElement.focus();\n }\n\n\n public clear()\n {\n this.formControl.setValue(null);\n this.onFilterChanged.emit(undefined);\n }\n}\n","<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n","import {Injectable} from '@angular/core';\nimport {MatDrawerMode, MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SidenavService\n{\n private sidenav!: MatSidenav;\n\n private stayOpenOnLargeScreen = false;\n\n private largeBreakpoints = [\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ];\n\n private screenLarge$: Observable<boolean>;\n\n private mode$: Observable<MatDrawerMode>;\n\n private opened$: Observable<boolean>;\n\n constructor(private breakpointObserver: BreakpointObserver, private router: Router)\n {\n this.screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(\n map(result => result.matches)\n );\n this.mode$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen ? 'side' : 'over')\n );\n this.opened$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen)\n );\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.closeSidebar();\n }\n });\n }\n\n public setSidenav(sidenav: MatSidenav): void\n {\n this.sidenav = sidenav;\n }\n\n public getStayOpenOnLargeScreen(): boolean\n {\n return this.stayOpenOnLargeScreen;\n }\n\n public setStayOpenOnLargeScreen(value: boolean): void\n {\n this.stayOpenOnLargeScreen = value;\n }\n\n public toggle(): Promise<MatDrawerToggleResult>\n {\n if (null == this.sidenav) {\n return Promise.reject('No MatSidenav found. Use setSidenav() of SidenavService');\n }\n\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n return this.sidenav.toggle();\n }\n\n return Promise.resolve(this.sidenav.opened ? 'open' : 'close');\n }\n\n public closeSidebar(): void\n {\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n this.sidenav.close();\n }\n }\n\n public getModeObservable(): Observable<MatDrawerMode>\n {\n return this.mode$;\n }\n\n public getOpenedObservable(): Observable<boolean>\n {\n return this.opened$;\n }\n\n public watchToggleVisible()\n {\n return this.screenLarge$.pipe(\n map(large => !large || !this.stayOpenOnLargeScreen)\n );\n }\n}\n","import {Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {MatDrawerMode, MatSidenav, MatSidenavContent} from '@angular/material/sidenav';\nimport {SidenavService} from './sidenav.service';\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {distinctUntilChanged, Observable, startWith, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html'\n})\nexport class SidenavContainerComponent implements OnInit, OnChanges, OnDestroy\n{\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n @ViewChild('sidenavContent', {static: true})\n public sidenavContent!: MatSidenavContent;\n\n @Input()\n public stayOpenOnLargeScreen = false;\n\n public mode$: Observable<MatDrawerMode> = this.sidenavService.getModeObservable();\n\n public opened$: Observable<boolean> = this.sidenavService.getOpenedObservable();\n\n private scrollSubscription!: Subscription;\n\n constructor(private sidenavService: SidenavService, private breakpointObserver: BreakpointObserver)\n {\n }\n\n /**\n * @override\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n this.sidenavService.setStayOpenOnLargeScreen(changes['stayOpenOnLargeScreen'].currentValue);\n }\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.sidenavService.setSidenav(this.sidenav);\n this.scrollSubscription = this.sidenavContent.elementScrolled().pipe(\n startWith(false),\n map(() => this.sidenavContent.measureScrollOffset('top') > 0),\n distinctUntilChanged(),\n ).subscribe(\n (scrolled) => this.sidenavContent.getElementRef().nativeElement.classList.toggle('scrolled', scrolled)\n );\n }\n\n /**\n * @override\n */\n public ngOnDestroy()\n {\n this.scrollSubscription.unsubscribe();\n }\n}\n","<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content #sidenavContent>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import {Component} from '@angular/core';\nimport {SidenavService} from './sidenav.service';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ddr-mat-sidenav-toggle',\n template: `\n <button mat-icon-button (click)=\"toggleSidenav()\">\n <mat-icon>menu</mat-icon>\n </button>`,\n host: {\n '[style.display]': 'visible() ? \"block\" : \"none\"'\n }\n})\nexport class SidenavToggleComponent\n{\n public visible = toSignal(this.sidenavService.watchToggleVisible(), {initialValue: false});\n\n constructor(private sidenavService: SidenavService)\n {\n }\n\n public toggleSidenav()\n {\n this.sidenavService.toggle();\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnChanges, SimpleChanges} from '@angular/core';\nimport {NumberUtils, StringUtils} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({selector: '[ddrGridTileLazyImg]'})\nexport class GridTileLazyImgDirective implements OnChanges\n{\n @Input('ddrGridTileLazyImg')\n public src!: string;\n\n @HostBinding('src')\n public hostSrc = 'assets/placeholder.gif';\n\n @HostBinding('style.object-fit')\n public hostStyleObjectFit = 'contain';\n\n @HostBinding('style.width.px')\n public hostStyleWidthPx!: number;\n\n @HostBinding('style.height.px')\n public hostStyleHeightPx!: number;\n\n @HostBinding('style.opacity')\n public hostStyleOpacity = 0;\n\n @Input()\n public offset = 1000;\n\n @Input()\n public objectFit = 'cover';\n\n private displayed = false;\n\n private maxLoadedDimension: { width: number, height: number } | null = null;\n\n constructor(private element: ElementRef, private cd: ChangeDetectorRef)\n {\n }\n\n public recheck()\n {\n this.displayed = false;\n this.check();\n }\n\n public check()\n {\n if (\n this.displayed\n || this.isHidden(this.element.nativeElement)\n || !this.isInsideViewport(this.element.nativeElement, this.offset)\n ) {\n return;\n }\n\n this.displayed = true;\n const dimension = this.getDimension();\n\n if (\n null != this.maxLoadedDimension\n && this.maxLoadedDimension.width >= dimension.width\n && this.maxLoadedDimension.height >= dimension.height\n ) {\n return;\n }\n\n this.maxLoadedDimension = dimension;\n this.hostStyleWidthPx = dimension.width;\n this.hostStyleHeightPx = dimension.height;\n let wantedSize: number;\n if (this.objectFit === 'cover') {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'cover';\n } else {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'contain';\n }\n this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));\n this.hostStyleOpacity = 1;\n this.cd.detectChanges();\n }\n\n /**\n * @override\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n this.displayed = false;\n this.maxLoadedDimension = null;\n this.hostStyleOpacity = 0;\n if (this.element.nativeElement.parentElement.offsetWidth > 0) {\n this.check();\n }\n }\n\n private isInsideViewport(nativeElement: HTMLElement, offset: number): boolean\n {\n // console.log('isInsideViewport');\n const ownerDocument = nativeElement.ownerDocument;\n const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;\n const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;\n\n const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);\n const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);\n const topOffset = nativeElement.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;\n const leftOffset = nativeElement.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;\n\n // console.log(documentWidth, documentHeight, topOffset, leftOffset);\n\n const isBelowViewport = documentHeight + documentTop <= topOffset - offset;\n const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - offset;\n const isAboveViewport = documentTop >= topOffset + offset + nativeElement.offsetHeight;\n const isAtLeftOfViewport = documentLeft >= leftOffset + offset + nativeElement.offsetWidth;\n\n return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;\n }\n\n private getDimension(): { width: number, height: number }\n {\n return {\n width: this.element.nativeElement.parentElement.offsetWidth,\n height: this.element.nativeElement.parentElement.offsetHeight,\n };\n }\n\n private isHidden(nativeElement: HTMLElement)\n {\n // console.log('isHidden');\n return window.getComputedStyle(nativeElement).display === 'none';\n }\n}\n","import {AfterContentInit, ContentChildren, Directive, HostListener, OnDestroy, QueryList} from '@angular/core';\nimport {GridTileLazyImgDirective} from './grid-tile-lazy-img.directive';\nimport {Subscription} from 'rxjs';\nimport {Debounce, Limit} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({selector: '[ddrGridTileLazyImgContainer]'})\nexport class GridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy\n{\n @ContentChildren(GridTileLazyImgDirective, {descendants: true}) lazyImages!: QueryList<GridTileLazyImgDirective>;\n\n private changeSubscription!: Subscription;\n\n @HostListener('window:resize', ['$event'])\n @Debounce()\n public windowResized($event: Event)\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.recheck());\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @Limit()\n public windowScroll($event: Event)\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.check());\n }\n }\n\n /**\n * @override\n */\n public ngAfterContentInit(): void\n {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.check());\n this.changeSubscription = this.lazyImages.changes.subscribe(() => {\n /* Wait one tick until layout is ready */\n setTimeout(\n () => this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.recheck())\n , 1\n );\n });\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.changeSubscription.unsubscribe();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {SidenavToggleComponent} from './sidenav/sidenav-toggle.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {GridTileLazyImageContainerDirective} from './gridlist/grid-tile-lazy-image-container.directive';\nimport {GridTileLazyImgDirective} from './gridlist/grid-tile-lazy-img.directive';\nimport {SidenavContainerComponent} from './sidenav/sidenav-container.component';\nimport {CommonModule} from '@angular/common';\nimport {FilterComponent} from './filter/filter.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatToolbarModule} from '@angular/material/toolbar';\n\n@NgModule({\n declarations: [\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent,\n ],\n imports: [\n CommonModule,\n MatCardModule,\n MatSidenavModule,\n MatIconModule,\n MatInputModule,\n MatButtonModule,\n MatFormFieldModule,\n MatToolbarModule,\n ReactiveFormsModule\n ],\n exports: [\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent,\n ]\n})\nexport class DdrMaterialExtensionsModule\n{\n}\n","/*\n * Public API Surface of ngx-material-extensions\n */\n\nexport * from './src/filter/filter.component';\n\nexport * from './src/sidenav/sidenav-container.component';\nexport * from './src/sidenav/sidenav-toggle.component';\nexport * from './src/sidenav/sidenav.service';\n\nexport * from './src/ddr-material-extensions.module';\nexport * from './src/gridlist/grid-tile-lazy-image-container.directive';\nexport * from './src/gridlist/grid-tile-lazy-img.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SidenavService","i3","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmBa,eAAe,CAAA;AAJ5B,IAAA,WAAA,GAAA;AAMW,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;AAG7C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;QAG7C,IAAY,CAAA,YAAA,GAAG,GAAG,CAAC;AAuC7B,KAAA;AAhCG;;AAEG;IACI,QAAQ,GAAA;AAEX,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY;AACxD,aAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACjD,aAAA,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;KAC/D;AAED;;AAEG;IACI,WAAW,GAAA;AAEd,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;KAC/C;AAED;;AAEG;IACI,kBAAkB,GAAA;AAErB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC3C;IAGM,KAAK,GAAA;AAER,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACxC;8GA9CQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,kQCnB5B,6VAQA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDWa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;+BACI,YAAY,EAAA,QAAA,EAAA,6VAAA,EAAA,CAAA;8BAQf,eAAe,EAAA,CAAA;sBADrB,MAAM;gBAIA,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;;MEnBzB,cAAc,CAAA;IAkBvB,WAAoB,CAAA,kBAAsC,EAAU,MAAc,EAAA;QAA9D,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAd1E,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACvB,YAAA,WAAW,CAAC,MAAM;AAClB,YAAA,WAAW,CAAC,KAAK;AACjB,YAAA,WAAW,CAAC,MAAM;SACrB,CAAC;QAUE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAC3E,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAChC,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAC/B,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,qBAAqB,GAAG,MAAM,GAAG,MAAM,CAAC,CACtE,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACjC,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,CACpD,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;AACjC,YAAA,IAAI,KAAK,YAAY,eAAe,EAAE;gBAClC,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;AACL,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,UAAU,CAAC,OAAmB,EAAA;AAEjC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;IAEM,wBAAwB,GAAA;QAE3B,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACrC;AAEM,IAAA,wBAAwB,CAAC,KAAc,EAAA;AAE1C,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACtC;IAEM,MAAM,GAAA;AAET,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC;SACpF;AAED,QAAA,IAAI,EAAE,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE;AAC3F,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SAChC;AAED,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KAClE;IAEM,YAAY,GAAA;AAEf,QAAA,IAAI,EAAE,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE;AAC3F,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACxB;KACJ;IAEM,iBAAiB,GAAA;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAEM,mBAAmB,GAAA;QAEtB,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAEM,kBAAkB,GAAA;QAErB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CACzB,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CACtD,CAAC;KACL;8GAtFQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCEY,yBAAyB,CAAA;IAiBlC,WAAoB,CAAA,cAA8B,EAAU,kBAAsC,EAAA;QAA9E,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAAU,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAR3F,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAE9B,QAAA,IAAA,CAAA,KAAK,GAA8B,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;AAE3E,QAAA,IAAA,CAAA,OAAO,GAAwB,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;KAM/E;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,OAAsB,EAAA;AAErC,QAAA,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,YAAY,CAAC,CAAC;KAC/F;AAED;;AAEG;IACI,QAAQ,GAAA;QAEX,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,IAAI,CAChE,SAAS,CAAC,KAAK,CAAC,EAChB,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAC7D,oBAAoB,EAAE,CACzB,CAAC,SAAS,CACP,CAAC,QAAQ,KAAK,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzG,CAAC;KACL;AAED;;AAEG;IACI,WAAW,GAAA;AAEd,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;KACzC;8GAlDQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,qXCXtC,6aAWA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDAa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;+BACI,2BAA2B,EAAA,QAAA,EAAA,6aAAA,EAAA,CAAA;mHAM9B,OAAO,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;gBAI7B,cAAc,EAAA,CAAA;sBADpB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;gBAIpC,qBAAqB,EAAA,CAAA;sBAD3B,KAAK;;;MELG,sBAAsB,CAAA;AAI/B,IAAA,WAAA,CAAoB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAF3C,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,EAAC,YAAY,EAAE,KAAK,EAAC,CAAC,CAAC;KAI1F;IAEM,aAAa,GAAA;AAEhB,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KAChC;8GAXQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EARrB,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGI,iBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKL,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAA;;;AAGI,iBAAA,CAAA;AACd,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,8BAA8B;AACpD,qBAAA;AACJ,iBAAA,CAAA;;;MCTY,wBAAwB,CAAA;IA8BjC,WAAoB,CAAA,OAAmB,EAAU,EAAqB,EAAA;QAAlD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAU,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAxB/D,IAAO,CAAA,OAAA,GAAG,wBAAwB,CAAC;QAGnC,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;QAS/B,IAAgB,CAAA,gBAAA,GAAG,CAAC,CAAC;QAGrB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QAGd,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;QAEnB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAkB,CAAA,kBAAA,GAA6C,IAAI,CAAC;KAI3E;IAEM,OAAO,GAAA;AAEV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAEM,KAAK,GAAA;QAER,IACI,IAAI,CAAC,SAAS;eACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACzC,eAAA,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,EACpE;YACE,OAAO;SACV;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AAEtC,QAAA,IACI,IAAI,IAAI,IAAI,CAAC,kBAAkB;AAC5B,eAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK;eAChD,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EACvD;YACE,OAAO;SACV;AAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;AACpC,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC;AAC1C,QAAA,IAAI,UAAkB,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;AAC5B,YAAA,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF,YAAA,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;SACrC;aAAM;AACH,YAAA,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF,YAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;SACvC;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,OAAsB,EAAA;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;KACJ;IAEO,gBAAgB,CAAC,aAA0B,EAAE,MAAc,EAAA;;AAG/D,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AAEzE,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,KAAK,aAAa,CAAC,eAAe,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpH,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,KAAK,aAAa,CAAC,eAAe,CAAC,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxH,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,WAAW,GAAG,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC;AACpH,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,GAAG,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC;;QAIxH,MAAM,eAAe,GAAG,cAAc,GAAG,WAAW,IAAI,SAAS,GAAG,MAAM,CAAC;QAC3E,MAAM,mBAAmB,GAAG,aAAa,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU,GAAG,MAAM,CAAC;QACtF,MAAM,eAAe,GAAG,WAAW,IAAI,SAAS,GAAG,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;QACvF,MAAM,kBAAkB,GAAG,YAAY,IAAI,UAAU,GAAG,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC;QAE3F,OAAO,CAAC,eAAe,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,IAAI,CAAC,kBAAkB,CAAC;KAC9F;IAEO,YAAY,GAAA;QAEhB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW;YAC3D,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY;SAChE,CAAC;KACL;AAEO,IAAA,QAAQ,CAAC,aAA0B,EAAA;;QAGvC,OAAO,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC;KACpE;8GA5HQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,CAAA,oBAAA,EAAA,KAAA,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;mBAAC,EAAC,QAAQ,EAAE,sBAAsB,EAAC,CAAA;+GAIlC,GAAG,EAAA,CAAA;sBADT,KAAK;uBAAC,oBAAoB,CAAA;gBAIpB,OAAO,EAAA,CAAA;sBADb,WAAW;uBAAC,KAAK,CAAA;gBAIX,kBAAkB,EAAA,CAAA;sBADxB,WAAW;uBAAC,kBAAkB,CAAA;gBAIxB,gBAAgB,EAAA,CAAA;sBADtB,WAAW;uBAAC,gBAAgB,CAAA;gBAItB,iBAAiB,EAAA,CAAA;sBADvB,WAAW;uBAAC,iBAAiB,CAAA;gBAIvB,gBAAgB,EAAA,CAAA;sBADtB,WAAW;uBAAC,eAAe,CAAA;gBAIrB,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;;;MCrBG,mCAAmC,CAAA;AAQrC,IAAA,aAAa,CAAC,MAAa,EAAA;AAE9B,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAmC,EAAE,KAAK,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;SAChG;KACJ;AAIM,IAAA,YAAY,CAAC,MAAa,EAAA;AAE7B,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAmC,EAAE,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9F;KACJ;AAED;;AAEG;IACI,kBAAkB,GAAA;AAErB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAmC,EAAE,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;;YAE7D,UAAU,CACN,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAmC,EAAE,KAAK,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,EAChG,CAAC,CACN,CAAC;AACN,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;IACI,WAAW,GAAA;AAEd,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;KACzC;8GA7CQ,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,4MAE3B,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAMlC,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;AAMV,CAAA,EAAA,mCAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAIM,UAAA,CAAA;AADN,IAAA,KAAK,EAAE;AAMP,CAAA,EAAA,mCAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;2FAtBQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAD/C,SAAS;mBAAC,EAAC,QAAQ,EAAE,+BAA+B,EAAC,CAAA;8BAGc,UAAU,EAAA,CAAA;sBAAzE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAA;gBAMvD,aAAa,EAAA,CAAA;sBAFnB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAWlC,YAAY,EAAA,CAAA;sBAFlB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCsBhC,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,iBAzBhC,eAAe;YACf,sBAAsB;YACtB,mCAAmC;YACnC,wBAAwB;AACxB,YAAA,yBAAyB,aAGzB,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,gBAAgB;AAChB,YAAA,mBAAmB,aAGnB,eAAe;YACf,sBAAsB;YACtB,mCAAmC;YACnC,wBAAwB;YACxB,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAlBhC,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,gBAAgB;YAChB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUd,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBA3BvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,eAAe;wBACf,sBAAsB;wBACtB,mCAAmC;wBACnC,wBAAwB;wBACxB,yBAAyB;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,aAAa;wBACb,gBAAgB;wBAChB,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,gBAAgB;wBAChB,mBAAmB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,sBAAsB;wBACtB,mCAAmC;wBACnC,wBAAwB;wBACxB,yBAAyB;AAC5B,qBAAA;AACJ,iBAAA,CAAA;;;AC1CD;;AAEG;;ACFH;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dontdrinkandroot/ngx-material-extensions",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^17.3.8",
6
6
  "@angular/common": "^17.3.8",
@@ -11,9 +11,10 @@ import * as i9 from "@angular/material/icon";
11
11
  import * as i10 from "@angular/material/input";
12
12
  import * as i11 from "@angular/material/button";
13
13
  import * as i12 from "@angular/material/form-field";
14
- import * as i13 from "@angular/forms";
14
+ import * as i13 from "@angular/material/toolbar";
15
+ import * as i14 from "@angular/forms";
15
16
  export declare class DdrMaterialExtensionsModule {
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<DdrMaterialExtensionsModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<DdrMaterialExtensionsModule, [typeof i1.FilterComponent, typeof i2.SidenavToggleComponent, typeof i3.GridTileLazyImageContainerDirective, typeof i4.GridTileLazyImgDirective, typeof i5.SidenavContainerComponent], [typeof i6.CommonModule, typeof i7.MatCardModule, typeof i8.MatSidenavModule, typeof i9.MatIconModule, typeof i10.MatInputModule, typeof i11.MatButtonModule, typeof i12.MatFormFieldModule, typeof i13.ReactiveFormsModule], [typeof i1.FilterComponent, typeof i2.SidenavToggleComponent, typeof i3.GridTileLazyImageContainerDirective, typeof i4.GridTileLazyImgDirective, typeof i5.SidenavContainerComponent]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DdrMaterialExtensionsModule, [typeof i1.FilterComponent, typeof i2.SidenavToggleComponent, typeof i3.GridTileLazyImageContainerDirective, typeof i4.GridTileLazyImgDirective, typeof i5.SidenavContainerComponent], [typeof i6.CommonModule, typeof i7.MatCardModule, typeof i8.MatSidenavModule, typeof i9.MatIconModule, typeof i10.MatInputModule, typeof i11.MatButtonModule, typeof i12.MatFormFieldModule, typeof i13.MatToolbarModule, typeof i14.ReactiveFormsModule], [typeof i1.FilterComponent, typeof i2.SidenavToggleComponent, typeof i3.GridTileLazyImageContainerDirective, typeof i4.GridTileLazyImgDirective, typeof i5.SidenavContainerComponent]>;
18
19
  static ɵinj: i0.ɵɵInjectorDeclaration<DdrMaterialExtensionsModule>;
19
20
  }
@@ -1,16 +1,18 @@
1
- import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
- import { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';
1
+ import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
+ import { MatDrawerMode, MatSidenav, MatSidenavContent } from '@angular/material/sidenav';
3
3
  import { SidenavService } from './sidenav.service';
4
4
  import { BreakpointObserver } from '@angular/cdk/layout';
5
5
  import { Observable } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
- export declare class SidenavContainerComponent implements OnInit, OnChanges {
7
+ export declare class SidenavContainerComponent implements OnInit, OnChanges, OnDestroy {
8
8
  private sidenavService;
9
9
  private breakpointObserver;
10
10
  sidenav: MatSidenav;
11
+ sidenavContent: MatSidenavContent;
11
12
  stayOpenOnLargeScreen: boolean;
12
13
  mode$: Observable<MatDrawerMode>;
13
14
  opened$: Observable<boolean>;
15
+ private scrollSubscription;
14
16
  constructor(sidenavService: SidenavService, breakpointObserver: BreakpointObserver);
15
17
  /**
16
18
  * @override
@@ -20,6 +22,10 @@ export declare class SidenavContainerComponent implements OnInit, OnChanges {
20
22
  * @override
21
23
  */
22
24
  ngOnInit(): void;
25
+ /**
26
+ * @override
27
+ */
28
+ ngOnDestroy(): void;
23
29
  static ɵfac: i0.ɵɵFactoryDeclaration<SidenavContainerComponent, never>;
24
30
  static ɵcmp: i0.ɵɵComponentDeclaration<SidenavContainerComponent, "ddr-mat-sidenav-container", never, { "stayOpenOnLargeScreen": { "alias": "stayOpenOnLargeScreen"; "required": false; }; }, {}, never, ["[slot=mat-sidenav]", "[slot=mat-sidenav-content]"], false, never>;
25
31
  }
@@ -2,6 +2,7 @@ import { SidenavService } from './sidenav.service';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class SidenavToggleComponent {
4
4
  private sidenavService;
5
+ visible: import("@angular/core").Signal<boolean>;
5
6
  constructor(sidenavService: SidenavService);
6
7
  toggleSidenav(): void;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<SidenavToggleComponent, never>;
@@ -20,6 +20,7 @@ export declare class SidenavService {
20
20
  closeSidebar(): void;
21
21
  getModeObservable(): Observable<MatDrawerMode>;
22
22
  getOpenedObservable(): Observable<boolean>;
23
+ watchToggleVisible(): Observable<boolean>;
23
24
  static ɵfac: i0.ɵɵFactoryDeclaration<SidenavService, never>;
24
25
  static ɵprov: i0.ɵɵInjectableDeclaration<SidenavService>;
25
26
  }