@dontdrinkandroot/ngx-material-extensions 0.7.7 → 0.20.0
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/fesm2022/dontdrinkandroot-ngx-material-extensions.mjs +65 -240
- package/fesm2022/dontdrinkandroot-ngx-material-extensions.mjs.map +1 -1
- package/index.d.ts +100 -5
- package/package.json +6 -6
- package/public-api.d.ts +0 -10
- package/src/button/fab-fixed.directive.d.ts +0 -12
- package/src/ddr-material-extensions.module.d.ts +0 -2
- package/src/filter/filter.component.d.ts +0 -17
- package/src/gridlist/grid-tile-lazy-image-container.directive.d.ts +0 -19
- package/src/gridlist/grid-tile-lazy-img.directive.d.ts +0 -28
- package/src/sidenav/sidenav-container.component.d.ts +0 -18
- package/src/sidenav/sidenav-toggle.component.d.ts +0 -10
- package/src/sidenav/sidenav.service.d.ts +0 -23
- package/src/theme/theme-config.d.ts +0 -8
- package/src/theme/theme-scroll.service.d.ts +0 -12
- package/src/toolbar/toolbar-fixed-top.directive.d.ts +0 -13
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken,
|
|
2
|
+
import { InjectionToken, inject, Injectable, makeEnvironmentProviders, provideEnvironmentInitializer, ElementRef, Directive, input, ViewChild, Input, ChangeDetectionStrategy, Component, signal, effect } from '@angular/core';
|
|
3
3
|
import { MatIconRegistry, MatIcon } from '@angular/material/icon';
|
|
4
4
|
import { DOCUMENT, NgClass } from '@angular/common';
|
|
5
5
|
import { fromEvent, distinctUntilChanged, interval, BehaviorSubject, combineLatest } from 'rxjs';
|
|
@@ -11,23 +11,15 @@ import { MatFormField, MatSuffix, MatPrefix } from '@angular/material/form-field
|
|
|
11
11
|
import { MatInput } from '@angular/material/input';
|
|
12
12
|
import { MatIconButton } from '@angular/material/button';
|
|
13
13
|
import { outputFromObservable, toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
14
|
-
import { __decorate } from 'tslib';
|
|
15
|
-
import { NumberUtils, StringUtils, Debounce, Limit } from '@dontdrinkandroot/ngx-extensions';
|
|
16
14
|
import { MatSidenav, MatSidenavContainer, MatSidenavContent } from '@angular/material/sidenav';
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
-
import * as i2 from '@angular/router';
|
|
20
|
-
import { NavigationStart } from '@angular/router';
|
|
15
|
+
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
|
|
16
|
+
import { Router, NavigationStart } from '@angular/router';
|
|
21
17
|
|
|
22
18
|
const DDR_MAT_THEME = new InjectionToken('DDR_MAT_THEME');
|
|
23
19
|
|
|
24
20
|
class DdrMatThemeScrollService {
|
|
25
|
-
document;
|
|
26
|
-
themeConfig;
|
|
27
|
-
constructor(document, themeConfig) {
|
|
28
|
-
this.document = document;
|
|
29
|
-
this.themeConfig = themeConfig;
|
|
30
|
-
}
|
|
21
|
+
document = inject(DOCUMENT);
|
|
22
|
+
themeConfig = inject(DDR_MAT_THEME);
|
|
31
23
|
init() {
|
|
32
24
|
const lightMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: light)', this.themeConfig.themeColorLight);
|
|
33
25
|
const darkMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: dark)', this.themeConfig.themeColorDark);
|
|
@@ -53,18 +45,12 @@ class DdrMatThemeScrollService {
|
|
|
53
45
|
this.document.head.appendChild(metaElement);
|
|
54
46
|
return metaElement;
|
|
55
47
|
}
|
|
56
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
57
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatThemeScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatThemeScrollService });
|
|
58
50
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatThemeScrollService, decorators: [{
|
|
60
52
|
type: Injectable
|
|
61
|
-
}]
|
|
62
|
-
type: Inject,
|
|
63
|
-
args: [DOCUMENT]
|
|
64
|
-
}] }, { type: undefined, decorators: [{
|
|
65
|
-
type: Inject,
|
|
66
|
-
args: [DDR_MAT_THEME]
|
|
67
|
-
}] }] });
|
|
53
|
+
}] });
|
|
68
54
|
|
|
69
55
|
function provideDdrMaterialExtensions() {
|
|
70
56
|
return makeEnvironmentProviders([
|
|
@@ -87,28 +73,36 @@ function provideDdrMaterialExtensions() {
|
|
|
87
73
|
}
|
|
88
74
|
|
|
89
75
|
class DdrMatFabFixedDirective {
|
|
90
|
-
el;
|
|
91
|
-
|
|
92
|
-
this.el = el;
|
|
93
|
-
}
|
|
76
|
+
el = inject(ElementRef);
|
|
77
|
+
isInitialized = false;
|
|
94
78
|
/**
|
|
95
79
|
* @override
|
|
96
80
|
*/
|
|
97
81
|
ngOnInit() {
|
|
82
|
+
if (this.isInitialized) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// Check if container already exists
|
|
86
|
+
const existingContainer = this.el.nativeElement.parentElement?.querySelector('.ddr-mat-fab-fixed-container');
|
|
87
|
+
if (existingContainer && existingContainer.contains(this.el.nativeElement)) {
|
|
88
|
+
this.isInitialized = true;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
98
91
|
const container = document.createElement('div');
|
|
99
92
|
container.classList.add('ddr-mat-fab-fixed-container');
|
|
100
93
|
this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);
|
|
101
94
|
container.appendChild(this.el.nativeElement);
|
|
95
|
+
this.isInitialized = true;
|
|
102
96
|
}
|
|
103
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
104
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatFabFixedDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.4", type: DdrMatFabFixedDirective, isStandalone: true, selector: "[ddrMatFabFixed]", ngImport: i0 });
|
|
105
99
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatFabFixedDirective, decorators: [{
|
|
107
101
|
type: Directive,
|
|
108
102
|
args: [{
|
|
109
103
|
selector: '[ddrMatFabFixed]',
|
|
110
104
|
}]
|
|
111
|
-
}]
|
|
105
|
+
}] });
|
|
112
106
|
|
|
113
107
|
class DdrMatFilterComponent {
|
|
114
108
|
formControl = new FormControl(null);
|
|
@@ -126,10 +120,10 @@ class DdrMatFilterComponent {
|
|
|
126
120
|
clear() {
|
|
127
121
|
this.formControl.setValue(null);
|
|
128
122
|
}
|
|
129
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
130
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
123
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: DdrMatFilterComponent, isStandalone: true, selector: "ddr-mat-filter", inputs: { bouncePeriod: { classPropertyName: "bouncePeriod", publicName: "bouncePeriod", isSignal: false, isRequired: false, transformFunction: null }, ddrMatPrefixIcon: { classPropertyName: "ddrMatPrefixIcon", publicName: "ddrMatPrefixIcon", isSignal: true, isRequired: false, transformFunction: null } }, 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 @if (ddrMatPrefixIcon()) {\n <mat-icon matPrefix>{{ ddrMatPrefixIcon() }}</mat-icon>\n }\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
131
125
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatFilterComponent, decorators: [{
|
|
133
127
|
type: Component,
|
|
134
128
|
args: [{ selector: 'ddr-mat-filter', imports: [
|
|
135
129
|
MatIconButton,
|
|
@@ -148,182 +142,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
148
142
|
args: ['input', { static: true }]
|
|
149
143
|
}] } });
|
|
150
144
|
|
|
151
|
-
class DdrMatGridTileLazyImgDirective {
|
|
152
|
-
element;
|
|
153
|
-
cd;
|
|
154
|
-
src;
|
|
155
|
-
hostSrc = 'assets/placeholder.gif';
|
|
156
|
-
hostStyleObjectFit = 'contain';
|
|
157
|
-
hostStyleWidthPx;
|
|
158
|
-
hostStyleHeightPx;
|
|
159
|
-
hostStyleOpacity = 0;
|
|
160
|
-
offset = 1000;
|
|
161
|
-
objectFit = 'cover';
|
|
162
|
-
displayed = false;
|
|
163
|
-
maxLoadedDimension = null;
|
|
164
|
-
constructor(element, cd) {
|
|
165
|
-
this.element = element;
|
|
166
|
-
this.cd = cd;
|
|
167
|
-
}
|
|
168
|
-
recheck() {
|
|
169
|
-
this.displayed = false;
|
|
170
|
-
this.check();
|
|
171
|
-
}
|
|
172
|
-
check() {
|
|
173
|
-
if (this.displayed
|
|
174
|
-
|| this.isHidden(this.element.nativeElement)
|
|
175
|
-
|| !this.isInsideViewport(this.element.nativeElement, this.offset)) {
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
this.displayed = true;
|
|
179
|
-
const dimension = this.getDimension();
|
|
180
|
-
if (null != this.maxLoadedDimension
|
|
181
|
-
&& this.maxLoadedDimension.width >= dimension.width
|
|
182
|
-
&& this.maxLoadedDimension.height >= dimension.height) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
this.maxLoadedDimension = dimension;
|
|
186
|
-
this.hostStyleWidthPx = dimension.width;
|
|
187
|
-
this.hostStyleHeightPx = dimension.height;
|
|
188
|
-
let wantedSize;
|
|
189
|
-
if (this.objectFit === 'cover') {
|
|
190
|
-
wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));
|
|
191
|
-
this.hostStyleObjectFit = 'cover';
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));
|
|
195
|
-
this.hostStyleObjectFit = 'contain';
|
|
196
|
-
}
|
|
197
|
-
this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));
|
|
198
|
-
this.hostStyleOpacity = 1;
|
|
199
|
-
this.cd.detectChanges();
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* @override
|
|
203
|
-
*/
|
|
204
|
-
ngOnChanges() {
|
|
205
|
-
this.displayed = false;
|
|
206
|
-
this.maxLoadedDimension = null;
|
|
207
|
-
this.hostStyleOpacity = 0;
|
|
208
|
-
if (this.element.nativeElement.parentElement.offsetWidth > 0) {
|
|
209
|
-
this.check();
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
isInsideViewport(nativeElement, offset) {
|
|
213
|
-
// console.log('isInsideViewport');
|
|
214
|
-
const ownerDocument = nativeElement.ownerDocument;
|
|
215
|
-
const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;
|
|
216
|
-
const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;
|
|
217
|
-
const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);
|
|
218
|
-
const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);
|
|
219
|
-
const topOffset = nativeElement.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;
|
|
220
|
-
const leftOffset = nativeElement.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;
|
|
221
|
-
// console.log(documentWidth, documentHeight, topOffset, leftOffset);
|
|
222
|
-
const isBelowViewport = documentHeight + documentTop <= topOffset - offset;
|
|
223
|
-
const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - offset;
|
|
224
|
-
const isAboveViewport = documentTop >= topOffset + offset + nativeElement.offsetHeight;
|
|
225
|
-
const isAtLeftOfViewport = documentLeft >= leftOffset + offset + nativeElement.offsetWidth;
|
|
226
|
-
return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;
|
|
227
|
-
}
|
|
228
|
-
getDimension() {
|
|
229
|
-
return {
|
|
230
|
-
width: this.element.nativeElement.parentElement.offsetWidth,
|
|
231
|
-
height: this.element.nativeElement.parentElement.offsetHeight,
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
isHidden(nativeElement) {
|
|
235
|
-
// console.log('isHidden');
|
|
236
|
-
return window.getComputedStyle(nativeElement).display === 'none';
|
|
237
|
-
}
|
|
238
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: DdrMatGridTileLazyImgDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
239
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.9", 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 });
|
|
240
|
-
}
|
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: DdrMatGridTileLazyImgDirective, decorators: [{
|
|
242
|
-
type: Directive,
|
|
243
|
-
args: [{
|
|
244
|
-
selector: '[ddrMatGridTileLazyImg]'
|
|
245
|
-
}]
|
|
246
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { src: [{
|
|
247
|
-
type: Input,
|
|
248
|
-
args: ['ddrMatGridTileLazyImg']
|
|
249
|
-
}], hostSrc: [{
|
|
250
|
-
type: HostBinding,
|
|
251
|
-
args: ['src']
|
|
252
|
-
}], hostStyleObjectFit: [{
|
|
253
|
-
type: HostBinding,
|
|
254
|
-
args: ['style.object-fit']
|
|
255
|
-
}], hostStyleWidthPx: [{
|
|
256
|
-
type: HostBinding,
|
|
257
|
-
args: ['style.width.px']
|
|
258
|
-
}], hostStyleHeightPx: [{
|
|
259
|
-
type: HostBinding,
|
|
260
|
-
args: ['style.height.px']
|
|
261
|
-
}], hostStyleOpacity: [{
|
|
262
|
-
type: HostBinding,
|
|
263
|
-
args: ['style.opacity']
|
|
264
|
-
}], offset: [{
|
|
265
|
-
type: Input
|
|
266
|
-
}], objectFit: [{
|
|
267
|
-
type: Input
|
|
268
|
-
}] } });
|
|
269
|
-
|
|
270
|
-
class DdrMatGridTileLazyImageContainerDirective {
|
|
271
|
-
lazyImages;
|
|
272
|
-
changeSubscription;
|
|
273
|
-
windowResized() {
|
|
274
|
-
if (null != this.lazyImages) {
|
|
275
|
-
this.lazyImages.forEach((lazyImage) => lazyImage.recheck());
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
windowScroll() {
|
|
279
|
-
if (null != this.lazyImages) {
|
|
280
|
-
this.lazyImages.forEach((lazyImage) => lazyImage.check());
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* @override
|
|
285
|
-
*/
|
|
286
|
-
ngAfterContentInit() {
|
|
287
|
-
this.lazyImages.forEach((lazyImage) => lazyImage.check());
|
|
288
|
-
this.changeSubscription = this.lazyImages.changes.subscribe(() => {
|
|
289
|
-
/* Wait one tick until layout is ready */
|
|
290
|
-
setTimeout(() => this.lazyImages.forEach((lazyImage) => lazyImage.recheck()), 1);
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* @override
|
|
295
|
-
*/
|
|
296
|
-
ngOnDestroy() {
|
|
297
|
-
this.changeSubscription.unsubscribe();
|
|
298
|
-
}
|
|
299
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: DdrMatGridTileLazyImageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
300
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.9", 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 });
|
|
301
|
-
}
|
|
302
|
-
__decorate([
|
|
303
|
-
Debounce()
|
|
304
|
-
], DdrMatGridTileLazyImageContainerDirective.prototype, "windowResized", null);
|
|
305
|
-
__decorate([
|
|
306
|
-
Limit()
|
|
307
|
-
], DdrMatGridTileLazyImageContainerDirective.prototype, "windowScroll", null);
|
|
308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: DdrMatGridTileLazyImageContainerDirective, decorators: [{
|
|
309
|
-
type: Directive,
|
|
310
|
-
args: [{
|
|
311
|
-
selector: '[ddrMatGridTileLazyImgContainer]'
|
|
312
|
-
}]
|
|
313
|
-
}], propDecorators: { lazyImages: [{
|
|
314
|
-
type: ContentChildren,
|
|
315
|
-
args: [DdrMatGridTileLazyImgDirective, { descendants: true }]
|
|
316
|
-
}], windowResized: [{
|
|
317
|
-
type: HostListener,
|
|
318
|
-
args: ['window:resize', ['$event']]
|
|
319
|
-
}], windowScroll: [{
|
|
320
|
-
type: HostListener,
|
|
321
|
-
args: ['window:scroll', ['$event']]
|
|
322
|
-
}] } });
|
|
323
|
-
|
|
324
145
|
class DdrMatSidenavService {
|
|
325
|
-
breakpointObserver;
|
|
326
|
-
router;
|
|
146
|
+
breakpointObserver = inject(BreakpointObserver);
|
|
147
|
+
router = inject(Router);
|
|
327
148
|
sidenav;
|
|
328
149
|
largeBreakpoints = [
|
|
329
150
|
Breakpoints.Medium,
|
|
@@ -336,9 +157,7 @@ class DdrMatSidenavService {
|
|
|
336
157
|
mode;
|
|
337
158
|
opened;
|
|
338
159
|
toggleVisible;
|
|
339
|
-
constructor(
|
|
340
|
-
this.breakpointObserver = breakpointObserver;
|
|
341
|
-
this.router = router;
|
|
160
|
+
constructor() {
|
|
342
161
|
const screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(map(result => result.matches));
|
|
343
162
|
const mode$ = combineLatest([
|
|
344
163
|
screenLarge$,
|
|
@@ -381,24 +200,23 @@ class DdrMatSidenavService {
|
|
|
381
200
|
watchContentScrolled() {
|
|
382
201
|
return this.sidenavContentScrolled$.asObservable();
|
|
383
202
|
}
|
|
384
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
385
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
203
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatSidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
204
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatSidenavService, providedIn: 'root' });
|
|
386
205
|
}
|
|
387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatSidenavService, decorators: [{
|
|
388
207
|
type: Injectable,
|
|
389
208
|
args: [{
|
|
390
209
|
providedIn: 'root'
|
|
391
210
|
}]
|
|
392
|
-
}], ctorParameters: () => [
|
|
211
|
+
}], ctorParameters: () => [] });
|
|
393
212
|
|
|
394
213
|
class DdrMatSidenavContainerComponent {
|
|
395
|
-
sidenavService;
|
|
214
|
+
sidenavService = inject(DdrMatSidenavService);
|
|
396
215
|
sidenav;
|
|
397
216
|
stayOpenOnLargeScreen = input(true);
|
|
398
217
|
mode;
|
|
399
218
|
opened;
|
|
400
|
-
constructor(
|
|
401
|
-
this.sidenavService = sidenavService;
|
|
219
|
+
constructor() {
|
|
402
220
|
this.mode = this.sidenavService.mode;
|
|
403
221
|
this.opened = this.sidenavService.opened;
|
|
404
222
|
effect(() => {
|
|
@@ -411,10 +229,10 @@ class DdrMatSidenavContainerComponent {
|
|
|
411
229
|
ngOnInit() {
|
|
412
230
|
this.sidenavService.setSidenav(this.sidenav);
|
|
413
231
|
}
|
|
414
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
415
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
232
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatSidenavContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
233
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.4", type: DdrMatSidenavContainerComponent, isStandalone: true, selector: "ddr-mat-sidenav-container", inputs: { stayOpenOnLargeScreen: { classPropertyName: "stayOpenOnLargeScreen", publicName: "stayOpenOnLargeScreen", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container [ngClass]=\"mode()\">\n <mat-sidenav\n #sidenav\n [mode]=\"mode()\"\n [opened]=\"opened()\"\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", styles: [""], dependencies: [{ 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 });
|
|
416
234
|
}
|
|
417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
235
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatSidenavContainerComponent, decorators: [{
|
|
418
236
|
type: Component,
|
|
419
237
|
args: [{ selector: 'ddr-mat-sidenav-container', imports: [
|
|
420
238
|
MatSidenav,
|
|
@@ -422,28 +240,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
422
240
|
MatSidenavContent,
|
|
423
241
|
NgClass
|
|
424
242
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container [ngClass]=\"mode()\">\n <mat-sidenav\n #sidenav\n [mode]=\"mode()\"\n [opened]=\"opened()\"\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" }]
|
|
425
|
-
}], ctorParameters: () => [
|
|
243
|
+
}], ctorParameters: () => [], propDecorators: { sidenav: [{
|
|
426
244
|
type: ViewChild,
|
|
427
245
|
args: ['sidenav', { static: true }]
|
|
428
246
|
}] } });
|
|
429
247
|
|
|
430
248
|
class DdrMatSidenavToggleComponent {
|
|
431
|
-
sidenavService;
|
|
249
|
+
sidenavService = inject(DdrMatSidenavService);
|
|
432
250
|
visible;
|
|
433
|
-
constructor(
|
|
434
|
-
this.sidenavService = sidenavService;
|
|
251
|
+
constructor() {
|
|
435
252
|
this.visible = this.sidenavService.toggleVisible;
|
|
436
253
|
}
|
|
437
254
|
toggleSidenav() {
|
|
438
255
|
this.sidenavService.toggle();
|
|
439
256
|
}
|
|
440
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
441
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
257
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatSidenavToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
258
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: DdrMatSidenavToggleComponent, isStandalone: true, selector: "ddr-mat-sidenav-toggle", host: { properties: { "style.display": "visible() ? \"block\" : \"none\"" } }, ngImport: i0, template: `
|
|
442
259
|
<button mat-icon-button (click)="toggleSidenav()">
|
|
443
260
|
<mat-icon>menu</mat-icon>
|
|
444
|
-
</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 });
|
|
261
|
+
</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], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
445
262
|
}
|
|
446
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatSidenavToggleComponent, decorators: [{
|
|
447
264
|
type: Component,
|
|
448
265
|
args: [{
|
|
449
266
|
selector: 'ddr-mat-sidenav-toggle',
|
|
@@ -460,18 +277,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
460
277
|
},
|
|
461
278
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
462
279
|
}]
|
|
463
|
-
}], ctorParameters: () => [
|
|
280
|
+
}], ctorParameters: () => [] });
|
|
464
281
|
|
|
465
282
|
class DdrMatToolbarFixedTopDirective {
|
|
466
|
-
el;
|
|
283
|
+
el = inject(ElementRef);
|
|
467
284
|
ddrMatToolbarFixedTop = '';
|
|
468
|
-
|
|
469
|
-
this.el = el;
|
|
470
|
-
}
|
|
285
|
+
isInitialized = false;
|
|
471
286
|
/**
|
|
472
287
|
* @override
|
|
473
288
|
*/
|
|
474
289
|
ngOnInit() {
|
|
290
|
+
if (this.isInitialized) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
// Check if container already exists
|
|
294
|
+
const existingContainer = this.el.nativeElement.parentElement?.querySelector('.ddr-mat-toolbar-fixed-top-container');
|
|
295
|
+
if (existingContainer && existingContainer.contains(this.el.nativeElement)) {
|
|
296
|
+
this.isInitialized = true;
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
475
299
|
const container = document.createElement('div');
|
|
476
300
|
container.classList.add('ddr-mat-toolbar-fixed-top-container');
|
|
477
301
|
this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);
|
|
@@ -481,16 +305,17 @@ class DdrMatToolbarFixedTopDirective {
|
|
|
481
305
|
container.classList.add(className);
|
|
482
306
|
});
|
|
483
307
|
}
|
|
308
|
+
this.isInitialized = true;
|
|
484
309
|
}
|
|
485
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
486
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
310
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatToolbarFixedTopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
311
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.4", type: DdrMatToolbarFixedTopDirective, isStandalone: true, selector: "[ddrMatToolbarFixedTop]", inputs: { ddrMatToolbarFixedTop: "ddrMatToolbarFixedTop" }, ngImport: i0 });
|
|
487
312
|
}
|
|
488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: DdrMatToolbarFixedTopDirective, decorators: [{
|
|
489
314
|
type: Directive,
|
|
490
315
|
args: [{
|
|
491
316
|
selector: '[ddrMatToolbarFixedTop]'
|
|
492
317
|
}]
|
|
493
|
-
}],
|
|
318
|
+
}], propDecorators: { ddrMatToolbarFixedTop: [{
|
|
494
319
|
type: Input
|
|
495
320
|
}] } });
|
|
496
321
|
|
|
@@ -502,5 +327,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
502
327
|
* Generated bundle index. Do not edit.
|
|
503
328
|
*/
|
|
504
329
|
|
|
505
|
-
export { DDR_MAT_THEME, DdrMatFabFixedDirective, DdrMatFilterComponent,
|
|
330
|
+
export { DDR_MAT_THEME, DdrMatFabFixedDirective, DdrMatFilterComponent, DdrMatSidenavContainerComponent, DdrMatSidenavService, DdrMatSidenavToggleComponent, DdrMatToolbarFixedTopDirective, provideDdrMaterialExtensions };
|
|
506
331
|
//# sourceMappingURL=dontdrinkandroot-ngx-material-extensions.mjs.map
|
|
@@ -1 +1 @@
|
|
|
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: '#faf9fd',\n themeColorDark: '#121316',\n themeColorLightScrolled: '#efedf0',\n themeColorDarkScrolled: '#1f2022',\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, 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, MatPrefix, 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 styleUrl: './filter.component.scss',\n imports: [\n MatIconButton,\n MatCard,\n MatFormField,\n MatIcon,\n MatInput,\n MatSuffix,\n ReactiveFormsModule,\n MatPrefix\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DdrMatFilterComponent implements AfterContentInit\n{\n protected 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 public ddrMatPrefixIcon = input<string | null>(null);\n\n @ViewChild('input', {static: true})\n protected inputElement!: ElementRef;\n\n /**\n * @override\n */\n public ngAfterContentInit()\n {\n this.inputElement.nativeElement.focus();\n }\n\n public clear()\n {\n this.formControl.setValue(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 @if (ddrMatPrefixIcon()) {\n <mat-icon matPrefix>{{ ddrMatPrefixIcon() }}</mat-icon>\n }\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, signal} from '@angular/core';\nimport {MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {BehaviorSubject, combineLatest} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\nimport {toObservable, toSignal} from \"@angular/core/rxjs-interop\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DdrMatSidenavService {\n\n private sidenav!: MatSidenav;\n\n private largeBreakpoints = [\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ];\n\n public stayOpenOnLargeScreen = signal(true);\n\n private stayOpenOnLargeScreen$ = toObservable(this.stayOpenOnLargeScreen);\n\n private sidenavContentScrolled$ = new BehaviorSubject<boolean>(false);\n\n public readonly mode;\n\n public readonly opened;\n\n public readonly toggleVisible;\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n private router: Router,\n ) {\n const screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(\n map(result => result.matches)\n );\n\n const mode$ = combineLatest([\n screenLarge$,\n this.stayOpenOnLargeScreen$\n ]).pipe(\n map(([large, stayOpenOnLargeScreen]) => large && stayOpenOnLargeScreen ? 'side' : 'over'),\n );\n\n const opened$ = combineLatest([\n screenLarge$,\n this.stayOpenOnLargeScreen$\n ]).pipe(\n map(([large, stayOpenOnLargeScreen]) => large && stayOpenOnLargeScreen),\n );\n\n const toggleVisible$ = combineLatest([\n screenLarge$,\n this.stayOpenOnLargeScreen$\n ]).pipe(\n map(([large, stayOpenOnLargeScreen]) => !large || !stayOpenOnLargeScreen),\n );\n\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.closeSidebar();\n }\n });\n\n this.mode = toSignal(mode$, {initialValue: 'over'});\n this.opened = toSignal(opened$, {initialValue: false});\n this.toggleVisible = toSignal(toggleVisible$, {initialValue: true});\n }\n\n public setSidenav(sidenav: MatSidenav): void {\n this.sidenav = sidenav;\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 watchContentScrolled() {\n return this.sidenavContentScrolled$.asObservable();\n }\n}\n","import {ChangeDetectionStrategy, Component, effect, input, OnInit, ViewChild} from '@angular/core';\nimport {MatSidenav, MatSidenavContainer, MatSidenavContent} from '@angular/material/sidenav';\nimport {DdrMatSidenavService} from './sidenav.service';\nimport {NgClass} from \"@angular/common\";\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html',\n styleUrl: './sidenav-container.component.scss',\n imports: [\n MatSidenav,\n MatSidenavContainer,\n MatSidenavContent,\n NgClass\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DdrMatSidenavContainerComponent implements OnInit {\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n public stayOpenOnLargeScreen = input<boolean>(true);\n\n protected mode;\n\n protected opened;\n\n constructor(\n private sidenavService: DdrMatSidenavService,\n ) {\n this.mode = this.sidenavService.mode;\n this.opened = this.sidenavService.opened;\n\n effect(() => {\n this.sidenavService.stayOpenOnLargeScreen.set(this.stayOpenOnLargeScreen());\n });\n }\n\n /**\n * @override\n */\n public ngOnInit(): void {\n this.sidenavService.setSidenav(this.sidenav);\n }\n}\n","<mat-sidenav-container [ngClass]=\"mode()\">\n <mat-sidenav\n #sidenav\n [mode]=\"mode()\"\n [opened]=\"opened()\"\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 {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 = this.sidenavService.toggleVisible;\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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"}
|
|
1
|
+
{"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/theme/theme-config.ts","../../src/theme/theme-scroll.service.ts","../../src/provider.ts","../../src/button/fab-fixed.directive.ts","../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/sidenav/sidenav-toggle.component.ts","../../src/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 {Injectable, inject} 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 private readonly document = inject<Document>(DOCUMENT);\n\n private readonly themeConfig = inject<DdrMatThemeConfig>(DDR_MAT_THEME);\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: '#faf9fd',\n themeColorDark: '#121316',\n themeColorLightScrolled: '#efedf0',\n themeColorDarkScrolled: '#1f2022',\n }\n },\n provideEnvironmentInitializer(() => {\n inject(DdrMatThemeScrollService).init();\n inject(MatIconRegistry).setDefaultFontSetClass('material-symbols-rounded');\n })\n ]);\n}\n","import {Directive, ElementRef, inject, OnInit} from \"@angular/core\";\n\n@Directive({\n selector: '[ddrMatFabFixed]',\n})\nexport class DdrMatFabFixedDirective implements OnInit {\n\n private el = inject(ElementRef);\n\n private isInitialized = false;\n\n /**\n * @override\n */\n public ngOnInit() {\n if (this.isInitialized) {\n return;\n }\n\n // Check if container already exists\n const existingContainer = this.el.nativeElement.parentElement?.querySelector('.ddr-mat-fab-fixed-container');\n if (existingContainer && existingContainer.contains(this.el.nativeElement)) {\n this.isInitialized = true;\n return;\n }\n\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 this.isInitialized = true;\n }\n}\n","import {AfterContentInit, ChangeDetectionStrategy, Component, ElementRef, input, 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, MatPrefix, 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 styleUrl: './filter.component.scss',\n imports: [\n MatIconButton,\n MatCard,\n MatFormField,\n MatIcon,\n MatInput,\n MatSuffix,\n ReactiveFormsModule,\n MatPrefix\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DdrMatFilterComponent implements AfterContentInit\n{\n protected 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 public ddrMatPrefixIcon = input<string | null>(null);\n\n @ViewChild('input', {static: true})\n protected inputElement!: ElementRef;\n\n /**\n * @override\n */\n public ngAfterContentInit()\n {\n this.inputElement.nativeElement.focus();\n }\n\n public clear()\n {\n this.formControl.setValue(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 @if (ddrMatPrefixIcon()) {\n <mat-icon matPrefix>{{ ddrMatPrefixIcon() }}</mat-icon>\n }\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 {inject, Injectable, signal} from '@angular/core';\nimport {MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {BehaviorSubject, combineLatest} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\nimport {toObservable, toSignal} from \"@angular/core/rxjs-interop\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DdrMatSidenavService {\n\n private breakpointObserver = inject(BreakpointObserver);\n\n private router = inject(Router);\n\n private sidenav!: MatSidenav;\n\n private largeBreakpoints = [\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ];\n\n public stayOpenOnLargeScreen = signal(true);\n\n private stayOpenOnLargeScreen$ = toObservable(this.stayOpenOnLargeScreen);\n\n private sidenavContentScrolled$ = new BehaviorSubject<boolean>(false);\n\n public readonly mode;\n\n public readonly opened;\n\n public readonly toggleVisible;\n\n constructor() {\n const screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(\n map(result => result.matches)\n );\n\n const mode$ = combineLatest([\n screenLarge$,\n this.stayOpenOnLargeScreen$\n ]).pipe(\n map(([large, stayOpenOnLargeScreen]) => large && stayOpenOnLargeScreen ? 'side' : 'over'),\n );\n\n const opened$ = combineLatest([\n screenLarge$,\n this.stayOpenOnLargeScreen$\n ]).pipe(\n map(([large, stayOpenOnLargeScreen]) => large && stayOpenOnLargeScreen),\n );\n\n const toggleVisible$ = combineLatest([\n screenLarge$,\n this.stayOpenOnLargeScreen$\n ]).pipe(\n map(([large, stayOpenOnLargeScreen]) => !large || !stayOpenOnLargeScreen),\n );\n\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.closeSidebar();\n }\n });\n\n this.mode = toSignal(mode$, {initialValue: 'over'});\n this.opened = toSignal(opened$, {initialValue: false});\n this.toggleVisible = toSignal(toggleVisible$, {initialValue: true});\n }\n\n public setSidenav(sidenav: MatSidenav): void {\n this.sidenav = sidenav;\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 watchContentScrolled() {\n return this.sidenavContentScrolled$.asObservable();\n }\n}\n","import {ChangeDetectionStrategy, Component, effect, inject, input, OnInit, ViewChild} from '@angular/core';\nimport {MatSidenav, MatSidenavContainer, MatSidenavContent} from '@angular/material/sidenav';\nimport {DdrMatSidenavService} from './sidenav.service';\nimport {NgClass} from \"@angular/common\";\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html',\n styleUrl: './sidenav-container.component.scss',\n imports: [\n MatSidenav,\n MatSidenavContainer,\n MatSidenavContent,\n NgClass\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DdrMatSidenavContainerComponent implements OnInit {\n private sidenavService = inject(DdrMatSidenavService);\n\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n public stayOpenOnLargeScreen = input<boolean>(true);\n\n protected mode;\n\n protected opened;\n\n constructor() {\n this.mode = this.sidenavService.mode;\n this.opened = this.sidenavService.opened;\n\n effect(() => {\n this.sidenavService.stayOpenOnLargeScreen.set(this.stayOpenOnLargeScreen());\n });\n }\n\n /**\n * @override\n */\n public ngOnInit(): void {\n this.sidenavService.setSidenav(this.sidenav);\n }\n}\n","<mat-sidenav-container [ngClass]=\"mode()\">\n <mat-sidenav\n #sidenav\n [mode]=\"mode()\"\n [opened]=\"opened()\"\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, inject} from '@angular/core';\nimport {DdrMatSidenavService} from './sidenav.service';\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 private sidenavService = inject(DdrMatSidenavService);\n\n public visible;\n\n constructor() {\n this.visible = this.sidenavService.toggleVisible;\n }\n\n public toggleSidenav() {\n this.sidenavService.toggle();\n }\n}\n","import {Directive, ElementRef, Input, OnInit, inject} from '@angular/core';\n\n@Directive({\n selector: '[ddrMatToolbarFixedTop]'\n})\nexport class DdrMatToolbarFixedTopDirective implements OnInit {\n private el = inject(ElementRef);\n\n @Input()\n public ddrMatToolbarFixedTop: string[] | '' = '';\n\n private isInitialized = false;\n\n /**\n * @override\n */\n public ngOnInit() {\n if (this.isInitialized) {\n return;\n }\n\n // Check if container already exists\n const existingContainer = this.el.nativeElement.parentElement?.querySelector('.ddr-mat-toolbar-fixed-top-container');\n if (existingContainer && existingContainer.contains(this.el.nativeElement)) {\n this.isInitialized = true;\n return;\n }\n\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 this.isInitialized = true;\n }\n}\n","/*\n * Public API Surface of ngx-material-extensions\n */\n\nexport * from './src/provider';\n\nexport * from './src/button/fab-fixed.directive'\n\nexport * from './src/filter/filter.component';\n\nexport * from './src/sidenav/sidenav-container.component';\nexport * from './src/sidenav/sidenav-toggle.component';\nexport * from './src/sidenav/sidenav.service';\n\nexport * from './src/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":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,100 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EnvironmentProviders, OnInit, AfterContentInit, ElementRef, InjectionToken } from '@angular/core';
|
|
3
|
+
import { FormControl } from '@angular/forms';
|
|
4
|
+
import { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';
|
|
5
|
+
import * as rxjs from 'rxjs';
|
|
6
|
+
|
|
7
|
+
declare function provideDdrMaterialExtensions(): EnvironmentProviders;
|
|
8
|
+
|
|
9
|
+
declare class DdrMatFabFixedDirective implements OnInit {
|
|
10
|
+
private el;
|
|
11
|
+
private isInitialized;
|
|
12
|
+
/**
|
|
13
|
+
* @override
|
|
14
|
+
*/
|
|
15
|
+
ngOnInit(): void;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatFabFixedDirective, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatFabFixedDirective, "[ddrMatFabFixed]", never, {}, {}, never, never, true, never>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare class DdrMatFilterComponent implements AfterContentInit {
|
|
21
|
+
protected formControl: FormControl<string | null>;
|
|
22
|
+
filterChanged: i0.OutputRef<string | null>;
|
|
23
|
+
bouncePeriod: number;
|
|
24
|
+
ddrMatPrefixIcon: i0.InputSignal<string | null>;
|
|
25
|
+
protected inputElement: ElementRef;
|
|
26
|
+
/**
|
|
27
|
+
* @override
|
|
28
|
+
*/
|
|
29
|
+
ngAfterContentInit(): void;
|
|
30
|
+
clear(): void;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatFilterComponent, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatFilterComponent, "ddr-mat-filter", never, { "bouncePeriod": { "alias": "bouncePeriod"; "required": false; }; "ddrMatPrefixIcon": { "alias": "ddrMatPrefixIcon"; "required": false; "isSignal": true; }; }, { "filterChanged": "filterChanged"; }, never, never, true, never>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare class DdrMatSidenavContainerComponent implements OnInit {
|
|
36
|
+
private sidenavService;
|
|
37
|
+
sidenav: MatSidenav;
|
|
38
|
+
stayOpenOnLargeScreen: i0.InputSignal<boolean>;
|
|
39
|
+
protected mode: i0.Signal<"side" | "over">;
|
|
40
|
+
protected opened: i0.Signal<boolean>;
|
|
41
|
+
constructor();
|
|
42
|
+
/**
|
|
43
|
+
* @override
|
|
44
|
+
*/
|
|
45
|
+
ngOnInit(): void;
|
|
46
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavContainerComponent, never>;
|
|
47
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatSidenavContainerComponent, "ddr-mat-sidenav-container", never, { "stayOpenOnLargeScreen": { "alias": "stayOpenOnLargeScreen"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=mat-sidenav]", "[slot=mat-sidenav-content]"], true, never>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
declare class DdrMatSidenavToggleComponent {
|
|
51
|
+
private sidenavService;
|
|
52
|
+
visible: i0.Signal<boolean>;
|
|
53
|
+
constructor();
|
|
54
|
+
toggleSidenav(): void;
|
|
55
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavToggleComponent, never>;
|
|
56
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatSidenavToggleComponent, "ddr-mat-sidenav-toggle", never, {}, {}, never, never, true, never>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
declare class DdrMatSidenavService {
|
|
60
|
+
private breakpointObserver;
|
|
61
|
+
private router;
|
|
62
|
+
private sidenav;
|
|
63
|
+
private largeBreakpoints;
|
|
64
|
+
stayOpenOnLargeScreen: i0.WritableSignal<boolean>;
|
|
65
|
+
private stayOpenOnLargeScreen$;
|
|
66
|
+
private sidenavContentScrolled$;
|
|
67
|
+
readonly mode: i0.Signal<"side" | "over">;
|
|
68
|
+
readonly opened: i0.Signal<boolean>;
|
|
69
|
+
readonly toggleVisible: i0.Signal<boolean>;
|
|
70
|
+
constructor();
|
|
71
|
+
setSidenav(sidenav: MatSidenav): void;
|
|
72
|
+
toggle(): Promise<MatDrawerToggleResult>;
|
|
73
|
+
closeSidebar(): void;
|
|
74
|
+
watchContentScrolled(): rxjs.Observable<boolean>;
|
|
75
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavService, never>;
|
|
76
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DdrMatSidenavService>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
declare const DDR_MAT_THEME: InjectionToken<DdrMatThemeConfig>;
|
|
80
|
+
interface DdrMatThemeConfig {
|
|
81
|
+
themeColorLight: string;
|
|
82
|
+
themeColorDark: string;
|
|
83
|
+
themeColorLightScrolled: string;
|
|
84
|
+
themeColorDarkScrolled: string;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
declare class DdrMatToolbarFixedTopDirective implements OnInit {
|
|
88
|
+
private el;
|
|
89
|
+
ddrMatToolbarFixedTop: string[] | '';
|
|
90
|
+
private isInitialized;
|
|
91
|
+
/**
|
|
92
|
+
* @override
|
|
93
|
+
*/
|
|
94
|
+
ngOnInit(): void;
|
|
95
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatToolbarFixedTopDirective, never>;
|
|
96
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatToolbarFixedTopDirective, "[ddrMatToolbarFixedTop]", never, { "ddrMatToolbarFixedTop": { "alias": "ddrMatToolbarFixedTop"; "required": false; }; }, {}, never, never, true, never>;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export { DDR_MAT_THEME, DdrMatFabFixedDirective, DdrMatFilterComponent, DdrMatSidenavContainerComponent, DdrMatSidenavService, DdrMatSidenavToggleComponent, DdrMatToolbarFixedTopDirective, provideDdrMaterialExtensions };
|
|
100
|
+
export type { DdrMatThemeConfig };
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dontdrinkandroot/ngx-material-extensions",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/cdk": "^
|
|
6
|
-
"@angular/common": "^
|
|
7
|
-
"@angular/core": "^
|
|
8
|
-
"@angular/material": "^
|
|
9
|
-
"@dontdrinkandroot/ngx-extensions": "^0.
|
|
5
|
+
"@angular/cdk": "^20",
|
|
6
|
+
"@angular/common": "^20",
|
|
7
|
+
"@angular/core": "^20",
|
|
8
|
+
"@angular/material": "^20",
|
|
9
|
+
"@dontdrinkandroot/ngx-extensions": "^0.20"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"tslib": "^2.3.0"
|
package/public-api.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './src/ddr-material-extensions.module';
|
|
2
|
-
export * from './src/button/fab-fixed.directive';
|
|
3
|
-
export * from './src/filter/filter.component';
|
|
4
|
-
export * from './src/gridlist/grid-tile-lazy-image-container.directive';
|
|
5
|
-
export * from './src/gridlist/grid-tile-lazy-img.directive';
|
|
6
|
-
export * from './src/sidenav/sidenav-container.component';
|
|
7
|
-
export * from './src/sidenav/sidenav-toggle.component';
|
|
8
|
-
export * from './src/sidenav/sidenav.service';
|
|
9
|
-
export * from './src/theme/theme-config';
|
|
10
|
-
export * from './src/toolbar/toolbar-fixed-top.directive';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ElementRef, OnInit } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DdrMatFabFixedDirective implements OnInit {
|
|
4
|
-
private el;
|
|
5
|
-
constructor(el: ElementRef);
|
|
6
|
-
/**
|
|
7
|
-
* @override
|
|
8
|
-
*/
|
|
9
|
-
ngOnInit(): void;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatFabFixedDirective, never>;
|
|
11
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatFabFixedDirective, "[ddrMatFabFixed]", never, {}, {}, never, never, true, never>;
|
|
12
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AfterContentInit, ElementRef } from '@angular/core';
|
|
2
|
-
import { FormControl } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class DdrMatFilterComponent implements AfterContentInit {
|
|
5
|
-
protected formControl: FormControl<string | null>;
|
|
6
|
-
filterChanged: import("@angular/core").OutputRef<string | null>;
|
|
7
|
-
bouncePeriod: number;
|
|
8
|
-
ddrMatPrefixIcon: import("@angular/core").InputSignal<string | null>;
|
|
9
|
-
protected inputElement: ElementRef;
|
|
10
|
-
/**
|
|
11
|
-
* @override
|
|
12
|
-
*/
|
|
13
|
-
ngAfterContentInit(): void;
|
|
14
|
-
clear(): void;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatFilterComponent, never>;
|
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatFilterComponent, "ddr-mat-filter", never, { "bouncePeriod": { "alias": "bouncePeriod"; "required": false; }; "ddrMatPrefixIcon": { "alias": "ddrMatPrefixIcon"; "required": false; "isSignal": true; }; }, { "filterChanged": "filterChanged"; }, never, never, true, never>;
|
|
17
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AfterContentInit, OnDestroy, QueryList } from '@angular/core';
|
|
2
|
-
import { DdrMatGridTileLazyImgDirective } from './grid-tile-lazy-img.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class DdrMatGridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy {
|
|
5
|
-
lazyImages: QueryList<DdrMatGridTileLazyImgDirective>;
|
|
6
|
-
private changeSubscription;
|
|
7
|
-
windowResized(): void;
|
|
8
|
-
windowScroll(): void;
|
|
9
|
-
/**
|
|
10
|
-
* @override
|
|
11
|
-
*/
|
|
12
|
-
ngAfterContentInit(): void;
|
|
13
|
-
/**
|
|
14
|
-
* @override
|
|
15
|
-
*/
|
|
16
|
-
ngOnDestroy(): void;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatGridTileLazyImageContainerDirective, never>;
|
|
18
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatGridTileLazyImageContainerDirective, "[ddrMatGridTileLazyImgContainer]", never, {}, {}, ["lazyImages"], never, true, never>;
|
|
19
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ElementRef, OnChanges } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DdrMatGridTileLazyImgDirective implements OnChanges {
|
|
4
|
-
private element;
|
|
5
|
-
private cd;
|
|
6
|
-
src: string;
|
|
7
|
-
hostSrc: string;
|
|
8
|
-
hostStyleObjectFit: string;
|
|
9
|
-
hostStyleWidthPx: number;
|
|
10
|
-
hostStyleHeightPx: number;
|
|
11
|
-
hostStyleOpacity: number;
|
|
12
|
-
offset: number;
|
|
13
|
-
objectFit: string;
|
|
14
|
-
private displayed;
|
|
15
|
-
private maxLoadedDimension;
|
|
16
|
-
constructor(element: ElementRef, cd: ChangeDetectorRef);
|
|
17
|
-
recheck(): void;
|
|
18
|
-
check(): void;
|
|
19
|
-
/**
|
|
20
|
-
* @override
|
|
21
|
-
*/
|
|
22
|
-
ngOnChanges(): void;
|
|
23
|
-
private isInsideViewport;
|
|
24
|
-
private getDimension;
|
|
25
|
-
private isHidden;
|
|
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
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { MatSidenav } from '@angular/material/sidenav';
|
|
3
|
-
import { DdrMatSidenavService } from './sidenav.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class DdrMatSidenavContainerComponent implements OnInit {
|
|
6
|
-
private sidenavService;
|
|
7
|
-
sidenav: MatSidenav;
|
|
8
|
-
stayOpenOnLargeScreen: import("@angular/core").InputSignal<boolean>;
|
|
9
|
-
protected mode: import("@angular/core").Signal<"side" | "over">;
|
|
10
|
-
protected opened: import("@angular/core").Signal<boolean>;
|
|
11
|
-
constructor(sidenavService: DdrMatSidenavService);
|
|
12
|
-
/**
|
|
13
|
-
* @override
|
|
14
|
-
*/
|
|
15
|
-
ngOnInit(): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavContainerComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatSidenavContainerComponent, "ddr-mat-sidenav-container", never, { "stayOpenOnLargeScreen": { "alias": "stayOpenOnLargeScreen"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=mat-sidenav]", "[slot=mat-sidenav-content]"], true, never>;
|
|
18
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { DdrMatSidenavService } from './sidenav.service';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DdrMatSidenavToggleComponent {
|
|
4
|
-
private sidenavService;
|
|
5
|
-
visible: import("@angular/core").Signal<boolean>;
|
|
6
|
-
constructor(sidenavService: DdrMatSidenavService);
|
|
7
|
-
toggleSidenav(): void;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavToggleComponent, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatSidenavToggleComponent, "ddr-mat-sidenav-toggle", never, {}, {}, never, never, true, never>;
|
|
10
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { MatDrawerToggleResult, MatSidenav } from '@angular/material/sidenav';
|
|
2
|
-
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
3
|
-
import { Router } from '@angular/router';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class DdrMatSidenavService {
|
|
6
|
-
private breakpointObserver;
|
|
7
|
-
private router;
|
|
8
|
-
private sidenav;
|
|
9
|
-
private largeBreakpoints;
|
|
10
|
-
stayOpenOnLargeScreen: import("@angular/core").WritableSignal<boolean>;
|
|
11
|
-
private stayOpenOnLargeScreen$;
|
|
12
|
-
private sidenavContentScrolled$;
|
|
13
|
-
readonly mode: import("@angular/core").Signal<"side" | "over">;
|
|
14
|
-
readonly opened: import("@angular/core").Signal<boolean>;
|
|
15
|
-
readonly toggleVisible: import("@angular/core").Signal<boolean>;
|
|
16
|
-
constructor(breakpointObserver: BreakpointObserver, router: Router);
|
|
17
|
-
setSidenav(sidenav: MatSidenav): void;
|
|
18
|
-
toggle(): Promise<MatDrawerToggleResult>;
|
|
19
|
-
closeSidebar(): void;
|
|
20
|
-
watchContentScrolled(): import("rxjs").Observable<boolean>;
|
|
21
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavService, never>;
|
|
22
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<DdrMatSidenavService>;
|
|
23
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from "@angular/core";
|
|
2
|
-
export declare const DDR_MAT_THEME: InjectionToken<DdrMatThemeConfig>;
|
|
3
|
-
export interface DdrMatThemeConfig {
|
|
4
|
-
themeColorLight: string;
|
|
5
|
-
themeColorDark: string;
|
|
6
|
-
themeColorLightScrolled: string;
|
|
7
|
-
themeColorDarkScrolled: string;
|
|
8
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DdrMatThemeConfig } from "./theme-config";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DdrMatThemeScrollService {
|
|
4
|
-
private readonly document;
|
|
5
|
-
private readonly themeConfig;
|
|
6
|
-
constructor(document: Document, themeConfig: DdrMatThemeConfig);
|
|
7
|
-
init(): void;
|
|
8
|
-
private findOrCreateThemeColorMetaElement;
|
|
9
|
-
private createThemeColorMetaElement;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatThemeScrollService, never>;
|
|
11
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<DdrMatThemeScrollService>;
|
|
12
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ElementRef, OnInit } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DdrMatToolbarFixedTopDirective implements OnInit {
|
|
4
|
-
private el;
|
|
5
|
-
ddrMatToolbarFixedTop: string[] | '';
|
|
6
|
-
constructor(el: ElementRef);
|
|
7
|
-
/**
|
|
8
|
-
* @override
|
|
9
|
-
*/
|
|
10
|
-
ngOnInit(): void;
|
|
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
|
-
}
|