@dontdrinkandroot/ngx-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 (70) hide show
  1. package/{esm2015/dontdrinkandroot-ngx-extensions.js → esm2020/dontdrinkandroot-ngx-extensions.mjs} +1 -1
  2. package/esm2020/public-api.mjs +24 -0
  3. package/esm2020/src/cookie/cookie.service.mjs +135 -0
  4. package/esm2020/src/ddr-extensions.module.mjs +40 -0
  5. package/esm2020/src/http/redirect-to-login-interceptor.service.mjs +35 -0
  6. package/esm2020/src/http/url-info.mjs +26 -0
  7. package/esm2020/src/http/with-credentials-interceptor.service.mjs +19 -0
  8. package/esm2020/src/image/lazy-image.directive.mjs +132 -0
  9. package/esm2020/src/jwt/jwt-interceptor.service.mjs +26 -0
  10. package/esm2020/src/jwt/jwt-refresh-token-interceptor.service.mjs +50 -0
  11. package/esm2020/src/jwt/jwt-token-response.mjs +2 -0
  12. package/esm2020/src/jwt/jwt.service.mjs +82 -0
  13. package/esm2020/src/methoddecorator/debounce.mjs +13 -0
  14. package/esm2020/src/methoddecorator/limit.mjs +16 -0
  15. package/esm2020/src/scroll/bottom-hit.directive.mjs +60 -0
  16. package/esm2020/src/scroll/scroll.service.mjs +38 -0
  17. package/esm2020/src/util/collection-utils.mjs +27 -0
  18. package/esm2020/src/util/number-utils.mjs +10 -0
  19. package/esm2020/src/util/object-utils.mjs +9 -0
  20. package/esm2020/src/util/string-utils.mjs +35 -0
  21. package/esm2020/src/util/type-utils.mjs +9 -0
  22. package/esm2020/src/visibility/visibility.service.mjs +19 -0
  23. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs +760 -0
  24. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs.map +1 -0
  25. package/{fesm2015/dontdrinkandroot-ngx-extensions.js → fesm2020/dontdrinkandroot-ngx-extensions.mjs} +210 -154
  26. package/fesm2020/dontdrinkandroot-ngx-extensions.mjs.map +1 -0
  27. package/{dontdrinkandroot-ngx-extensions.d.ts → index.d.ts} +1 -0
  28. package/package.json +23 -11
  29. package/public-api.d.ts +1 -0
  30. package/src/cookie/cookie.service.d.ts +5 -2
  31. package/src/ddr-extensions.module.d.ts +6 -0
  32. package/src/http/redirect-to-login-interceptor.service.d.ts +4 -1
  33. package/src/http/url-info.d.ts +8 -7
  34. package/src/http/with-credentials-interceptor.service.d.ts +3 -0
  35. package/src/image/lazy-image.directive.d.ts +4 -1
  36. package/src/jwt/jwt-interceptor.service.d.ts +3 -0
  37. package/src/jwt/jwt-refresh-token-interceptor.service.d.ts +3 -0
  38. package/src/jwt/jwt.service.d.ts +3 -0
  39. package/src/scroll/bottom-hit.directive.d.ts +3 -0
  40. package/src/scroll/scroll.service.d.ts +3 -0
  41. package/src/util/collection-utils.d.ts +2 -4
  42. package/src/util/object-utils.d.ts +1 -0
  43. package/src/util/type-utils.d.ts +3 -0
  44. package/src/visibility/visibility.service.d.ts +3 -0
  45. package/bundles/dontdrinkandroot-ngx-extensions.umd.js +0 -1088
  46. package/bundles/dontdrinkandroot-ngx-extensions.umd.js.map +0 -1
  47. package/bundles/dontdrinkandroot-ngx-extensions.umd.min.js +0 -16
  48. package/bundles/dontdrinkandroot-ngx-extensions.umd.min.js.map +0 -1
  49. package/dontdrinkandroot-ngx-extensions.metadata.json +0 -1
  50. package/esm2015/public-api.js +0 -23
  51. package/esm2015/src/cookie/cookie.service.js +0 -136
  52. package/esm2015/src/ddr-extensions.module.js +0 -28
  53. package/esm2015/src/http/redirect-to-login-interceptor.service.js +0 -33
  54. package/esm2015/src/http/url-info.js +0 -26
  55. package/esm2015/src/http/with-credentials-interceptor.service.js +0 -16
  56. package/esm2015/src/image/lazy-image.directive.js +0 -118
  57. package/esm2015/src/jwt/jwt-interceptor.service.js +0 -26
  58. package/esm2015/src/jwt/jwt-refresh-token-interceptor.service.js +0 -50
  59. package/esm2015/src/jwt/jwt-token-response.js +0 -2
  60. package/esm2015/src/jwt/jwt.service.js +0 -73
  61. package/esm2015/src/methoddecorator/debounce.js +0 -12
  62. package/esm2015/src/methoddecorator/limit.js +0 -16
  63. package/esm2015/src/scroll/bottom-hit.directive.js +0 -53
  64. package/esm2015/src/scroll/scroll.service.js +0 -39
  65. package/esm2015/src/util/collection-utils.js +0 -29
  66. package/esm2015/src/util/number-utils.js +0 -10
  67. package/esm2015/src/util/object-utils.js +0 -6
  68. package/esm2015/src/util/string-utils.js +0 -35
  69. package/esm2015/src/visibility/visibility.service.js +0 -18
  70. package/fesm2015/dontdrinkandroot-ngx-extensions.js.map +0 -1
@@ -1,136 +0,0 @@
1
- // This service is based on the `ng2-cookies` package which sadly is not a service and does
2
- // not use `DOCUMENT` injection and therefore doesn't work well with AoT production builds.
3
- // Package: https://github.com/BCJTI/ng2-cookies
4
- import { Inject, Injectable } from '@angular/core';
5
- import { DOCUMENT } from '@angular/common';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class CookieService {
9
- constructor(
10
- // The type `Document` may not be used here. Although a fix is on its way,
11
- // we will go with `any` for now to support Angular 2.4.x projects.
12
- // Issue: https://github.com/angular/angular/issues/12631
13
- // Fix: https://github.com/angular/angular/pull/14894
14
- document) {
15
- this.document = document;
16
- // To avoid issues with server side prerendering, check if `document` is defined.
17
- this.documentIsAccessible = document !== undefined;
18
- }
19
- /**
20
- * @param name Cookie name
21
- */
22
- check(name) {
23
- if (!this.documentIsAccessible) {
24
- return false;
25
- }
26
- name = encodeURIComponent(name);
27
- const regExp = this.getCookieRegExp(name);
28
- return regExp.test(this.document.cookie);
29
- }
30
- /**
31
- * @param name Cookie name
32
- */
33
- get(name) {
34
- if (this.documentIsAccessible && this.check(name)) {
35
- name = encodeURIComponent(name);
36
- const regExp = this.getCookieRegExp(name);
37
- const result = regExp.exec(this.document.cookie);
38
- return decodeURIComponent(result[1]);
39
- }
40
- else {
41
- return '';
42
- }
43
- }
44
- getAll() {
45
- if (!this.documentIsAccessible) {
46
- return {};
47
- }
48
- const cookies = {};
49
- const document = this.document;
50
- if (document.cookie && document.cookie !== '') {
51
- const split = document.cookie.split(';');
52
- for (let i = 0; i < split.length; i += 1) {
53
- const currentCookie = split[i].split('=');
54
- currentCookie[0] = currentCookie[0].replace(/^ /, '');
55
- cookies[decodeURIComponent(currentCookie[0])] = decodeURIComponent(currentCookie[1]);
56
- }
57
- }
58
- return cookies;
59
- }
60
- /**
61
- * @param name Cookie name
62
- * @param value Cookie value
63
- * @param expires Number of days until the cookies expires or an actual `Date`
64
- * @param path Cookie path
65
- * @param domain Cookie domain
66
- * @param secure Secure flag
67
- */
68
- set(name, value, expires, path, domain, secure) {
69
- if (!this.documentIsAccessible) {
70
- return;
71
- }
72
- let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';
73
- if (expires) {
74
- if (typeof expires === 'number') {
75
- const dateExpires = new Date(new Date().getTime() + expires * 1000 * 60 * 60 * 24);
76
- cookieString += 'expires=' + dateExpires.toUTCString() + ';';
77
- }
78
- else {
79
- cookieString += 'expires=' + expires.toUTCString() + ';';
80
- }
81
- }
82
- if (path) {
83
- cookieString += 'path=' + path + ';';
84
- }
85
- if (domain) {
86
- cookieString += 'domain=' + domain + ';';
87
- }
88
- if (secure) {
89
- cookieString += 'secure;';
90
- }
91
- this.document.cookie = cookieString;
92
- }
93
- /**
94
- * @param name Cookie name
95
- * @param path Cookie path
96
- * @param domain Cookie domain
97
- */
98
- delete(name, path, domain) {
99
- if (!this.documentIsAccessible) {
100
- return;
101
- }
102
- this.set(name, '', -1, path, domain);
103
- }
104
- /**
105
- * @param path Cookie path
106
- * @param domain Cookie domain
107
- */
108
- deleteAll(path, domain) {
109
- if (!this.documentIsAccessible) {
110
- return;
111
- }
112
- const cookies = this.getAll();
113
- for (const cookieName in cookies) {
114
- if (cookies.hasOwnProperty(cookieName)) {
115
- this.delete(cookieName, path, domain);
116
- }
117
- }
118
- }
119
- /**
120
- * @param name Cookie name
121
- */
122
- getCookieRegExp(name) {
123
- const escapedName = name.replace(/([\[\]\{\}\(\)\|\=\;\+\?\,\.\*\^\$])/ig, '\\$1');
124
- return new RegExp('(?:^' + escapedName + '|;\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');
125
- }
126
- }
127
- CookieService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CookieService_Factory() { return new CookieService(i0.ɵɵinject(i1.DOCUMENT)); }, token: CookieService, providedIn: "root" });
128
- CookieService.decorators = [
129
- { type: Injectable, args: [{
130
- providedIn: 'root'
131
- },] }
132
- ];
133
- CookieService.ctorParameters = () => [
134
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
135
- ];
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvY29va2llL2Nvb2tpZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJGQUEyRjtBQUMzRiwyRkFBMkY7QUFDM0YsZ0RBQWdEO0FBRWhELE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBSXRCO0lBQ0ksMEVBQTBFO0lBQzFFLG1FQUFtRTtJQUNuRSx5REFBeUQ7SUFDekQscURBQXFEO0lBQzNCLFFBQWE7UUFBYixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBR3ZDLGlGQUFpRjtRQUNqRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxLQUFLLFNBQVMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBWTtRQUVkLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDNUIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsSUFBWTtRQUVaLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0MsSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWhDLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxlQUFlLENBQUMs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QUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxJQUFhLEVBQUUsTUFBZTtRQUVwQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUVELE1BQU0sT0FBTyxHQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sVUFBVSxJQUFJLE9BQU8sRUFBRTtZQUM5QixJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN6QztTQUNKO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLElBQVk7UUFFaEMsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRixPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxXQUFXLEdBQUcsUUFBUSxHQUFHLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3RixDQUFDOzs7O1lBbktKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OzRDQVVRLE1BQU0sU0FBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBzZXJ2aWNlIGlzIGJhc2VkIG9uIHRoZSBgbmcyLWNvb2tpZXNgIHBhY2thZ2Ugd2hpY2ggc2FkbHkgaXMgbm90IGEgc2VydmljZSBhbmQgZG9lc1xuLy8gbm90IHVzZSBgRE9DVU1FTlRgIGluamVjdGlvbiBhbmQgdGhlcmVmb3JlIGRvZXNuJ3Qgd29yayB3ZWxsIHdpdGggQW9UIHByb2R1Y3Rpb24gYnVpbGRzLlxuLy8gUGFja2FnZTogaHR0cHM6Ly9naXRodWIuY29tL0JDSlRJL25nMi1jb29raWVzXG5cbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29va2llU2VydmljZVxue1xuICAgIHByaXZhdGUgZG9jdW1lbnRJc0FjY2Vzc2libGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgLy8gVGhlIHR5cGUgYERvY3VtZW50YCBtYXkgbm90IGJlIHVzZWQgaGVyZS4gQWx0aG91Z2ggYSBmaXggaXMgb24gaXRzIHdheSxcbiAgICAgICAgLy8gd2Ugd2lsbCBnbyB3aXRoIGBhbnlgIGZvciBub3cgdG8gc3VwcG9ydCBBbmd1bGFyIDIuNC54IHByb2plY3RzLlxuICAgICAgICAvLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTI2MzFcbiAgICAgICAgLy8gRml4OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvMTQ4OTRcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55XG4gICAgKVxuICAgIHtcbiAgICAgICAgLy8gVG8gYXZvaWQgaXNzdWVzIHdpdGggc2VydmVyIHNpZGUgcHJlcmVuZGVyaW5nLCBjaGVjayBpZiBgZG9jdW1lbnRgIGlzIGRlZmluZWQuXG4gICAgICAgIHRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUgPSBkb2N1bWVudCAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXG4gICAgICovXG4gICAgY2hlY2sobmFtZTogc3RyaW5nKTogYm9vbGVhblxuICAgIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpO1xuXG4gICAgICAgIGNvbnN0IHJlZ0V4cDogUmVnRXhwID0gdGhpcy5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICAgIHJldHVybiByZWdFeHAudGVzdCh0aGlzLmRvY3VtZW50LmNvb2tpZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKi9cbiAgICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nXG4gICAge1xuICAgICAgICBpZiAodGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSAmJiB0aGlzLmNoZWNrKG5hbWUpKSB7XG4gICAgICAgICAgICBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpO1xuXG4gICAgICAgICAgICBjb25zdCByZWdFeHA6IFJlZ0V4cCA9IHRoaXMuZ2V0Q29va2llUmVnRXhwKG5hbWUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWdFeHBFeGVjQXJyYXkgPSByZWdFeHAuZXhlYyh0aGlzLmRvY3VtZW50LmNvb2tpZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0WzFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFsbCgpOiB7fVxuICAgIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb29raWVzOiB7fSA9IHt9O1xuICAgICAgICBjb25zdCBkb2N1bWVudDogYW55ID0gdGhpcy5kb2N1bWVudDtcblxuICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICYmIGRvY3VtZW50LmNvb2tpZSAhPT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0OiBBcnJheTxzdHJpbmc+ID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q29va2llOiBBcnJheTxzdHJpbmc+ID0gc3BsaXRbaV0uc3BsaXQoJz0nKTtcblxuICAgICAgICAgICAgICAgIGN1cnJlbnRDb29raWVbMF0gPSBjdXJyZW50Q29va2llWzBdLnJlcGxhY2UoL14gLywgJycpO1xuICAgICAgICAgICAgICAgIGNvb2tpZXNbZGVjb2RlVVJJQ29tcG9uZW50KGN1cnJlbnRDb29raWVbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChjdXJyZW50Q29va2llWzFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb29raWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lICAgIENvb2tpZSBuYW1lXG4gICAgICogQHBhcmFtIHZhbHVlICAgQ29va2llIHZhbHVlXG4gICAgICogQHBhcmFtIGV4cGlyZXMgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAgICogQHBhcmFtIHBhdGggICAgQ29va2llIHBhdGhcbiAgICAgKiBAcGFyYW0gZG9tYWluICBDb29raWUgZG9tYWluXG4gICAgICogQHBhcmFtIHNlY3VyZSAgU2VjdXJlIGZsYWdcbiAgICAgKi9cbiAgICBzZXQoXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgZXhwaXJlcz86IG51bWJlciB8IERhdGUsXG4gICAgICAgIHBhdGg/OiBzdHJpbmcsXG4gICAgICAgIGRvbWFpbj86IHN0cmluZyxcbiAgICAgICAgc2VjdXJlPzogYm9vbGVhblxuICAgICk6IHZvaWRcbiAgICB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvb2tpZVN0cmluZzogc3RyaW5nID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSArICc7JztcblxuICAgICAgICBpZiAoZXhwaXJlcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVFeHBpcmVzOiBEYXRlID0gbmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkgKyBleHBpcmVzICogMTAwMCAqIDYwICogNjAgKiAyNCk7XG5cbiAgICAgICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ2V4cGlyZXM9JyArIGRhdGVFeHBpcmVzLnRvVVRDU3RyaW5nKCkgKyAnOyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAncGF0aD0nICsgcGF0aCArICc7JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkb21haW4pIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnZG9tYWluPScgKyBkb21haW4gKyAnOyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VjdXJlKSB7XG4gICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ3NlY3VyZTsnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudC5jb29raWUgPSBjb29raWVTdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgICBDb29raWUgbmFtZVxuICAgICAqIEBwYXJhbSBwYXRoICAgQ29va2llIHBhdGhcbiAgICAgKiBAcGFyYW0gZG9tYWluIENvb2tpZSBkb21haW5cbiAgICAgKi9cbiAgICBkZWxldGUobmFtZTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0KG5hbWUsICcnLCAtMSwgcGF0aCwgZG9tYWluKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gcGF0aCAgIENvb2tpZSBwYXRoXG4gICAgICogQHBhcmFtIGRvbWFpbiBDb29raWUgZG9tYWluXG4gICAgICovXG4gICAgZGVsZXRlQWxsKHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29va2llczogYW55ID0gdGhpcy5nZXRBbGwoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZU5hbWUgaW4gY29va2llcykge1xuICAgICAgICAgICAgaWYgKGNvb2tpZXMuaGFzT3duUHJvcGVydHkoY29va2llTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENvb2tpZVJlZ0V4cChuYW1lOiBzdHJpbmcpOiBSZWdFeHBcbiAgICB7XG4gICAgICAgIGNvbnN0IGVzY2FwZWROYW1lOiBzdHJpbmcgPSBuYW1lLnJlcGxhY2UoLyhbXFxbXFxdXFx7XFx9XFwoXFwpXFx8XFw9XFw7XFwrXFw/XFwsXFwuXFwqXFxeXFwkXSkvaWcsICdcXFxcJDEnKTtcblxuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCgnKD86XicgKyBlc2NhcGVkTmFtZSArICd8O1xcXFxzKicgKyBlc2NhcGVkTmFtZSArICcpPSguKj8pKD86O3wkKScsICdnJyk7XG4gICAgfVxufVxuIl19
@@ -1,28 +0,0 @@
1
- import { InjectionToken, NgModule } from '@angular/core';
2
- import { LazyImageDirective } from './image/lazy-image.directive';
3
- import { BottomHitDirective } from './scroll/bottom-hit.directive';
4
- export const DDR_STORAGE_PREFIX = new InjectionToken('DDR_STORAGE_PREFIX');
5
- export const DDR_JWT_REFRESH_TOKEN_URL = new InjectionToken('DDR_JWT_REFRESH_TOKEN_URL');
6
- export const DDR_LOGIN_PATH = new InjectionToken('DDR_LOGIN_PATH');
7
- export class DdrExtensionsModule {
8
- }
9
- DdrExtensionsModule.decorators = [
10
- { type: NgModule, args: [{
11
- declarations: [
12
- LazyImageDirective,
13
- BottomHitDirective
14
- ],
15
- imports: [],
16
- providers: [
17
- {
18
- provide: DDR_LOGIN_PATH,
19
- useValue: '/login'
20
- }
21
- ],
22
- exports: [
23
- LazyImageDirective,
24
- BottomHitDirective
25
- ]
26
- },] }
27
- ];
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLyIsInNvdXJjZXMiOlsic3JjL2Rkci1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBUyxvQkFBb0IsQ0FBQyxDQUFDO0FBRW5GLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFTLDJCQUEyQixDQUFDLENBQUM7QUFFakcsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFTLGdCQUFnQixDQUFDLENBQUM7QUFtQjNFLE1BQU0sT0FBTyxtQkFBbUI7OztZQWpCL0IsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRTtvQkFDVixrQkFBa0I7b0JBQ2xCLGtCQUFrQjtpQkFDckI7Z0JBQ0QsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxjQUFjO3dCQUN2QixRQUFRLEVBQUUsUUFBUTtxQkFDckI7aUJBQ0o7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGtCQUFrQjtvQkFDbEIsa0JBQWtCO2lCQUNyQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMYXp5SW1hZ2VEaXJlY3RpdmV9IGZyb20gJy4vaW1hZ2UvbGF6eS1pbWFnZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCb3R0b21IaXREaXJlY3RpdmV9IGZyb20gJy4vc2Nyb2xsL2JvdHRvbS1oaXQuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IEREUl9TVE9SQUdFX1BSRUZJWCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdERFJfU1RPUkFHRV9QUkVGSVgnKTtcblxuZXhwb3J0IGNvbnN0IEREUl9KV1RfUkVGUkVTSF9UT0tFTl9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRERSX0pXVF9SRUZSRVNIX1RPS0VOX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgRERSX0xPR0lOX1BBVEggPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRERSX0xPR0lOX1BBVEgnKTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTGF6eUltYWdlRGlyZWN0aXZlLFxuICAgICAgICBCb3R0b21IaXREaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBERFJfTE9HSU5fUEFUSCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiAnL2xvZ2luJ1xuICAgICAgICB9XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIExhenlJbWFnZURpcmVjdGl2ZSxcbiAgICAgICAgQm90dG9tSGl0RGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZHJFeHRlbnNpb25zTW9kdWxlXG57XG59XG4iXX0=
@@ -1,33 +0,0 @@
1
- import { HttpErrorResponse } from '@angular/common/http';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { throwError } from 'rxjs';
4
- import { catchError } from 'rxjs/operators';
5
- import { Router } from '@angular/router';
6
- import { DDR_LOGIN_PATH } from '../ddr-extensions.module';
7
- export class RedirectToLoginInterceptor {
8
- constructor(router, loginPath) {
9
- this.router = router;
10
- this.loginPath = loginPath;
11
- }
12
- /**
13
- * @override
14
- */
15
- intercept(req, next) {
16
- return next.handle(req).pipe(catchError((err) => {
17
- if (err instanceof HttpErrorResponse) {
18
- if (err.status === 401) {
19
- this.router.navigate([this.loginPath]);
20
- }
21
- }
22
- return throwError(err);
23
- }));
24
- }
25
- }
26
- RedirectToLoginInterceptor.decorators = [
27
- { type: Injectable }
28
- ];
29
- RedirectToLoginInterceptor.ctorParameters = () => [
30
- { type: Router },
31
- { type: undefined, decorators: [{ type: Inject, args: [DDR_LOGIN_PATH,] }] }
32
- ];
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tbG9naW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8iLCJzb3VyY2VzIjpbInNyYy9odHRwL3JlZGlyZWN0LXRvLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHeEQsTUFBTSxPQUFPLDBCQUEwQjtJQUVuQyxZQUFvQixNQUFjLEVBQWtDLFNBQVM7UUFBekQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFrQyxjQUFTLEdBQVQsU0FBUyxDQUFBO0lBRTdFLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRXJELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFFNUMsSUFBSSxHQUFHLFlBQVksaUJBQWlCLEVBQUU7Z0JBQ2xDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7aUJBQzFDO2FBQ0o7WUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7O1lBdEJKLFVBQVU7OztZQUhILE1BQU07NENBTTJCLE1BQU0sU0FBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0REUl9MT0dJTl9QQVRIfSBmcm9tICcuLi9kZHItZXh0ZW5zaW9ucy5tb2R1bGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RUb0xvZ2luSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JcbntcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBASW5qZWN0KEREUl9MT0dJTl9QQVRIKSBwcml2YXRlIGxvZ2luUGF0aClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG5cbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMubG9naW5QYXRoXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuIl19
@@ -1,26 +0,0 @@
1
- export class UrlInfo {
2
- static parse(urlString) {
3
- const parser = document.createElement('a');
4
- parser.href = urlString;
5
- const urlInfo = new UrlInfo();
6
- urlInfo.protocol = parser.protocol;
7
- urlInfo.host = parser.host;
8
- urlInfo.hostname = parser.hostname;
9
- urlInfo.port = parser.port;
10
- urlInfo.pathname = parser.pathname;
11
- urlInfo.hash = parser.hash;
12
- urlInfo.search = parser.search;
13
- return urlInfo;
14
- }
15
- getRoot() {
16
- let root = this.protocol + '//' + this.hostname;
17
- if (this.port != null && this.port !== '' && this.port !== '80') {
18
- root += ':' + this.port;
19
- }
20
- return root;
21
- }
22
- getUrl() {
23
- return this.getRoot() + this.pathname;
24
- }
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWluZm8uanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvaHR0cC91cmwtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQVVULE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBaUI7UUFFakMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUV4QixNQUFNLE9BQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNuQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDM0IsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMzQixPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDbkMsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzNCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUUvQixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRU0sT0FBTztRQUVWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtZQUM3RCxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDM0I7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTTtRQUVULE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVybEluZm9cbntcbiAgICBwcm90b2NvbDogc3RyaW5nO1xuICAgIGhvc3Q6IHN0cmluZztcbiAgICBob3N0bmFtZTogc3RyaW5nO1xuICAgIHBvcnQ6IHN0cmluZztcbiAgICBwYXRobmFtZTogc3RyaW5nO1xuICAgIGhhc2g6IHN0cmluZztcbiAgICBzZWFyY2g6IHN0cmluZztcblxuICAgIHB1YmxpYyBzdGF0aWMgcGFyc2UodXJsU3RyaW5nOiBzdHJpbmcpOiBVcmxJbmZvXG4gICAge1xuICAgICAgICBjb25zdCBwYXJzZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIHBhcnNlci5ocmVmID0gdXJsU3RyaW5nO1xuXG4gICAgICAgIGNvbnN0IHVybEluZm86IFVybEluZm8gPSBuZXcgVXJsSW5mbygpO1xuICAgICAgICB1cmxJbmZvLnByb3RvY29sID0gcGFyc2VyLnByb3RvY29sO1xuICAgICAgICB1cmxJbmZvLmhvc3QgPSBwYXJzZXIuaG9zdDtcbiAgICAgICAgdXJsSW5mby5ob3N0bmFtZSA9IHBhcnNlci5ob3N0bmFtZTtcbiAgICAgICAgdXJsSW5mby5wb3J0ID0gcGFyc2VyLnBvcnQ7XG4gICAgICAgIHVybEluZm8ucGF0aG5hbWUgPSBwYXJzZXIucGF0aG5hbWU7XG4gICAgICAgIHVybEluZm8uaGFzaCA9IHBhcnNlci5oYXNoO1xuICAgICAgICB1cmxJbmZvLnNlYXJjaCA9IHBhcnNlci5zZWFyY2g7XG5cbiAgICAgICAgcmV0dXJuIHVybEluZm87XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvb3QoKTogc3RyaW5nXG4gICAge1xuICAgICAgICBsZXQgcm9vdCA9IHRoaXMucHJvdG9jb2wgKyAnLy8nICsgdGhpcy5ob3N0bmFtZTtcbiAgICAgICAgaWYgKHRoaXMucG9ydCAhPSBudWxsICYmIHRoaXMucG9ydCAhPT0gJycgJiYgdGhpcy5wb3J0ICE9PSAnODAnKSB7XG4gICAgICAgICAgICByb290ICs9ICc6JyArIHRoaXMucG9ydDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb290O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRVcmwoKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSb290KCkgKyB0aGlzLnBhdGhuYW1lO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- export class WithCredentialsInterceptor {
3
- /**
4
- * @override
5
- */
6
- intercept(req, next) {
7
- const cloned = req.clone({
8
- withCredentials: true
9
- });
10
- return next.handle(cloned);
11
- }
12
- }
13
- WithCredentialsInterceptor.decorators = [
14
- { type: Injectable }
15
- ];
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLyIsInNvdXJjZXMiOlsic3JjL2h0dHAvd2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLekMsTUFBTSxPQUFPLDBCQUEwQjtJQUVuQzs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRXJELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDckIsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7OztZQWJKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV2l0aENyZWRlbnRpYWxzSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JcbntcbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PlxuICAgIHtcbiAgICAgICAgY29uc3QgY2xvbmVkID0gcmVxLmNsb25lKHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoY2xvbmVkKTtcbiAgICB9XG59XG4iXX0=
@@ -1,118 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, Input } from '@angular/core';
3
- import { NumberUtils } from '../util/number-utils';
4
- import { StringUtils } from '../util/string-utils';
5
- import { Debounce } from '../methoddecorator/debounce';
6
- import { Limit } from '../methoddecorator/limit';
7
- export class LazyImageDirective {
8
- constructor(element, changeDetectorRef) {
9
- this.element = element;
10
- this.changeDetectorRef = changeDetectorRef;
11
- this.objectFit = 'contain';
12
- this.offset = 1000;
13
- this.hostSrc = 'assets/placeholder.gif';
14
- this.hostStyleObjectFit = 'contain';
15
- this.displayed = false;
16
- this.maxLoadedDimension = null;
17
- }
18
- windowResized($event) {
19
- this.displayed = false;
20
- this.check();
21
- }
22
- windowScroll($event) {
23
- this.check();
24
- }
25
- /**
26
- * @override
27
- */
28
- ngOnChanges(changes) {
29
- this.displayed = false;
30
- this.maxLoadedDimension = null;
31
- this.check();
32
- }
33
- check() {
34
- if (this.element.nativeElement.parentElement.offsetWidth > 0) {
35
- this.doCheck();
36
- }
37
- else {
38
- setTimeout(() => this.doCheck(), 1);
39
- }
40
- }
41
- doCheck() {
42
- if (this.displayed || this.isHidden(this.element.nativeElement)) {
43
- return;
44
- }
45
- if (this.isInsideViewport(this.element.nativeElement, this.offset)) {
46
- this.displayed = true;
47
- const dimension = this.getDimension();
48
- this.hostStyleWidthPx = dimension.width;
49
- this.hostStyleHeightPx = dimension.height;
50
- if (this.maxLoadedDimension != null
51
- && this.maxLoadedDimension.width >= dimension.width
52
- && this.maxLoadedDimension.height >= dimension.height) {
53
- // console.log('has smaller dimension');
54
- return;
55
- }
56
- this.maxLoadedDimension = dimension;
57
- let wantedSize;
58
- if (this.objectFit === 'cover') {
59
- wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));
60
- this.hostStyleObjectFit = 'cover';
61
- }
62
- else {
63
- wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));
64
- this.hostStyleObjectFit = 'contain';
65
- }
66
- this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));
67
- this.changeDetectorRef.markForCheck();
68
- }
69
- }
70
- isInsideViewport(element, threshold) {
71
- const ownerDocument = element.ownerDocument;
72
- const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;
73
- const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;
74
- const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);
75
- const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);
76
- const topOffset = element.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;
77
- const leftOffset = element.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;
78
- const isBelowViewport = documentHeight + documentTop <= topOffset - threshold;
79
- const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - threshold;
80
- const isAboveViewport = documentTop >= topOffset + threshold + element.offsetHeight;
81
- const isAtLeftOfViewport = documentLeft >= leftOffset + threshold + element.offsetWidth;
82
- return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;
83
- }
84
- getDimension() {
85
- return {
86
- width: this.element.nativeElement.parentElement.offsetWidth,
87
- height: this.element.nativeElement.parentElement.offsetHeight,
88
- };
89
- }
90
- isHidden(element) {
91
- return window.getComputedStyle(element).display === 'none';
92
- }
93
- }
94
- LazyImageDirective.decorators = [
95
- { type: Directive, args: [{ selector: '[ddrLazyImage]' },] }
96
- ];
97
- LazyImageDirective.ctorParameters = () => [
98
- { type: ElementRef },
99
- { type: ChangeDetectorRef }
100
- ];
101
- LazyImageDirective.propDecorators = {
102
- src: [{ type: Input, args: ['ddrLazyImage',] }],
103
- objectFit: [{ type: Input }],
104
- offset: [{ type: Input }],
105
- hostSrc: [{ type: HostBinding, args: ['src',] }],
106
- hostStyleWidthPx: [{ type: HostBinding, args: ['style.width.px',] }],
107
- hostStyleHeightPx: [{ type: HostBinding, args: ['style.height.px',] }],
108
- hostStyleObjectFit: [{ type: HostBinding, args: ['style.object-fit',] }],
109
- windowResized: [{ type: HostListener, args: ['window:resize', ['$event'],] }],
110
- windowScroll: [{ type: HostListener, args: ['window:scroll', ['$event'],] }]
111
- };
112
- __decorate([
113
- Debounce()
114
- ], LazyImageDirective.prototype, "windowResized", null);
115
- __decorate([
116
- Limit()
117
- ], LazyImageDirective.prototype, "windowScroll", null);
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1pbWFnZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvaW1hZ2UvbGF6eS1pbWFnZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFJL0MsTUFBTSxPQUFPLGtCQUFrQjtJQTJCM0IsWUFBb0IsT0FBbUIsRUFBVSxpQkFBb0M7UUFBakUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFyQjlFLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFHdEIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdkLFlBQU8sR0FBRyx3QkFBd0IsQ0FBQztRQVNuQyx1QkFBa0IsR0FBRyxTQUFTLENBQUM7UUFFOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7SUFJbEMsQ0FBQztJQUlNLGFBQWEsQ0FBQyxNQUFhO1FBRTlCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBSU0sWUFBWSxDQUFDLE1BQWE7UUFFN0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFzQjtRQUVyQyxJQUFJLENBQUMsU0FB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OztZQXBJSixTQUFTLFNBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUM7OztZQWJuQyxVQUFVO1lBRlYsaUJBQWlCOzs7a0JBa0JoQixLQUFLLFNBQUMsY0FBYzt3QkFHcEIsS0FBSztxQkFHTCxLQUFLO3NCQUdMLFdBQVcsU0FBQyxLQUFLOytCQUdqQixXQUFXLFNBQUMsZ0JBQWdCO2dDQUc1QixXQUFXLFNBQUMsaUJBQWlCO2lDQUc3QixXQUFXLFNBQUMsa0JBQWtCOzRCQVc5QixZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOzJCQVF4QyxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQU56QztJQURDLFFBQVEsRUFBRTt1REFLVjtBQUlEO0lBREMsS0FBSyxFQUFFO3NEQUlQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge051bWJlclV0aWxzfSBmcm9tICcuLi91dGlsL251bWJlci11dGlscyc7XG5pbXBvcnQge1N0cmluZ1V0aWxzfSBmcm9tICcuLi91dGlsL3N0cmluZy11dGlscyc7XG5pbXBvcnQge0RlYm91bmNlfSBmcm9tICcuLi9tZXRob2RkZWNvcmF0b3IvZGVib3VuY2UnO1xuaW1wb3J0IHtMaW1pdH0gZnJvbSAnLi4vbWV0aG9kZGVjb3JhdG9yL2xpbWl0JztcblxuXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1tkZHJMYXp5SW1hZ2VdJ30pXG5leHBvcnQgY2xhc3MgTGF6eUltYWdlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzXG57XG4gICAgQElucHV0KCdkZHJMYXp5SW1hZ2UnKVxuICAgIHB1YmxpYyBzcmM6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9iamVjdEZpdCA9ICdjb250YWluJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9mZnNldCA9IDEwMDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3NyYycpXG4gICAgcHVibGljIGhvc3RTcmMgPSAnYXNzZXRzL3BsYWNlaG9sZGVyLmdpZic7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgICBwdWJsaWMgaG9zdFN0eWxlV2lkdGhQeDogbnVtYmVyO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKVxuICAgIHB1YmxpYyBob3N0U3R5bGVIZWlnaHRQeDogbnVtYmVyO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5vYmplY3QtZml0JylcbiAgICBwdWJsaWMgaG9zdFN0eWxlT2JqZWN0Rml0ID0gJ2NvbnRhaW4nO1xuXG4gICAgcHJpdmF0ZSBkaXNwbGF5ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbWF4TG9hZGVkRGltZW5zaW9uID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIEBEZWJvdW5jZSgpXG4gICAgcHVibGljIHdpbmRvd1Jlc2l6ZWQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2hlY2soKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgICBATGltaXQoKVxuICAgIHB1YmxpYyB3aW5kb3dTY3JvbGwoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuY2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWF4TG9hZGVkRGltZW5zaW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2soKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmRvQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kb0NoZWNrKCksIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkb0NoZWNrKCk6IHZvaWRcbiAgICB7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXllZCB8fCB0aGlzLmlzSGlkZGVuKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJbnNpZGVWaWV3cG9ydCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5vZmZzZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZCA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBkaW1lbnNpb24gPSB0aGlzLmdldERpbWVuc2lvbigpO1xuICAgICAgICAgICAgdGhpcy5ob3N0U3R5bGVXaWR0aFB4ID0gZGltZW5zaW9uLndpZHRoO1xuICAgICAgICAgICAgdGhpcy5ob3N0U3R5bGVIZWlnaHRQeCA9IGRpbWVuc2lvbi5oZWlnaHQ7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLm1heExvYWRlZERpbWVuc2lvbiAhPSBudWxsXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXhMb2FkZWREaW1lbnNpb24ud2lkdGggPj0gZGltZW5zaW9uLndpZHRoXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXhMb2FkZWREaW1lbnNpb24uaGVpZ2h0ID49IGRpbWVuc2lvbi5oZWlnaHRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdoYXMgc21hbGxlciBkaW1lbnNpb24nKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubWF4TG9hZGVkRGltZW5zaW9uID0gZGltZW5zaW9uO1xuXG4gICAgICAgICAgICBsZXQgd2FudGVkU2l6ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9iamVjdEZpdCA9PT0gJ2NvdmVyJykge1xuICAgICAgICAgICAgICAgIHdhbnRlZFNpemUgPSBOdW1iZXJVdGlscy5nZXROZXh0UG93ZXJPZlR3byhNYXRoLm1heChkaW1lbnNpb24ud2lkdGgsIGRpbWVuc2lvbi5oZWlnaHQpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RTdHlsZU9iamVjdEZpdCA9ICdjb3Zlcic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdhbnRlZFNpemUgPSBOdW1iZXJVdGlscy5nZXROZXh0UG93ZXJPZlR3byhNYXRoLm1pbihkaW1lbnNpb24ud2lkdGgsIGRpbWVuc2lvbi5oZWlnaHQpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RTdHlsZU9iamVjdEZpdCA9ICdjb250YWluJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdFNyYyA9IFN0cmluZ1V0aWxzLnVwZGF0ZVVybFBhcmFtZXRlcih0aGlzLnNyYywgJ3NpemUnLCBTdHJpbmcod2FudGVkU2l6ZSkpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNJbnNpZGVWaWV3cG9ydChlbGVtZW50LCB0aHJlc2hvbGQ6IG51bWJlcik6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50VG9wID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IG93bmVyRG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50TGVmdCA9IHdpbmRvdy5wYWdlWE9mZnNldCB8fCBvd25lckRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDtcblxuICAgICAgICBjb25zdCBkb2N1bWVudFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggfHwgKG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgpO1xuICAgICAgICBjb25zdCBkb2N1bWVudEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCAob3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KTtcbiAgICAgICAgY29uc3QgdG9wT2Zmc2V0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyBkb2N1bWVudFRvcCAtIG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFRvcDtcbiAgICAgICAgY29uc3QgbGVmdE9mZnNldCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCArIGRvY3VtZW50TGVmdCAtIG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudExlZnQ7XG5cbiAgICAgICAgY29uc3QgaXNCZWxvd1ZpZXdwb3J0ID0gZG9jdW1lbnRIZWlnaHQgKyBkb2N1bWVudFRvcCA8PSB0b3BPZmZzZXQgLSB0aHJlc2hvbGQ7XG4gICAgICAgIGNvbnN0IGlzQXRSaWdodE9mVmlld3BvcnQgPSBkb2N1bWVudFdpZHRoICsgd2luZG93LnBhZ2VYT2Zmc2V0IDw9IGxlZnRPZmZzZXQgLSB0aHJlc2hvbGQ7XG4gICAgICAgIGNvbnN0IGlzQWJvdmVWaWV3cG9ydCA9IGRvY3VtZW50VG9wID49IHRvcE9mZnNldCArIHRocmVzaG9sZCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBpc0F0TGVmdE9mVmlld3BvcnQgPSBkb2N1bWVudExlZnQgPj0gbGVmdE9mZnNldCArIHRocmVzaG9sZCArIGVsZW1lbnQub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgcmV0dXJuICFpc0JlbG93Vmlld3BvcnQgJiYgIWlzQWJvdmVWaWV3cG9ydCAmJiAhaXNBdFJpZ2h0T2ZWaWV3cG9ydCAmJiAhaXNBdExlZnRPZlZpZXdwb3J0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGltZW5zaW9uKCk6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzSGlkZGVuKGVsZW1lbnQpOiBib29sZWFuXG4gICAge1xuICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlzcGxheSA9PT0gJ25vbmUnO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,26 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { JwtService } from './jwt.service';
3
- export class JwtInterceptor {
4
- constructor(jwtService) {
5
- this.jwtService = jwtService;
6
- }
7
- /**
8
- * @override
9
- */
10
- intercept(req, next) {
11
- const token = this.jwtService.getToken();
12
- if (null !== token && !this.jwtService.isExpired()) {
13
- req = req.clone({
14
- headers: req.headers.set('Authorization', 'Bearer ' + token)
15
- });
16
- }
17
- return next.handle(req);
18
- }
19
- }
20
- JwtInterceptor.decorators = [
21
- { type: Injectable }
22
- ];
23
- JwtInterceptor.ctorParameters = () => [
24
- { type: JwtService }
25
- ];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvand0L2p3dC1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxNQUFNLE9BQU8sY0FBYztJQUV2QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRTFDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRXJELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFekMsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoRCxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDWixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7O1lBckJKLFVBQVU7OztZQUZILFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtKd3RTZXJ2aWNlfSBmcm9tICcuL2p3dC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEp3dEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBqd3RTZXJ2aWNlOiBKd3RTZXJ2aWNlKVxuICAgIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PlxuICAgIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmp3dFNlcnZpY2UuZ2V0VG9rZW4oKTtcblxuICAgICAgICBpZiAobnVsbCAhPT0gdG9rZW4gJiYgIXRoaXMuand0U2VydmljZS5pc0V4cGlyZWQoKSkge1xuICAgICAgICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB0b2tlbilcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxufVxuIl19
@@ -1,50 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { of } from 'rxjs';
3
- import { Inject, Injectable } from '@angular/core';
4
- import { catchError, map, shareReplay, switchMap } from 'rxjs/operators';
5
- import { JwtService } from './jwt.service';
6
- import { DDR_JWT_REFRESH_TOKEN_URL } from '../ddr-extensions.module';
7
- export class JwtRefreshTokenInterceptor {
8
- constructor(jwtService, httpClient, jwtRefreshTokenUrl) {
9
- this.jwtService = jwtService;
10
- this.httpClient = httpClient;
11
- this.jwtRefreshTokenUrl = jwtRefreshTokenUrl;
12
- }
13
- /**
14
- * @override
15
- */
16
- intercept(req, next) {
17
- if (this.jwtService.isAboutToExpire() && !(req.url === this.jwtRefreshTokenUrl)) {
18
- const refreshToken = this.jwtService.getRefreshToken();
19
- if (null != refreshToken) {
20
- return this.getRefreshTokenRequest(refreshToken).pipe(switchMap(() => next.handle(req)));
21
- }
22
- }
23
- return next.handle(req);
24
- }
25
- getRefreshTokenRequest(refreshToken) {
26
- if (null == this.refreshTokenRequest$) {
27
- const refreshTokenRequest = this.httpClient.post(this.jwtRefreshTokenUrl, { refresh_token: refreshToken }).pipe(map(response => {
28
- this.jwtService.setTokens(response.token, response.refresh_token);
29
- this.refreshTokenRequest$ = null;
30
- return response;
31
- }), catchError(error => {
32
- this.jwtService.clear();
33
- this.refreshTokenRequest$ = null;
34
- return of(null);
35
- }), shareReplay(1));
36
- this.refreshTokenRequest$ = refreshTokenRequest;
37
- return refreshTokenRequest;
38
- }
39
- return this.refreshTokenRequest$;
40
- }
41
- }
42
- JwtRefreshTokenInterceptor.decorators = [
43
- { type: Injectable }
44
- ];
45
- JwtRefreshTokenInterceptor.ctorParameters = () => [
46
- { type: JwtService },
47
- { type: HttpClient },
48
- { type: String, decorators: [{ type: Inject, args: [DDR_JWT_REFRESH_TOKEN_URL,] }] }
49
- ];
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8iLCJzb3VyY2VzIjpbInNyYy9qd3Qvand0LXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQ3RHLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHbkUsTUFBTSxPQUFPLDBCQUEwQjtJQUluQyxZQUNZLFVBQXNCLEVBQ3RCLFVBQXNCLEVBQ2Esa0JBQTBCO1FBRjdELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNhLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtJQUd6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDN0UsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2RCxJQUFJLElBQUksSUFBSSxZQUFZLEVBQUU7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDakQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDcEMsQ0FBQzthQUNMO1NBQ0o7UUFHRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQW9CO1FBRS9DLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUVuQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFtQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztnQkFDakMsT0FBTyxRQUFRLENBQUM7WUFDcEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztZQUNGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztZQUNoRCxPQUFPLG1CQUFtQixDQUFDO1NBQzlCO1FBRUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQzs7O1lBckRKLFVBQVU7OztZQUhILFVBQVU7WUFMVixVQUFVO3lDQWdCVCxNQUFNLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0p3dFRva2VuUmVzcG9uc2V9IGZyb20gJy4vand0LXRva2VuLXJlc3BvbnNlJztcbmltcG9ydCB7Snd0U2VydmljZX0gZnJvbSAnLi9qd3Quc2VydmljZSc7XG5pbXBvcnQge0REUl9KV1RfUkVGUkVTSF9UT0tFTl9VUkx9IGZyb20gJy4uL2Rkci1leHRlbnNpb25zLm1vZHVsZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKd3RSZWZyZXNoVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvclxue1xuICAgIHByaXZhdGUgcmVmcmVzaFRva2VuUmVxdWVzdCQ6IE9ic2VydmFibGU8Snd0VG9rZW5SZXNwb25zZT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBqd3RTZXJ2aWNlOiBKd3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIEBJbmplY3QoRERSX0pXVF9SRUZSRVNIX1RPS0VOX1VSTCkgcHJpdmF0ZSBqd3RSZWZyZXNoVG9rZW5Vcmw6IHN0cmluZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIGlmICh0aGlzLmp3dFNlcnZpY2UuaXNBYm91dFRvRXhwaXJlKCkgJiYgIShyZXEudXJsID09PSB0aGlzLmp3dFJlZnJlc2hUb2tlblVybCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuand0U2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgICAgIGlmIChudWxsICE9IHJlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFJlZnJlc2hUb2tlblJlcXVlc3QocmVmcmVzaFRva2VuKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbmV4dC5oYW5kbGUocmVxKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlblJlcXVlc3QocmVmcmVzaFRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEp3dFRva2VuUmVzcG9uc2U+XG4gICAge1xuICAgICAgICBpZiAobnVsbCA9PSB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlblJlcXVlc3QgPSB0aGlzLmh0dHBDbGllbnQucG9zdDxKd3RUb2tlblJlc3BvbnNlPih0aGlzLmp3dFJlZnJlc2hUb2tlblVybCwge3JlZnJlc2hfdG9rZW46IHJlZnJlc2hUb2tlbn0pLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qd3RTZXJ2aWNlLnNldFRva2VucyhyZXNwb25zZS50b2tlbiwgcmVzcG9uc2UucmVmcmVzaF90b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuand0U2VydmljZS5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IHJlZnJlc2hUb2tlblJlcXVlc3Q7XG4gICAgICAgICAgICByZXR1cm4gcmVmcmVzaFRva2VuUmVxdWVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXRva2VuLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLyIsInNvdXJjZXMiOlsic3JjL2p3dC9qd3QtdG9rZW4tcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSnd0VG9rZW5SZXNwb25zZVxue1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xufVxuIl19
@@ -1,73 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { DDR_STORAGE_PREFIX } from '../ddr-extensions.module';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../ddr-extensions.module";
5
- export class JwtService {
6
- constructor(storagePrefix) {
7
- this.storagePrefix = storagePrefix;
8
- }
9
- /**
10
- * Sets the current token and a refresh token.
11
- */
12
- setTokens(token, refreshToken) {
13
- this.setToken(token);
14
- localStorage.setItem(this.getRefreshTokenStorageKey(), refreshToken);
15
- }
16
- /**
17
- * Sets the current token.
18
- */
19
- setToken(token) {
20
- this.token = token;
21
- const decodedToken = JSON.parse(atob(token.split('.')[1]));
22
- this.tokenExpiry = decodedToken.exp * 1000;
23
- console.log('New refresh token, expiry', new Date(this.tokenExpiry));
24
- }
25
- /**
26
- * Gets the current token.
27
- */
28
- getToken() {
29
- return this.token;
30
- }
31
- /**
32
- * Gets the refresh token.
33
- */
34
- getRefreshToken() {
35
- return localStorage.getItem(this.getRefreshTokenStorageKey());
36
- }
37
- /**
38
- * Checks if the current token expired.
39
- */
40
- isExpired() {
41
- const now = new Date().getTime();
42
- return null == this.tokenExpiry || this.tokenExpiry < now;
43
- }
44
- /**
45
- * Checks if the current token is about to expire.
46
- * @param expiryMs
47
- */
48
- isAboutToExpire(expiryMs = 60000) {
49
- const now = new Date().getTime();
50
- return null == this.tokenExpiry || this.tokenExpiry - expiryMs < now;
51
- }
52
- /**
53
- * Clears all token information.
54
- */
55
- clear() {
56
- this.token = null;
57
- this.tokenExpiry = null;
58
- localStorage.removeItem(this.getRefreshTokenStorageKey());
59
- }
60
- getRefreshTokenStorageKey() {
61
- return this.storagePrefix + '.jwt.refresh_token';
62
- }
63
- }
64
- JwtService.ɵprov = i0.ɵɵdefineInjectable({ factory: function JwtService_Factory() { return new JwtService(i0.ɵɵinject(i1.DDR_STORAGE_PREFIX)); }, token: JwtService, providedIn: "root" });
65
- JwtService.decorators = [
66
- { type: Injectable, args: [{
67
- providedIn: 'root'
68
- },] }
69
- ];
70
- JwtService.ctorParameters = () => [
71
- { type: String, decorators: [{ type: Inject, args: [DDR_STORAGE_PREFIX,] }] }
72
- ];
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvand0L2p3dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7QUFLNUQsTUFBTSxPQUFPLFVBQVU7SUFZbkIsWUFBZ0QsYUFBcUI7UUFBckIsa0JBQWEsR0FBYixhQUFhLENBQVE7SUFFckUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEtBQWEsRUFBRSxZQUFvQjtRQUVoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEtBQWE7UUFFekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFFWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZTtRQUVsQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBRVosTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsV0FBbUIsS0FBSztRQUUzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFFUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLHlCQUF5QjtRQUU3QixPQUFPLElBQUksQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUM7SUFDckQsQ0FBQzs7OztZQXZGSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozt5Q0FhZ0IsTUFBTSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RERSX1NUT1JBR0VfUFJFRklYfSBmcm9tICcuLi9kZHItZXh0ZW5zaW9ucy5tb2R1bGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEp3dFNlcnZpY2VcbntcbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHRva2VuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGV4cGlyeSBvZiB0aGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHRva2VuRXhwaXJ5O1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChERFJfU1RPUkFHRV9QUkVGSVgpIHByaXZhdGUgc3RvcmFnZVByZWZpeDogc3RyaW5nKVxuICAgIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHRva2VuIGFuZCBhIHJlZnJlc2ggdG9rZW4uXG4gICAgICovXG4gICAgcHVibGljIHNldFRva2Vucyh0b2tlbjogc3RyaW5nLCByZWZyZXNoVG9rZW46IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuc2V0VG9rZW4odG9rZW4pO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldFJlZnJlc2hUb2tlblN0b3JhZ2VLZXkoKSwgcmVmcmVzaFRva2VuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuO1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBKU09OLnBhcnNlKGF0b2IodG9rZW4uc3BsaXQoJy4nKVsxXSkpO1xuICAgICAgICB0aGlzLnRva2VuRXhwaXJ5ID0gZGVjb2RlZFRva2VuLmV4cCAqIDEwMDA7XG4gICAgICAgIGNvbnNvbGUubG9nKCdOZXcgcmVmcmVzaCB0b2tlbiwgZXhwaXJ5JywgbmV3IERhdGUodGhpcy50b2tlbkV4cGlyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQgdG9rZW4uXG4gICAgICovXG4gICAgcHVibGljIGdldFRva2VuKCk6IHN0cmluZyB8IG51bGxcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2VuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHJlZnJlc2ggdG9rZW4uXG4gICAgICovXG4gICAgcHVibGljIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5nZXRSZWZyZXNoVG9rZW5TdG9yYWdlS2V5KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCB0b2tlbiBleHBpcmVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0V4cGlyZWQoKTogYm9vbGVhblxuICAgIHtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiBudWxsID09IHRoaXMudG9rZW5FeHBpcnkgfHwgdGhpcy50b2tlbkV4cGlyeSA8IG5vdztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgdG9rZW4gaXMgYWJvdXQgdG8gZXhwaXJlLlxuICAgICAqIEBwYXJhbSBleHBpcnlNc1xuICAgICAqL1xuICAgIHB1YmxpYyBpc0Fib3V0VG9FeHBpcmUoZXhwaXJ5TXM6IG51bWJlciA9IDYwMDAwKTogYm9vbGVhblxuICAgIHtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiBudWxsID09IHRoaXMudG9rZW5FeHBpcnkgfHwgdGhpcy50b2tlbkV4cGlyeSAtIGV4cGlyeU1zIDwgbm93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgdG9rZW4gaW5mb3JtYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMudG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLnRva2VuRXhwaXJ5ID0gbnVsbDtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRSZWZyZXNoVG9rZW5TdG9yYWdlS2V5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVmcmVzaFRva2VuU3RvcmFnZUtleSgpOiBzdHJpbmdcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VQcmVmaXggKyAnLmp3dC5yZWZyZXNoX3Rva2VuJztcbiAgICB9XG59XG4iXX0=
@@ -1,12 +0,0 @@
1
- export function Debounce(delay = 250) {
2
- return (target, propertyKey, descriptor) => {
3
- const original = descriptor.value;
4
- const key = `__timeout__${propertyKey}`;
5
- descriptor.value = function (...args) {
6
- clearTimeout(this[key]);
7
- this[key] = setTimeout(() => original.apply(this, args), delay);
8
- };
9
- return descriptor;
10
- };
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvbWV0aG9kZGVjb3JhdG9yL2RlYm91bmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxRQUFRLENBQUMsUUFBZ0IsR0FBRztJQUV4QyxPQUFPLENBQUMsTUFBVyxFQUFFLFdBQW1CLEVBQUUsVUFBOEIsRUFBRSxFQUFFO1FBRXhFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDbEMsTUFBTSxHQUFHLEdBQUcsY0FBYyxXQUFXLEVBQUUsQ0FBQztRQUV4QyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxJQUFJO1lBQ2hDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gRGVib3VuY2UoZGVsYXk6IG51bWJlciA9IDI1MCk6IE1ldGhvZERlY29yYXRvclxue1xuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgY29uc3Qga2V5ID0gYF9fdGltZW91dF9fJHtwcm9wZXJ0eUtleX1gO1xuXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXNba2V5XSk7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBzZXRUaW1lb3V0KCgpID0+IG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3MpLCBkZWxheSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfTtcbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- export function Limit(rate = 250) {
2
- return (target, propertyKey, descriptor) => {
3
- const original = descriptor.value;
4
- const key = `__timeout__${propertyKey}`;
5
- descriptor.value = function (...args) {
6
- if (null == this[key]) {
7
- this[key] = setTimeout(() => {
8
- original.apply(this, args);
9
- delete this[key];
10
- }, rate);
11
- }
12
- };
13
- return descriptor;
14
- };
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltaXQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvbWV0aG9kZGVjb3JhdG9yL2xpbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBZSxHQUFHO0lBRXBDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBRSxVQUE4QixFQUFFLEVBQUU7UUFDeEUsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxjQUFjLFdBQVcsRUFBRSxDQUFDO1FBRXhDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLElBQUk7WUFDaEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDeEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzNCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDWjtRQUNMLENBQUMsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gTGltaXQocmF0ZTogbnVtYmVyID0gMjUwKTogTWV0aG9kRGVjb3JhdG9yXG57XG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZywgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgY29uc3Qga2V5ID0gYF9fdGltZW91dF9fJHtwcm9wZXJ0eUtleX1gO1xuXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgaWYgKG51bGwgPT0gdGhpc1trZXldKSB7XG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpc1trZXldO1xuICAgICAgICAgICAgICAgIH0sIHJhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH07XG59XG4iXX0=