@dontdrinkandroot/ngx-material-extensions 0.0.5 → 0.2.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.
Files changed (35) hide show
  1. package/_index.scss +149 -0
  2. package/{esm2015/dontdrinkandroot-ngx-material-extensions.js → esm2020/dontdrinkandroot-ngx-material-extensions.mjs} +1 -1
  3. package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
  4. package/esm2020/src/ddr-material-extensions.module.mjs +51 -0
  5. package/esm2020/src/gridlist/grid-tile-lazy-image-container.directive.mjs +55 -0
  6. package/esm2020/src/gridlist/grid-tile-lazy-img.directive.mjs +115 -0
  7. package/esm2020/src/sidenav/sidenav-container.component.mjs +39 -0
  8. package/esm2020/src/sidenav/sidenav-toggle.component.mjs +29 -0
  9. package/esm2020/src/sidenav/sidenav.service.mjs +65 -0
  10. package/fesm2015/dontdrinkandroot-ngx-material-extensions.mjs +346 -0
  11. package/fesm2015/dontdrinkandroot-ngx-material-extensions.mjs.map +1 -0
  12. package/fesm2020/dontdrinkandroot-ngx-material-extensions.mjs +346 -0
  13. package/fesm2020/dontdrinkandroot-ngx-material-extensions.mjs.map +1 -0
  14. package/{dontdrinkandroot-ngx-material-extensions.d.ts → index.d.ts} +1 -0
  15. package/package.json +26 -14
  16. package/src/ddr-material-extensions.module.d.ts +12 -0
  17. package/src/gridlist/grid-tile-lazy-image-container.directive.d.ts +3 -0
  18. package/src/gridlist/grid-tile-lazy-img.directive.d.ts +3 -0
  19. package/src/sidenav/sidenav-container.component.d.ts +3 -0
  20. package/src/sidenav/sidenav-toggle.component.d.ts +3 -0
  21. package/src/sidenav/sidenav.service.d.ts +3 -0
  22. package/bundles/dontdrinkandroot-ngx-material-extensions.umd.js +0 -619
  23. package/bundles/dontdrinkandroot-ngx-material-extensions.umd.js.map +0 -1
  24. package/bundles/dontdrinkandroot-ngx-material-extensions.umd.min.js +0 -2
  25. package/bundles/dontdrinkandroot-ngx-material-extensions.umd.min.js.map +0 -1
  26. package/dontdrinkandroot-ngx-material-extensions.metadata.json +0 -1
  27. package/esm2015/src/ddr-material-extensions.module.js +0 -34
  28. package/esm2015/src/gridlist/grid-tile-lazy-image-container.directive.js +0 -47
  29. package/esm2015/src/gridlist/grid-tile-lazy-img.directive.js +0 -102
  30. package/esm2015/src/sidenav/sidenav-container.component.js +0 -39
  31. package/esm2015/src/sidenav/sidenav-toggle.component.js +0 -23
  32. package/esm2015/src/sidenav/sidenav.service.js +0 -66
  33. package/fesm2015/dontdrinkandroot-ngx-material-extensions.js +0 -305
  34. package/fesm2015/dontdrinkandroot-ngx-material-extensions.js.map +0 -1
  35. package/style.scss +0 -130
@@ -1 +0,0 @@
1
- {"version":3,"file":"dontdrinkandroot-ngx-material-extensions.umd.js","sources":["../esm2015/src/sidenav/sidenav.service.ts","../esm2015/src/sidenav/sidenav-container.component.ts","../esm2015/src/sidenav/sidenav-toggle.component.ts","../../node_modules/tslib/tslib.es6.js","../esm2015/src/gridlist/grid-tile-lazy-img.directive.ts","../esm2015/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 {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\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>;\n\n public opened$: Observable<boolean>;\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 this.mode$ = this.sidenavService.getModeObservable();\n this.opened$ = this.sidenavService.getOpenedObservable();\n }\n}\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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\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 };\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, 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)\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';\n\n@NgModule({\n declarations: [\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent\n ],\n imports: [\n CommonModule,\n MatSidenavModule,\n MatIconModule,\n MatButtonModule\n ],\n exports: [\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/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":["Breakpoints","map","NavigationStart","Injectable","BreakpointObserver","Router","Component","ViewChild","Input","NumberUtils","StringUtils","Directive","ElementRef","ChangeDetectorRef","HostBinding","ContentChildren","HostListener","Debounce","Limit","NgModule","CommonModule","MatSidenavModule","MatIconModule","MatButtonModule"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/cdk/layout"),require("rxjs/operators"),require("@angular/router"),require("@angular/material/button"),require("@angular/material/icon"),require("@angular/material/sidenav"),require("@dontdrinkandroot/ngx-extensions"),require("@angular/common")):"function"==typeof define&&define.amd?define("@dontdrinkandroot/ngx-material-extensions",["exports","@angular/core","@angular/cdk/layout","rxjs/operators","@angular/router","@angular/material/button","@angular/material/icon","@angular/material/sidenav","@dontdrinkandroot/ngx-extensions","@angular/common"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).dontdrinkandroot=e.dontdrinkandroot||{},e.dontdrinkandroot["ngx-material-extensions"]={}),e.ng.core,e.ng.cdk.layout,e.rxjs.operators,e.ng.router,e.ng.material.button,e.ng.material.icon,e.ng.material.sidenav,e.ngxExtensions,e.ng.common)}(this,(function(e,t,n,i,r,o,s,a,c,d){"use strict";var l=function(){function e(e,t){var o=this;this.breakpointObserver=e,this.router=t,this.stayOpenOnLargeScreen=!1,this.largeBreakpoints=[n.Breakpoints.Medium,n.Breakpoints.Large,n.Breakpoints.XLarge],this.screenLarge$=this.breakpointObserver.observe(this.largeBreakpoints).pipe(i.map((function(e){return e.matches}))),this.mode$=this.screenLarge$.pipe(i.map((function(e){return e&&o.stayOpenOnLargeScreen?"side":"over"}))),this.opened$=this.screenLarge$.pipe(i.map((function(e){return e&&o.stayOpenOnLargeScreen}))),this.router.events.subscribe((function(e){e instanceof r.NavigationStart&&o.closeSidebar()}))}return e.prototype.setSidenav=function(e){this.sidenav=e},e.prototype.getStayOpenOnLargeScreen=function(){return this.stayOpenOnLargeScreen},e.prototype.setStayOpenOnLargeScreen=function(e){this.stayOpenOnLargeScreen=e},e.prototype.toggle=function(){return null==this.sidenav?Promise.reject("No MatSidenav found. Use setSidenav() of SidenavService"):this.stayOpenOnLargeScreen&&this.breakpointObserver.isMatched(this.largeBreakpoints)?void 0:this.sidenav.toggle()},e.prototype.closeSidebar=function(){this.stayOpenOnLargeScreen&&this.breakpointObserver.isMatched(this.largeBreakpoints)||this.sidenav.close()},e.prototype.getModeObservable=function(){return this.mode$},e.prototype.getOpenedObservable=function(){return this.opened$},e}();l.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new l(t.ɵɵinject(n.BreakpointObserver),t.ɵɵinject(r.Router))},token:l,providedIn:"root"}),l.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],l.ctorParameters=function(){return[{type:n.BreakpointObserver},{type:r.Router}]};var p=function(){function e(e,t){this.sidenavService=e,this.breakpointObserver=t,this.stayOpenOnLargeScreen=!1}return e.prototype.ngOnChanges=function(e){this.sidenavService.setStayOpenOnLargeScreen(e.stayOpenOnLargeScreen.currentValue)},e.prototype.ngOnInit=function(){this.sidenavService.setSidenav(this.sidenav),this.mode$=this.sidenavService.getModeObservable(),this.opened$=this.sidenavService.getOpenedObservable()},e}();p.decorators=[{type:t.Component,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)"\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'}]}],p.ctorParameters=function(){return[{type:l},{type:n.BreakpointObserver}]},p.propDecorators={sidenav:[{type:t.ViewChild,args:["sidenav",{static:!0}]}],stayOpenOnLargeScreen:[{type:t.Input}]};var h=function(){function e(e){this.sidenavService=e}return e.prototype.toggleSidenav=function(){this.sidenavService.toggle()},e}();h.decorators=[{type:t.Component,args:[{selector:"ddr-mat-sidenav-toggle",template:'\n <button mat-icon-button (click)="toggleSidenav()">\n <mat-icon>menu</mat-icon>\n </button>'}]}],h.ctorParameters=function(){return[{type:l}]};function u(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}Object.create;Object.create;var g=function(){function e(e,t){this.element=e,this.cd=t,this.hostSrc="assets/placeholder.gif",this.hostStyleObjectFit="contain",this.hostStyleOpacity=0,this.offset=1e3,this.objectFit="cover",this.displayed=!1}return e.prototype.recheck=function(){this.displayed=!1,this.check()},e.prototype.check=function(){if(!this.displayed&&!this.isHidden(this.element.nativeElement)&&this.isInsideViewport(this.element.nativeElement,this.offset)){this.displayed=!0;var e,t=this.getDimension();if(!(null!=this.maxLoadedDimension&&this.maxLoadedDimension.width>=t.width&&this.maxLoadedDimension.height>=t.height))this.maxLoadedDimension=t,this.hostStyleWidthPx=t.width,this.hostStyleHeightPx=t.height,"cover"===this.objectFit?(e=c.NumberUtils.getNextPowerOfTwo(Math.max(t.width,t.height)),this.hostStyleObjectFit="cover"):(e=c.NumberUtils.getNextPowerOfTwo(Math.min(t.width,t.height)),this.hostStyleObjectFit="contain"),this.hostSrc=c.StringUtils.updateUrlParameter(this.src,"size",String(e)),this.hostStyleOpacity=1,this.cd.detectChanges()}},e.prototype.ngOnChanges=function(e){this.displayed=!1,this.maxLoadedDimension=null,this.hostStyleOpacity=0,this.element.nativeElement.parentElement.offsetWidth>0&&this.check()},e.prototype.isInsideViewport=function(e,t){var n=e.ownerDocument,i=window.pageYOffset||n.body.scrollTop,r=window.pageXOffset||n.body.scrollLeft,o=window.innerWidth||n.documentElement.clientWidth||document.body.clientWidth,s=window.innerHeight||n.documentElement.clientHeight||document.body.clientHeight,a=e.getBoundingClientRect().top+i-n.documentElement.clientTop,c=e.getBoundingClientRect().left+r-n.documentElement.clientLeft,d=s+i<=a-t,l=o+window.pageXOffset<=c-t,p=i>=a+t+e.offsetHeight,h=r>=c+t+e.offsetWidth;return!(d||p||l||h)},e.prototype.getDimension=function(){return{width:this.element.nativeElement.parentElement.offsetWidth,height:this.element.nativeElement.parentElement.offsetHeight}},e.prototype.isHidden=function(e){return"none"===window.getComputedStyle(e).display},e}();g.decorators=[{type:t.Directive,args:[{selector:"[ddrGridTileLazyImg]"}]}],g.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef}]},g.propDecorators={src:[{type:t.Input,args:["ddrGridTileLazyImg"]}],hostSrc:[{type:t.HostBinding,args:["src"]}],hostStyleObjectFit:[{type:t.HostBinding,args:["style.object-fit"]}],hostStyleWidthPx:[{type:t.HostBinding,args:["style.width.px"]}],hostStyleHeightPx:[{type:t.HostBinding,args:["style.height.px"]}],hostStyleOpacity:[{type:t.HostBinding,args:["style.opacity"]}],offset:[{type:t.Input}],objectFit:[{type:t.Input}]};var y=function(){function e(){}return e.prototype.windowResized=function(e){null!=this.lazyImages&&this.lazyImages.forEach((function(e,t){return e.recheck()}))},e.prototype.windowScroll=function(e){null!=this.lazyImages&&this.lazyImages.forEach((function(e,t){return e.check()}))},e.prototype.ngAfterContentInit=function(){var e=this;this.lazyImages.forEach((function(e,t){return e.check()})),this.changeSubscription=this.lazyImages.changes.subscribe((function(){setTimeout((function(){return e.lazyImages.forEach((function(e,t){return e.recheck()}))}),1)}))},e.prototype.ngOnDestroy=function(){this.changeSubscription.unsubscribe()},e}();y.decorators=[{type:t.Directive,args:[{selector:"[ddrGridTileLazyImgContainer]"}]}],y.propDecorators={lazyImages:[{type:t.ContentChildren,args:[g,{descendants:!0}]}],windowResized:[{type:t.HostListener,args:["window:resize",["$event"]]}],windowScroll:[{type:t.HostListener,args:["window:scroll",["$event"]]}]},u([c.Debounce()],y.prototype,"windowResized",null),u([c.Limit()],y.prototype,"windowScroll",null);var m=function(){};m.decorators=[{type:t.NgModule,args:[{declarations:[h,y,g,p],imports:[d.CommonModule,a.MatSidenavModule,s.MatIconModule,o.MatButtonModule],exports:[h,y,g,p]}]}],e.DdrMaterialExtensionsModule=m,e.GridTileLazyImageContainerDirective=y,e.GridTileLazyImgDirective=g,e.SidenavContainerComponent=p,e.SidenavService=l,e.SidenavToggleComponent=h,Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=dontdrinkandroot-ngx-material-extensions.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../esm2015/src/sidenav/sidenav.service.ts","../esm2015/src/sidenav/sidenav-container.component.ts","../esm2015/src/sidenav/sidenav-toggle.component.ts","../../node_modules/tslib/tslib.es6.js","../esm2015/src/gridlist/grid-tile-lazy-img.directive.ts","../esm2015/src/gridlist/grid-tile-lazy-image-container.directive.ts","../src/ddr-material-extensions.module.ts"],"names":["SidenavService","breakpointObserver","router","_this","this","stayOpenOnLargeScreen","largeBreakpoints","Breakpoints","Medium","Large","XLarge","screenLarge$","observe","pipe","map","result","matches","mode$","large","opened$","events","subscribe","event","NavigationStart","closeSidebar","prototype","setSidenav","sidenav","getStayOpenOnLargeScreen","setStayOpenOnLargeScreen","value","toggle","Promise","reject","isMatched","close","getModeObservable","getOpenedObservable","Injectable","args","providedIn","BreakpointObserver","Router","SidenavContainerComponent","sidenavService","ngOnChanges","changes","currentValue","ngOnInit","Component","selector","template","ViewChild","static","Input","SidenavToggleComponent","toggleSidenav","__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","create","GridTileLazyImgDirective","element","cd","hostSrc","hostStyleObjectFit","hostStyleOpacity","offset","objectFit","displayed","recheck","check","isHidden","nativeElement","isInsideViewport","wantedSize","dimension","getDimension","maxLoadedDimension","width","height","hostStyleWidthPx","hostStyleHeightPx","NumberUtils","getNextPowerOfTwo","Math","max","min","StringUtils","updateUrlParameter","src","String","detectChanges","parentElement","offsetWidth","ownerDocument","documentTop","window","pageYOffset","body","scrollTop","documentLeft","pageXOffset","scrollLeft","documentWidth","innerWidth","documentElement","clientWidth","document","documentHeight","innerHeight","clientHeight","topOffset","getBoundingClientRect","top","clientTop","leftOffset","left","clientLeft","isBelowViewport","isAtRightOfViewport","isAboveViewport","offsetHeight","isAtLeftOfViewport","getComputedStyle","display","Directive","ElementRef","ChangeDetectorRef","HostBinding","GridTileLazyImageContainerDirective","windowResized","$event","lazyImages","forEach","lazyImage","index","windowScroll","ngAfterContentInit","changeSubscription","setTimeout","ngOnDestroy","unsubscribe","ContentChildren","descendants","HostListener","Debounce","Limit","NgModule","declarations","imports","CommonModule","MatSidenavModule","MatIconModule","MatButtonModule","exports"],"mappings":"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","sourcesContent":["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\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>;\n\n public opened$: Observable<boolean>;\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 this.mode$ = this.sidenavService.getModeObservable();\n this.opened$ = this.sidenavService.getOpenedObservable();\n }\n}\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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\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 };\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, 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)\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';\n\n@NgModule({\n declarations: [\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent\n ],\n imports: [\n CommonModule,\n MatSidenavModule,\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n SidenavToggleComponent,\n GridTileLazyImageContainerDirective,\n GridTileLazyImgDirective,\n SidenavContainerComponent\n ]\n})\nexport class DdrMaterialExtensionsModule\n{\n}\n"]}
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"SidenavContainerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ddr-mat-sidenav-container","template":"<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async)\"\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"}]}],"members":{"sidenav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":5},"arguments":["sidenav",{"static":true}]}]}],"stayOpenOnLargeScreen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SidenavService"},{"__symbolic":"reference","module":"@angular/cdk/layout","name":"BreakpointObserver","line":22,"character":84}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"SidenavToggleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"ddr-mat-sidenav-toggle","template":"\n <button mat-icon-button (click)=\"toggleSidenav()\">\n <mat-icon>menu</mat-icon>\n </button>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SidenavService"}]}],"toggleSidenav":[{"__symbolic":"method"}]}},"SidenavService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/layout","name":"BreakpointObserver","line":28,"character":44},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":28,"character":80}]}],"setSidenav":[{"__symbolic":"method"}],"getStayOpenOnLargeScreen":[{"__symbolic":"method"}],"setStayOpenOnLargeScreen":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"closeSidebar":[{"__symbolic":"method"}],"getModeObservable":[{"__symbolic":"method"}],"getOpenedObservable":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DdrMaterialExtensionsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SidenavToggleComponent"},{"__symbolic":"reference","name":"GridTileLazyImageContainerDirective"},{"__symbolic":"reference","name":"GridTileLazyImgDirective"},{"__symbolic":"reference","name":"SidenavContainerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":8},{"__symbolic":"reference","module":"@angular/material/sidenav","name":"MatSidenavModule","line":19,"character":8},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":20,"character":8},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":21,"character":8}],"exports":[{"__symbolic":"reference","name":"SidenavToggleComponent"},{"__symbolic":"reference","name":"GridTileLazyImageContainerDirective"},{"__symbolic":"reference","name":"GridTileLazyImgDirective"},{"__symbolic":"reference","name":"SidenavContainerComponent"}]}]}],"members":{}},"GridTileLazyImageContainerDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[ddrGridTileLazyImgContainer]"}]}],"members":{"lazyImages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":8,"character":5},"arguments":[{"__symbolic":"reference","name":"GridTileLazyImgDirective"},{"descendants":true}]}]}],"windowResized":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":12,"character":5},"arguments":["window:resize",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@dontdrinkandroot/ngx-extensions","name":"Debounce","line":13,"character":5}}]}],"windowScroll":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":21,"character":5},"arguments":["window:scroll",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@dontdrinkandroot/ngx-extensions","name":"Limit","line":22,"character":5}}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"GridTileLazyImgDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[ddrGridTileLazyImg]"}]}],"members":{"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":5},"arguments":["ddrGridTileLazyImg"]}]}],"hostSrc":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":9,"character":5},"arguments":["src"]}]}],"hostStyleObjectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":12,"character":5},"arguments":["style.object-fit"]}]}],"hostStyleWidthPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":15,"character":5},"arguments":["style.width.px"]}]}],"hostStyleHeightPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":18,"character":5},"arguments":["style.height.px"]}]}],"hostStyleOpacity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":21,"character":5},"arguments":["style.opacity"]}]}],"offset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":5}}]}],"objectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":34,"character":33},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":34,"character":57}]}],"recheck":[{"__symbolic":"method"}],"check":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"isInsideViewport":[{"__symbolic":"method"}],"getDimension":[{"__symbolic":"method"}],"isHidden":[{"__symbolic":"method"}]}}},"origins":{"SidenavContainerComponent":"./src/sidenav/sidenav-container.component","SidenavToggleComponent":"./src/sidenav/sidenav-toggle.component","SidenavService":"./src/sidenav/sidenav.service","DdrMaterialExtensionsModule":"./src/ddr-material-extensions.module","GridTileLazyImageContainerDirective":"./src/gridlist/grid-tile-lazy-image-container.directive","GridTileLazyImgDirective":"./src/gridlist/grid-tile-lazy-img.directive"},"importAs":"@dontdrinkandroot/ngx-material-extensions"}
@@ -1,34 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { SidenavToggleComponent } from './sidenav/sidenav-toggle.component';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MatSidenavModule } from '@angular/material/sidenav';
6
- import { GridTileLazyImageContainerDirective } from './gridlist/grid-tile-lazy-image-container.directive';
7
- import { GridTileLazyImgDirective } from './gridlist/grid-tile-lazy-img.directive';
8
- import { SidenavContainerComponent } from './sidenav/sidenav-container.component';
9
- import { CommonModule } from '@angular/common';
10
- export class DdrMaterialExtensionsModule {
11
- }
12
- DdrMaterialExtensionsModule.decorators = [
13
- { type: NgModule, args: [{
14
- declarations: [
15
- SidenavToggleComponent,
16
- GridTileLazyImageContainerDirective,
17
- GridTileLazyImgDirective,
18
- SidenavContainerComponent
19
- ],
20
- imports: [
21
- CommonModule,
22
- MatSidenavModule,
23
- MatIconModule,
24
- MatButtonModule
25
- ],
26
- exports: [
27
- SidenavToggleComponent,
28
- GridTileLazyImageContainerDirective,
29
- GridTileLazyImgDirective,
30
- SidenavContainerComponent
31
- ]
32
- },] }
33
- ];
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLW1hdGVyaWFsLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLyIsInNvdXJjZXMiOlsic3JjL2Rkci1tYXRlcmlhbC1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDeEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBc0I3QyxNQUFNLE9BQU8sMkJBQTJCOzs7WUFwQnZDLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1Ysc0JBQXNCO29CQUN0QixtQ0FBbUM7b0JBQ25DLHdCQUF3QjtvQkFDeEIseUJBQXlCO2lCQUM1QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsZUFBZTtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLHNCQUFzQjtvQkFDdEIsbUNBQW1DO29CQUNuQyx3QkFBd0I7b0JBQ3hCLHlCQUF5QjtpQkFDNUI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaWRlbmF2VG9nZ2xlQ29tcG9uZW50fSBmcm9tICcuL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0U2lkZW5hdk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge0dyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlfSBmcm9tICcuL2dyaWRsaXN0L2dyaWQtdGlsZS1sYXp5LWltYWdlLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmV9IGZyb20gJy4vZ3JpZGxpc3QvZ3JpZC10aWxlLWxhenktaW1nLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NpZGVuYXZDb250YWluZXJDb21wb25lbnR9IGZyb20gJy4vc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNpZGVuYXZUb2dnbGVDb21wb25lbnQsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltYWdlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmUsXG4gICAgICAgIFNpZGVuYXZDb250YWluZXJDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRTaWRlbmF2TW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU2lkZW5hdlRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgR3JpZFRpbGVMYXp5SW1hZ2VDb250YWluZXJEaXJlY3RpdmUsXG4gICAgICAgIEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZSxcbiAgICAgICAgU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGRyTWF0ZXJpYWxFeHRlbnNpb25zTW9kdWxlXG57XG59XG4iXX0=
@@ -1,47 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { ContentChildren, Directive, HostListener } from '@angular/core';
3
- import { GridTileLazyImgDirective } from './grid-tile-lazy-img.directive';
4
- import { Debounce, Limit } from '@dontdrinkandroot/ngx-extensions';
5
- export class GridTileLazyImageContainerDirective {
6
- windowResized($event) {
7
- if (null != this.lazyImages) {
8
- this.lazyImages.forEach((lazyImage, index) => lazyImage.recheck());
9
- }
10
- }
11
- windowScroll($event) {
12
- if (null != this.lazyImages) {
13
- this.lazyImages.forEach((lazyImage, index) => lazyImage.check());
14
- }
15
- }
16
- /**
17
- * @override
18
- */
19
- ngAfterContentInit() {
20
- this.lazyImages.forEach((lazyImage, index) => lazyImage.check());
21
- this.changeSubscription = this.lazyImages.changes.subscribe(() => {
22
- /* Wait one tick until layout is ready */
23
- setTimeout(() => this.lazyImages.forEach((lazyImage, index) => lazyImage.recheck()), 1);
24
- });
25
- }
26
- /**
27
- * @override
28
- */
29
- ngOnDestroy() {
30
- this.changeSubscription.unsubscribe();
31
- }
32
- }
33
- GridTileLazyImageContainerDirective.decorators = [
34
- { type: Directive, args: [{ selector: '[ddrGridTileLazyImgContainer]' },] }
35
- ];
36
- GridTileLazyImageContainerDirective.propDecorators = {
37
- lazyImages: [{ type: ContentChildren, args: [GridTileLazyImgDirective, { descendants: true },] }],
38
- windowResized: [{ type: HostListener, args: ['window:resize', ['$event'],] }],
39
- windowScroll: [{ type: HostListener, args: ['window:scroll', ['$event'],] }]
40
- };
41
- __decorate([
42
- Debounce()
43
- ], GridTileLazyImageContainerDirective.prototype, "windowResized", null);
44
- __decorate([
45
- Limit()
46
- ], GridTileLazyImageContainerDirective.prototype, "windowScroll", null);
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10aWxlLWxhenktaW1hZ2UtY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8iLCJzb3VyY2VzIjpbInNyYy9ncmlkbGlzdC9ncmlkLXRpbGUtbGF6eS1pbWFnZS1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQW1CLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBR2pFLE1BQU0sT0FBTyxtQ0FBbUM7SUFRckMsYUFBYSxDQUFDLE1BQWE7UUFFOUIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQW1DLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNoRztJQUNMLENBQUM7SUFJTSxZQUFZLENBQUMsTUFBYTtRQUU3QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBbUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzlGO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQWtCO1FBRXJCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBbUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdELHlDQUF5QztZQUN6QyxVQUFVLENBQ04sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFtQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQ2hHLENBQUMsQ0FDTixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBRWQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7OztZQTlDSixTQUFTLFNBQUMsRUFBQyxRQUFRLEVBQUUsK0JBQStCLEVBQUM7Ozt5QkFHakQsZUFBZSxTQUFDLHdCQUF3QixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQzs0QkFJN0QsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzsyQkFTeEMsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFQekM7SUFEQyxRQUFRLEVBQUU7d0VBTVY7QUFJRDtJQURDLEtBQUssRUFBRTt1RUFNUCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBRdWVyeUxpc3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmV9IGZyb20gJy4vZ3JpZC10aWxlLWxhenktaW1nLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0RlYm91bmNlLCBMaW1pdH0gZnJvbSAnQGRvbnRkcmlua2FuZHJvb3Qvbmd4LWV4dGVuc2lvbnMnO1xuXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1tkZHJHcmlkVGlsZUxhenlJbWdDb250YWluZXJdJ30pXG5leHBvcnQgY2xhc3MgR3JpZFRpbGVMYXp5SW1hZ2VDb250YWluZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgICBAQ29udGVudENoaWxkcmVuKEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZSwge2Rlc2NlbmRhbnRzOiB0cnVlfSkgbGF6eUltYWdlczogUXVlcnlMaXN0PEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZT47XG5cbiAgICBwcml2YXRlIGNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgQERlYm91bmNlKClcbiAgICBwdWJsaWMgd2luZG93UmVzaXplZCgkZXZlbnQ6IEV2ZW50KVxuICAgIHtcbiAgICAgICAgaWYgKG51bGwgIT0gdGhpcy5sYXp5SW1hZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmxhenlJbWFnZXMuZm9yRWFjaCgobGF6eUltYWdlOiBHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmUsIGluZGV4KSA9PiBsYXp5SW1hZ2UucmVjaGVjaygpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICAgIEBMaW1pdCgpXG4gICAgcHVibGljIHdpbmRvd1Njcm9sbCgkZXZlbnQ6IEV2ZW50KVxuICAgIHtcbiAgICAgICAgaWYgKG51bGwgIT0gdGhpcy5sYXp5SW1hZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmxhenlJbWFnZXMuZm9yRWFjaCgobGF6eUltYWdlOiBHcmlkVGlsZUxhenlJbWdEaXJlY3RpdmUsIGluZGV4KSA9PiBsYXp5SW1hZ2UuY2hlY2soKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMubGF6eUltYWdlcy5mb3JFYWNoKChsYXp5SW1hZ2U6IEdyaWRUaWxlTGF6eUltZ0RpcmVjdGl2ZSwgaW5kZXgpID0+IGxhenlJbWFnZS5jaGVjaygpKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmxhenlJbWFnZXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgLyogV2FpdCBvbmUgdGljayB1bnRpbCBsYXlvdXQgaXMgcmVhZHkgKi9cbiAgICAgICAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5sYXp5SW1hZ2VzLmZvckVhY2goKGxhenlJbWFnZTogR3JpZFRpbGVMYXp5SW1nRGlyZWN0aXZlLCBpbmRleCkgPT4gbGF6eUltYWdlLnJlY2hlY2soKSlcbiAgICAgICAgICAgICAgICAsIDFcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkXG4gICAge1xuICAgICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,102 +0,0 @@
1
- import { ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';
2
- import { NumberUtils, StringUtils } from '@dontdrinkandroot/ngx-extensions';
3
- export class GridTileLazyImgDirective {
4
- constructor(element, cd) {
5
- this.element = element;
6
- this.cd = cd;
7
- this.hostSrc = 'assets/placeholder.gif';
8
- this.hostStyleObjectFit = 'contain';
9
- this.hostStyleOpacity = 0;
10
- this.offset = 1000;
11
- this.objectFit = 'cover';
12
- this.displayed = false;
13
- }
14
- recheck() {
15
- this.displayed = false;
16
- this.check();
17
- }
18
- check() {
19
- if (this.displayed
20
- || this.isHidden(this.element.nativeElement)
21
- || !this.isInsideViewport(this.element.nativeElement, this.offset)) {
22
- return;
23
- }
24
- this.displayed = true;
25
- const dimension = this.getDimension();
26
- if (null != this.maxLoadedDimension
27
- && this.maxLoadedDimension.width >= dimension.width
28
- && this.maxLoadedDimension.height >= dimension.height) {
29
- return;
30
- }
31
- this.maxLoadedDimension = dimension;
32
- this.hostStyleWidthPx = dimension.width;
33
- this.hostStyleHeightPx = dimension.height;
34
- let wantedSize;
35
- if (this.objectFit === 'cover') {
36
- wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));
37
- this.hostStyleObjectFit = 'cover';
38
- }
39
- else {
40
- wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));
41
- this.hostStyleObjectFit = 'contain';
42
- }
43
- this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));
44
- this.hostStyleOpacity = 1;
45
- this.cd.detectChanges();
46
- }
47
- /**
48
- * @override
49
- */
50
- ngOnChanges(changes) {
51
- this.displayed = false;
52
- this.maxLoadedDimension = null;
53
- this.hostStyleOpacity = 0;
54
- if (this.element.nativeElement.parentElement.offsetWidth > 0) {
55
- this.check();
56
- }
57
- }
58
- isInsideViewport(nativeElement, offset) {
59
- // console.log('isInsideViewport');
60
- const ownerDocument = nativeElement.ownerDocument;
61
- const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;
62
- const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;
63
- const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);
64
- const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);
65
- const topOffset = nativeElement.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;
66
- const leftOffset = nativeElement.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;
67
- // console.log(documentWidth, documentHeight, topOffset, leftOffset);
68
- const isBelowViewport = documentHeight + documentTop <= topOffset - offset;
69
- const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - offset;
70
- const isAboveViewport = documentTop >= topOffset + offset + nativeElement.offsetHeight;
71
- const isAtLeftOfViewport = documentLeft >= leftOffset + offset + nativeElement.offsetWidth;
72
- return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;
73
- }
74
- getDimension() {
75
- return {
76
- width: this.element.nativeElement.parentElement.offsetWidth,
77
- height: this.element.nativeElement.parentElement.offsetHeight,
78
- };
79
- }
80
- isHidden(nativeElement) {
81
- // console.log('isHidden');
82
- return window.getComputedStyle(nativeElement).display === 'none';
83
- }
84
- }
85
- GridTileLazyImgDirective.decorators = [
86
- { type: Directive, args: [{ selector: '[ddrGridTileLazyImg]' },] }
87
- ];
88
- GridTileLazyImgDirective.ctorParameters = () => [
89
- { type: ElementRef },
90
- { type: ChangeDetectorRef }
91
- ];
92
- GridTileLazyImgDirective.propDecorators = {
93
- src: [{ type: Input, args: ['ddrGridTileLazyImg',] }],
94
- hostSrc: [{ type: HostBinding, args: ['src',] }],
95
- hostStyleObjectFit: [{ type: HostBinding, args: ['style.object-fit',] }],
96
- hostStyleWidthPx: [{ type: HostBinding, args: ['style.width.px',] }],
97
- hostStyleHeightPx: [{ type: HostBinding, args: ['style.height.px',] }],
98
- hostStyleOpacity: [{ type: HostBinding, args: ['style.opacity',] }],
99
- offset: [{ type: Input }],
100
- objectFit: [{ type: Input }]
101
- };
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10aWxlLWxhenktaW1nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8iLCJzb3VyY2VzIjpbInNyYy9ncmlkbGlzdC9ncmlkLXRpbGUtbGF6eS1pbWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHMUUsTUFBTSxPQUFPLHdCQUF3QjtJQThCakMsWUFBb0IsT0FBbUIsRUFBVSxFQUFxQjtRQUFsRCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUF4Qi9ELFlBQU8sR0FBRyx3QkFBd0IsQ0FBQztRQUduQyx1QkFBa0IsR0FBRyxTQUFTLENBQUM7UUFTL0IscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBR3JCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHZCxjQUFTLEdBQUcsT0FBTyxDQUFDO1FBRW5CLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFNMUIsQ0FBQztJQUVNLE9BQU87UUFFVixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLEtBQUs7UUFFUixJQUNJLElBQUksQ0FBQyxTQUFTO2VBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztlQUN6QyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQ3BFO1lBQ0UsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxT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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge051bWJlclV0aWxzLCBTdHJpbmdVdGlsc30gZnJvbSAnQGRvbnRkcmlua2FuZHJvb3Qvbmd4LWV4dGVuc2lvbnMnO1xuXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1tkZHJHcmlkVGlsZUxhenlJbWddJ30pXG5leHBvcnQgY2xhc3MgR3JpZFRpbGVMYXp5SW1nRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzXG57XG4gICAgQElucHV0KCdkZHJHcmlkVGlsZUxhenlJbWcnKVxuICAgIHB1YmxpYyBzcmM6IHN0cmluZztcblxuICAgIEBIb3N0QmluZGluZygnc3JjJylcbiAgICBwdWJsaWMgaG9zdFNyYyA9ICdhc3NldHMvcGxhY2Vob2xkZXIuZ2lmJztcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUub2JqZWN0LWZpdCcpXG4gICAgcHVibGljIGhvc3RTdHlsZU9iamVjdEZpdCA9ICdjb250YWluJztcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKVxuICAgIHB1YmxpYyBob3N0U3R5bGVXaWR0aFB4OiBudW1iZXI7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodC5weCcpXG4gICAgcHVibGljIGhvc3RTdHlsZUhlaWdodFB4OiBudW1iZXI7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9wYWNpdHknKVxuICAgIHB1YmxpYyBob3N0U3R5bGVPcGFjaXR5ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9mZnNldCA9IDEwMDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvYmplY3RGaXQgPSAnY292ZXInO1xuXG4gICAgcHJpdmF0ZSBkaXNwbGF5ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbWF4TG9hZGVkRGltZW5zaW9uOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKVxuICAgIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVjaGVjaygpXG4gICAge1xuICAgICAgICB0aGlzLmRpc3BsYXllZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrKClcbiAgICB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkXG4gICAgICAgICAgICB8fCB0aGlzLmlzSGlkZGVuKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgfHwgIXRoaXMuaXNJbnNpZGVWaWV3cG9ydCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5vZmZzZXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBkaW1lbnNpb24gPSB0aGlzLmdldERpbWVuc2lvbigpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG51bGwgIT0gdGhpcy5tYXhMb2FkZWREaW1lbnNpb25cbiAgICAgICAgICAgICYmIHRoaXMubWF4TG9hZGVkRGltZW5zaW9uLndpZHRoID49IGRpbWVuc2lvbi53aWR0aFxuICAgICAgICAgICAgJiYgdGhpcy5tYXhMb2FkZWREaW1lbnNpb24uaGVpZ2h0ID49IGRpbWVuc2lvbi5oZWlnaHRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1heExvYWRlZERpbWVuc2lvbiA9IGRpbWVuc2lvbjtcbiAgICAgICAgdGhpcy5ob3N0U3R5bGVXaWR0aFB4ID0gZGltZW5zaW9uLndpZHRoO1xuICAgICAgICB0aGlzLmhvc3RTdHlsZUhlaWdodFB4ID0gZGltZW5zaW9uLmhlaWdodDtcbiAgICAgICAgbGV0IHdhbnRlZFNpemU6IG51bWJlcjtcbiAgICAgICAgaWYgKHRoaXMub2JqZWN0Rml0ID09PSAnY292ZXInKSB7XG4gICAgICAgICAgICB3YW50ZWRTaXplID0gTnVtYmVyVXRpbHMuZ2V0TmV4dFBvd2VyT2ZUd28oTWF0aC5tYXgoZGltZW5zaW9uLndpZHRoLCBkaW1lbnNpb24uaGVpZ2h0KSk7XG4gICAgICAgICAgICB0aGlzLmhvc3RTdHlsZU9iamVjdEZpdCA9ICdjb3Zlcic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3YW50ZWRTaXplID0gTnVtYmVyVXRpbHMuZ2V0TmV4dFBvd2VyT2ZUd28oTWF0aC5taW4oZGltZW5zaW9uLndpZHRoLCBkaW1lbnNpb24uaGVpZ2h0KSk7XG4gICAgICAgICAgICB0aGlzLmhvc3RTdHlsZU9iamVjdEZpdCA9ICdjb250YWluJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RTcmMgPSBTdHJpbmdVdGlscy51cGRhdGVVcmxQYXJhbWV0ZXIodGhpcy5zcmMsICdzaXplJywgU3RyaW5nKHdhbnRlZFNpemUpKTtcbiAgICAgICAgdGhpcy5ob3N0U3R5bGVPcGFjaXR5ID0gMTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkXG4gICAge1xuICAgICAgICB0aGlzLmRpc3BsYXllZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1heExvYWRlZERpbWVuc2lvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuaG9zdFN0eWxlT3BhY2l0eSA9IDA7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0luc2lkZVZpZXdwb3J0KG5hdGl2ZUVsZW1lbnQsIG9mZnNldDogbnVtYmVyKTogYm9vbGVhblxuICAgIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2lzSW5zaWRlVmlld3BvcnQnKTtcbiAgICAgICAgY29uc3Qgb3duZXJEb2N1bWVudCA9IG5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudDtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgb3duZXJEb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRMZWZ0ID0gd2luZG93LnBhZ2VYT2Zmc2V0IHx8IG93bmVyRG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0O1xuXG4gICAgICAgIGNvbnN0IGRvY3VtZW50V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCAob3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCk7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IHx8IChvd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQpO1xuICAgICAgICBjb25zdCB0b3BPZmZzZXQgPSBuYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGRvY3VtZW50VG9wIC0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wO1xuICAgICAgICBjb25zdCBsZWZ0T2Zmc2V0ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgZG9jdW1lbnRMZWZ0IC0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50TGVmdDtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhkb2N1bWVudFdpZHRoLCBkb2N1bWVudEhlaWdodCwgdG9wT2Zmc2V0LCBsZWZ0T2Zmc2V0KTtcblxuICAgICAgICBjb25zdCBpc0JlbG93Vmlld3BvcnQgPSBkb2N1bWVudEhlaWdodCArIGRvY3VtZW50VG9wIDw9IHRvcE9mZnNldCAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgaXNBdFJpZ2h0T2ZWaWV3cG9ydCA9IGRvY3VtZW50V2lkdGggKyB3aW5kb3cucGFnZVhPZmZzZXQgPD0gbGVmdE9mZnNldCAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgaXNBYm92ZVZpZXdwb3J0ID0gZG9jdW1lbnRUb3AgPj0gdG9wT2Zmc2V0ICsgb2Zmc2V0ICsgbmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGlzQXRMZWZ0T2ZWaWV3cG9ydCA9IGRvY3VtZW50TGVmdCA+PSBsZWZ0T2Zmc2V0ICsgb2Zmc2V0ICsgbmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcblxuICAgICAgICByZXR1cm4gIWlzQmVsb3dWaWV3cG9ydCAmJiAhaXNBYm92ZVZpZXdwb3J0ICYmICFpc0F0UmlnaHRPZlZpZXdwb3J0ICYmICFpc0F0TGVmdE9mVmlld3BvcnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaW1lbnNpb24oKTogeyB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciB9XG4gICAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNIaWRkZW4obmF0aXZlRWxlbWVudClcbiAgICB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdpc0hpZGRlbicpO1xuICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUobmF0aXZlRWxlbWVudCkuZGlzcGxheSA9PT0gJ25vbmUnO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { SidenavService } from './sidenav.service';
3
- import { BreakpointObserver } from '@angular/cdk/layout';
4
- export class SidenavContainerComponent {
5
- constructor(sidenavService, breakpointObserver) {
6
- this.sidenavService = sidenavService;
7
- this.breakpointObserver = breakpointObserver;
8
- this.stayOpenOnLargeScreen = false;
9
- }
10
- /**
11
- * @override
12
- */
13
- ngOnChanges(changes) {
14
- this.sidenavService.setStayOpenOnLargeScreen(changes.stayOpenOnLargeScreen.currentValue);
15
- }
16
- /**
17
- * @override
18
- */
19
- ngOnInit() {
20
- this.sidenavService.setSidenav(this.sidenav);
21
- this.mode$ = this.sidenavService.getModeObservable();
22
- this.opened$ = this.sidenavService.getOpenedObservable();
23
- }
24
- }
25
- SidenavContainerComponent.decorators = [
26
- { type: Component, args: [{
27
- selector: 'ddr-mat-sidenav-container',
28
- template: "<mat-sidenav-container [ngClass]=\"(mode$|async)\">\n <mat-sidenav\n #sidenav\n fixedInViewport=\"true\"\n [mode]=\"(mode$|async)\"\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"
29
- },] }
30
- ];
31
- SidenavContainerComponent.ctorParameters = () => [
32
- { type: SidenavService },
33
- { type: BreakpointObserver }
34
- ];
35
- SidenavContainerComponent.propDecorators = {
36
- sidenav: [{ type: ViewChild, args: ['sidenav', { static: true },] }],
37
- stayOpenOnLargeScreen: [{ type: Input }]
38
- };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLyIsInNvdXJjZXMiOlsic3JjL3NpZGVuYXYvc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBT3ZELE1BQU0sT0FBTyx5QkFBeUI7SUFZbEMsWUFBb0IsY0FBOEIsRUFBVSxrQkFBc0M7UUFBOUUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQU4zRiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFRckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBRXJDLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFFWCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0QsQ0FBQzs7O1lBcENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQywrYkFBaUQ7YUFDcEQ7OztZQVBPLGNBQWM7WUFDZCxrQkFBa0I7OztzQkFTckIsU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7b0NBR25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREcmF3ZXJNb2RlLCBNYXRTaWRlbmF2fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7U2lkZW5hdlNlcnZpY2V9IGZyb20gJy4vc2lkZW5hdi5zZXJ2aWNlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGRyLW1hdC1zaWRlbmF2LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgICBAVmlld0NoaWxkKCdzaWRlbmF2Jywge3N0YXRpYzogdHJ1ZX0pXG4gICAgcHVibGljIHNpZGVuYXY6IE1hdFNpZGVuYXY7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGF5T3Blbk9uTGFyZ2VTY3JlZW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBtb2RlJDogT2JzZXJ2YWJsZTxNYXREcmF3ZXJNb2RlPjtcblxuICAgIHB1YmxpYyBvcGVuZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzaWRlbmF2U2VydmljZTogU2lkZW5hdlNlcnZpY2UsIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIpXG4gICAge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5zZXRTdGF5T3Blbk9uTGFyZ2VTY3JlZW4oY2hhbmdlcy5zdGF5T3Blbk9uTGFyZ2VTY3JlZW4uY3VycmVudFZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5zZXRTaWRlbmF2KHRoaXMuc2lkZW5hdik7XG4gICAgICAgIHRoaXMubW9kZSQgPSB0aGlzLnNpZGVuYXZTZXJ2aWNlLmdldE1vZGVPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMub3BlbmVkJCA9IHRoaXMuc2lkZW5hdlNlcnZpY2UuZ2V0T3BlbmVkT2JzZXJ2YWJsZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { SidenavService } from './sidenav.service';
3
- export class SidenavToggleComponent {
4
- constructor(sidenavService) {
5
- this.sidenavService = sidenavService;
6
- }
7
- toggleSidenav() {
8
- this.sidenavService.toggle();
9
- }
10
- }
11
- SidenavToggleComponent.decorators = [
12
- { type: Component, args: [{
13
- selector: 'ddr-mat-sidenav-toggle',
14
- template: `
15
- <button mat-icon-button (click)="toggleSidenav()">
16
- <mat-icon>menu</mat-icon>
17
- </button>`
18
- },] }
19
- ];
20
- SidenavToggleComponent.ctorParameters = () => [
21
- { type: SidenavService }
22
- ];
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLyIsInNvdXJjZXMiOlsic3JjL3NpZGVuYXYvc2lkZW5hdi10b2dnbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBU2pELE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRWxELENBQUM7SUFFTSxhQUFhO1FBRWhCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7O1lBaEJKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxRQUFRLEVBQUU7OztrQkFHSTthQUNqQjs7O1lBUk8sY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2lkZW5hdlNlcnZpY2V9IGZyb20gJy4vc2lkZW5hdi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkZHItbWF0LXNpZGVuYXYtdG9nZ2xlJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU2lkZW5hdigpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPmBcbn0pXG5leHBvcnQgY2xhc3MgU2lkZW5hdlRvZ2dsZUNvbXBvbmVudFxue1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2lkZW5hdlNlcnZpY2U6IFNpZGVuYXZTZXJ2aWNlKVxuICAgIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlU2lkZW5hdigpXG4gICAge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnRvZ2dsZSgpO1xuICAgIH1cbn1cbiJdfQ==