@dontdrinkandroot/ngx-material-extensions 0.7.1 → 0.7.2
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/assets/_theme.scss +4 -1
- package/assets/fonts.scss +1 -4
- package/fesm2022/dontdrinkandroot-ngx-material-extensions.mjs +259 -350
- package/fesm2022/dontdrinkandroot-ngx-material-extensions.mjs.map +1 -1
- package/package.json +1 -1
- package/src/button/fab-fixed.directive.d.ts +3 -3
- package/src/ddr-material-extensions.module.d.ts +0 -22
- package/src/filter/filter.component.d.ts +6 -15
- package/src/gridlist/grid-tile-lazy-image-container.directive.d.ts +5 -5
- package/src/gridlist/grid-tile-lazy-img.directive.d.ts +3 -3
- package/src/sidenav/sidenav-container.component.d.ts +6 -11
- package/src/sidenav/sidenav-toggle.component.d.ts +5 -5
- package/src/sidenav/sidenav.service.d.ts +4 -5
- package/src/theme/theme-config.d.ts +2 -2
- package/src/theme/theme-scroll.service.d.ts +5 -5
- package/src/toolbar/toolbar-fixed-top.directive.d.ts +3 -3
package/assets/_theme.scss
CHANGED
|
@@ -10,6 +10,9 @@ $ddr-light-theme: mat.define-theme((
|
|
|
10
10
|
primary: $ddr-mat-primary,
|
|
11
11
|
tertiary: $ddr-mat-tertiary,
|
|
12
12
|
),
|
|
13
|
+
typography: (
|
|
14
|
+
plain-family: 'Roboto Flex Variable'
|
|
15
|
+
)
|
|
13
16
|
)) !default;
|
|
14
17
|
|
|
15
18
|
$ddr-dark-theme: mat.define-theme((
|
|
@@ -127,5 +130,5 @@ html, body {
|
|
|
127
130
|
|
|
128
131
|
body {
|
|
129
132
|
margin: 0;
|
|
130
|
-
font-family: Roboto,
|
|
133
|
+
font-family: 'Roboto Flex Variable', 'Helvetica Neue', sans-serif;
|
|
131
134
|
}
|
package/assets/fonts.scss
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
@import
|
|
2
|
-
@import "@fontsource/roboto/400.css";
|
|
3
|
-
@import "@fontsource/roboto/500.css";
|
|
4
|
-
@import "@fontsource/roboto/700.css";
|
|
1
|
+
@import '@fontsource-variable/roboto-flex/full';
|
|
5
2
|
@import "@fontsource/material-symbols-rounded/400.css";
|
|
6
3
|
|
|
7
4
|
.material-symbols-rounded {
|
|
@@ -1,140 +1,153 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Inject,
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import { BehaviorSubject, interval, fromEvent, distinctUntilChanged } from 'rxjs';
|
|
2
|
+
import { InjectionToken, Injectable, Inject, makeEnvironmentProviders, provideEnvironmentInitializer, inject, Directive, Component, ChangeDetectionStrategy, Input, ViewChild, HostBinding, ContentChildren, HostListener } from '@angular/core';
|
|
3
|
+
import { MatIconRegistry, MatIcon } from '@angular/material/icon';
|
|
4
|
+
import { DOCUMENT, AsyncPipe, NgClass } from '@angular/common';
|
|
5
|
+
import { fromEvent, distinctUntilChanged, interval, BehaviorSubject } from 'rxjs';
|
|
7
6
|
import { map, debounce } from 'rxjs/operators';
|
|
8
|
-
import * as
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import
|
|
15
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
16
|
-
import * as i3$1 from '@angular/material/sidenav';
|
|
17
|
-
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
7
|
+
import * as i1 from '@angular/forms';
|
|
8
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import { MatCard } from '@angular/material/card';
|
|
10
|
+
import { MatFormField, MatSuffix } from '@angular/material/form-field';
|
|
11
|
+
import { MatInput } from '@angular/material/input';
|
|
12
|
+
import { MatIconButton } from '@angular/material/button';
|
|
13
|
+
import { outputFromObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
18
14
|
import { __decorate } from 'tslib';
|
|
19
15
|
import { NumberUtils, StringUtils, Debounce, Limit } from '@dontdrinkandroot/ngx-extensions';
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import { MatInputModule } from '@angular/material/input';
|
|
26
|
-
import * as i4 from '@angular/material/form-field';
|
|
27
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
28
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
16
|
+
import { MatSidenav, MatSidenavContainer, MatSidenavContent } from '@angular/material/sidenav';
|
|
17
|
+
import * as i1$1 from '@angular/cdk/layout';
|
|
18
|
+
import { Breakpoints } from '@angular/cdk/layout';
|
|
19
|
+
import * as i2 from '@angular/router';
|
|
20
|
+
import { NavigationStart } from '@angular/router';
|
|
29
21
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
const DDR_MAT_THEME = new InjectionToken('DDR_MAT_THEME');
|
|
23
|
+
|
|
24
|
+
class DdrMatThemeScrollService {
|
|
33
25
|
document;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
largeBreakpoints = [
|
|
37
|
-
Breakpoints.Medium,
|
|
38
|
-
Breakpoints.Large,
|
|
39
|
-
Breakpoints.XLarge
|
|
40
|
-
];
|
|
41
|
-
screenLarge$;
|
|
42
|
-
mode$;
|
|
43
|
-
opened$;
|
|
44
|
-
sidenavContentScrolled$ = new BehaviorSubject(false);
|
|
45
|
-
constructor(breakpointObserver, router, document) {
|
|
46
|
-
this.breakpointObserver = breakpointObserver;
|
|
47
|
-
this.router = router;
|
|
26
|
+
themeConfig;
|
|
27
|
+
constructor(document, themeConfig) {
|
|
48
28
|
this.document = document;
|
|
49
|
-
this.
|
|
50
|
-
this.mode$ = this.screenLarge$.pipe(map(large => large && this.stayOpenOnLargeScreen ? 'side' : 'over'));
|
|
51
|
-
this.opened$ = this.screenLarge$.pipe(map(large => large && this.stayOpenOnLargeScreen));
|
|
52
|
-
this.router.events.subscribe(event => {
|
|
53
|
-
if (event instanceof NavigationStart) {
|
|
54
|
-
this.closeSidebar();
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
setSidenav(sidenav) {
|
|
59
|
-
this.sidenav = sidenav;
|
|
60
|
-
}
|
|
61
|
-
getStayOpenOnLargeScreen() {
|
|
62
|
-
return this.stayOpenOnLargeScreen;
|
|
63
|
-
}
|
|
64
|
-
setStayOpenOnLargeScreen(value) {
|
|
65
|
-
this.stayOpenOnLargeScreen = value;
|
|
29
|
+
this.themeConfig = themeConfig;
|
|
66
30
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
31
|
+
init() {
|
|
32
|
+
const lightMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: light)', this.themeConfig.themeColorLight);
|
|
33
|
+
const darkMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: dark)', this.themeConfig.themeColorDark);
|
|
34
|
+
fromEvent(this.document, 'scroll')
|
|
35
|
+
.pipe(map(() => this.document.documentElement.scrollTop > 0), distinctUntilChanged()).subscribe((scrolled) => {
|
|
36
|
+
this.document.body.classList.toggle('ddr-mat-scrolled', scrolled);
|
|
37
|
+
lightMetaElement.content = scrolled ? this.themeConfig.themeColorLightScrolled : this.themeConfig.themeColorLight;
|
|
38
|
+
darkMetaElement.content = scrolled ? this.themeConfig.themeColorDarkScrolled : this.themeConfig.themeColorDark;
|
|
39
|
+
});
|
|
75
40
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
41
|
+
findOrCreateThemeColorMetaElement(media, content) {
|
|
42
|
+
let metaElement = this.document.head.querySelector(`meta[name="theme-color"][media="${media}"]`);
|
|
43
|
+
if (null == metaElement) {
|
|
44
|
+
metaElement = this.createThemeColorMetaElement(media, content);
|
|
79
45
|
}
|
|
46
|
+
return metaElement;
|
|
80
47
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return this.screenLarge$.pipe(map(large => !large || !this.stayOpenOnLargeScreen));
|
|
89
|
-
}
|
|
90
|
-
watchContentScrolled() {
|
|
91
|
-
return this.sidenavContentScrolled$.asObservable();
|
|
48
|
+
createThemeColorMetaElement(media, content) {
|
|
49
|
+
const metaElement = this.document.createElement('meta');
|
|
50
|
+
metaElement.name = 'theme-color';
|
|
51
|
+
metaElement.media = media;
|
|
52
|
+
metaElement.content = content;
|
|
53
|
+
this.document.head.appendChild(metaElement);
|
|
54
|
+
return metaElement;
|
|
92
55
|
}
|
|
93
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
94
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.
|
|
56
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatThemeScrollService, deps: [{ token: DOCUMENT }, { token: DDR_MAT_THEME }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
57
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatThemeScrollService });
|
|
95
58
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
97
|
-
type: Injectable
|
|
98
|
-
|
|
99
|
-
providedIn: 'root'
|
|
100
|
-
}]
|
|
101
|
-
}], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i2.Router }, { type: Document, decorators: [{
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatThemeScrollService, decorators: [{
|
|
60
|
+
type: Injectable
|
|
61
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
102
62
|
type: Inject,
|
|
103
63
|
args: [DOCUMENT]
|
|
64
|
+
}] }, { type: undefined, decorators: [{
|
|
65
|
+
type: Inject,
|
|
66
|
+
args: [DDR_MAT_THEME]
|
|
104
67
|
}] }] });
|
|
105
68
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
69
|
+
function provideDdrMaterialExtensions() {
|
|
70
|
+
return makeEnvironmentProviders([
|
|
71
|
+
DdrMatThemeScrollService,
|
|
72
|
+
{
|
|
73
|
+
provide: DDR_MAT_THEME,
|
|
74
|
+
multi: false,
|
|
75
|
+
useValue: {
|
|
76
|
+
themeColorLight: '#fdfbff',
|
|
77
|
+
themeColorDark: '#1a1b1f',
|
|
78
|
+
themeColorLightScrolled: '#efedf1',
|
|
79
|
+
themeColorDarkScrolled: '#1e1f23',
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
provideEnvironmentInitializer(() => {
|
|
83
|
+
inject(DdrMatThemeScrollService).init();
|
|
84
|
+
inject(MatIconRegistry).setDefaultFontSetClass('material-symbols-rounded');
|
|
85
|
+
})
|
|
86
|
+
]);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
class DdrMatFabFixedDirective {
|
|
90
|
+
el;
|
|
91
|
+
constructor(el) {
|
|
92
|
+
this.el = el;
|
|
112
93
|
}
|
|
113
|
-
|
|
114
|
-
|
|
94
|
+
/**
|
|
95
|
+
* @override
|
|
96
|
+
*/
|
|
97
|
+
ngOnInit() {
|
|
98
|
+
const container = document.createElement('div');
|
|
99
|
+
container.classList.add('ddr-mat-fab-fixed-container');
|
|
100
|
+
this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);
|
|
101
|
+
container.appendChild(this.el.nativeElement);
|
|
115
102
|
}
|
|
116
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
117
|
-
static
|
|
118
|
-
<button mat-icon-button (click)="toggleSidenav()">
|
|
119
|
-
<mat-icon>menu</mat-icon>
|
|
120
|
-
</button>`, isInline: true, dependencies: [{ kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] });
|
|
103
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatFabFixedDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
104
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.1", type: DdrMatFabFixedDirective, isStandalone: true, selector: "[ddrMatFabFixed]", ngImport: i0 });
|
|
121
105
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
123
|
-
type:
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatFabFixedDirective, decorators: [{
|
|
107
|
+
type: Directive,
|
|
124
108
|
args: [{
|
|
125
|
-
selector: '
|
|
126
|
-
template: `
|
|
127
|
-
<button mat-icon-button (click)="toggleSidenav()">
|
|
128
|
-
<mat-icon>menu</mat-icon>
|
|
129
|
-
</button>`,
|
|
130
|
-
host: {
|
|
131
|
-
'[style.display]': 'visible() ? "block" : "none"'
|
|
132
|
-
},
|
|
133
|
-
standalone: false
|
|
109
|
+
selector: '[ddrMatFabFixed]',
|
|
134
110
|
}]
|
|
135
|
-
}], ctorParameters: () => [{ type:
|
|
111
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
136
112
|
|
|
137
|
-
class
|
|
113
|
+
class DdrMatFilterComponent {
|
|
114
|
+
formControl = new FormControl(null);
|
|
115
|
+
filterChanged = outputFromObservable(this.formControl.valueChanges
|
|
116
|
+
.pipe(debounce(() => interval(this.bouncePeriod))));
|
|
117
|
+
bouncePeriod = 500;
|
|
118
|
+
inputElement;
|
|
119
|
+
/**
|
|
120
|
+
* @override
|
|
121
|
+
*/
|
|
122
|
+
ngAfterContentInit() {
|
|
123
|
+
this.inputElement.nativeElement.focus();
|
|
124
|
+
}
|
|
125
|
+
clear() {
|
|
126
|
+
this.formControl.setValue(null);
|
|
127
|
+
// this.filterChanged.emit(null);
|
|
128
|
+
}
|
|
129
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: DdrMatFilterComponent, isStandalone: true, selector: "ddr-mat-filter", inputs: { bouncePeriod: "bouncePeriod" }, outputs: { filterChanged: "filterChanged" }, 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: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
131
|
+
}
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatFilterComponent, decorators: [{
|
|
133
|
+
type: Component,
|
|
134
|
+
args: [{ selector: 'ddr-mat-filter', imports: [
|
|
135
|
+
MatIconButton,
|
|
136
|
+
MatCard,
|
|
137
|
+
MatFormField,
|
|
138
|
+
MatIcon,
|
|
139
|
+
MatInput,
|
|
140
|
+
MatSuffix,
|
|
141
|
+
ReactiveFormsModule
|
|
142
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
143
|
+
}], propDecorators: { bouncePeriod: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], inputElement: [{
|
|
146
|
+
type: ViewChild,
|
|
147
|
+
args: ['input', { static: true }]
|
|
148
|
+
}] } });
|
|
149
|
+
|
|
150
|
+
class DdrMatGridTileLazyImgDirective {
|
|
138
151
|
element;
|
|
139
152
|
cd;
|
|
140
153
|
src;
|
|
@@ -221,18 +234,17 @@ class GridTileLazyImgDirective {
|
|
|
221
234
|
// console.log('isHidden');
|
|
222
235
|
return window.getComputedStyle(nativeElement).display === 'none';
|
|
223
236
|
}
|
|
224
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
225
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.
|
|
237
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatGridTileLazyImgDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
238
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.1", type: DdrMatGridTileLazyImgDirective, isStandalone: true, selector: "[ddrMatGridTileLazyImg]", inputs: { src: ["ddrMatGridTileLazyImg", "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 });
|
|
226
239
|
}
|
|
227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatGridTileLazyImgDirective, decorators: [{
|
|
228
241
|
type: Directive,
|
|
229
242
|
args: [{
|
|
230
|
-
selector: '[
|
|
231
|
-
standalone: false
|
|
243
|
+
selector: '[ddrMatGridTileLazyImg]'
|
|
232
244
|
}]
|
|
233
245
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { src: [{
|
|
234
246
|
type: Input,
|
|
235
|
-
args: ['
|
|
247
|
+
args: ['ddrMatGridTileLazyImg']
|
|
236
248
|
}], hostSrc: [{
|
|
237
249
|
type: HostBinding,
|
|
238
250
|
args: ['src']
|
|
@@ -254,7 +266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
|
|
|
254
266
|
type: Input
|
|
255
267
|
}] } });
|
|
256
268
|
|
|
257
|
-
class
|
|
269
|
+
class DdrMatGridTileLazyImageContainerDirective {
|
|
258
270
|
lazyImages;
|
|
259
271
|
changeSubscription;
|
|
260
272
|
windowResized() {
|
|
@@ -283,24 +295,23 @@ class GridTileLazyImageContainerDirective {
|
|
|
283
295
|
ngOnDestroy() {
|
|
284
296
|
this.changeSubscription.unsubscribe();
|
|
285
297
|
}
|
|
286
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
287
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.
|
|
298
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatGridTileLazyImageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
299
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.1", type: DdrMatGridTileLazyImageContainerDirective, isStandalone: true, selector: "[ddrMatGridTileLazyImgContainer]", host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" } }, queries: [{ propertyName: "lazyImages", predicate: DdrMatGridTileLazyImgDirective, descendants: true }], ngImport: i0 });
|
|
288
300
|
}
|
|
289
301
|
__decorate([
|
|
290
302
|
Debounce()
|
|
291
|
-
],
|
|
303
|
+
], DdrMatGridTileLazyImageContainerDirective.prototype, "windowResized", null);
|
|
292
304
|
__decorate([
|
|
293
305
|
Limit()
|
|
294
|
-
],
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
306
|
+
], DdrMatGridTileLazyImageContainerDirective.prototype, "windowScroll", null);
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatGridTileLazyImageContainerDirective, decorators: [{
|
|
296
308
|
type: Directive,
|
|
297
309
|
args: [{
|
|
298
|
-
selector: '[
|
|
299
|
-
standalone: false
|
|
310
|
+
selector: '[ddrMatGridTileLazyImgContainer]'
|
|
300
311
|
}]
|
|
301
312
|
}], propDecorators: { lazyImages: [{
|
|
302
313
|
type: ContentChildren,
|
|
303
|
-
args: [
|
|
314
|
+
args: [DdrMatGridTileLazyImgDirective, { descendants: true }]
|
|
304
315
|
}], windowResized: [{
|
|
305
316
|
type: HostListener,
|
|
306
317
|
args: ['window:resize', ['$event']]
|
|
@@ -309,13 +320,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
|
|
|
309
320
|
args: ['window:scroll', ['$event']]
|
|
310
321
|
}] } });
|
|
311
322
|
|
|
312
|
-
class
|
|
323
|
+
class DdrMatSidenavService {
|
|
324
|
+
breakpointObserver;
|
|
325
|
+
router;
|
|
326
|
+
sidenav;
|
|
327
|
+
stayOpenOnLargeScreen = true;
|
|
328
|
+
largeBreakpoints = [
|
|
329
|
+
Breakpoints.Medium,
|
|
330
|
+
Breakpoints.Large,
|
|
331
|
+
Breakpoints.XLarge
|
|
332
|
+
];
|
|
333
|
+
screenLarge$;
|
|
334
|
+
mode$;
|
|
335
|
+
opened$;
|
|
336
|
+
sidenavContentScrolled$ = new BehaviorSubject(false);
|
|
337
|
+
constructor(breakpointObserver, router) {
|
|
338
|
+
this.breakpointObserver = breakpointObserver;
|
|
339
|
+
this.router = router;
|
|
340
|
+
this.screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(map(result => result.matches));
|
|
341
|
+
this.mode$ = this.screenLarge$.pipe(map(large => large && this.stayOpenOnLargeScreen ? 'side' : 'over'));
|
|
342
|
+
this.opened$ = this.screenLarge$.pipe(map(large => large && this.stayOpenOnLargeScreen));
|
|
343
|
+
this.router.events.subscribe(event => {
|
|
344
|
+
if (event instanceof NavigationStart) {
|
|
345
|
+
this.closeSidebar();
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
setSidenav(sidenav) {
|
|
350
|
+
this.sidenav = sidenav;
|
|
351
|
+
}
|
|
352
|
+
getStayOpenOnLargeScreen() {
|
|
353
|
+
return this.stayOpenOnLargeScreen;
|
|
354
|
+
}
|
|
355
|
+
setStayOpenOnLargeScreen(value) {
|
|
356
|
+
this.stayOpenOnLargeScreen = value;
|
|
357
|
+
}
|
|
358
|
+
toggle() {
|
|
359
|
+
if (null == this.sidenav) {
|
|
360
|
+
return Promise.reject('No MatSidenav found. Use setSidenav() of SidenavService');
|
|
361
|
+
}
|
|
362
|
+
if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {
|
|
363
|
+
return this.sidenav.toggle();
|
|
364
|
+
}
|
|
365
|
+
return Promise.resolve(this.sidenav.opened ? 'open' : 'close');
|
|
366
|
+
}
|
|
367
|
+
closeSidebar() {
|
|
368
|
+
if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {
|
|
369
|
+
this.sidenav.close();
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
getModeObservable() {
|
|
373
|
+
return this.mode$;
|
|
374
|
+
}
|
|
375
|
+
getOpenedObservable() {
|
|
376
|
+
return this.opened$;
|
|
377
|
+
}
|
|
378
|
+
watchToggleVisible() {
|
|
379
|
+
return this.screenLarge$.pipe(map(large => !large || !this.stayOpenOnLargeScreen));
|
|
380
|
+
}
|
|
381
|
+
watchContentScrolled() {
|
|
382
|
+
return this.sidenavContentScrolled$.asObservable();
|
|
383
|
+
}
|
|
384
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatSidenavService, deps: [{ token: i1$1.BreakpointObserver }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
385
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatSidenavService, providedIn: 'root' });
|
|
386
|
+
}
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatSidenavService, decorators: [{
|
|
388
|
+
type: Injectable,
|
|
389
|
+
args: [{
|
|
390
|
+
providedIn: 'root'
|
|
391
|
+
}]
|
|
392
|
+
}], ctorParameters: () => [{ type: i1$1.BreakpointObserver }, { type: i2.Router }] });
|
|
393
|
+
|
|
394
|
+
class DdrMatSidenavContainerComponent {
|
|
313
395
|
sidenavService;
|
|
314
396
|
sidenav;
|
|
315
397
|
stayOpenOnLargeScreen = true;
|
|
316
398
|
mode$;
|
|
317
399
|
opened$;
|
|
318
|
-
scrollSubscription;
|
|
319
400
|
constructor(sidenavService) {
|
|
320
401
|
this.sidenavService = sidenavService;
|
|
321
402
|
this.mode$ = this.sidenavService.getModeObservable();
|
|
@@ -333,118 +414,61 @@ class SidenavContainerComponent {
|
|
|
333
414
|
ngOnInit() {
|
|
334
415
|
this.sidenavService.setSidenav(this.sidenav);
|
|
335
416
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
*/
|
|
339
|
-
ngOnDestroy() {
|
|
340
|
-
this.scrollSubscription.unsubscribe();
|
|
341
|
-
}
|
|
342
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SidenavContainerComponent, deps: [{ token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
343
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: SidenavContainerComponent, isStandalone: false, 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 [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\"\n [fixedInViewport]=\"true\"\n >\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: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3$1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3$1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i3$1.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }] });
|
|
417
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatSidenavContainerComponent, deps: [{ token: DdrMatSidenavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
418
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: DdrMatSidenavContainerComponent, isStandalone: true, 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 [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\"\n [fixedInViewport]=\"true\"\n >\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: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
344
419
|
}
|
|
345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
420
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatSidenavContainerComponent, decorators: [{
|
|
346
421
|
type: Component,
|
|
347
|
-
args: [{ selector: 'ddr-mat-sidenav-container',
|
|
348
|
-
|
|
422
|
+
args: [{ selector: 'ddr-mat-sidenav-container', imports: [
|
|
423
|
+
AsyncPipe,
|
|
424
|
+
MatSidenav,
|
|
425
|
+
MatSidenavContainer,
|
|
426
|
+
MatSidenavContent,
|
|
427
|
+
NgClass
|
|
428
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\"\n [fixedInViewport]=\"true\"\n >\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" }]
|
|
429
|
+
}], ctorParameters: () => [{ type: DdrMatSidenavService }], propDecorators: { sidenav: [{
|
|
349
430
|
type: ViewChild,
|
|
350
431
|
args: ['sidenav', { static: true }]
|
|
351
432
|
}], stayOpenOnLargeScreen: [{
|
|
352
433
|
type: Input
|
|
353
434
|
}] } });
|
|
354
435
|
|
|
355
|
-
class
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* @override
|
|
363
|
-
*/
|
|
364
|
-
ngOnInit() {
|
|
365
|
-
this.valueChangesSubscription = this.formControl.valueChanges
|
|
366
|
-
.pipe(debounce(() => interval(this.bouncePeriod)))
|
|
367
|
-
.subscribe((value => this.filterChanged.emit(value)));
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* @override
|
|
371
|
-
*/
|
|
372
|
-
ngOnDestroy() {
|
|
373
|
-
this.valueChangesSubscription.unsubscribe();
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* @override
|
|
377
|
-
*/
|
|
378
|
-
ngAfterContentInit() {
|
|
379
|
-
this.inputElement.nativeElement.focus();
|
|
436
|
+
class DdrMatSidenavToggleComponent {
|
|
437
|
+
sidenavService;
|
|
438
|
+
visible;
|
|
439
|
+
constructor(sidenavService) {
|
|
440
|
+
this.sidenavService = sidenavService;
|
|
441
|
+
this.visible = toSignal(this.sidenavService.watchToggleVisible(), { initialValue: false });
|
|
380
442
|
}
|
|
381
|
-
|
|
382
|
-
this.
|
|
383
|
-
this.filterChanged.emit(undefined);
|
|
443
|
+
toggleSidenav() {
|
|
444
|
+
this.sidenavService.toggle();
|
|
384
445
|
}
|
|
385
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
386
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.
|
|
446
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatSidenavToggleComponent, deps: [{ token: DdrMatSidenavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
447
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: DdrMatSidenavToggleComponent, isStandalone: true, selector: "ddr-mat-sidenav-toggle", host: { properties: { "style.display": "visible() ? \"block\" : \"none\"" } }, ngImport: i0, template: `
|
|
448
|
+
<button mat-icon-button (click)="toggleSidenav()">
|
|
449
|
+
<mat-icon>menu</mat-icon>
|
|
450
|
+
</button>`, isInline: true, dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
387
451
|
}
|
|
388
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatSidenavToggleComponent, decorators: [{
|
|
389
453
|
type: Component,
|
|
390
|
-
args: [{
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
this.document = document;
|
|
407
|
-
this.themeConfig = themeConfig;
|
|
408
|
-
}
|
|
409
|
-
init() {
|
|
410
|
-
const lightMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: light)', this.themeConfig.themeColorLight);
|
|
411
|
-
const darkMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: dark)', this.themeConfig.themeColorDark);
|
|
412
|
-
fromEvent(this.document, 'scroll')
|
|
413
|
-
.pipe(map(() => this.document.documentElement.scrollTop > 0), distinctUntilChanged()).subscribe((scrolled) => {
|
|
414
|
-
this.document.body.classList.toggle('ddr-mat-scrolled', scrolled);
|
|
415
|
-
lightMetaElement.content = scrolled ? this.themeConfig.themeColorLightScrolled : this.themeConfig.themeColorLight;
|
|
416
|
-
darkMetaElement.content = scrolled ? this.themeConfig.themeColorDarkScrolled : this.themeConfig.themeColorDark;
|
|
417
|
-
});
|
|
418
|
-
}
|
|
419
|
-
findOrCreateThemeColorMetaElement(media, content) {
|
|
420
|
-
let metaElement = this.document.head.querySelector(`meta[name="theme-color"][media="${media}"]`);
|
|
421
|
-
if (null == metaElement) {
|
|
422
|
-
metaElement = this.createThemeColorMetaElement(media, content);
|
|
423
|
-
}
|
|
424
|
-
return metaElement;
|
|
425
|
-
}
|
|
426
|
-
createThemeColorMetaElement(media, content) {
|
|
427
|
-
const metaElement = this.document.createElement('meta');
|
|
428
|
-
metaElement.name = 'theme-color';
|
|
429
|
-
metaElement.media = media;
|
|
430
|
-
metaElement.content = content;
|
|
431
|
-
this.document.head.appendChild(metaElement);
|
|
432
|
-
return metaElement;
|
|
433
|
-
}
|
|
434
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ThemeScrollService, deps: [{ token: DOCUMENT }, { token: DDR_MATERIAL_EXTENSIONS_THEME }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
435
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ThemeScrollService });
|
|
436
|
-
}
|
|
437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ThemeScrollService, decorators: [{
|
|
438
|
-
type: Injectable
|
|
439
|
-
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
440
|
-
type: Inject,
|
|
441
|
-
args: [DOCUMENT]
|
|
442
|
-
}] }, { type: undefined, decorators: [{
|
|
443
|
-
type: Inject,
|
|
444
|
-
args: [DDR_MATERIAL_EXTENSIONS_THEME]
|
|
445
|
-
}] }] });
|
|
454
|
+
args: [{
|
|
455
|
+
selector: 'ddr-mat-sidenav-toggle',
|
|
456
|
+
template: `
|
|
457
|
+
<button mat-icon-button (click)="toggleSidenav()">
|
|
458
|
+
<mat-icon>menu</mat-icon>
|
|
459
|
+
</button>`,
|
|
460
|
+
imports: [
|
|
461
|
+
MatIcon,
|
|
462
|
+
MatIconButton
|
|
463
|
+
],
|
|
464
|
+
host: {
|
|
465
|
+
'[style.display]': 'visible() ? "block" : "none"'
|
|
466
|
+
},
|
|
467
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
468
|
+
}]
|
|
469
|
+
}], ctorParameters: () => [{ type: DdrMatSidenavService }] });
|
|
446
470
|
|
|
447
|
-
class
|
|
471
|
+
class DdrMatToolbarFixedTopDirective {
|
|
448
472
|
el;
|
|
449
473
|
ddrMatToolbarFixedTop = '';
|
|
450
474
|
constructor(el) {
|
|
@@ -464,133 +488,18 @@ class ToolbarFixedTopDirective {
|
|
|
464
488
|
});
|
|
465
489
|
}
|
|
466
490
|
}
|
|
467
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
468
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.
|
|
491
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatToolbarFixedTopDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
492
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.1", type: DdrMatToolbarFixedTopDirective, isStandalone: true, selector: "[ddrMatToolbarFixedTop]", inputs: { ddrMatToolbarFixedTop: "ddrMatToolbarFixedTop" }, ngImport: i0 });
|
|
469
493
|
}
|
|
470
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: DdrMatToolbarFixedTopDirective, decorators: [{
|
|
471
495
|
type: Directive,
|
|
472
496
|
args: [{
|
|
473
|
-
selector: '[ddrMatToolbarFixedTop]'
|
|
474
|
-
standalone: false
|
|
497
|
+
selector: '[ddrMatToolbarFixedTop]'
|
|
475
498
|
}]
|
|
476
499
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { ddrMatToolbarFixedTop: [{
|
|
477
500
|
type: Input
|
|
478
501
|
}] } });
|
|
479
502
|
|
|
480
|
-
class FabFixedDirective {
|
|
481
|
-
el;
|
|
482
|
-
constructor(el) {
|
|
483
|
-
this.el = el;
|
|
484
|
-
}
|
|
485
|
-
/**
|
|
486
|
-
* @override
|
|
487
|
-
*/
|
|
488
|
-
ngOnInit() {
|
|
489
|
-
const container = document.createElement('div');
|
|
490
|
-
container.classList.add('ddr-mat-fab-fixed-container');
|
|
491
|
-
this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);
|
|
492
|
-
container.appendChild(this.el.nativeElement);
|
|
493
|
-
}
|
|
494
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: FabFixedDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
495
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.6", type: FabFixedDirective, isStandalone: false, selector: "[ddrMatFabFixed]", ngImport: i0 });
|
|
496
|
-
}
|
|
497
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: FabFixedDirective, decorators: [{
|
|
498
|
-
type: Directive,
|
|
499
|
-
args: [{
|
|
500
|
-
selector: '[ddrMatFabFixed]',
|
|
501
|
-
standalone: false
|
|
502
|
-
}]
|
|
503
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
504
|
-
|
|
505
|
-
class DdrMaterialExtensionsModule {
|
|
506
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: DdrMaterialExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
507
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: DdrMaterialExtensionsModule, declarations: [FabFixedDirective,
|
|
508
|
-
FilterComponent,
|
|
509
|
-
SidenavToggleComponent,
|
|
510
|
-
GridTileLazyImageContainerDirective,
|
|
511
|
-
GridTileLazyImgDirective,
|
|
512
|
-
SidenavContainerComponent,
|
|
513
|
-
ToolbarFixedTopDirective], imports: [CommonModule,
|
|
514
|
-
MatCardModule,
|
|
515
|
-
MatSidenavModule,
|
|
516
|
-
MatIconModule,
|
|
517
|
-
MatInputModule,
|
|
518
|
-
MatButtonModule,
|
|
519
|
-
MatFormFieldModule,
|
|
520
|
-
MatToolbarModule,
|
|
521
|
-
ReactiveFormsModule], exports: [FabFixedDirective,
|
|
522
|
-
FilterComponent,
|
|
523
|
-
SidenavToggleComponent,
|
|
524
|
-
GridTileLazyImageContainerDirective,
|
|
525
|
-
GridTileLazyImgDirective,
|
|
526
|
-
SidenavContainerComponent,
|
|
527
|
-
ToolbarFixedTopDirective] });
|
|
528
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: DdrMaterialExtensionsModule, imports: [CommonModule,
|
|
529
|
-
MatCardModule,
|
|
530
|
-
MatSidenavModule,
|
|
531
|
-
MatIconModule,
|
|
532
|
-
MatInputModule,
|
|
533
|
-
MatButtonModule,
|
|
534
|
-
MatFormFieldModule,
|
|
535
|
-
MatToolbarModule,
|
|
536
|
-
ReactiveFormsModule] });
|
|
537
|
-
}
|
|
538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: DdrMaterialExtensionsModule, decorators: [{
|
|
539
|
-
type: NgModule,
|
|
540
|
-
args: [{
|
|
541
|
-
declarations: [
|
|
542
|
-
FabFixedDirective,
|
|
543
|
-
FilterComponent,
|
|
544
|
-
SidenavToggleComponent,
|
|
545
|
-
GridTileLazyImageContainerDirective,
|
|
546
|
-
GridTileLazyImgDirective,
|
|
547
|
-
SidenavContainerComponent,
|
|
548
|
-
ToolbarFixedTopDirective
|
|
549
|
-
],
|
|
550
|
-
imports: [
|
|
551
|
-
CommonModule,
|
|
552
|
-
MatCardModule,
|
|
553
|
-
MatSidenavModule,
|
|
554
|
-
MatIconModule,
|
|
555
|
-
MatInputModule,
|
|
556
|
-
MatButtonModule,
|
|
557
|
-
MatFormFieldModule,
|
|
558
|
-
MatToolbarModule,
|
|
559
|
-
ReactiveFormsModule
|
|
560
|
-
],
|
|
561
|
-
exports: [
|
|
562
|
-
FabFixedDirective,
|
|
563
|
-
FilterComponent,
|
|
564
|
-
SidenavToggleComponent,
|
|
565
|
-
GridTileLazyImageContainerDirective,
|
|
566
|
-
GridTileLazyImgDirective,
|
|
567
|
-
SidenavContainerComponent,
|
|
568
|
-
ToolbarFixedTopDirective
|
|
569
|
-
],
|
|
570
|
-
providers: []
|
|
571
|
-
}]
|
|
572
|
-
}] });
|
|
573
|
-
// TODO: I actually want to run this when the module is loaded, but haven't figured out the correct way for Angular 19 yet as the ENVIRONMENT_INITIALIZER Token is deprecated
|
|
574
|
-
function provideDdrMaterialExtensions() {
|
|
575
|
-
return makeEnvironmentProviders([
|
|
576
|
-
ThemeScrollService,
|
|
577
|
-
{
|
|
578
|
-
provide: DDR_MATERIAL_EXTENSIONS_THEME,
|
|
579
|
-
multi: false,
|
|
580
|
-
useValue: {
|
|
581
|
-
themeColorLight: '#fdfbff',
|
|
582
|
-
themeColorDark: '#1a1b1f',
|
|
583
|
-
themeColorLightScrolled: '#efedf1',
|
|
584
|
-
themeColorDarkScrolled: '#1e1f23',
|
|
585
|
-
}
|
|
586
|
-
},
|
|
587
|
-
provideEnvironmentInitializer(() => {
|
|
588
|
-
inject(ThemeScrollService).init();
|
|
589
|
-
inject(MatIconRegistry).setDefaultFontSetClass('material-symbols-rounded');
|
|
590
|
-
})
|
|
591
|
-
]);
|
|
592
|
-
}
|
|
593
|
-
|
|
594
503
|
/*
|
|
595
504
|
* Public API Surface of ngx-material-extensions
|
|
596
505
|
*/
|
|
@@ -599,5 +508,5 @@ function provideDdrMaterialExtensions() {
|
|
|
599
508
|
* Generated bundle index. Do not edit.
|
|
600
509
|
*/
|
|
601
510
|
|
|
602
|
-
export {
|
|
511
|
+
export { DDR_MAT_THEME, DdrMatFabFixedDirective, DdrMatFilterComponent, DdrMatGridTileLazyImageContainerDirective, DdrMatGridTileLazyImgDirective, DdrMatSidenavContainerComponent, DdrMatSidenavService, DdrMatSidenavToggleComponent, DdrMatToolbarFixedTopDirective, provideDdrMaterialExtensions };
|
|
603
512
|
//# sourceMappingURL=dontdrinkandroot-ngx-material-extensions.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-toggle.component.ts","../../src/gridlist/grid-tile-lazy-img.directive.ts","../../src/gridlist/grid-tile-lazy-image-container.directive.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/theme/theme-config.ts","../../src/theme/theme-scroll.service.ts","../../src/toolbar/toolbar-fixed-top.directive.ts","../../src/button/fab-fixed.directive.ts","../../src/ddr-material-extensions.module.ts","../../public-api.ts","../../dontdrinkandroot-ngx-material-extensions.ts"],"sourcesContent":["import {Inject, Injectable} from '@angular/core';\nimport {MatDrawerMode, MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SidenavService {\n private sidenav!: MatSidenav;\n\n private stayOpenOnLargeScreen = true;\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 private sidenavContentScrolled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n private router: Router,\n @Inject(DOCUMENT) private document: Document,\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 this.sidenav = sidenav;\n }\n\n\n public getStayOpenOnLargeScreen(): boolean {\n return this.stayOpenOnLargeScreen;\n }\n\n public setStayOpenOnLargeScreen(value: boolean): void {\n this.stayOpenOnLargeScreen = value;\n }\n\n public toggle(): Promise<MatDrawerToggleResult> {\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 if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n this.sidenav.close();\n }\n }\n\n public getModeObservable(): Observable<MatDrawerMode> {\n return this.mode$;\n }\n\n public getOpenedObservable(): Observable<boolean> {\n return this.opened$;\n }\n\n public watchToggleVisible() {\n return this.screenLarge$.pipe(\n map(large => !large || !this.stayOpenOnLargeScreen)\n );\n }\n\n public watchContentScrolled() {\n return this.sidenavContentScrolled$.asObservable();\n }\n}\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 standalone: false\n})\nexport class SidenavToggleComponent {\n public visible;\n\n constructor(private sidenavService: SidenavService) {\n this.visible = toSignal(this.sidenavService.watchToggleVisible(), {initialValue: false});\n }\n\n public toggleSidenav() {\n this.sidenavService.toggle();\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnChanges} from '@angular/core';\nimport {NumberUtils, StringUtils} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({\n selector: '[ddrGridTileLazyImg]',\n standalone: false\n})\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(): 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({\n selector: '[ddrGridTileLazyImgContainer]',\n standalone: false\n})\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()\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective) => lazyImage.recheck());\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @Limit()\n public windowScroll()\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective) => lazyImage.check());\n }\n }\n\n /**\n * @override\n */\n public ngAfterContentInit(): void\n {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective) => 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) => 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 {Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {MatDrawerMode, MatSidenav} from '@angular/material/sidenav';\nimport {SidenavService} from './sidenav.service';\nimport {Observable, Subscription} from 'rxjs';\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html',\n standalone: false\n})\nexport class SidenavContainerComponent implements OnInit, OnChanges, OnDestroy\n{\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n @Input()\n public stayOpenOnLargeScreen = true;\n\n public mode$: Observable<MatDrawerMode>;\n\n public opened$: Observable<boolean>;\n\n private scrollSubscription!: Subscription;\n\n constructor(\n private sidenavService: SidenavService,\n )\n {\n this.mode$ = this.sidenavService.getModeObservable();\n this.opened$ = this.sidenavService.getOpenedObservable();\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 /**\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 [fixedInViewport]=\"true\"\n >\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 {AfterContentInit, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} 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 standalone: false\n})\nexport class FilterComponent implements OnInit, OnDestroy, AfterContentInit\n{\n public formControl: FormControl = new FormControl();\n\n @Output()\n public filterChanged = 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.filterChanged.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.filterChanged.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 {InjectionToken} from \"@angular/core\";\n\nexport const DDR_MATERIAL_EXTENSIONS_THEME = new InjectionToken<ThemeConfig>('DDR_MATERIAL_EXTENSIONS_THEME');\n\nexport interface ThemeConfig {\n themeColorLight: string,\n themeColorDark: string,\n themeColorLightScrolled: string,\n themeColorDarkScrolled: string,\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\nimport {distinctUntilChanged, fromEvent} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\nimport {DDR_MATERIAL_EXTENSIONS_THEME, ThemeConfig} from \"./theme-config\";\n\n@Injectable()\nexport class ThemeScrollService {\n constructor(\n @Inject(DOCUMENT) private readonly document: Document,\n @Inject(DDR_MATERIAL_EXTENSIONS_THEME) private readonly themeConfig: ThemeConfig\n ) {\n }\n\n public init() {\n const lightMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: light)', this.themeConfig.themeColorLight);\n const darkMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: dark)', this.themeConfig.themeColorDark);\n\n fromEvent(this.document, 'scroll')\n .pipe(\n map(() => this.document.documentElement.scrollTop > 0),\n distinctUntilChanged()\n ).subscribe((scrolled) => {\n this.document.body.classList.toggle('ddr-mat-scrolled', scrolled);\n lightMetaElement.content = scrolled ? this.themeConfig.themeColorLightScrolled : this.themeConfig.themeColorLight;\n darkMetaElement.content = scrolled ? this.themeConfig.themeColorDarkScrolled : this.themeConfig.themeColorDark;\n });\n }\n\n private findOrCreateThemeColorMetaElement(media: string, content: string) {\n let metaElement = this.document.head.querySelector<HTMLMetaElement>(`meta[name=\"theme-color\"][media=\"${media}\"]`);\n if (null == metaElement) {\n metaElement = this.createThemeColorMetaElement(media, content);\n }\n return metaElement;\n }\n\n private createThemeColorMetaElement(media: string, content: string) {\n const metaElement = this.document.createElement('meta');\n metaElement.name = 'theme-color';\n metaElement.media = media;\n metaElement.content = content;\n this.document.head.appendChild(metaElement);\n\n return metaElement;\n }\n}\n","import {Directive, ElementRef, Input, OnInit} from '@angular/core';\n\n@Directive({\n selector: '[ddrMatToolbarFixedTop]',\n standalone: false\n})\nexport class ToolbarFixedTopDirective implements OnInit {\n\n @Input()\n public ddrMatToolbarFixedTop: string[] | '' = '';\n\n constructor(private el: ElementRef) {\n }\n\n /**\n * @override\n */\n public ngOnInit() {\n const container = document.createElement('div');\n container.classList.add('ddr-mat-toolbar-fixed-top-container');\n this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);\n container.appendChild(this.el.nativeElement);\n\n if ('' !== this.ddrMatToolbarFixedTop) {\n this.ddrMatToolbarFixedTop.forEach((className: string) => {\n container.classList.add(className);\n });\n }\n }\n}\n","import {Directive, ElementRef, OnInit} from \"@angular/core\";\n\n@Directive({\n selector: '[ddrMatFabFixed]',\n standalone: false\n})\nexport class FabFixedDirective implements OnInit {\n constructor(private el: ElementRef) {\n }\n\n /**\n * @override\n */\n public ngOnInit() {\n const container = document.createElement('div');\n container.classList.add('ddr-mat-fab-fixed-container');\n this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);\n container.appendChild(this.el.nativeElement);\n }\n}\n","import {EnvironmentProviders, inject, makeEnvironmentProviders, NgModule, provideEnvironmentInitializer} from '@angular/core';\nimport {SidenavToggleComponent} from './sidenav/sidenav-toggle.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule, MatIconRegistry} 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';\nimport {DDR_MATERIAL_EXTENSIONS_THEME} from \"./theme/theme-config\";\nimport {ThemeScrollService} from \"./theme/theme-scroll.service\";\nimport {ToolbarFixedTopDirective} from \"./toolbar/toolbar-fixed-top.directive\";\nimport {FabFixedDirective} from \"./button/fab-fixed.directive\";\n\n@NgModule({\n declarations: [\n FabFixedDirective,\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent,\n ToolbarFixedTopDirective\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 FabFixedDirective,\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent,\n ToolbarFixedTopDirective\n ],\n providers: []\n})\nexport class DdrMaterialExtensionsModule {\n}\n\n// TODO: I actually want to run this when the module is loaded, but haven't figured out the correct way for Angular 19 yet as the ENVIRONMENT_INITIALIZER Token is deprecated\nexport function provideDdrMaterialExtensions(): EnvironmentProviders {\n return makeEnvironmentProviders([\n ThemeScrollService,\n {\n provide: DDR_MATERIAL_EXTENSIONS_THEME,\n multi: false,\n useValue: {\n themeColorLight: '#fdfbff',\n themeColorDark: '#1a1b1f',\n themeColorLightScrolled: '#efedf1',\n themeColorDarkScrolled: '#1e1f23',\n }\n },\n provideEnvironmentInitializer(() => {\n inject(ThemeScrollService).init();\n inject(MatIconRegistry).setDefaultFontSetClass('material-symbols-rounded');\n })\n ]);\n}\n","/*\n * Public API Surface of ngx-material-extensions\n */\n\nexport * from './src/ddr-material-extensions.module';\n\nexport * from './src/button/fab-fixed.directive'\n\nexport * from './src/filter/filter.component';\n\nexport * from './src/gridlist/grid-tile-lazy-image-container.directive';\nexport * from './src/gridlist/grid-tile-lazy-img.directive';\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/theme/theme-config'\n\nexport * from './src/toolbar/toolbar-fixed-top.directive'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SidenavService","i2","i3","i1","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/theme/theme-config.ts","../../src/theme/theme-scroll.service.ts","../../src/ddr-material-extensions.module.ts","../../src/button/fab-fixed.directive.ts","../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/gridlist/grid-tile-lazy-img.directive.ts","../../src/gridlist/grid-tile-lazy-image-container.directive.ts","../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/sidenav/sidenav-toggle.component.ts","../../src/toolbar/toolbar-fixed-top.directive.ts","../../public-api.ts","../../dontdrinkandroot-ngx-material-extensions.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\n\nexport const DDR_MAT_THEME = new InjectionToken<DdrMatThemeConfig>('DDR_MAT_THEME');\n\nexport interface DdrMatThemeConfig {\n themeColorLight: string,\n themeColorDark: string,\n themeColorLightScrolled: string,\n themeColorDarkScrolled: string,\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\nimport {distinctUntilChanged, fromEvent} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\nimport {DDR_MAT_THEME, DdrMatThemeConfig} from \"./theme-config\";\n\n@Injectable()\nexport class DdrMatThemeScrollService {\n constructor(\n @Inject(DOCUMENT) private readonly document: Document,\n @Inject(DDR_MAT_THEME) private readonly themeConfig: DdrMatThemeConfig\n ) {\n }\n\n public init() {\n const lightMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: light)', this.themeConfig.themeColorLight);\n const darkMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: dark)', this.themeConfig.themeColorDark);\n\n fromEvent(this.document, 'scroll')\n .pipe(\n map(() => this.document.documentElement.scrollTop > 0),\n distinctUntilChanged()\n ).subscribe((scrolled) => {\n this.document.body.classList.toggle('ddr-mat-scrolled', scrolled);\n lightMetaElement.content = scrolled ? this.themeConfig.themeColorLightScrolled : this.themeConfig.themeColorLight;\n darkMetaElement.content = scrolled ? this.themeConfig.themeColorDarkScrolled : this.themeConfig.themeColorDark;\n });\n }\n\n private findOrCreateThemeColorMetaElement(media: string, content: string) {\n let metaElement = this.document.head.querySelector<HTMLMetaElement>(`meta[name=\"theme-color\"][media=\"${media}\"]`);\n if (null == metaElement) {\n metaElement = this.createThemeColorMetaElement(media, content);\n }\n return metaElement;\n }\n\n private createThemeColorMetaElement(media: string, content: string) {\n const metaElement = this.document.createElement('meta');\n metaElement.name = 'theme-color';\n metaElement.media = media;\n metaElement.content = content;\n this.document.head.appendChild(metaElement);\n\n return metaElement;\n }\n}\n","import {EnvironmentProviders, inject, makeEnvironmentProviders, provideEnvironmentInitializer} from '@angular/core';\nimport {MatIconRegistry} from '@angular/material/icon';\nimport {DDR_MAT_THEME} from \"./theme/theme-config\";\nimport {DdrMatThemeScrollService} from \"./theme/theme-scroll.service\";\n\nexport function provideDdrMaterialExtensions(): EnvironmentProviders {\n return makeEnvironmentProviders([\n DdrMatThemeScrollService,\n {\n provide: DDR_MAT_THEME,\n multi: false,\n useValue: {\n themeColorLight: '#fdfbff',\n themeColorDark: '#1a1b1f',\n themeColorLightScrolled: '#efedf1',\n themeColorDarkScrolled: '#1e1f23',\n }\n },\n provideEnvironmentInitializer(() => {\n inject(DdrMatThemeScrollService).init();\n inject(MatIconRegistry).setDefaultFontSetClass('material-symbols-rounded');\n })\n ]);\n}\n","import {Directive, ElementRef, OnInit} from \"@angular/core\";\n\n@Directive({\n selector: '[ddrMatFabFixed]',\n})\nexport class DdrMatFabFixedDirective implements OnInit {\n constructor(private el: ElementRef) {\n }\n\n /**\n * @override\n */\n public ngOnInit() {\n const container = document.createElement('div');\n container.classList.add('ddr-mat-fab-fixed-container');\n this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);\n container.appendChild(this.el.nativeElement);\n }\n}\n","import {AfterContentInit, ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {interval} from 'rxjs';\nimport {debounce} from 'rxjs/operators';\nimport {MatIcon} from \"@angular/material/icon\";\nimport {MatCard} from \"@angular/material/card\";\nimport {MatFormField, MatSuffix} from \"@angular/material/form-field\";\nimport {MatInput} from \"@angular/material/input\";\nimport {MatIconButton} from \"@angular/material/button\";\nimport {outputFromObservable} from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'ddr-mat-filter',\n templateUrl: './filter.component.html',\n imports: [\n MatIconButton,\n MatCard,\n MatFormField,\n MatIcon,\n MatInput,\n MatSuffix,\n ReactiveFormsModule\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DdrMatFilterComponent implements AfterContentInit\n{\n public formControl = new FormControl<string | null>(null);\n\n public filterChanged = outputFromObservable(\n this.formControl.valueChanges\n .pipe(debounce(() => interval(this.bouncePeriod)))\n );\n\n @Input()\n public bouncePeriod = 500;\n\n @ViewChild('input', {static: true})\n public inputElement!: ElementRef;\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.filterChanged.emit(null);\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 {ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnChanges} from '@angular/core';\nimport {NumberUtils, StringUtils} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({\n selector: '[ddrMatGridTileLazyImg]'\n})\nexport class DdrMatGridTileLazyImgDirective implements OnChanges\n{\n @Input('ddrMatGridTileLazyImg')\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(): 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 {DdrMatGridTileLazyImgDirective} from './grid-tile-lazy-img.directive';\nimport {Subscription} from 'rxjs';\nimport {Debounce, Limit} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({\n selector: '[ddrMatGridTileLazyImgContainer]'\n})\nexport class DdrMatGridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy\n{\n @ContentChildren(DdrMatGridTileLazyImgDirective, {descendants: true})\n lazyImages!: QueryList<DdrMatGridTileLazyImgDirective>;\n\n private changeSubscription!: Subscription;\n\n @HostListener('window:resize', ['$event'])\n @Debounce()\n public windowResized()\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: DdrMatGridTileLazyImgDirective) => lazyImage.recheck());\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @Limit()\n public windowScroll()\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: DdrMatGridTileLazyImgDirective) => lazyImage.check());\n }\n }\n\n /**\n * @override\n */\n public ngAfterContentInit(): void\n {\n this.lazyImages.forEach((lazyImage: DdrMatGridTileLazyImgDirective) => lazyImage.check());\n this.changeSubscription = this.lazyImages.changes.subscribe(() => {\n /* Wait one tick until layout is ready */\n setTimeout(\n () => this.lazyImages.forEach((lazyImage: DdrMatGridTileLazyImgDirective) => 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 {Injectable} from '@angular/core';\nimport {MatDrawerMode, MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DdrMatSidenavService {\n private sidenav!: MatSidenav;\n\n private stayOpenOnLargeScreen = true;\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 private sidenavContentScrolled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n 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 this.sidenav = sidenav;\n }\n\n\n public getStayOpenOnLargeScreen(): boolean {\n return this.stayOpenOnLargeScreen;\n }\n\n public setStayOpenOnLargeScreen(value: boolean): void {\n this.stayOpenOnLargeScreen = value;\n }\n\n public toggle(): Promise<MatDrawerToggleResult> {\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 if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n this.sidenav.close();\n }\n }\n\n public getModeObservable(): Observable<MatDrawerMode> {\n return this.mode$;\n }\n\n public getOpenedObservable(): Observable<boolean> {\n return this.opened$;\n }\n\n public watchToggleVisible() {\n return this.screenLarge$.pipe(\n map(large => !large || !this.stayOpenOnLargeScreen)\n );\n }\n\n public watchContentScrolled() {\n return this.sidenavContentScrolled$.asObservable();\n }\n}\n","import {ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {MatDrawerMode, MatSidenav, MatSidenavContainer, MatSidenavContent} from '@angular/material/sidenav';\nimport {DdrMatSidenavService} from './sidenav.service';\nimport {Observable} from 'rxjs';\nimport {AsyncPipe, NgClass} from \"@angular/common\";\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html',\n imports: [\n AsyncPipe,\n MatSidenav,\n MatSidenavContainer,\n MatSidenavContent,\n NgClass\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DdrMatSidenavContainerComponent implements OnInit, OnChanges\n{\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n @Input()\n public stayOpenOnLargeScreen = true;\n\n public mode$: Observable<MatDrawerMode>;\n\n public opened$: Observable<boolean>;\n\n constructor(\n private sidenavService: DdrMatSidenavService,\n )\n {\n this.mode$ = this.sidenavService.getModeObservable();\n this.opened$ = this.sidenavService.getOpenedObservable();\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 [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\"\n [fixedInViewport]=\"true\"\n >\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 {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {DdrMatSidenavService} from './sidenav.service';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {MatIcon} from \"@angular/material/icon\";\nimport {MatIconButton} from \"@angular/material/button\";\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 imports: [\n MatIcon,\n MatIconButton\n ],\n host: {\n '[style.display]': 'visible() ? \"block\" : \"none\"'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DdrMatSidenavToggleComponent {\n public visible;\n\n constructor(private sidenavService: DdrMatSidenavService) {\n this.visible = toSignal(this.sidenavService.watchToggleVisible(), {initialValue: false});\n }\n\n public toggleSidenav() {\n this.sidenavService.toggle();\n }\n}\n","import {Directive, ElementRef, Input, OnInit} from '@angular/core';\n\n@Directive({\n selector: '[ddrMatToolbarFixedTop]'\n})\nexport class DdrMatToolbarFixedTopDirective implements OnInit {\n\n @Input()\n public ddrMatToolbarFixedTop: string[] | '' = '';\n\n constructor(private el: ElementRef) {\n }\n\n /**\n * @override\n */\n public ngOnInit() {\n const container = document.createElement('div');\n container.classList.add('ddr-mat-toolbar-fixed-top-container');\n this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);\n container.appendChild(this.el.nativeElement);\n\n if ('' !== this.ddrMatToolbarFixedTop) {\n this.ddrMatToolbarFixedTop.forEach((className: string) => {\n container.classList.add(className);\n });\n }\n }\n}\n","/*\n * Public API Surface of ngx-material-extensions\n */\n\nexport * from './src/ddr-material-extensions.module';\n\nexport * from './src/button/fab-fixed.directive'\n\nexport * from './src/filter/filter.component';\n\nexport * from './src/gridlist/grid-tile-lazy-image-container.directive';\nexport * from './src/gridlist/grid-tile-lazy-img.directive';\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/theme/theme-config'\n\nexport * from './src/toolbar/toolbar-fixed-top.directive'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.DdrMatSidenavService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatFabFixedDirective implements OnInit {
|
|
4
4
|
private el;
|
|
5
5
|
constructor(el: ElementRef);
|
|
6
6
|
/**
|
|
7
7
|
* @override
|
|
8
8
|
*/
|
|
9
9
|
ngOnInit(): void;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
11
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatFabFixedDirective, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatFabFixedDirective, "[ddrMatFabFixed]", never, {}, {}, never, never, true, never>;
|
|
12
12
|
}
|
|
@@ -1,24 +1,2 @@
|
|
|
1
1
|
import { EnvironmentProviders } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./button/fab-fixed.directive";
|
|
4
|
-
import * as i2 from "./filter/filter.component";
|
|
5
|
-
import * as i3 from "./sidenav/sidenav-toggle.component";
|
|
6
|
-
import * as i4 from "./gridlist/grid-tile-lazy-image-container.directive";
|
|
7
|
-
import * as i5 from "./gridlist/grid-tile-lazy-img.directive";
|
|
8
|
-
import * as i6 from "./sidenav/sidenav-container.component";
|
|
9
|
-
import * as i7 from "./toolbar/toolbar-fixed-top.directive";
|
|
10
|
-
import * as i8 from "@angular/common";
|
|
11
|
-
import * as i9 from "@angular/material/card";
|
|
12
|
-
import * as i10 from "@angular/material/sidenav";
|
|
13
|
-
import * as i11 from "@angular/material/icon";
|
|
14
|
-
import * as i12 from "@angular/material/input";
|
|
15
|
-
import * as i13 from "@angular/material/button";
|
|
16
|
-
import * as i14 from "@angular/material/form-field";
|
|
17
|
-
import * as i15 from "@angular/material/toolbar";
|
|
18
|
-
import * as i16 from "@angular/forms";
|
|
19
|
-
export declare class DdrMaterialExtensionsModule {
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMaterialExtensionsModule, never>;
|
|
21
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DdrMaterialExtensionsModule, [typeof i1.FabFixedDirective, typeof i2.FilterComponent, typeof i3.SidenavToggleComponent, typeof i4.GridTileLazyImageContainerDirective, typeof i5.GridTileLazyImgDirective, typeof i6.SidenavContainerComponent, typeof i7.ToolbarFixedTopDirective], [typeof i8.CommonModule, typeof i9.MatCardModule, typeof i10.MatSidenavModule, typeof i11.MatIconModule, typeof i12.MatInputModule, typeof i13.MatButtonModule, typeof i14.MatFormFieldModule, typeof i15.MatToolbarModule, typeof i16.ReactiveFormsModule], [typeof i1.FabFixedDirective, typeof i2.FilterComponent, typeof i3.SidenavToggleComponent, typeof i4.GridTileLazyImageContainerDirective, typeof i5.GridTileLazyImgDirective, typeof i6.SidenavContainerComponent, typeof i7.ToolbarFixedTopDirective]>;
|
|
22
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<DdrMaterialExtensionsModule>;
|
|
23
|
-
}
|
|
24
2
|
export declare function provideDdrMaterialExtensions(): EnvironmentProviders;
|
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
import { AfterContentInit, ElementRef
|
|
1
|
+
import { AfterContentInit, ElementRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class
|
|
5
|
-
formControl: FormControl
|
|
6
|
-
filterChanged:
|
|
4
|
+
export declare class DdrMatFilterComponent implements AfterContentInit {
|
|
5
|
+
formControl: FormControl<string | null>;
|
|
6
|
+
filterChanged: import("@angular/core").OutputRef<string | null>;
|
|
7
7
|
bouncePeriod: number;
|
|
8
8
|
inputElement: ElementRef;
|
|
9
|
-
private valueChangesSubscription;
|
|
10
|
-
/**
|
|
11
|
-
* @override
|
|
12
|
-
*/
|
|
13
|
-
ngOnInit(): void;
|
|
14
|
-
/**
|
|
15
|
-
* @override
|
|
16
|
-
*/
|
|
17
|
-
ngOnDestroy(): void;
|
|
18
9
|
/**
|
|
19
10
|
* @override
|
|
20
11
|
*/
|
|
21
12
|
ngAfterContentInit(): void;
|
|
22
13
|
clear(): void;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatFilterComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatFilterComponent, "ddr-mat-filter", never, { "bouncePeriod": { "alias": "bouncePeriod"; "required": false; }; }, { "filterChanged": "filterChanged"; }, never, never, true, never>;
|
|
25
16
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AfterContentInit, OnDestroy, QueryList } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { DdrMatGridTileLazyImgDirective } from './grid-tile-lazy-img.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class
|
|
5
|
-
lazyImages: QueryList<
|
|
4
|
+
export declare class DdrMatGridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy {
|
|
5
|
+
lazyImages: QueryList<DdrMatGridTileLazyImgDirective>;
|
|
6
6
|
private changeSubscription;
|
|
7
7
|
windowResized(): void;
|
|
8
8
|
windowScroll(): void;
|
|
@@ -14,6 +14,6 @@ export declare class GridTileLazyImageContainerDirective implements AfterContent
|
|
|
14
14
|
* @override
|
|
15
15
|
*/
|
|
16
16
|
ngOnDestroy(): void;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
18
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatGridTileLazyImageContainerDirective, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatGridTileLazyImageContainerDirective, "[ddrMatGridTileLazyImgContainer]", never, {}, {}, ["lazyImages"], never, true, never>;
|
|
19
19
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectorRef, ElementRef, OnChanges } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatGridTileLazyImgDirective implements OnChanges {
|
|
4
4
|
private element;
|
|
5
5
|
private cd;
|
|
6
6
|
src: string;
|
|
@@ -23,6 +23,6 @@ export declare class GridTileLazyImgDirective implements OnChanges {
|
|
|
23
23
|
private isInsideViewport;
|
|
24
24
|
private getDimension;
|
|
25
25
|
private isHidden;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
27
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatGridTileLazyImgDirective, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatGridTileLazyImgDirective, "[ddrMatGridTileLazyImg]", never, { "src": { "alias": "ddrMatGridTileLazyImg"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "objectFit": { "alias": "objectFit"; "required": false; }; }, {}, never, never, true, never>;
|
|
28
28
|
}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { OnChanges,
|
|
1
|
+
import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';
|
|
3
|
-
import {
|
|
3
|
+
import { DdrMatSidenavService } from './sidenav.service';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class DdrMatSidenavContainerComponent implements OnInit, OnChanges {
|
|
7
7
|
private sidenavService;
|
|
8
8
|
sidenav: MatSidenav;
|
|
9
9
|
stayOpenOnLargeScreen: boolean;
|
|
10
10
|
mode$: Observable<MatDrawerMode>;
|
|
11
11
|
opened$: Observable<boolean>;
|
|
12
|
-
|
|
13
|
-
constructor(sidenavService: SidenavService);
|
|
12
|
+
constructor(sidenavService: DdrMatSidenavService);
|
|
14
13
|
/**
|
|
15
14
|
* @override
|
|
16
15
|
*/
|
|
@@ -19,10 +18,6 @@ export declare class SidenavContainerComponent implements OnInit, OnChanges, OnD
|
|
|
19
18
|
* @override
|
|
20
19
|
*/
|
|
21
20
|
ngOnInit(): void;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*/
|
|
25
|
-
ngOnDestroy(): void;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SidenavContainerComponent, never>;
|
|
27
|
-
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>;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavContainerComponent, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatSidenavContainerComponent, "ddr-mat-sidenav-container", never, { "stayOpenOnLargeScreen": { "alias": "stayOpenOnLargeScreen"; "required": false; }; }, {}, never, ["[slot=mat-sidenav]", "[slot=mat-sidenav-content]"], true, never>;
|
|
28
23
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DdrMatSidenavService } from './sidenav.service';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatSidenavToggleComponent {
|
|
4
4
|
private sidenavService;
|
|
5
5
|
visible: import("@angular/core").Signal<boolean>;
|
|
6
|
-
constructor(sidenavService:
|
|
6
|
+
constructor(sidenavService: DdrMatSidenavService);
|
|
7
7
|
toggleSidenav(): void;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavToggleComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatSidenavToggleComponent, "ddr-mat-sidenav-toggle", never, {}, {}, never, never, true, never>;
|
|
10
10
|
}
|
|
@@ -3,10 +3,9 @@ import { BreakpointObserver } from '@angular/cdk/layout';
|
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class DdrMatSidenavService {
|
|
7
7
|
private breakpointObserver;
|
|
8
8
|
private router;
|
|
9
|
-
private document;
|
|
10
9
|
private sidenav;
|
|
11
10
|
private stayOpenOnLargeScreen;
|
|
12
11
|
private largeBreakpoints;
|
|
@@ -14,7 +13,7 @@ export declare class SidenavService {
|
|
|
14
13
|
private mode$;
|
|
15
14
|
private opened$;
|
|
16
15
|
private sidenavContentScrolled$;
|
|
17
|
-
constructor(breakpointObserver: BreakpointObserver, router: Router
|
|
16
|
+
constructor(breakpointObserver: BreakpointObserver, router: Router);
|
|
18
17
|
setSidenav(sidenav: MatSidenav): void;
|
|
19
18
|
getStayOpenOnLargeScreen(): boolean;
|
|
20
19
|
setStayOpenOnLargeScreen(value: boolean): void;
|
|
@@ -24,6 +23,6 @@ export declare class SidenavService {
|
|
|
24
23
|
getOpenedObservable(): Observable<boolean>;
|
|
25
24
|
watchToggleVisible(): Observable<boolean>;
|
|
26
25
|
watchContentScrolled(): Observable<boolean>;
|
|
27
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
28
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavService, never>;
|
|
27
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DdrMatSidenavService>;
|
|
29
28
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InjectionToken } from "@angular/core";
|
|
2
|
-
export declare const
|
|
3
|
-
export interface
|
|
2
|
+
export declare const DDR_MAT_THEME: InjectionToken<DdrMatThemeConfig>;
|
|
3
|
+
export interface DdrMatThemeConfig {
|
|
4
4
|
themeColorLight: string;
|
|
5
5
|
themeColorDark: string;
|
|
6
6
|
themeColorLightScrolled: string;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DdrMatThemeConfig } from "./theme-config";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatThemeScrollService {
|
|
4
4
|
private readonly document;
|
|
5
5
|
private readonly themeConfig;
|
|
6
|
-
constructor(document: Document, themeConfig:
|
|
6
|
+
constructor(document: Document, themeConfig: DdrMatThemeConfig);
|
|
7
7
|
init(): void;
|
|
8
8
|
private findOrCreateThemeColorMetaElement;
|
|
9
9
|
private createThemeColorMetaElement;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
11
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatThemeScrollService, never>;
|
|
11
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DdrMatThemeScrollService>;
|
|
12
12
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatToolbarFixedTopDirective implements OnInit {
|
|
4
4
|
private el;
|
|
5
5
|
ddrMatToolbarFixedTop: string[] | '';
|
|
6
6
|
constructor(el: ElementRef);
|
|
@@ -8,6 +8,6 @@ export declare class ToolbarFixedTopDirective implements OnInit {
|
|
|
8
8
|
* @override
|
|
9
9
|
*/
|
|
10
10
|
ngOnInit(): void;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatToolbarFixedTopDirective, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatToolbarFixedTopDirective, "[ddrMatToolbarFixedTop]", never, { "ddrMatToolbarFixedTop": { "alias": "ddrMatToolbarFixedTop"; "required": false; }; }, {}, never, never, true, never>;
|
|
13
13
|
}
|