@dontdrinkandroot/ngx-material-extensions 0.5.2 → 0.5.4

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.
@@ -0,0 +1,104 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ .mat-sidenav-container {
4
+
5
+ .mat-sidenav {
6
+
7
+ &.mat-drawer-over {
8
+ max-width: 90vw;
9
+ }
10
+
11
+ .mat-mdc-nav-list {
12
+ .mat-mdc-list-item {
13
+ width: auto;
14
+ margin-right: .5rem;
15
+ border-top-left-radius: 0;
16
+ border-bottom-left-radius: 0;
17
+ }
18
+ }
19
+ }
20
+
21
+ .mat-sidenav-content {
22
+ min-height: 100vh;
23
+ }
24
+
25
+ &.side {
26
+ .mat-sidenav {
27
+ .ddr-mat-toolbar-fixed-top-container {
28
+ .mat-toolbar {
29
+ width: 360px;
30
+ }
31
+ }
32
+ }
33
+
34
+ .mat-sidenav-content {
35
+ .ddr-mat-toolbar-fixed-top-container {
36
+ .mat-toolbar {
37
+ left: 360px;
38
+ right: 0;
39
+ width: auto;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ .ddr-mat-fab-fixed-container {
47
+
48
+ height: calc($ddr-mat-fab-height + 2rem);
49
+
50
+ .mdc-fab {
51
+ position: fixed;
52
+ bottom: 1rem;
53
+ right: 1rem;
54
+ }
55
+ }
56
+
57
+ .mat-toolbar {
58
+
59
+ .ddr-mat-heading {
60
+ @extend .text-overflow-ellipsis;
61
+ @extend .flex-auto;
62
+ }
63
+
64
+ ddr-mat-sidenav-toggle {
65
+ margin-right: .5rem;
66
+ }
67
+ }
68
+
69
+ .ddr-mat-toolbar-fixed-top-container {
70
+ .mat-toolbar {
71
+ position: fixed;
72
+ top: 0;
73
+ z-index: 2;
74
+ }
75
+
76
+ height: var(--mat-toolbar-mobile-height);
77
+ @media (min-width: $ddr-breakpoint-sm) {
78
+ height: var(--mat-toolbar-standard-height);
79
+ }
80
+ }
81
+
82
+ ddr-filter {
83
+
84
+ width: 100%;
85
+
86
+ .mat-mdc-form-field {
87
+ width: 100%;
88
+ }
89
+ }
90
+
91
+ p.mat-mdc-list-item-line {
92
+ margin-bottom: 0;
93
+ }
94
+
95
+ body.ddr-mat-scrolled {
96
+ .ddr-mat-toolbar-fixed-top-container {
97
+ .mat-toolbar {
98
+ background: mat.get-theme-color($ddr-light-theme, 'surface-container');
99
+ @media (prefers-color-scheme: dark) {
100
+ background: mat.get-theme-color($ddr-dark-theme, 'surface-container');
101
+ }
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,145 @@
1
+ @use '@angular/material-experimental' as matx;
2
+ @use '@angular/material' as mat;
3
+
4
+ @include mat.core();
5
+
6
+ $ddr-mat-primary: matx.$m3-azure-palette !default;
7
+ $ddr-mat-tertiary: matx.$m3-magenta-palette !default;
8
+
9
+ $ddr-light-theme: matx.define-theme((
10
+ color: (
11
+ primary: $ddr-mat-primary,
12
+ tertiary: $ddr-mat-tertiary,
13
+ ),
14
+ )) !default;
15
+
16
+ $ddr-dark-theme: matx.define-theme((
17
+ color: (
18
+ theme-type: dark,
19
+ primary: $ddr-mat-primary,
20
+ tertiary: $ddr-mat-tertiary,
21
+ ),
22
+ )) !default;
23
+
24
+ html {
25
+ @include mat.all-component-themes($ddr-light-theme);
26
+
27
+ &.mat-secondary {
28
+ @include mat.button-color($ddr-light-theme, $color-variant: secondary);
29
+ }
30
+
31
+ &.mat-tertiary {
32
+ @include mat.button-color($ddr-light-theme, $color-variant: tertiary);
33
+ }
34
+
35
+ &.mat-error {
36
+ @include mat.button-color($ddr-light-theme, $color-variant: error);
37
+ }
38
+
39
+ @media (prefers-color-scheme: dark) {
40
+ @include mat.all-component-colors($ddr-dark-theme);
41
+ }
42
+ }
43
+
44
+ .mat-mdc-button {
45
+ &.mat-secondary {
46
+ @include mat.button-color($ddr-light-theme, $color-variant: secondary);
47
+ @media (prefers-color-scheme: dark) {
48
+ @include mat.button-color($ddr-dark-theme, $color-variant: secondary);
49
+ }
50
+ }
51
+
52
+ &.mat-tertiary {
53
+ @include mat.button-color($ddr-light-theme, $color-variant: tertiary);
54
+ @media (prefers-color-scheme: dark) {
55
+ @include mat.button-color($ddr-dark-theme, $color-variant: tertiary);
56
+ }
57
+ }
58
+
59
+ &.mat-error {
60
+ @include mat.button-color($ddr-light-theme, $color-variant: error);
61
+ @media (prefers-color-scheme: dark) {
62
+ @include mat.button-color($ddr-dark-theme, $color-variant: error);
63
+ }
64
+ }
65
+ }
66
+
67
+ .mat-mdc-raised-button {
68
+ &.mat-secondary {
69
+ @include mat.button-color($ddr-light-theme, $color-variant: secondary);
70
+ @media (prefers-color-scheme: dark) {
71
+ @include mat.button-color($ddr-dark-theme, $color-variant: secondary);
72
+ }
73
+ }
74
+
75
+ &.mat-tertiary {
76
+ @include mat.button-color($ddr-light-theme, $color-variant: tertiary);
77
+ @media (prefers-color-scheme: dark) {
78
+ @include mat.button-color($ddr-dark-theme, $color-variant: tertiary);
79
+ }
80
+ }
81
+
82
+ &.mat-error {
83
+ @include mat.button-color($ddr-light-theme, $color-variant: error);
84
+ @media (prefers-color-scheme: dark) {
85
+ @include mat.button-color($ddr-dark-theme, $color-variant: error);
86
+ }
87
+ }
88
+ }
89
+
90
+ .mat-mdc-outlined-button {
91
+ &.mat-secondary {
92
+ @include mat.button-color($ddr-light-theme, $color-variant: secondary);
93
+ @media (prefers-color-scheme: dark) {
94
+ @include mat.button-color($ddr-dark-theme, $color-variant: secondary);
95
+ }
96
+ }
97
+
98
+ &.mat-tertiary {
99
+ @include mat.button-color($ddr-light-theme, $color-variant: tertiary);
100
+ @media (prefers-color-scheme: dark) {
101
+ @include mat.button-color($ddr-dark-theme, $color-variant: tertiary);
102
+ }
103
+ }
104
+
105
+ &.mat-error {
106
+ @include mat.button-color($ddr-light-theme, $color-variant: error);
107
+ @media (prefers-color-scheme: dark) {
108
+ @include mat.button-color($ddr-dark-theme, $color-variant: error);
109
+ }
110
+ }
111
+ }
112
+
113
+ .mat-mdc-unelevated-button {
114
+ &.mat-secondary {
115
+ @include mat.button-color($ddr-light-theme, $color-variant: secondary);
116
+ @media (prefers-color-scheme: dark) {
117
+ @include mat.button-color($ddr-dark-theme, $color-variant: secondary);
118
+ }
119
+ }
120
+
121
+ &.mat-tertiary {
122
+ @include mat.button-color($ddr-light-theme, $color-variant: tertiary);
123
+ @media (prefers-color-scheme: dark) {
124
+ @include mat.button-color($ddr-dark-theme, $color-variant: tertiary);
125
+ }
126
+ }
127
+
128
+ &.mat-error {
129
+ @include mat.button-color($ddr-light-theme, $color-variant: error);
130
+ @media (prefers-color-scheme: dark) {
131
+ @include mat.button-color($ddr-dark-theme, $color-variant: error);
132
+ }
133
+ }
134
+ }
135
+
136
+ @include mat.typography-hierarchy($ddr-light-theme);
137
+
138
+ html, body {
139
+ height: 100%;
140
+ }
141
+
142
+ body {
143
+ margin: 0;
144
+ font-family: Roboto, "Helvetica Neue", sans-serif;
145
+ }
@@ -0,0 +1,49 @@
1
+ @import "./utils/display";
2
+ @import "./utils/spacing";
3
+
4
+ .flex-row {
5
+ flex-direction: row !important;
6
+ }
7
+
8
+ .flex-column {
9
+ flex-direction: column !important;
10
+ }
11
+
12
+ .flex-auto {
13
+ flex: 1 1 auto !important;
14
+ }
15
+
16
+ .d-grid {
17
+ grid-gap: 1rem;
18
+
19
+ &.equal-columns {
20
+ grid-auto-columns: minmax(0, 1fr);
21
+ grid-auto-flow: column;
22
+ }
23
+ }
24
+
25
+ .text-center {
26
+ text-align: center !important;
27
+ }
28
+
29
+ .text-muted {
30
+ color: #9e9e9e !important;
31
+ }
32
+
33
+ .text-overflow-ellipsis {
34
+ overflow: hidden !important;
35
+ text-overflow: ellipsis !important;
36
+ white-space: nowrap !important;
37
+ }
38
+
39
+
40
+ .list-unstyled {
41
+ list-style-type: none !important;
42
+ padding-left: 0 !important;
43
+ margin-block-start: 0;
44
+ margin-block-end: 0;
45
+ }
46
+
47
+ .cursor-pointer {
48
+ cursor: pointer !important;
49
+ }
@@ -24,14 +24,29 @@ $ddr-margins: (
24
24
  'mb': 'margin-bottom'
25
25
  ) !default;
26
26
 
27
+ $ddr-displays: (
28
+ none: none,
29
+ inline: inline,
30
+ inline-block: inline-block,
31
+ block: block,
32
+ grid: grid,
33
+ inline-grid: inline-grid,
34
+ table: table,
35
+ table-cell: table-cell,
36
+ table-row: table-row,
37
+ flex: flex,
38
+ inline-flex: inline-flex
39
+ ) !default;
40
+
27
41
  $ddr-mat-fab-height: 56px !default;
28
42
 
43
+ $ddr-breakpoint-xs: 0;
29
44
  $ddr-breakpoint-sm: 600px;
30
45
  $ddr-breakpoint-md: 960px;
31
46
  $ddr-breakpoint-lg: 1280px;
32
47
  $ddr-breakpoint-xl: 1920px;
33
48
  $ddr-breakpoints: (
34
- xs: 0,
49
+ xs: $ddr-breakpoint-xs,
35
50
  sm: $ddr-breakpoint-sm,
36
51
  md: $ddr-breakpoint-md,
37
52
  lg: $ddr-breakpoint-lg,
@@ -0,0 +1,21 @@
1
+ @import "@fontsource/roboto/300.css";
2
+ @import "@fontsource/roboto/400.css";
3
+ @import "@fontsource/roboto/500.css";
4
+ @import "@fontsource/roboto/700.css";
5
+ @import "@fontsource/material-icons";
6
+
7
+ .material-icons {
8
+ font-family: 'Material Icons';
9
+ font-weight: normal;
10
+ font-style: normal;
11
+ font-size: 24px;
12
+ line-height: 1;
13
+ letter-spacing: normal;
14
+ text-transform: none;
15
+ display: inline-block;
16
+ white-space: nowrap;
17
+ word-wrap: normal;
18
+ direction: ltr;
19
+ -moz-font-feature-settings: 'liga';
20
+ -moz-osx-font-smoothing: grayscale;
21
+ }
@@ -1,4 +1,4 @@
1
1
  @import "variables";
2
2
  @import "theme";
3
- @import "utilities";
3
+ @import "utils";
4
4
  @import "extensions";
@@ -0,0 +1,37 @@
1
+ @function next-breakpoint($breakpoint) {
2
+ $breakpoints: map-keys($ddr-breakpoints);
3
+ $index: index($breakpoints, $breakpoint);
4
+ @if $index < length($breakpoints) {
5
+ @return map-get($ddr-breakpoints, nth($breakpoints, $index + 1));
6
+ }
7
+ @return null;
8
+ }
9
+
10
+ @each $display, $value in $ddr-displays {
11
+ .d-#{$display} {
12
+ display: $value !important;
13
+ }
14
+
15
+ @each $breakpoint, $size in $ddr-breakpoints {
16
+ .d-min-#{$breakpoint}-#{$display} {
17
+ @media (min-width: $size) {
18
+ display: $value !important;
19
+ }
20
+ }
21
+
22
+ .d-max-#{$breakpoint}-#{$display} {
23
+ @media (max-width: $size) {
24
+ display: $value !important;
25
+ }
26
+ }
27
+
28
+ .d-#{$breakpoint}-#{$display} {
29
+ $next: next-breakpoint($breakpoint);
30
+ @if $next {
31
+ @media (min-width: $size) and (max-width: $next) {
32
+ display: $value !important;
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
@@ -1,29 +1,3 @@
1
- .d-flex {
2
- display: flex !important;
3
- }
4
-
5
- .flex-row {
6
- flex-direction: row !important;
7
- }
8
-
9
- .flex-column {
10
- flex-direction: column !important;
11
- }
12
-
13
- .flex-auto {
14
- flex: 1 1 auto !important;
15
- }
16
-
17
- .d-grid {
18
- display: grid !important;
19
- grid-gap: 1rem;
20
-
21
- &.equal-columns {
22
- grid-auto-columns: minmax(0, 1fr);
23
- grid-auto-flow: column;
24
- }
25
- }
26
-
27
1
  @each $prefix, $property in $ddr-paddings {
28
2
  @each $suffix, $size in $ddr-spacers {
29
3
  .#{$prefix}-#{$suffix} {
@@ -72,31 +46,7 @@
72
46
  margin-left: auto !important;
73
47
  }
74
48
 
75
- .text-center {
76
- text-align: center !important;
77
- }
78
-
79
- .text-muted {
80
- color: #9e9e9e !important;
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;
49
+ .mx-auto {
50
+ margin-left: auto !important;
51
+ margin-right: auto !important;
102
52
  }
@@ -1,11 +1,14 @@
1
1
  /*
2
2
  * Public API Surface of ngx-material-extensions
3
3
  */
4
+ export * from './src/ddr-material-extensions.module';
5
+ export * from './src/button/fab-fixed.directive';
4
6
  export * from './src/filter/filter.component';
7
+ export * from './src/gridlist/grid-tile-lazy-image-container.directive';
8
+ export * from './src/gridlist/grid-tile-lazy-img.directive';
5
9
  export * from './src/sidenav/sidenav-container.component';
6
10
  export * from './src/sidenav/sidenav-toggle.component';
7
11
  export * from './src/sidenav/sidenav.service';
8
- export * from './src/ddr-material-extensions.module';
9
- export * from './src/gridlist/grid-tile-lazy-image-container.directive';
10
- export * from './src/gridlist/grid-tile-lazy-img.directive';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtbWF0ZXJpYWwtZXh0ZW5zaW9uc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2lkZW5hdi9zaWRlbmF2LXRvZ2dsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2lkZW5hdi9zaWRlbmF2LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NyYy9kZHItbWF0ZXJpYWwtZXh0ZW5zaW9ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvZ3JpZGxpc3QvZ3JpZC10aWxlLWxhenktaW1hZ2UtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9ncmlkbGlzdC9ncmlkLXRpbGUtbGF6eS1pbWcuZGlyZWN0aXZlJztcbiJdfQ==
12
+ export * from './src/theme/theme-config';
13
+ export * from './src/toolbar/toolbar-fixed-top.directive';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsa0NBQWtDLENBQUE7QUFFaEQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYywwQkFBMEIsQ0FBQTtBQUV4QyxjQUFjLDJDQUEyQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtbWF0ZXJpYWwtZXh0ZW5zaW9uc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2Rkci1tYXRlcmlhbC1leHRlbnNpb25zLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2J1dHRvbi9mYWItZml4ZWQuZGlyZWN0aXZlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3NyYy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2dyaWRsaXN0L2dyaWQtdGlsZS1sYXp5LWltYWdlLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvZ3JpZGxpc3QvZ3JpZC10aWxlLWxhenktaW1nLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NpZGVuYXYvc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGhlbWUvdGhlbWUtY29uZmlnJ1xuXG5leHBvcnQgKiBmcm9tICcuL3NyYy90b29sYmFyL3Rvb2xiYXItZml4ZWQtdG9wLmRpcmVjdGl2ZSdcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Directive } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class FabFixedDirective {
4
+ constructor(el) {
5
+ this.el = el;
6
+ }
7
+ /**
8
+ * @override
9
+ */
10
+ ngOnInit() {
11
+ const container = document.createElement('div');
12
+ container.classList.add('ddr-mat-fab-fixed-container');
13
+ this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);
14
+ container.appendChild(this.el.nativeElement);
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FabFixedDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: FabFixedDirective, selector: "[ddrMatFabFixed]", ngImport: i0 }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FabFixedDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ selector: '[ddrMatFabFixed]'
23
+ }]
24
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWZpeGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9idXR0b24vZmFiLWZpeGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkYsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OEdBWlEsaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tkZHJNYXRGYWJGaXhlZF0nXG59KVxuZXhwb3J0IGNsYXNzIEZhYkZpeGVkRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2Rkci1tYXQtZmFiLWZpeGVkLWNvbnRhaW5lcicpO1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoY29udGFpbmVyLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { NgModule } from '@angular/core';
1
+ import { ENVIRONMENT_INITIALIZER, inject, NgModule } from '@angular/core';
2
2
  import { SidenavToggleComponent } from './sidenav/sidenav-toggle.component';
3
3
  import { MatButtonModule } from '@angular/material/button';
4
4
  import { MatIconModule } from '@angular/material/icon';
@@ -13,14 +13,20 @@ import { MatFormFieldModule } from '@angular/material/form-field';
13
13
  import { MatInputModule } from '@angular/material/input';
14
14
  import { MatCardModule } from '@angular/material/card';
15
15
  import { MatToolbarModule } from '@angular/material/toolbar';
16
+ import { DDR_MATERIAL_EXTENSIONS_THEME } from "./theme/theme-config";
17
+ import { ThemeScrollService } from "./theme/theme-scroll.service";
18
+ import { ToolbarFixedTopDirective } from "./toolbar/toolbar-fixed-top.directive";
19
+ import { FabFixedDirective } from "./button/fab-fixed.directive";
16
20
  import * as i0 from "@angular/core";
17
21
  export class DdrMaterialExtensionsModule {
18
22
  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,
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, declarations: [FabFixedDirective,
24
+ FilterComponent,
20
25
  SidenavToggleComponent,
21
26
  GridTileLazyImageContainerDirective,
22
27
  GridTileLazyImgDirective,
23
- SidenavContainerComponent], imports: [CommonModule,
28
+ SidenavContainerComponent,
29
+ ToolbarFixedTopDirective], imports: [CommonModule,
24
30
  MatCardModule,
25
31
  MatSidenavModule,
26
32
  MatIconModule,
@@ -28,12 +34,33 @@ export class DdrMaterialExtensionsModule {
28
34
  MatButtonModule,
29
35
  MatFormFieldModule,
30
36
  MatToolbarModule,
31
- ReactiveFormsModule], exports: [FilterComponent,
37
+ ReactiveFormsModule], exports: [FabFixedDirective,
38
+ FilterComponent,
32
39
  SidenavToggleComponent,
33
40
  GridTileLazyImageContainerDirective,
34
41
  GridTileLazyImgDirective,
35
- SidenavContainerComponent] }); }
36
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, imports: [CommonModule,
42
+ SidenavContainerComponent,
43
+ ToolbarFixedTopDirective] }); }
44
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DdrMaterialExtensionsModule, providers: [
45
+ ThemeScrollService,
46
+ {
47
+ provide: ENVIRONMENT_INITIALIZER,
48
+ multi: true,
49
+ useValue() {
50
+ inject(ThemeScrollService).init();
51
+ }
52
+ },
53
+ {
54
+ provide: DDR_MATERIAL_EXTENSIONS_THEME,
55
+ multi: false,
56
+ useValue: {
57
+ themeColorLight: '#fdfbff',
58
+ themeColorDark: '#1a1b1f',
59
+ themeColorLightScrolled: '#efedf1',
60
+ themeColorDarkScrolled: '#1e1f23',
61
+ }
62
+ }
63
+ ], imports: [CommonModule,
37
64
  MatCardModule,
38
65
  MatSidenavModule,
39
66
  MatIconModule,
@@ -47,11 +74,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
47
74
  type: NgModule,
48
75
  args: [{
49
76
  declarations: [
77
+ FabFixedDirective,
50
78
  FilterComponent,
51
79
  SidenavToggleComponent,
52
80
  GridTileLazyImageContainerDirective,
53
81
  GridTileLazyImgDirective,
54
82
  SidenavContainerComponent,
83
+ ToolbarFixedTopDirective
55
84
  ],
56
85
  imports: [
57
86
  CommonModule,
@@ -65,12 +94,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
65
94
  ReactiveFormsModule
66
95
  ],
67
96
  exports: [
97
+ FabFixedDirective,
68
98
  FilterComponent,
69
99
  SidenavToggleComponent,
70
100
  GridTileLazyImageContainerDirective,
71
101
  GridTileLazyImgDirective,
72
102
  SidenavContainerComponent,
103
+ ToolbarFixedTopDirective
104
+ ],
105
+ providers: [
106
+ ThemeScrollService,
107
+ {
108
+ provide: ENVIRONMENT_INITIALIZER,
109
+ multi: true,
110
+ useValue() {
111
+ inject(ThemeScrollService).init();
112
+ }
113
+ },
114
+ {
115
+ provide: DDR_MATERIAL_EXTENSIONS_THEME,
116
+ multi: false,
117
+ useValue: {
118
+ themeColorLight: '#fdfbff',
119
+ themeColorDark: '#1a1b1f',
120
+ themeColorLightScrolled: '#efedf1',
121
+ themeColorDarkScrolled: '#1e1f23',
122
+ }
123
+ }
73
124
  ]
74
125
  }]
75
126
  }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLW1hdGVyaWFsLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rkci1tYXRlcmlhbC1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDeEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQTZCM0QsTUFBTSxPQUFPLDJCQUEyQjs4R0FBM0IsMkJBQTJCOytHQUEzQiwyQkFBMkIsaUJBekJoQyxlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLG1DQUFtQztZQUNuQyx3QkFBd0I7WUFDeEIseUJBQXlCLGFBR3pCLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsbUJBQW1CLGFBR25CLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIsbUNBQW1DO1lBQ25DLHdCQUF3QjtZQUN4Qix5QkFBeUI7K0dBR3BCLDJCQUEyQixZQWxCaEMsWUFBWTtZQUNaLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixtQkFBbUI7OzJGQVVkLDJCQUEyQjtrQkEzQnZDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixtQ0FBbUM7d0JBQ25DLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixtQ0FBbUM7d0JBQ25DLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3FCQUM1QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaWRlbmF2VG9nZ2xlQ29tcG9uZW50fSBmcm9tICcuL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0U2lkZW5hdk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge0dyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlfSBmcm9tICcuL2dyaWRsaXN0L2dyaWQtdGlsZS1sYXp5LWltYWdlLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmV9IGZyb20gJy4vZ3JpZGxpc3QvZ3JpZC10aWxlLWxhenktaW1nLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NpZGVuYXZDb250YWluZXJDb21wb25lbnR9IGZyb20gJy4vc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0ZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7TWF0Q2FyZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQge01hdFRvb2xiYXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFNpZGVuYXZUb2dnbGVDb21wb25lbnQsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmUsXG4gICAgICAgIFNpZGVuYXZDb250YWluZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgU2lkZW5hdlRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgR3JpZFRpbGVMYXp5SW1hZ2VDb250YWluZXJEaXJlY3RpdmUsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZSxcbiAgICAgICAgU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERkck1hdGVyaWFsRXh0ZW5zaW9uc01vZHVsZVxue1xufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLW1hdGVyaWFsLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rkci1tYXRlcmlhbC1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFxRC9ELE1BQU0sT0FBTywyQkFBMkI7OEdBQTNCLDJCQUEyQjsrR0FBM0IsMkJBQTJCLGlCQWpEaEMsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIsbUNBQW1DO1lBQ25DLHdCQUF3QjtZQUN4Qix5QkFBeUI7WUFDekIsd0JBQXdCLGFBR3hCLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsbUJBQW1CLGFBR25CLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLG1DQUFtQztZQUNuQyx3QkFBd0I7WUFDeEIseUJBQXlCO1lBQ3pCLHdCQUF3QjsrR0F1Qm5CLDJCQUEyQixhQXJCekI7WUFDUCxrQkFBa0I7WUFDbEI7Z0JBQ0ksT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUTtvQkFDSixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFDckMsQ0FBQzthQUNKO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLDZCQUE2QjtnQkFDdEMsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osUUFBUSxFQUFFO29CQUNOLGVBQWUsRUFBRSxTQUFTO29CQUMxQixjQUFjLEVBQUUsU0FBUztvQkFDekIsdUJBQXVCLEVBQUUsU0FBUztvQkFDbEMsc0JBQXNCLEVBQUUsU0FBUztpQkFDcEM7YUFDSjtTQUNKLFlBdENHLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsbUJBQW1COzsyRkFnQ2QsMkJBQTJCO2tCQW5EdkMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsbUNBQW1DO3dCQUNuQyx3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLG1DQUFtQzt3QkFDbkMsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLHdCQUF3QjtxQkFDM0I7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEI7NEJBQ0ksT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsS0FBSyxFQUFFLElBQUk7NEJBQ1gsUUFBUTtnQ0FDSixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTs0QkFDckMsQ0FBQzt5QkFDSjt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsNkJBQTZCOzRCQUN0QyxLQUFLLEVBQUUsS0FBSzs0QkFDWixRQUFRLEVBQUU7Z0NBQ04sZUFBZSxFQUFFLFNBQVM7Z0NBQzFCLGNBQWMsRUFBRSxTQUFTO2dDQUN6Qix1QkFBdUIsRUFBRSxTQUFTO2dDQUNsQyxzQkFBc0IsRUFBRSxTQUFTOzZCQUNwQzt5QkFDSjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIGluamVjdCwgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaWRlbmF2VG9nZ2xlQ29tcG9uZW50fSBmcm9tICcuL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0U2lkZW5hdk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge0dyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlfSBmcm9tICcuL2dyaWRsaXN0L2dyaWQtdGlsZS1sYXp5LWltYWdlLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmV9IGZyb20gJy4vZ3JpZGxpc3QvZ3JpZC10aWxlLWxhenktaW1nLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NpZGVuYXZDb250YWluZXJDb21wb25lbnR9IGZyb20gJy4vc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0ZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7TWF0Q2FyZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQge01hdFRvb2xiYXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHtERFJfTUFURVJJQUxfRVhURU5TSU9OU19USEVNRX0gZnJvbSBcIi4vdGhlbWUvdGhlbWUtY29uZmlnXCI7XG5pbXBvcnQge1RoZW1lU2Nyb2xsU2VydmljZX0gZnJvbSBcIi4vdGhlbWUvdGhlbWUtc2Nyb2xsLnNlcnZpY2VcIjtcbmltcG9ydCB7VG9vbGJhckZpeGVkVG9wRGlyZWN0aXZlfSBmcm9tIFwiLi90b29sYmFyL3Rvb2xiYXItZml4ZWQtdG9wLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHtGYWJGaXhlZERpcmVjdGl2ZX0gZnJvbSBcIi4vYnV0dG9uL2ZhYi1maXhlZC5kaXJlY3RpdmVcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRmFiRml4ZWREaXJlY3RpdmUsXG4gICAgICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgU2lkZW5hdlRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgR3JpZFRpbGVMYXp5SW1hZ2VDb250YWluZXJEaXJlY3RpdmUsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZSxcbiAgICAgICAgU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgVG9vbGJhckZpeGVkVG9wRGlyZWN0aXZlXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZhYkZpeGVkRGlyZWN0aXZlLFxuICAgICAgICBGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFNpZGVuYXZUb2dnbGVDb21wb25lbnQsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmUsXG4gICAgICAgIFNpZGVuYXZDb250YWluZXJDb21wb25lbnQsXG4gICAgICAgIFRvb2xiYXJGaXhlZFRvcERpcmVjdGl2ZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFRoZW1lU2Nyb2xsU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZVZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGluamVjdChUaGVtZVNjcm9sbFNlcnZpY2UpLmluaXQoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBERFJfTUFURVJJQUxfRVhURU5TSU9OU19USEVNRSxcbiAgICAgICAgICAgIG11bHRpOiBmYWxzZSxcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgICAgdGhlbWVDb2xvckxpZ2h0OiAnI2ZkZmJmZicsXG4gICAgICAgICAgICAgICAgdGhlbWVDb2xvckRhcms6ICcjMWExYjFmJyxcbiAgICAgICAgICAgICAgICB0aGVtZUNvbG9yTGlnaHRTY3JvbGxlZDogJyNlZmVkZjEnLFxuICAgICAgICAgICAgICAgIHRoZW1lQ29sb3JEYXJrU2Nyb2xsZWQ6ICcjMWUxZjIzJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGRyTWF0ZXJpYWxFeHRlbnNpb25zTW9kdWxlXG57XG59XG4iXX0=