@dontdrinkandroot/ngx-material-extensions 0.3.3 → 0.4.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/_extensions.scss +2 -0
- package/{esm2020 → esm2022}/src/ddr-material-extensions.module.mjs +27 -27
- package/{esm2020 → esm2022}/src/filter/filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/src/gridlist/grid-tile-lazy-image-container.directive.mjs +4 -4
- package/{esm2020 → esm2022}/src/gridlist/grid-tile-lazy-img.directive.mjs +4 -4
- package/{esm2020 → esm2022}/src/sidenav/sidenav-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/src/sidenav/sidenav-toggle.component.mjs +6 -6
- package/{esm2020 → esm2022}/src/sidenav/sidenav.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-material-extensions.mjs +46 -46
- package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-material-extensions.mjs.map +1 -1
- package/package.json +12 -18
- package/src/filter/filter.component.d.ts +1 -1
- package/src/gridlist/grid-tile-lazy-img.directive.d.ts +1 -1
- package/src/sidenav/sidenav-container.component.d.ts +1 -1
- package/fesm2015/dontdrinkandroot-ngx-material-extensions.mjs +0 -416
- package/fesm2015/dontdrinkandroot-ngx-material-extensions.mjs.map +0 -1
- /package/{esm2020 → esm2022}/dontdrinkandroot-ngx-material-extensions.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Output, Input, ViewChild, Injectable, Directive, HostBinding, ContentChildren, HostListener, NgModule } from '@angular/core';
|
|
3
|
-
import * as i6 from '@angular/forms';
|
|
4
|
-
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { interval } from 'rxjs';
|
|
6
|
-
import { debounce, map } from 'rxjs/operators';
|
|
7
|
-
import * as i1 from '@angular/material/card';
|
|
8
|
-
import { MatCardModule } from '@angular/material/card';
|
|
9
|
-
import * as i2 from '@angular/material/icon';
|
|
10
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
11
|
-
import * as i3 from '@angular/material/input';
|
|
12
|
-
import { MatInputModule } from '@angular/material/input';
|
|
13
|
-
import * as i4 from '@angular/material/form-field';
|
|
14
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
15
|
-
import * as i5 from '@angular/material/button';
|
|
16
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
17
|
-
import * as i1$1 from '@angular/cdk/layout';
|
|
18
|
-
import { Breakpoints } from '@angular/cdk/layout';
|
|
19
|
-
import * as i2$1 from '@angular/router';
|
|
20
|
-
import { NavigationStart } from '@angular/router';
|
|
21
|
-
import * as i3$1 from '@angular/common';
|
|
22
|
-
import { CommonModule } from '@angular/common';
|
|
23
|
-
import * as i4$1 from '@angular/material/sidenav';
|
|
24
|
-
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
25
|
-
import { __decorate } from 'tslib';
|
|
26
|
-
import { NumberUtils, StringUtils, Debounce, Limit } from '@dontdrinkandroot/ngx-extensions';
|
|
27
|
-
|
|
28
|
-
class FilterComponent {
|
|
29
|
-
constructor() {
|
|
30
|
-
this.formControl = new FormControl();
|
|
31
|
-
this.onFilterChanged = new EventEmitter();
|
|
32
|
-
this.bouncePeriod = 500;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* @override
|
|
36
|
-
*/
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
this.valueChangesSubscription = this.formControl.valueChanges
|
|
39
|
-
.pipe(debounce(() => interval(this.bouncePeriod)))
|
|
40
|
-
.subscribe((value => this.onFilterChanged.emit(value)));
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @override
|
|
44
|
-
*/
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
this.valueChangesSubscription.unsubscribe();
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* @override
|
|
50
|
-
*/
|
|
51
|
-
ngAfterContentInit() {
|
|
52
|
-
this.inputElement.nativeElement.focus();
|
|
53
|
-
}
|
|
54
|
-
clear() {
|
|
55
|
-
this.formControl.setValue(null);
|
|
56
|
-
this.onFilterChanged.emit(undefined);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: FilterComponent, selector: "ddr-filter", inputs: { bouncePeriod: "bouncePeriod" }, outputs: { onFilterChanged: "onFilterChanged" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n", dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FilterComponent, decorators: [{
|
|
62
|
-
type: Component,
|
|
63
|
-
args: [{ selector: 'ddr-filter', template: "<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n" }]
|
|
64
|
-
}], propDecorators: { onFilterChanged: [{
|
|
65
|
-
type: Output
|
|
66
|
-
}], bouncePeriod: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], inputElement: [{
|
|
69
|
-
type: ViewChild,
|
|
70
|
-
args: ['input', { static: true }]
|
|
71
|
-
}] } });
|
|
72
|
-
|
|
73
|
-
class SidenavService {
|
|
74
|
-
constructor(breakpointObserver, router) {
|
|
75
|
-
this.breakpointObserver = breakpointObserver;
|
|
76
|
-
this.router = router;
|
|
77
|
-
this.stayOpenOnLargeScreen = false;
|
|
78
|
-
this.largeBreakpoints = [
|
|
79
|
-
Breakpoints.Medium,
|
|
80
|
-
Breakpoints.Large,
|
|
81
|
-
Breakpoints.XLarge
|
|
82
|
-
];
|
|
83
|
-
this.screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(map(result => result.matches));
|
|
84
|
-
this.mode$ = this.screenLarge$.pipe(map(large => large && this.stayOpenOnLargeScreen ? 'side' : 'over'));
|
|
85
|
-
this.opened$ = this.screenLarge$.pipe(map(large => large && this.stayOpenOnLargeScreen));
|
|
86
|
-
this.router.events.subscribe(event => {
|
|
87
|
-
if (event instanceof NavigationStart) {
|
|
88
|
-
this.closeSidebar();
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
setSidenav(sidenav) {
|
|
93
|
-
this.sidenav = sidenav;
|
|
94
|
-
}
|
|
95
|
-
getStayOpenOnLargeScreen() {
|
|
96
|
-
return this.stayOpenOnLargeScreen;
|
|
97
|
-
}
|
|
98
|
-
setStayOpenOnLargeScreen(value) {
|
|
99
|
-
this.stayOpenOnLargeScreen = value;
|
|
100
|
-
}
|
|
101
|
-
toggle() {
|
|
102
|
-
if (null == this.sidenav) {
|
|
103
|
-
return Promise.reject('No MatSidenav found. Use setSidenav() of SidenavService');
|
|
104
|
-
}
|
|
105
|
-
if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {
|
|
106
|
-
return this.sidenav.toggle();
|
|
107
|
-
}
|
|
108
|
-
return Promise.resolve(this.sidenav.opened ? 'open' : 'close');
|
|
109
|
-
}
|
|
110
|
-
closeSidebar() {
|
|
111
|
-
if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {
|
|
112
|
-
this.sidenav.close();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
getModeObservable() {
|
|
116
|
-
return this.mode$;
|
|
117
|
-
}
|
|
118
|
-
getOpenedObservable() {
|
|
119
|
-
return this.opened$;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
SidenavService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SidenavService, deps: [{ token: i1$1.BreakpointObserver }, { token: i2$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
123
|
-
SidenavService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SidenavService, providedIn: 'root' });
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SidenavService, decorators: [{
|
|
125
|
-
type: Injectable,
|
|
126
|
-
args: [{
|
|
127
|
-
providedIn: 'root'
|
|
128
|
-
}]
|
|
129
|
-
}], ctorParameters: function () { return [{ type: i1$1.BreakpointObserver }, { type: i2$1.Router }]; } });
|
|
130
|
-
|
|
131
|
-
class SidenavContainerComponent {
|
|
132
|
-
constructor(sidenavService, breakpointObserver) {
|
|
133
|
-
this.sidenavService = sidenavService;
|
|
134
|
-
this.breakpointObserver = breakpointObserver;
|
|
135
|
-
this.stayOpenOnLargeScreen = false;
|
|
136
|
-
this.mode$ = this.sidenavService.getModeObservable();
|
|
137
|
-
this.opened$ = this.sidenavService.getOpenedObservable();
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* @override
|
|
141
|
-
*/
|
|
142
|
-
ngOnChanges(changes) {
|
|
143
|
-
this.sidenavService.setStayOpenOnLargeScreen(changes['stayOpenOnLargeScreen'].currentValue);
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* @override
|
|
147
|
-
*/
|
|
148
|
-
ngOnInit() {
|
|
149
|
-
this.sidenavService.setSidenav(this.sidenav);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
SidenavContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SidenavContainerComponent, deps: [{ token: SidenavService }, { token: i1$1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
-
SidenavContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: SidenavContainerComponent, selector: "ddr-mat-sidenav-container", inputs: { stayOpenOnLargeScreen: "stayOpenOnLargeScreen" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4$1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4$1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4$1.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] });
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SidenavContainerComponent, decorators: [{
|
|
155
|
-
type: Component,
|
|
156
|
-
args: [{ selector: 'ddr-mat-sidenav-container', template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n" }]
|
|
157
|
-
}], ctorParameters: function () { return [{ type: SidenavService }, { type: i1$1.BreakpointObserver }]; }, propDecorators: { sidenav: [{
|
|
158
|
-
type: ViewChild,
|
|
159
|
-
args: ['sidenav', { static: true }]
|
|
160
|
-
}], stayOpenOnLargeScreen: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}] } });
|
|
163
|
-
|
|
164
|
-
class SidenavToggleComponent {
|
|
165
|
-
constructor(sidenavService) {
|
|
166
|
-
this.sidenavService = sidenavService;
|
|
167
|
-
}
|
|
168
|
-
toggleSidenav() {
|
|
169
|
-
this.sidenavService.toggle();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
SidenavToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SidenavToggleComponent, deps: [{ token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
-
SidenavToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: SidenavToggleComponent, selector: "ddr-mat-sidenav-toggle", ngImport: i0, template: `
|
|
174
|
-
<button mat-icon-button (click)="toggleSidenav()">
|
|
175
|
-
<mat-icon>menu</mat-icon>
|
|
176
|
-
</button>`, isInline: true, dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SidenavToggleComponent, decorators: [{
|
|
178
|
-
type: Component,
|
|
179
|
-
args: [{
|
|
180
|
-
selector: 'ddr-mat-sidenav-toggle',
|
|
181
|
-
template: `
|
|
182
|
-
<button mat-icon-button (click)="toggleSidenav()">
|
|
183
|
-
<mat-icon>menu</mat-icon>
|
|
184
|
-
</button>`
|
|
185
|
-
}]
|
|
186
|
-
}], ctorParameters: function () { return [{ type: SidenavService }]; } });
|
|
187
|
-
|
|
188
|
-
class GridTileLazyImgDirective {
|
|
189
|
-
constructor(element, cd) {
|
|
190
|
-
this.element = element;
|
|
191
|
-
this.cd = cd;
|
|
192
|
-
this.hostSrc = 'assets/placeholder.gif';
|
|
193
|
-
this.hostStyleObjectFit = 'contain';
|
|
194
|
-
this.hostStyleOpacity = 0;
|
|
195
|
-
this.offset = 1000;
|
|
196
|
-
this.objectFit = 'cover';
|
|
197
|
-
this.displayed = false;
|
|
198
|
-
this.maxLoadedDimension = null;
|
|
199
|
-
}
|
|
200
|
-
recheck() {
|
|
201
|
-
this.displayed = false;
|
|
202
|
-
this.check();
|
|
203
|
-
}
|
|
204
|
-
check() {
|
|
205
|
-
if (this.displayed
|
|
206
|
-
|| this.isHidden(this.element.nativeElement)
|
|
207
|
-
|| !this.isInsideViewport(this.element.nativeElement, this.offset)) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
this.displayed = true;
|
|
211
|
-
const dimension = this.getDimension();
|
|
212
|
-
if (null != this.maxLoadedDimension
|
|
213
|
-
&& this.maxLoadedDimension.width >= dimension.width
|
|
214
|
-
&& this.maxLoadedDimension.height >= dimension.height) {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
this.maxLoadedDimension = dimension;
|
|
218
|
-
this.hostStyleWidthPx = dimension.width;
|
|
219
|
-
this.hostStyleHeightPx = dimension.height;
|
|
220
|
-
let wantedSize;
|
|
221
|
-
if (this.objectFit === 'cover') {
|
|
222
|
-
wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));
|
|
223
|
-
this.hostStyleObjectFit = 'cover';
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));
|
|
227
|
-
this.hostStyleObjectFit = 'contain';
|
|
228
|
-
}
|
|
229
|
-
this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));
|
|
230
|
-
this.hostStyleOpacity = 1;
|
|
231
|
-
this.cd.detectChanges();
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* @override
|
|
235
|
-
*/
|
|
236
|
-
ngOnChanges(changes) {
|
|
237
|
-
this.displayed = false;
|
|
238
|
-
this.maxLoadedDimension = null;
|
|
239
|
-
this.hostStyleOpacity = 0;
|
|
240
|
-
if (this.element.nativeElement.parentElement.offsetWidth > 0) {
|
|
241
|
-
this.check();
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
isInsideViewport(nativeElement, offset) {
|
|
245
|
-
// console.log('isInsideViewport');
|
|
246
|
-
const ownerDocument = nativeElement.ownerDocument;
|
|
247
|
-
const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;
|
|
248
|
-
const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;
|
|
249
|
-
const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);
|
|
250
|
-
const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);
|
|
251
|
-
const topOffset = nativeElement.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;
|
|
252
|
-
const leftOffset = nativeElement.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;
|
|
253
|
-
// console.log(documentWidth, documentHeight, topOffset, leftOffset);
|
|
254
|
-
const isBelowViewport = documentHeight + documentTop <= topOffset - offset;
|
|
255
|
-
const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - offset;
|
|
256
|
-
const isAboveViewport = documentTop >= topOffset + offset + nativeElement.offsetHeight;
|
|
257
|
-
const isAtLeftOfViewport = documentLeft >= leftOffset + offset + nativeElement.offsetWidth;
|
|
258
|
-
return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;
|
|
259
|
-
}
|
|
260
|
-
getDimension() {
|
|
261
|
-
return {
|
|
262
|
-
width: this.element.nativeElement.parentElement.offsetWidth,
|
|
263
|
-
height: this.element.nativeElement.parentElement.offsetHeight,
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
isHidden(nativeElement) {
|
|
267
|
-
// console.log('isHidden');
|
|
268
|
-
return window.getComputedStyle(nativeElement).display === 'none';
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
GridTileLazyImgDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: GridTileLazyImgDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
272
|
-
GridTileLazyImgDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: GridTileLazyImgDirective, selector: "[ddrGridTileLazyImg]", inputs: { src: ["ddrGridTileLazyImg", "src"], offset: "offset", objectFit: "objectFit" }, host: { properties: { "src": "this.hostSrc", "style.object-fit": "this.hostStyleObjectFit", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.opacity": "this.hostStyleOpacity" } }, usesOnChanges: true, ngImport: i0 });
|
|
273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: GridTileLazyImgDirective, decorators: [{
|
|
274
|
-
type: Directive,
|
|
275
|
-
args: [{ selector: '[ddrGridTileLazyImg]' }]
|
|
276
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { src: [{
|
|
277
|
-
type: Input,
|
|
278
|
-
args: ['ddrGridTileLazyImg']
|
|
279
|
-
}], hostSrc: [{
|
|
280
|
-
type: HostBinding,
|
|
281
|
-
args: ['src']
|
|
282
|
-
}], hostStyleObjectFit: [{
|
|
283
|
-
type: HostBinding,
|
|
284
|
-
args: ['style.object-fit']
|
|
285
|
-
}], hostStyleWidthPx: [{
|
|
286
|
-
type: HostBinding,
|
|
287
|
-
args: ['style.width.px']
|
|
288
|
-
}], hostStyleHeightPx: [{
|
|
289
|
-
type: HostBinding,
|
|
290
|
-
args: ['style.height.px']
|
|
291
|
-
}], hostStyleOpacity: [{
|
|
292
|
-
type: HostBinding,
|
|
293
|
-
args: ['style.opacity']
|
|
294
|
-
}], offset: [{
|
|
295
|
-
type: Input
|
|
296
|
-
}], objectFit: [{
|
|
297
|
-
type: Input
|
|
298
|
-
}] } });
|
|
299
|
-
|
|
300
|
-
class GridTileLazyImageContainerDirective {
|
|
301
|
-
windowResized($event) {
|
|
302
|
-
if (null != this.lazyImages) {
|
|
303
|
-
this.lazyImages.forEach((lazyImage, index) => lazyImage.recheck());
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
windowScroll($event) {
|
|
307
|
-
if (null != this.lazyImages) {
|
|
308
|
-
this.lazyImages.forEach((lazyImage, index) => lazyImage.check());
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* @override
|
|
313
|
-
*/
|
|
314
|
-
ngAfterContentInit() {
|
|
315
|
-
this.lazyImages.forEach((lazyImage, index) => lazyImage.check());
|
|
316
|
-
this.changeSubscription = this.lazyImages.changes.subscribe(() => {
|
|
317
|
-
/* Wait one tick until layout is ready */
|
|
318
|
-
setTimeout(() => this.lazyImages.forEach((lazyImage, index) => lazyImage.recheck()), 1);
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* @override
|
|
323
|
-
*/
|
|
324
|
-
ngOnDestroy() {
|
|
325
|
-
this.changeSubscription.unsubscribe();
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
GridTileLazyImageContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: GridTileLazyImageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
329
|
-
GridTileLazyImageContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: GridTileLazyImageContainerDirective, selector: "[ddrGridTileLazyImgContainer]", host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" } }, queries: [{ propertyName: "lazyImages", predicate: GridTileLazyImgDirective, descendants: true }], ngImport: i0 });
|
|
330
|
-
__decorate([
|
|
331
|
-
Debounce()
|
|
332
|
-
], GridTileLazyImageContainerDirective.prototype, "windowResized", null);
|
|
333
|
-
__decorate([
|
|
334
|
-
Limit()
|
|
335
|
-
], GridTileLazyImageContainerDirective.prototype, "windowScroll", null);
|
|
336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: GridTileLazyImageContainerDirective, decorators: [{
|
|
337
|
-
type: Directive,
|
|
338
|
-
args: [{ selector: '[ddrGridTileLazyImgContainer]' }]
|
|
339
|
-
}], propDecorators: { lazyImages: [{
|
|
340
|
-
type: ContentChildren,
|
|
341
|
-
args: [GridTileLazyImgDirective, { descendants: true }]
|
|
342
|
-
}], windowResized: [{
|
|
343
|
-
type: HostListener,
|
|
344
|
-
args: ['window:resize', ['$event']]
|
|
345
|
-
}], windowScroll: [{
|
|
346
|
-
type: HostListener,
|
|
347
|
-
args: ['window:scroll', ['$event']]
|
|
348
|
-
}] } });
|
|
349
|
-
|
|
350
|
-
class DdrMaterialExtensionsModule {
|
|
351
|
-
}
|
|
352
|
-
DdrMaterialExtensionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DdrMaterialExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
353
|
-
DdrMaterialExtensionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: DdrMaterialExtensionsModule, declarations: [FilterComponent,
|
|
354
|
-
SidenavToggleComponent,
|
|
355
|
-
GridTileLazyImageContainerDirective,
|
|
356
|
-
GridTileLazyImgDirective,
|
|
357
|
-
SidenavContainerComponent], imports: [CommonModule,
|
|
358
|
-
MatCardModule,
|
|
359
|
-
MatSidenavModule,
|
|
360
|
-
MatIconModule,
|
|
361
|
-
MatInputModule,
|
|
362
|
-
MatButtonModule,
|
|
363
|
-
MatFormFieldModule,
|
|
364
|
-
ReactiveFormsModule], exports: [FilterComponent,
|
|
365
|
-
SidenavToggleComponent,
|
|
366
|
-
GridTileLazyImageContainerDirective,
|
|
367
|
-
GridTileLazyImgDirective,
|
|
368
|
-
SidenavContainerComponent] });
|
|
369
|
-
DdrMaterialExtensionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DdrMaterialExtensionsModule, imports: [CommonModule,
|
|
370
|
-
MatCardModule,
|
|
371
|
-
MatSidenavModule,
|
|
372
|
-
MatIconModule,
|
|
373
|
-
MatInputModule,
|
|
374
|
-
MatButtonModule,
|
|
375
|
-
MatFormFieldModule,
|
|
376
|
-
ReactiveFormsModule] });
|
|
377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DdrMaterialExtensionsModule, decorators: [{
|
|
378
|
-
type: NgModule,
|
|
379
|
-
args: [{
|
|
380
|
-
declarations: [
|
|
381
|
-
FilterComponent,
|
|
382
|
-
SidenavToggleComponent,
|
|
383
|
-
GridTileLazyImageContainerDirective,
|
|
384
|
-
GridTileLazyImgDirective,
|
|
385
|
-
SidenavContainerComponent
|
|
386
|
-
],
|
|
387
|
-
imports: [
|
|
388
|
-
CommonModule,
|
|
389
|
-
MatCardModule,
|
|
390
|
-
MatSidenavModule,
|
|
391
|
-
MatIconModule,
|
|
392
|
-
MatInputModule,
|
|
393
|
-
MatButtonModule,
|
|
394
|
-
MatFormFieldModule,
|
|
395
|
-
ReactiveFormsModule
|
|
396
|
-
],
|
|
397
|
-
exports: [
|
|
398
|
-
FilterComponent,
|
|
399
|
-
SidenavToggleComponent,
|
|
400
|
-
GridTileLazyImageContainerDirective,
|
|
401
|
-
GridTileLazyImgDirective,
|
|
402
|
-
SidenavContainerComponent
|
|
403
|
-
]
|
|
404
|
-
}]
|
|
405
|
-
}] });
|
|
406
|
-
|
|
407
|
-
/*
|
|
408
|
-
* Public API Surface of ngx-material-extensions
|
|
409
|
-
*/
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Generated bundle index. Do not edit.
|
|
413
|
-
*/
|
|
414
|
-
|
|
415
|
-
export { DdrMaterialExtensionsModule, FilterComponent, GridTileLazyImageContainerDirective, GridTileLazyImgDirective, SidenavContainerComponent, SidenavService, SidenavToggleComponent };
|
|
416
|
-
//# sourceMappingURL=dontdrinkandroot-ngx-material-extensions.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/sidenav/sidenav-toggle.component.ts","../../src/gridlist/grid-tile-lazy-img.directive.ts","../../src/gridlist/grid-tile-lazy-image-container.directive.ts","../../src/ddr-material-extensions.module.ts","../../public-api.ts","../../dontdrinkandroot-ngx-material-extensions.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {interval, Subscription} from 'rxjs';\nimport {debounce} from 'rxjs/operators';\n\n@Component({\n selector: 'ddr-filter',\n templateUrl: './filter.component.html',\n})\nexport class FilterComponent implements OnInit, OnDestroy, AfterContentInit\n{\n public formControl: FormControl = new FormControl();\n\n @Output()\n public onFilterChanged = new EventEmitter<string>();\n\n @Input()\n public bouncePeriod = 500;\n\n @ViewChild('input', {static: true})\n public inputElement!: ElementRef;\n\n private valueChangesSubscription!: Subscription;\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.valueChangesSubscription = this.formControl.valueChanges\n .pipe(debounce(() => interval(this.bouncePeriod)))\n .subscribe((value => this.onFilterChanged.emit(value)));\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.valueChangesSubscription.unsubscribe();\n }\n\n /**\n * @override\n */\n public ngAfterContentInit()\n {\n this.inputElement.nativeElement.focus();\n }\n\n\n public clear()\n {\n this.formControl.setValue(null);\n this.onFilterChanged.emit(undefined);\n }\n}\n","<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n","import {Injectable} from '@angular/core';\nimport {MatDrawerMode, MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SidenavService\n{\n private sidenav!: MatSidenav;\n\n private stayOpenOnLargeScreen = false;\n\n private largeBreakpoints = [\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ];\n\n private screenLarge$: Observable<boolean>;\n\n private mode$: Observable<MatDrawerMode>;\n\n private opened$: Observable<boolean>;\n\n constructor(private breakpointObserver: BreakpointObserver, private router: Router)\n {\n this.screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(\n map(result => result.matches)\n );\n this.mode$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen ? 'side' : 'over')\n );\n this.opened$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen)\n );\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.closeSidebar();\n }\n });\n }\n\n public setSidenav(sidenav: MatSidenav): void\n {\n this.sidenav = sidenav;\n }\n\n public getStayOpenOnLargeScreen(): boolean\n {\n return this.stayOpenOnLargeScreen;\n }\n\n public setStayOpenOnLargeScreen(value: boolean): void\n {\n this.stayOpenOnLargeScreen = value;\n }\n\n public toggle(): Promise<MatDrawerToggleResult>\n {\n if (null == this.sidenav) {\n return Promise.reject('No MatSidenav found. Use setSidenav() of SidenavService');\n }\n\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n return this.sidenav.toggle();\n }\n\n return Promise.resolve(this.sidenav.opened ? 'open' : 'close');\n }\n\n public closeSidebar(): void\n {\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n this.sidenav.close();\n }\n }\n\n public getModeObservable(): Observable<MatDrawerMode>\n {\n return this.mode$;\n }\n\n public getOpenedObservable(): Observable<boolean>\n {\n return this.opened$;\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {MatDrawerMode, MatSidenav} from '@angular/material/sidenav';\nimport {SidenavService} from './sidenav.service';\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html'\n})\nexport class SidenavContainerComponent implements OnInit, OnChanges\n{\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n @Input()\n public stayOpenOnLargeScreen = false;\n\n public mode$: Observable<MatDrawerMode> = this.sidenavService.getModeObservable();\n\n public opened$: Observable<boolean> = this.sidenavService.getOpenedObservable();\n\n constructor(private sidenavService: SidenavService, private breakpointObserver: BreakpointObserver)\n {\n }\n\n /**\n * @override\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n this.sidenavService.setStayOpenOnLargeScreen(changes['stayOpenOnLargeScreen'].currentValue);\n }\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.sidenavService.setSidenav(this.sidenav);\n }\n}\n","<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\">\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import {Component} from '@angular/core';\nimport {SidenavService} from './sidenav.service';\n\n@Component({\n selector: 'ddr-mat-sidenav-toggle',\n template: `\n <button mat-icon-button (click)=\"toggleSidenav()\">\n <mat-icon>menu</mat-icon>\n </button>`\n})\nexport class SidenavToggleComponent\n{\n constructor(private sidenavService: SidenavService)\n {\n }\n\n public toggleSidenav()\n {\n this.sidenavService.toggle();\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnChanges, SimpleChanges} from '@angular/core';\nimport {NumberUtils, StringUtils} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({selector: '[ddrGridTileLazyImg]'})\nexport class GridTileLazyImgDirective implements OnChanges\n{\n @Input('ddrGridTileLazyImg')\n public src!: string;\n\n @HostBinding('src')\n public hostSrc = 'assets/placeholder.gif';\n\n @HostBinding('style.object-fit')\n public hostStyleObjectFit = 'contain';\n\n @HostBinding('style.width.px')\n public hostStyleWidthPx!: number;\n\n @HostBinding('style.height.px')\n public hostStyleHeightPx!: number;\n\n @HostBinding('style.opacity')\n public hostStyleOpacity = 0;\n\n @Input()\n public offset = 1000;\n\n @Input()\n public objectFit = 'cover';\n\n private displayed = false;\n\n private maxLoadedDimension: { width: number, height: number } | null = null;\n\n constructor(private element: ElementRef, private cd: ChangeDetectorRef)\n {\n }\n\n public recheck()\n {\n this.displayed = false;\n this.check();\n }\n\n public check()\n {\n if (\n this.displayed\n || this.isHidden(this.element.nativeElement)\n || !this.isInsideViewport(this.element.nativeElement, this.offset)\n ) {\n return;\n }\n\n this.displayed = true;\n const dimension = this.getDimension();\n\n if (\n null != this.maxLoadedDimension\n && this.maxLoadedDimension.width >= dimension.width\n && this.maxLoadedDimension.height >= dimension.height\n ) {\n return;\n }\n\n this.maxLoadedDimension = dimension;\n this.hostStyleWidthPx = dimension.width;\n this.hostStyleHeightPx = dimension.height;\n let wantedSize: number;\n if (this.objectFit === 'cover') {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'cover';\n } else {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'contain';\n }\n this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));\n this.hostStyleOpacity = 1;\n this.cd.detectChanges();\n }\n\n /**\n * @override\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n this.displayed = false;\n this.maxLoadedDimension = null;\n this.hostStyleOpacity = 0;\n if (this.element.nativeElement.parentElement.offsetWidth > 0) {\n this.check();\n }\n }\n\n private isInsideViewport(nativeElement: HTMLElement, offset: number): boolean\n {\n // console.log('isInsideViewport');\n const ownerDocument = nativeElement.ownerDocument;\n const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;\n const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;\n\n const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);\n const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);\n const topOffset = nativeElement.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;\n const leftOffset = nativeElement.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;\n\n // console.log(documentWidth, documentHeight, topOffset, leftOffset);\n\n const isBelowViewport = documentHeight + documentTop <= topOffset - offset;\n const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - offset;\n const isAboveViewport = documentTop >= topOffset + offset + nativeElement.offsetHeight;\n const isAtLeftOfViewport = documentLeft >= leftOffset + offset + nativeElement.offsetWidth;\n\n return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;\n }\n\n private getDimension(): { width: number, height: number }\n {\n return {\n width: this.element.nativeElement.parentElement.offsetWidth,\n height: this.element.nativeElement.parentElement.offsetHeight,\n };\n }\n\n private isHidden(nativeElement: HTMLElement)\n {\n // console.log('isHidden');\n return window.getComputedStyle(nativeElement).display === 'none';\n }\n}\n","import {AfterContentInit, ContentChildren, Directive, HostListener, OnDestroy, QueryList} from '@angular/core';\nimport {GridTileLazyImgDirective} from './grid-tile-lazy-img.directive';\nimport {Subscription} from 'rxjs';\nimport {Debounce, Limit} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({selector: '[ddrGridTileLazyImgContainer]'})\nexport class GridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy\n{\n @ContentChildren(GridTileLazyImgDirective, {descendants: true}) lazyImages!: QueryList<GridTileLazyImgDirective>;\n\n private changeSubscription!: Subscription;\n\n @HostListener('window:resize', ['$event'])\n @Debounce()\n public windowResized($event: Event)\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.recheck());\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @Limit()\n public windowScroll($event: Event)\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.check());\n }\n }\n\n /**\n * @override\n */\n public ngAfterContentInit(): void\n {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.check());\n this.changeSubscription = this.lazyImages.changes.subscribe(() => {\n /* Wait one tick until layout is ready */\n setTimeout(\n () => this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective, index) => lazyImage.recheck())\n , 1\n );\n });\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.changeSubscription.unsubscribe();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {SidenavToggleComponent} from './sidenav/sidenav-toggle.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {GridTileLazyImageContainerDirective} from './gridlist/grid-tile-lazy-image-container.directive';\nimport {GridTileLazyImgDirective} from './gridlist/grid-tile-lazy-img.directive';\nimport {SidenavContainerComponent} from './sidenav/sidenav-container.component';\nimport {CommonModule} from '@angular/common';\nimport {FilterComponent} from './filter/filter.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatCardModule} from '@angular/material/card';\n\n@NgModule({\n declarations: [\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent\n ],\n imports: [\n CommonModule,\n MatCardModule,\n MatSidenavModule,\n MatIconModule,\n MatInputModule,\n MatButtonModule,\n MatFormFieldModule,\n ReactiveFormsModule\n ],\n exports: [\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent\n ]\n})\nexport class DdrMaterialExtensionsModule\n{\n}\n","/*\n * Public API Surface of ngx-material-extensions\n */\n\nexport * from './src/filter/filter.component';\n\nexport * from './src/sidenav/sidenav-container.component';\nexport * from './src/sidenav/sidenav-toggle.component';\nexport * from './src/sidenav/sidenav.service';\n\nexport * from './src/ddr-material-extensions.module';\nexport * from './src/gridlist/grid-tile-lazy-image-container.directive';\nexport * from './src/gridlist/grid-tile-lazy-img.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SidenavService","i3","i4"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|