@dontdrinkandroot/ngx-material-extensions 0.7.1 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/_extensions.scss +10 -0
- package/assets/_theme.scss +4 -1
- package/assets/fonts.scss +1 -4
- package/fesm2022/dontdrinkandroot-ngx-material-extensions.mjs +266 -363
- package/fesm2022/dontdrinkandroot-ngx-material-extensions.mjs.map +1 -1
- package/package.json +1 -1
- package/src/button/fab-fixed.directive.d.ts +3 -3
- package/src/ddr-material-extensions.module.d.ts +0 -22
- package/src/filter/filter.component.d.ts +8 -16
- package/src/gridlist/grid-tile-lazy-image-container.directive.d.ts +5 -5
- package/src/gridlist/grid-tile-lazy-img.directive.d.ts +3 -3
- package/src/sidenav/sidenav-container.component.d.ts +10 -20
- package/src/sidenav/sidenav-toggle.component.d.ts +5 -5
- package/src/sidenav/sidenav.service.d.ts +11 -17
- package/src/theme/theme-config.d.ts +2 -2
- package/src/theme/theme-scroll.service.d.ts +5 -5
- package/src/toolbar/toolbar-fixed-top.directive.d.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-toggle.component.ts","../../src/gridlist/grid-tile-lazy-img.directive.ts","../../src/gridlist/grid-tile-lazy-image-container.directive.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/theme/theme-config.ts","../../src/theme/theme-scroll.service.ts","../../src/toolbar/toolbar-fixed-top.directive.ts","../../src/button/fab-fixed.directive.ts","../../src/ddr-material-extensions.module.ts","../../public-api.ts","../../dontdrinkandroot-ngx-material-extensions.ts"],"sourcesContent":["import {Inject, Injectable} from '@angular/core';\nimport {MatDrawerMode, MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NavigationStart, Router} from '@angular/router';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SidenavService {\n private sidenav!: MatSidenav;\n\n private stayOpenOnLargeScreen = true;\n\n private largeBreakpoints = [\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ];\n\n private screenLarge$: Observable<boolean>;\n\n private mode$: Observable<MatDrawerMode>;\n\n private opened$: Observable<boolean>;\n\n private sidenavContentScrolled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n private router: Router,\n @Inject(DOCUMENT) private document: Document,\n ) {\n this.screenLarge$ = this.breakpointObserver.observe(this.largeBreakpoints).pipe(\n map(result => result.matches)\n );\n this.mode$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen ? 'side' : 'over')\n );\n this.opened$ = this.screenLarge$.pipe(\n map(large => large && this.stayOpenOnLargeScreen)\n );\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.closeSidebar();\n }\n });\n }\n\n public setSidenav(sidenav: MatSidenav): void {\n this.sidenav = sidenav;\n }\n\n\n public getStayOpenOnLargeScreen(): boolean {\n return this.stayOpenOnLargeScreen;\n }\n\n public setStayOpenOnLargeScreen(value: boolean): void {\n this.stayOpenOnLargeScreen = value;\n }\n\n public toggle(): Promise<MatDrawerToggleResult> {\n if (null == this.sidenav) {\n return Promise.reject('No MatSidenav found. Use setSidenav() of SidenavService');\n }\n\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n return this.sidenav.toggle();\n }\n\n return Promise.resolve(this.sidenav.opened ? 'open' : 'close');\n }\n\n public closeSidebar(): void {\n if (!(this.stayOpenOnLargeScreen && this.breakpointObserver.isMatched(this.largeBreakpoints))) {\n this.sidenav.close();\n }\n }\n\n public getModeObservable(): Observable<MatDrawerMode> {\n return this.mode$;\n }\n\n public getOpenedObservable(): Observable<boolean> {\n return this.opened$;\n }\n\n public watchToggleVisible() {\n return this.screenLarge$.pipe(\n map(large => !large || !this.stayOpenOnLargeScreen)\n );\n }\n\n public watchContentScrolled() {\n return this.sidenavContentScrolled$.asObservable();\n }\n}\n","import {Component} from '@angular/core';\nimport {SidenavService} from './sidenav.service';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ddr-mat-sidenav-toggle',\n template: `\n <button mat-icon-button (click)=\"toggleSidenav()\">\n <mat-icon>menu</mat-icon>\n </button>`,\n host: {\n '[style.display]': 'visible() ? \"block\" : \"none\"'\n },\n standalone: false\n})\nexport class SidenavToggleComponent {\n public visible;\n\n constructor(private sidenavService: SidenavService) {\n this.visible = toSignal(this.sidenavService.watchToggleVisible(), {initialValue: false});\n }\n\n public toggleSidenav() {\n this.sidenavService.toggle();\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnChanges} from '@angular/core';\nimport {NumberUtils, StringUtils} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({\n selector: '[ddrGridTileLazyImg]',\n standalone: false\n})\nexport class GridTileLazyImgDirective implements OnChanges\n{\n @Input('ddrGridTileLazyImg')\n public src!: string;\n\n @HostBinding('src')\n public hostSrc = 'assets/placeholder.gif';\n\n @HostBinding('style.object-fit')\n public hostStyleObjectFit = 'contain';\n\n @HostBinding('style.width.px')\n public hostStyleWidthPx!: number;\n\n @HostBinding('style.height.px')\n public hostStyleHeightPx!: number;\n\n @HostBinding('style.opacity')\n public hostStyleOpacity = 0;\n\n @Input()\n public offset = 1000;\n\n @Input()\n public objectFit = 'cover';\n\n private displayed = false;\n\n private maxLoadedDimension: { width: number, height: number } | null = null;\n\n constructor(private element: ElementRef, private cd: ChangeDetectorRef)\n {\n }\n\n public recheck()\n {\n this.displayed = false;\n this.check();\n }\n\n public check()\n {\n if (\n this.displayed\n || this.isHidden(this.element.nativeElement)\n || !this.isInsideViewport(this.element.nativeElement, this.offset)\n ) {\n return;\n }\n\n this.displayed = true;\n const dimension = this.getDimension();\n\n if (\n null != this.maxLoadedDimension\n && this.maxLoadedDimension.width >= dimension.width\n && this.maxLoadedDimension.height >= dimension.height\n ) {\n return;\n }\n\n this.maxLoadedDimension = dimension;\n this.hostStyleWidthPx = dimension.width;\n this.hostStyleHeightPx = dimension.height;\n let wantedSize: number;\n if (this.objectFit === 'cover') {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'cover';\n } else {\n wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));\n this.hostStyleObjectFit = 'contain';\n }\n this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));\n this.hostStyleOpacity = 1;\n this.cd.detectChanges();\n }\n\n /**\n * @override\n */\n public ngOnChanges(): void\n {\n this.displayed = false;\n this.maxLoadedDimension = null;\n this.hostStyleOpacity = 0;\n if (this.element.nativeElement.parentElement.offsetWidth > 0) {\n this.check();\n }\n }\n\n private isInsideViewport(nativeElement: HTMLElement, offset: number): boolean\n {\n // console.log('isInsideViewport');\n const ownerDocument = nativeElement.ownerDocument;\n const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;\n const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;\n\n const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);\n const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);\n const topOffset = nativeElement.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;\n const leftOffset = nativeElement.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;\n\n // console.log(documentWidth, documentHeight, topOffset, leftOffset);\n\n const isBelowViewport = documentHeight + documentTop <= topOffset - offset;\n const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - offset;\n const isAboveViewport = documentTop >= topOffset + offset + nativeElement.offsetHeight;\n const isAtLeftOfViewport = documentLeft >= leftOffset + offset + nativeElement.offsetWidth;\n\n return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;\n }\n\n private getDimension(): { width: number, height: number }\n {\n return {\n width: this.element.nativeElement.parentElement.offsetWidth,\n height: this.element.nativeElement.parentElement.offsetHeight,\n };\n }\n\n private isHidden(nativeElement: HTMLElement)\n {\n // console.log('isHidden');\n return window.getComputedStyle(nativeElement).display === 'none';\n }\n}\n","import {AfterContentInit, ContentChildren, Directive, HostListener, OnDestroy, QueryList} from '@angular/core';\nimport {GridTileLazyImgDirective} from './grid-tile-lazy-img.directive';\nimport {Subscription} from 'rxjs';\nimport {Debounce, Limit} from '@dontdrinkandroot/ngx-extensions';\n\n@Directive({\n selector: '[ddrGridTileLazyImgContainer]',\n standalone: false\n})\nexport class GridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy\n{\n @ContentChildren(GridTileLazyImgDirective, {descendants: true}) lazyImages!: QueryList<GridTileLazyImgDirective>;\n\n private changeSubscription!: Subscription;\n\n @HostListener('window:resize', ['$event'])\n @Debounce()\n public windowResized()\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective) => lazyImage.recheck());\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @Limit()\n public windowScroll()\n {\n if (null != this.lazyImages) {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective) => lazyImage.check());\n }\n }\n\n /**\n * @override\n */\n public ngAfterContentInit(): void\n {\n this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective) => lazyImage.check());\n this.changeSubscription = this.lazyImages.changes.subscribe(() => {\n /* Wait one tick until layout is ready */\n setTimeout(\n () => this.lazyImages.forEach((lazyImage: GridTileLazyImgDirective) => lazyImage.recheck())\n , 1\n );\n });\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.changeSubscription.unsubscribe();\n }\n}\n","import {Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {MatDrawerMode, MatSidenav} from '@angular/material/sidenav';\nimport {SidenavService} from './sidenav.service';\nimport {Observable, Subscription} from 'rxjs';\n\n@Component({\n selector: 'ddr-mat-sidenav-container',\n templateUrl: './sidenav-container.component.html',\n standalone: false\n})\nexport class SidenavContainerComponent implements OnInit, OnChanges, OnDestroy\n{\n @ViewChild('sidenav', {static: true})\n public sidenav!: MatSidenav;\n\n @Input()\n public stayOpenOnLargeScreen = true;\n\n public mode$: Observable<MatDrawerMode>;\n\n public opened$: Observable<boolean>;\n\n private scrollSubscription!: Subscription;\n\n constructor(\n private sidenavService: SidenavService,\n )\n {\n this.mode$ = this.sidenavService.getModeObservable();\n this.opened$ = this.sidenavService.getOpenedObservable();\n }\n\n /**\n * @override\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n this.sidenavService.setStayOpenOnLargeScreen(changes['stayOpenOnLargeScreen'].currentValue);\n }\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.sidenavService.setSidenav(this.sidenav);\n }\n\n /**\n * @override\n */\n public ngOnDestroy()\n {\n this.scrollSubscription.unsubscribe();\n }\n}\n","<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n [mode]=\"(mode$|async) ?? 'over'\"\n [opened]=\"(opened$|async)\"\n [fixedInViewport]=\"true\"\n >\n <ng-content select=\"[slot=mat-sidenav]\"></ng-content>\n </mat-sidenav>\n <mat-sidenav-content #sidenavContent>\n <ng-content select=\"[slot=mat-sidenav-content]\"></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import {AfterContentInit, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {interval, Subscription} from 'rxjs';\nimport {debounce} from 'rxjs/operators';\n\n@Component({\n selector: 'ddr-filter',\n templateUrl: './filter.component.html',\n standalone: false\n})\nexport class FilterComponent implements OnInit, OnDestroy, AfterContentInit\n{\n public formControl: FormControl = new FormControl();\n\n @Output()\n public filterChanged = new EventEmitter<string>();\n\n @Input()\n public bouncePeriod = 500;\n\n @ViewChild('input', {static: true})\n public inputElement!: ElementRef;\n\n private valueChangesSubscription!: Subscription;\n\n /**\n * @override\n */\n public ngOnInit(): void\n {\n this.valueChangesSubscription = this.formControl.valueChanges\n .pipe(debounce(() => interval(this.bouncePeriod)))\n .subscribe((value => this.filterChanged.emit(value)));\n }\n\n /**\n * @override\n */\n public ngOnDestroy(): void\n {\n this.valueChangesSubscription.unsubscribe();\n }\n\n /**\n * @override\n */\n public ngAfterContentInit()\n {\n this.inputElement.nativeElement.focus();\n }\n\n\n public clear()\n {\n this.formControl.setValue(null);\n this.filterChanged.emit(undefined);\n }\n}\n","<mat-card appearance=\"outlined\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input matInput type=\"text\" [formControl]=\"formControl\" #input />\n <button mat-icon-button matSuffix (click)=\"clear()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</mat-card>\n","import {InjectionToken} from \"@angular/core\";\n\nexport const DDR_MATERIAL_EXTENSIONS_THEME = new InjectionToken<ThemeConfig>('DDR_MATERIAL_EXTENSIONS_THEME');\n\nexport interface ThemeConfig {\n themeColorLight: string,\n themeColorDark: string,\n themeColorLightScrolled: string,\n themeColorDarkScrolled: string,\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\nimport {distinctUntilChanged, fromEvent} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\nimport {DDR_MATERIAL_EXTENSIONS_THEME, ThemeConfig} from \"./theme-config\";\n\n@Injectable()\nexport class ThemeScrollService {\n constructor(\n @Inject(DOCUMENT) private readonly document: Document,\n @Inject(DDR_MATERIAL_EXTENSIONS_THEME) private readonly themeConfig: ThemeConfig\n ) {\n }\n\n public init() {\n const lightMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: light)', this.themeConfig.themeColorLight);\n const darkMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: dark)', this.themeConfig.themeColorDark);\n\n fromEvent(this.document, 'scroll')\n .pipe(\n map(() => this.document.documentElement.scrollTop > 0),\n distinctUntilChanged()\n ).subscribe((scrolled) => {\n this.document.body.classList.toggle('ddr-mat-scrolled', scrolled);\n lightMetaElement.content = scrolled ? this.themeConfig.themeColorLightScrolled : this.themeConfig.themeColorLight;\n darkMetaElement.content = scrolled ? this.themeConfig.themeColorDarkScrolled : this.themeConfig.themeColorDark;\n });\n }\n\n private findOrCreateThemeColorMetaElement(media: string, content: string) {\n let metaElement = this.document.head.querySelector<HTMLMetaElement>(`meta[name=\"theme-color\"][media=\"${media}\"]`);\n if (null == metaElement) {\n metaElement = this.createThemeColorMetaElement(media, content);\n }\n return metaElement;\n }\n\n private createThemeColorMetaElement(media: string, content: string) {\n const metaElement = this.document.createElement('meta');\n metaElement.name = 'theme-color';\n metaElement.media = media;\n metaElement.content = content;\n this.document.head.appendChild(metaElement);\n\n return metaElement;\n }\n}\n","import {Directive, ElementRef, Input, OnInit} from '@angular/core';\n\n@Directive({\n selector: '[ddrMatToolbarFixedTop]',\n standalone: false\n})\nexport class ToolbarFixedTopDirective implements OnInit {\n\n @Input()\n public ddrMatToolbarFixedTop: string[] | '' = '';\n\n constructor(private el: ElementRef) {\n }\n\n /**\n * @override\n */\n public ngOnInit() {\n const container = document.createElement('div');\n container.classList.add('ddr-mat-toolbar-fixed-top-container');\n this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);\n container.appendChild(this.el.nativeElement);\n\n if ('' !== this.ddrMatToolbarFixedTop) {\n this.ddrMatToolbarFixedTop.forEach((className: string) => {\n container.classList.add(className);\n });\n }\n }\n}\n","import {Directive, ElementRef, OnInit} from \"@angular/core\";\n\n@Directive({\n selector: '[ddrMatFabFixed]',\n standalone: false\n})\nexport class FabFixedDirective implements OnInit {\n constructor(private el: ElementRef) {\n }\n\n /**\n * @override\n */\n public ngOnInit() {\n const container = document.createElement('div');\n container.classList.add('ddr-mat-fab-fixed-container');\n this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);\n container.appendChild(this.el.nativeElement);\n }\n}\n","import {EnvironmentProviders, inject, makeEnvironmentProviders, NgModule, provideEnvironmentInitializer} from '@angular/core';\nimport {SidenavToggleComponent} from './sidenav/sidenav-toggle.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule, MatIconRegistry} from '@angular/material/icon';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {GridTileLazyImageContainerDirective} from './gridlist/grid-tile-lazy-image-container.directive';\nimport {GridTileLazyImgDirective} from './gridlist/grid-tile-lazy-img.directive';\nimport {SidenavContainerComponent} from './sidenav/sidenav-container.component';\nimport {CommonModule} from '@angular/common';\nimport {FilterComponent} from './filter/filter.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {DDR_MATERIAL_EXTENSIONS_THEME} from \"./theme/theme-config\";\nimport {ThemeScrollService} from \"./theme/theme-scroll.service\";\nimport {ToolbarFixedTopDirective} from \"./toolbar/toolbar-fixed-top.directive\";\nimport {FabFixedDirective} from \"./button/fab-fixed.directive\";\n\n@NgModule({\n declarations: [\n FabFixedDirective,\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent,\n ToolbarFixedTopDirective\n ],\n imports: [\n CommonModule,\n MatCardModule,\n MatSidenavModule,\n MatIconModule,\n MatInputModule,\n MatButtonModule,\n MatFormFieldModule,\n MatToolbarModule,\n ReactiveFormsModule\n ],\n exports: [\n FabFixedDirective,\n FilterComponent,\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent,\n ToolbarFixedTopDirective\n ],\n providers: []\n})\nexport class DdrMaterialExtensionsModule {\n}\n\n// TODO: I actually want to run this when the module is loaded, but haven't figured out the correct way for Angular 19 yet as the ENVIRONMENT_INITIALIZER Token is deprecated\nexport function provideDdrMaterialExtensions(): EnvironmentProviders {\n return makeEnvironmentProviders([\n ThemeScrollService,\n {\n provide: DDR_MATERIAL_EXTENSIONS_THEME,\n multi: false,\n useValue: {\n themeColorLight: '#fdfbff',\n themeColorDark: '#1a1b1f',\n themeColorLightScrolled: '#efedf1',\n themeColorDarkScrolled: '#1e1f23',\n }\n },\n provideEnvironmentInitializer(() => {\n inject(ThemeScrollService).init();\n inject(MatIconRegistry).setDefaultFontSetClass('material-symbols-rounded');\n })\n ]);\n}\n","/*\n * Public API Surface of ngx-material-extensions\n */\n\nexport * from './src/ddr-material-extensions.module';\n\nexport * from './src/button/fab-fixed.directive'\n\nexport * from './src/filter/filter.component';\n\nexport * from './src/gridlist/grid-tile-lazy-image-container.directive';\nexport * from './src/gridlist/grid-tile-lazy-img.directive';\n\nexport * from './src/sidenav/sidenav-container.component';\nexport * from './src/sidenav/sidenav-toggle.component';\nexport * from './src/sidenav/sidenav.service';\n\nexport * from './src/theme/theme-config'\n\nexport * from './src/toolbar/toolbar-fixed-top.directive'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SidenavService","i2","i3","i1","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dontdrinkandroot-ngx-material-extensions.mjs","sources":["../../src/theme/theme-config.ts","../../src/theme/theme-scroll.service.ts","../../src/ddr-material-extensions.module.ts","../../src/button/fab-fixed.directive.ts","../../src/filter/filter.component.ts","../../src/filter/filter.component.html","../../src/gridlist/grid-tile-lazy-img.directive.ts","../../src/gridlist/grid-tile-lazy-image-container.directive.ts","../../src/sidenav/sidenav.service.ts","../../src/sidenav/sidenav-container.component.ts","../../src/sidenav/sidenav-container.component.html","../../src/sidenav/sidenav-toggle.component.ts","../../src/toolbar/toolbar-fixed-top.directive.ts","../../public-api.ts","../../dontdrinkandroot-ngx-material-extensions.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\n\nexport const DDR_MAT_THEME = new InjectionToken<DdrMatThemeConfig>('DDR_MAT_THEME');\n\nexport interface DdrMatThemeConfig {\n themeColorLight: string,\n themeColorDark: string,\n themeColorLightScrolled: string,\n themeColorDarkScrolled: string,\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\nimport {distinctUntilChanged, fromEvent} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\nimport {DDR_MAT_THEME, DdrMatThemeConfig} from \"./theme-config\";\n\n@Injectable()\nexport class DdrMatThemeScrollService {\n constructor(\n @Inject(DOCUMENT) private readonly document: Document,\n @Inject(DDR_MAT_THEME) private readonly themeConfig: DdrMatThemeConfig\n ) {\n }\n\n public init() {\n const lightMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: light)', this.themeConfig.themeColorLight);\n const darkMetaElement = this.findOrCreateThemeColorMetaElement('(prefers-color-scheme: dark)', this.themeConfig.themeColorDark);\n\n fromEvent(this.document, 'scroll')\n .pipe(\n map(() => this.document.documentElement.scrollTop > 0),\n distinctUntilChanged()\n ).subscribe((scrolled) => {\n this.document.body.classList.toggle('ddr-mat-scrolled', scrolled);\n lightMetaElement.content = scrolled ? this.themeConfig.themeColorLightScrolled : this.themeConfig.themeColorLight;\n darkMetaElement.content = scrolled ? this.themeConfig.themeColorDarkScrolled : this.themeConfig.themeColorDark;\n });\n }\n\n private findOrCreateThemeColorMetaElement(media: string, content: string) {\n let metaElement = this.document.head.querySelector<HTMLMetaElement>(`meta[name=\"theme-color\"][media=\"${media}\"]`);\n if (null == metaElement) {\n metaElement = this.createThemeColorMetaElement(media, content);\n }\n return metaElement;\n }\n\n private createThemeColorMetaElement(media: string, content: string) {\n const metaElement = this.document.createElement('meta');\n metaElement.name = 'theme-color';\n metaElement.media = media;\n metaElement.content = content;\n this.document.head.appendChild(metaElement);\n\n return metaElement;\n }\n}\n","import {EnvironmentProviders, inject, makeEnvironmentProviders, provideEnvironmentInitializer} from '@angular/core';\nimport {MatIconRegistry} from '@angular/material/icon';\nimport {DDR_MAT_THEME} from \"./theme/theme-config\";\nimport {DdrMatThemeScrollService} from \"./theme/theme-scroll.service\";\n\nexport function provideDdrMaterialExtensions(): EnvironmentProviders {\n return makeEnvironmentProviders([\n DdrMatThemeScrollService,\n {\n provide: DDR_MAT_THEME,\n multi: false,\n useValue: {\n themeColorLight: '#fdfbff',\n themeColorDark: '#1a1b1f',\n themeColorLightScrolled: '#efedf1',\n themeColorDarkScrolled: '#1e1f23',\n }\n },\n provideEnvironmentInitializer(() => {\n inject(DdrMatThemeScrollService).init();\n inject(MatIconRegistry).setDefaultFontSetClass('material-symbols-rounded');\n })\n ]);\n}\n","import {Directive, ElementRef, OnInit} from \"@angular/core\";\n\n@Directive({\n selector: '[ddrMatFabFixed]',\n})\nexport class DdrMatFabFixedDirective implements OnInit {\n constructor(private el: ElementRef) {\n }\n\n /**\n * @override\n */\n public ngOnInit() {\n const container = document.createElement('div');\n container.classList.add('ddr-mat-fab-fixed-container');\n this.el.nativeElement.parentElement.insertBefore(container, this.el.nativeElement);\n container.appendChild(this.el.nativeElement);\n }\n}\n","import {AfterContentInit, ChangeDetectionStrategy, Component, ElementRef, input, 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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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatFabFixedDirective implements OnInit {
|
|
4
4
|
private el;
|
|
5
5
|
constructor(el: ElementRef);
|
|
6
6
|
/**
|
|
7
7
|
* @override
|
|
8
8
|
*/
|
|
9
9
|
ngOnInit(): void;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
11
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatFabFixedDirective, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatFabFixedDirective, "[ddrMatFabFixed]", never, {}, {}, never, never, true, never>;
|
|
12
12
|
}
|
|
@@ -1,24 +1,2 @@
|
|
|
1
1
|
import { EnvironmentProviders } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./button/fab-fixed.directive";
|
|
4
|
-
import * as i2 from "./filter/filter.component";
|
|
5
|
-
import * as i3 from "./sidenav/sidenav-toggle.component";
|
|
6
|
-
import * as i4 from "./gridlist/grid-tile-lazy-image-container.directive";
|
|
7
|
-
import * as i5 from "./gridlist/grid-tile-lazy-img.directive";
|
|
8
|
-
import * as i6 from "./sidenav/sidenav-container.component";
|
|
9
|
-
import * as i7 from "./toolbar/toolbar-fixed-top.directive";
|
|
10
|
-
import * as i8 from "@angular/common";
|
|
11
|
-
import * as i9 from "@angular/material/card";
|
|
12
|
-
import * as i10 from "@angular/material/sidenav";
|
|
13
|
-
import * as i11 from "@angular/material/icon";
|
|
14
|
-
import * as i12 from "@angular/material/input";
|
|
15
|
-
import * as i13 from "@angular/material/button";
|
|
16
|
-
import * as i14 from "@angular/material/form-field";
|
|
17
|
-
import * as i15 from "@angular/material/toolbar";
|
|
18
|
-
import * as i16 from "@angular/forms";
|
|
19
|
-
export declare class DdrMaterialExtensionsModule {
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMaterialExtensionsModule, never>;
|
|
21
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DdrMaterialExtensionsModule, [typeof i1.FabFixedDirective, typeof i2.FilterComponent, typeof i3.SidenavToggleComponent, typeof i4.GridTileLazyImageContainerDirective, typeof i5.GridTileLazyImgDirective, typeof i6.SidenavContainerComponent, typeof i7.ToolbarFixedTopDirective], [typeof i8.CommonModule, typeof i9.MatCardModule, typeof i10.MatSidenavModule, typeof i11.MatIconModule, typeof i12.MatInputModule, typeof i13.MatButtonModule, typeof i14.MatFormFieldModule, typeof i15.MatToolbarModule, typeof i16.ReactiveFormsModule], [typeof i1.FabFixedDirective, typeof i2.FilterComponent, typeof i3.SidenavToggleComponent, typeof i4.GridTileLazyImageContainerDirective, typeof i5.GridTileLazyImgDirective, typeof i6.SidenavContainerComponent, typeof i7.ToolbarFixedTopDirective]>;
|
|
22
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<DdrMaterialExtensionsModule>;
|
|
23
|
-
}
|
|
24
2
|
export declare function provideDdrMaterialExtensions(): EnvironmentProviders;
|
|
@@ -1,25 +1,17 @@
|
|
|
1
|
-
import { AfterContentInit, ElementRef
|
|
1
|
+
import { AfterContentInit, ElementRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class
|
|
5
|
-
formControl: FormControl
|
|
6
|
-
filterChanged:
|
|
4
|
+
export declare class DdrMatFilterComponent implements AfterContentInit {
|
|
5
|
+
protected formControl: FormControl<string | null>;
|
|
6
|
+
filterChanged: import("@angular/core").OutputRef<string | null>;
|
|
7
7
|
bouncePeriod: number;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @override
|
|
12
|
-
*/
|
|
13
|
-
ngOnInit(): void;
|
|
14
|
-
/**
|
|
15
|
-
* @override
|
|
16
|
-
*/
|
|
17
|
-
ngOnDestroy(): void;
|
|
8
|
+
ddrMatPrefixIcon: import("@angular/core").InputSignal<string | null>;
|
|
9
|
+
protected inputElement: ElementRef;
|
|
18
10
|
/**
|
|
19
11
|
* @override
|
|
20
12
|
*/
|
|
21
13
|
ngAfterContentInit(): void;
|
|
22
14
|
clear(): void;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
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>;
|
|
25
17
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AfterContentInit, OnDestroy, QueryList } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { DdrMatGridTileLazyImgDirective } from './grid-tile-lazy-img.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class
|
|
5
|
-
lazyImages: QueryList<
|
|
4
|
+
export declare class DdrMatGridTileLazyImageContainerDirective implements AfterContentInit, OnDestroy {
|
|
5
|
+
lazyImages: QueryList<DdrMatGridTileLazyImgDirective>;
|
|
6
6
|
private changeSubscription;
|
|
7
7
|
windowResized(): void;
|
|
8
8
|
windowScroll(): void;
|
|
@@ -14,6 +14,6 @@ export declare class GridTileLazyImageContainerDirective implements AfterContent
|
|
|
14
14
|
* @override
|
|
15
15
|
*/
|
|
16
16
|
ngOnDestroy(): void;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
18
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatGridTileLazyImageContainerDirective, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatGridTileLazyImageContainerDirective, "[ddrMatGridTileLazyImgContainer]", never, {}, {}, ["lazyImages"], never, true, never>;
|
|
19
19
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectorRef, ElementRef, OnChanges } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatGridTileLazyImgDirective implements OnChanges {
|
|
4
4
|
private element;
|
|
5
5
|
private cd;
|
|
6
6
|
src: string;
|
|
@@ -23,6 +23,6 @@ export declare class GridTileLazyImgDirective implements OnChanges {
|
|
|
23
23
|
private isInsideViewport;
|
|
24
24
|
private getDimension;
|
|
25
25
|
private isHidden;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
27
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatGridTileLazyImgDirective, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatGridTileLazyImgDirective, "[ddrMatGridTileLazyImg]", never, { "src": { "alias": "ddrMatGridTileLazyImg"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "objectFit": { "alias": "objectFit"; "required": false; }; }, {}, never, never, true, never>;
|
|
28
28
|
}
|
|
@@ -1,28 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { MatSidenav } from '@angular/material/sidenav';
|
|
3
|
+
import { DdrMatSidenavService } from './sidenav.service';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class
|
|
5
|
+
export declare class DdrMatSidenavContainerComponent implements OnInit {
|
|
7
6
|
private sidenavService;
|
|
8
7
|
sidenav: MatSidenav;
|
|
9
|
-
stayOpenOnLargeScreen: boolean
|
|
10
|
-
mode
|
|
11
|
-
opened
|
|
12
|
-
|
|
13
|
-
constructor(sidenavService: SidenavService);
|
|
14
|
-
/**
|
|
15
|
-
* @override
|
|
16
|
-
*/
|
|
17
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
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);
|
|
18
12
|
/**
|
|
19
13
|
* @override
|
|
20
14
|
*/
|
|
21
15
|
ngOnInit(): void;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*/
|
|
25
|
-
ngOnDestroy(): void;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SidenavContainerComponent, never>;
|
|
27
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SidenavContainerComponent, "ddr-mat-sidenav-container", never, { "stayOpenOnLargeScreen": { "alias": "stayOpenOnLargeScreen"; "required": false; }; }, {}, never, ["[slot=mat-sidenav]", "[slot=mat-sidenav-content]"], false, never>;
|
|
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>;
|
|
28
18
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DdrMatSidenavService } from './sidenav.service';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatSidenavToggleComponent {
|
|
4
4
|
private sidenavService;
|
|
5
5
|
visible: import("@angular/core").Signal<boolean>;
|
|
6
|
-
constructor(sidenavService:
|
|
6
|
+
constructor(sidenavService: DdrMatSidenavService);
|
|
7
7
|
toggleSidenav(): void;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavToggleComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DdrMatSidenavToggleComponent, "ddr-mat-sidenav-toggle", never, {}, {}, never, never, true, never>;
|
|
10
10
|
}
|
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MatDrawerToggleResult, MatSidenav } from '@angular/material/sidenav';
|
|
2
2
|
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
3
|
import { Router } from '@angular/router';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class
|
|
5
|
+
export declare class DdrMatSidenavService {
|
|
7
6
|
private breakpointObserver;
|
|
8
7
|
private router;
|
|
9
|
-
private document;
|
|
10
8
|
private sidenav;
|
|
11
|
-
private stayOpenOnLargeScreen;
|
|
12
9
|
private largeBreakpoints;
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
private opened$;
|
|
10
|
+
stayOpenOnLargeScreen: import("@angular/core").WritableSignal<boolean>;
|
|
11
|
+
private stayOpenOnLargeScreen$;
|
|
16
12
|
private sidenavContentScrolled$;
|
|
17
|
-
|
|
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);
|
|
18
17
|
setSidenav(sidenav: MatSidenav): void;
|
|
19
|
-
getStayOpenOnLargeScreen(): boolean;
|
|
20
|
-
setStayOpenOnLargeScreen(value: boolean): void;
|
|
21
18
|
toggle(): Promise<MatDrawerToggleResult>;
|
|
22
19
|
closeSidebar(): void;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
watchContentScrolled(): Observable<boolean>;
|
|
27
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SidenavService, never>;
|
|
28
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SidenavService>;
|
|
20
|
+
watchContentScrolled(): import("rxjs").Observable<boolean>;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatSidenavService, never>;
|
|
22
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DdrMatSidenavService>;
|
|
29
23
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InjectionToken } from "@angular/core";
|
|
2
|
-
export declare const
|
|
3
|
-
export interface
|
|
2
|
+
export declare const DDR_MAT_THEME: InjectionToken<DdrMatThemeConfig>;
|
|
3
|
+
export interface DdrMatThemeConfig {
|
|
4
4
|
themeColorLight: string;
|
|
5
5
|
themeColorDark: string;
|
|
6
6
|
themeColorLightScrolled: string;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DdrMatThemeConfig } from "./theme-config";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatThemeScrollService {
|
|
4
4
|
private readonly document;
|
|
5
5
|
private readonly themeConfig;
|
|
6
|
-
constructor(document: Document, themeConfig:
|
|
6
|
+
constructor(document: Document, themeConfig: DdrMatThemeConfig);
|
|
7
7
|
init(): void;
|
|
8
8
|
private findOrCreateThemeColorMetaElement;
|
|
9
9
|
private createThemeColorMetaElement;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
11
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatThemeScrollService, never>;
|
|
11
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DdrMatThemeScrollService>;
|
|
12
12
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class DdrMatToolbarFixedTopDirective implements OnInit {
|
|
4
4
|
private el;
|
|
5
5
|
ddrMatToolbarFixedTop: string[] | '';
|
|
6
6
|
constructor(el: ElementRef);
|
|
@@ -8,6 +8,6 @@ export declare class ToolbarFixedTopDirective implements OnInit {
|
|
|
8
8
|
* @override
|
|
9
9
|
*/
|
|
10
10
|
ngOnInit(): void;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DdrMatToolbarFixedTopDirective, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DdrMatToolbarFixedTopDirective, "[ddrMatToolbarFixedTop]", never, { "ddrMatToolbarFixedTop": { "alias": "ddrMatToolbarFixedTop"; "required": false; }; }, {}, never, never, true, never>;
|
|
13
13
|
}
|