@dontdrinkandroot/ngx-extensions 0.3.2 → 0.5.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 (61) hide show
  1. package/esm2022/src/cookie/cookie.service.mjs +135 -0
  2. package/esm2022/src/ddr-extensions.module.mjs +67 -0
  3. package/esm2022/src/http/redirect-to-login-interceptor.service.mjs +35 -0
  4. package/{esm2020 → esm2022}/src/http/with-credentials-interceptor.service.mjs +4 -4
  5. package/esm2022/src/image/lazy-image.directive.mjs +132 -0
  6. package/esm2022/src/jwt/jwt-interceptor.service.mjs +26 -0
  7. package/esm2022/src/jwt/jwt-refresh-token-interceptor.service.mjs +50 -0
  8. package/{esm2020 → esm2022}/src/jwt/jwt.service.mjs +5 -5
  9. package/esm2022/src/logger/console-logger.service.mjs +43 -0
  10. package/esm2022/src/methoddecorator/limit.mjs +16 -0
  11. package/esm2022/src/oauth/oauth2-access-token-interceptor.service.mjs +26 -0
  12. package/esm2022/src/oauth/oauth2-error.mjs +8 -0
  13. package/esm2022/src/oauth/oauth2-refresh-token-interceptor.service.mjs +24 -0
  14. package/{esm2020 → esm2022}/src/oauth/oauth2.module.mjs +5 -5
  15. package/esm2022/src/oauth/oauth2.service.mjs +125 -0
  16. package/esm2022/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +41 -0
  17. package/esm2022/src/scroll/bottom-hit.directive.mjs +60 -0
  18. package/esm2022/src/scroll/scroll.service.mjs +38 -0
  19. package/esm2022/src/storage/local-storage.service.mjs +53 -0
  20. package/esm2022/src/util/collection-utils.mjs +27 -0
  21. package/{esm2020 → esm2022}/src/util/number-utils.mjs +1 -1
  22. package/esm2022/src/util/string-utils.mjs +35 -0
  23. package/esm2022/src/util/type-utils.mjs +9 -0
  24. package/{esm2020 → esm2022}/src/visibility/visibility.service.mjs +5 -5
  25. package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-extensions.mjs +102 -100
  26. package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-extensions.mjs.map +1 -1
  27. package/package.json +9 -15
  28. package/src/image/lazy-image.directive.d.ts +1 -1
  29. package/esm2020/src/cookie/cookie.service.mjs +0 -135
  30. package/esm2020/src/ddr-extensions.module.mjs +0 -67
  31. package/esm2020/src/http/redirect-to-login-interceptor.service.mjs +0 -35
  32. package/esm2020/src/image/lazy-image.directive.mjs +0 -132
  33. package/esm2020/src/jwt/jwt-interceptor.service.mjs +0 -26
  34. package/esm2020/src/jwt/jwt-refresh-token-interceptor.service.mjs +0 -50
  35. package/esm2020/src/logger/console-logger.service.mjs +0 -43
  36. package/esm2020/src/methoddecorator/limit.mjs +0 -16
  37. package/esm2020/src/oauth/oauth2-access-token-interceptor.service.mjs +0 -26
  38. package/esm2020/src/oauth/oauth2-error.mjs +0 -8
  39. package/esm2020/src/oauth/oauth2-refresh-token-interceptor.service.mjs +0 -24
  40. package/esm2020/src/oauth/oauth2.service.mjs +0 -125
  41. package/esm2020/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +0 -41
  42. package/esm2020/src/scroll/bottom-hit.directive.mjs +0 -60
  43. package/esm2020/src/scroll/scroll.service.mjs +0 -38
  44. package/esm2020/src/storage/local-storage.service.mjs +0 -53
  45. package/esm2020/src/util/collection-utils.mjs +0 -27
  46. package/esm2020/src/util/string-utils.mjs +0 -35
  47. package/esm2020/src/util/type-utils.mjs +0 -9
  48. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs +0 -1132
  49. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs.map +0 -1
  50. /package/{esm2020 → esm2022}/dontdrinkandroot-ngx-extensions.mjs +0 -0
  51. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  52. /package/{esm2020 → esm2022}/src/http/url-info.mjs +0 -0
  53. /package/{esm2020 → esm2022}/src/jwt/jwt-token-response.mjs +0 -0
  54. /package/{esm2020 → esm2022}/src/logger/logger.service.mjs +0 -0
  55. /package/{esm2020 → esm2022}/src/methoddecorator/debounce.mjs +0 -0
  56. /package/{esm2020 → esm2022}/src/oauth/json-web-token.mjs +0 -0
  57. /package/{esm2020 → esm2022}/src/oauth/oauth2-config.mjs +0 -0
  58. /package/{esm2020 → esm2022}/src/oauth/token-response.mjs +0 -0
  59. /package/{esm2020 → esm2022}/src/storage/storage.service.mjs +0 -0
  60. /package/{esm2020 → esm2022}/src/typeguard/is-non-null.mjs +0 -0
  61. /package/{esm2020 → esm2022}/src/util/object-utils.mjs +0 -0
@@ -0,0 +1,135 @@
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
+ export class CookieService {
8
+ constructor(document) {
9
+ this.document = document;
10
+ // To avoid issues with server side prerendering, check if `document` is defined.
11
+ this.documentIsAccessible = document !== undefined;
12
+ }
13
+ /**
14
+ * @param name Cookie name
15
+ */
16
+ check(name) {
17
+ if (!this.documentIsAccessible) {
18
+ return false;
19
+ }
20
+ name = encodeURIComponent(name);
21
+ const regExp = this.getCookieRegExp(name);
22
+ return regExp.test(this.document.cookie);
23
+ }
24
+ /**
25
+ * @param name Cookie name
26
+ */
27
+ get(name) {
28
+ if (this.documentIsAccessible && this.check(name)) {
29
+ name = encodeURIComponent(name);
30
+ const regExp = this.getCookieRegExp(name);
31
+ const result = regExp.exec(this.document.cookie);
32
+ if (null == result)
33
+ return '';
34
+ return decodeURIComponent(result[1]);
35
+ }
36
+ else {
37
+ return '';
38
+ }
39
+ }
40
+ getAll() {
41
+ if (!this.documentIsAccessible) {
42
+ return {};
43
+ }
44
+ const cookies = {};
45
+ const document = this.document;
46
+ if (document.cookie && document.cookie !== '') {
47
+ const split = document.cookie.split(';');
48
+ for (let i = 0; i < split.length; i += 1) {
49
+ const currentCookie = split[i].split('=');
50
+ currentCookie[0] = currentCookie[0].replace(/^ /, '');
51
+ // @ts-ignore
52
+ cookies[decodeURIComponent(currentCookie[0])] = decodeURIComponent(currentCookie[1]);
53
+ }
54
+ }
55
+ return cookies;
56
+ }
57
+ /**
58
+ * @param name Cookie name
59
+ * @param value Cookie value
60
+ * @param expires Number of days until the cookies expires or an actual `Date`
61
+ * @param path Cookie path
62
+ * @param domain Cookie domain
63
+ * @param secure Secure flag
64
+ */
65
+ set(name, value, expires, path, domain, secure) {
66
+ if (!this.documentIsAccessible) {
67
+ return;
68
+ }
69
+ let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';
70
+ if (expires) {
71
+ if (typeof expires === 'number') {
72
+ const dateExpires = new Date(new Date().getTime() + expires * 1000 * 60 * 60 * 24);
73
+ cookieString += 'expires=' + dateExpires.toUTCString() + ';';
74
+ }
75
+ else {
76
+ cookieString += 'expires=' + expires.toUTCString() + ';';
77
+ }
78
+ }
79
+ if (path) {
80
+ cookieString += 'path=' + path + ';';
81
+ }
82
+ if (domain) {
83
+ cookieString += 'domain=' + domain + ';';
84
+ }
85
+ if (secure) {
86
+ cookieString += 'secure;';
87
+ }
88
+ this.document.cookie = cookieString;
89
+ }
90
+ /**
91
+ * @param name Cookie name
92
+ * @param path Cookie path
93
+ * @param domain Cookie domain
94
+ */
95
+ delete(name, path, domain) {
96
+ if (!this.documentIsAccessible) {
97
+ return;
98
+ }
99
+ this.set(name, '', -1, path, domain);
100
+ }
101
+ /**
102
+ * @param path Cookie path
103
+ * @param domain Cookie domain
104
+ */
105
+ deleteAll(path, domain) {
106
+ if (!this.documentIsAccessible) {
107
+ return;
108
+ }
109
+ const cookies = this.getAll();
110
+ for (const cookieName in cookies) {
111
+ if (cookies.hasOwnProperty(cookieName)) {
112
+ this.delete(cookieName, path, domain);
113
+ }
114
+ }
115
+ }
116
+ /**
117
+ * @param name Cookie name
118
+ */
119
+ getCookieRegExp(name) {
120
+ const escapedName = name.replace(/([\[\]{}()|=;+?,.*^$])/ig, '\\$1');
121
+ return new RegExp('(?:^' + escapedName + '|;\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');
122
+ }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CookieService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
124
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CookieService, providedIn: 'root' }); }
125
+ }
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CookieService, decorators: [{
127
+ type: Injectable,
128
+ args: [{
129
+ providedIn: 'root'
130
+ }]
131
+ }], ctorParameters: () => [{ type: Document, decorators: [{
132
+ type: Inject,
133
+ args: [DOCUMENT]
134
+ }] }] });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29va2llL2Nvb2tpZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJGQUEyRjtBQUMzRiwyRkFBMkY7QUFDM0YsZ0RBQWdEO0FBRWhELE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLGFBQWE7SUFJdEIsWUFDOEIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUc1QyxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsS0FBSyxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQVk7UUFFZCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDN0IsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoQyxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxJQUFZO1FBRVosSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLE1BQU0sTUFB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b3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHNlcnZpY2UgaXMgYmFzZWQgb24gdGhlIGBuZzItY29va2llc2AgcGFja2FnZSB3aGljaCBzYWRseSBpcyBub3QgYSBzZXJ2aWNlIGFuZCBkb2VzXG4vLyBub3QgdXNlIGBET0NVTUVOVGAgaW5qZWN0aW9uIGFuZCB0aGVyZWZvcmUgZG9lc24ndCB3b3JrIHdlbGwgd2l0aCBBb1QgcHJvZHVjdGlvbiBidWlsZHMuXG4vLyBQYWNrYWdlOiBodHRwczovL2dpdGh1Yi5jb20vQkNKVEkvbmcyLWNvb2tpZXNcblxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlXG57XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudElzQWNjZXNzaWJsZTogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICAgIClcbiAgICB7XG4gICAgICAgIC8vIFRvIGF2b2lkIGlzc3VlcyB3aXRoIHNlcnZlciBzaWRlIHByZXJlbmRlcmluZywgY2hlY2sgaWYgYGRvY3VtZW50YCBpcyBkZWZpbmVkLlxuICAgICAgICB0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlID0gZG9jdW1lbnQgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmFtZSBDb29raWUgbmFtZVxuICAgICAqL1xuICAgIGNoZWNrKG5hbWU6IHN0cmluZyk6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTtcblxuICAgICAgICBjb25zdCByZWdFeHA6IFJlZ0V4cCA9IHRoaXMuZ2V0Q29va2llUmVnRXhwKG5hbWUpO1xuICAgICAgICByZXR1cm4gcmVnRXhwLnRlc3QodGhpcy5kb2N1bWVudC5jb29raWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXG4gICAgICovXG4gICAgZ2V0KG5hbWU6IHN0cmluZyk6IHN0cmluZ1xuICAgIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUgJiYgdGhpcy5jaGVjayhuYW1lKSkge1xuICAgICAgICAgICAgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTtcblxuICAgICAgICAgICAgY29uc3QgcmVnRXhwID0gdGhpcy5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSByZWdFeHAuZXhlYyh0aGlzLmRvY3VtZW50LmNvb2tpZSk7XG4gICAgICAgICAgICBpZiAobnVsbCA9PSByZXN1bHQpIHJldHVybiAnJ1xuXG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdFsxXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRBbGwoKToge31cbiAgICB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29va2llczoge30gPSB7fTtcbiAgICAgICAgY29uc3QgZG9jdW1lbnQ6IGFueSA9IHRoaXMuZG9jdW1lbnQ7XG5cbiAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAmJiBkb2N1bWVudC5jb29raWUgIT09ICcnKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdDogQXJyYXk8c3RyaW5nPiA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvb2tpZTogQXJyYXk8c3RyaW5nPiA9IHNwbGl0W2ldLnNwbGl0KCc9Jyk7XG5cbiAgICAgICAgICAgICAgICBjdXJyZW50Q29va2llWzBdID0gY3VycmVudENvb2tpZVswXS5yZXBsYWNlKC9eIC8sICcnKTtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgY29va2llc1tkZWNvZGVVUklDb21wb25lbnQoY3VycmVudENvb2tpZVswXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KGN1cnJlbnRDb29raWVbMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvb2tpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgICAgQ29va2llIG5hbWVcbiAgICAgKiBAcGFyYW0gdmFsdWUgICBDb29raWUgdmFsdWVcbiAgICAgKiBAcGFyYW0gZXhwaXJlcyBOdW1iZXIgb2YgZGF5cyB1bnRpbCB0aGUgY29va2llcyBleHBpcmVzIG9yIGFuIGFjdHVhbCBgRGF0ZWBcbiAgICAgKiBAcGFyYW0gcGF0aCAgICBDb29raWUgcGF0aFxuICAgICAqIEBwYXJhbSBkb21haW4gIENvb2tpZSBkb21haW5cbiAgICAgKiBAcGFyYW0gc2VjdXJlICBTZWN1cmUgZmxhZ1xuICAgICAqL1xuICAgIHNldChcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICBleHBpcmVzPzogbnVtYmVyIHwgRGF0ZSxcbiAgICAgICAgcGF0aD86IHN0cmluZyxcbiAgICAgICAgZG9tYWluPzogc3RyaW5nLFxuICAgICAgICBzZWN1cmU/OiBib29sZWFuXG4gICAgKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29va2llU3RyaW5nOiBzdHJpbmcgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpICsgJzsnO1xuXG4gICAgICAgIGlmIChleHBpcmVzKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4cGlyZXMgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZUV4cGlyZXM6IERhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGV4cGlyZXMgKiAxMDAwICogNjAgKiA2MCAqIDI0KTtcblxuICAgICAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZGF0ZUV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBleHBpcmVzLnRvVVRDU3RyaW5nKCkgKyAnOyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgY29va2llU3RyaW5nICs9ICdwYXRoPScgKyBwYXRoICsgJzsnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRvbWFpbikge1xuICAgICAgICAgICAgY29va2llU3RyaW5nICs9ICdkb21haW49JyArIGRvbWFpbiArICc7JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWN1cmUpIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnc2VjdXJlOyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZVN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmFtZSAgIENvb2tpZSBuYW1lXG4gICAgICogQHBhcmFtIHBhdGggICBDb29raWUgcGF0aFxuICAgICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgICAqL1xuICAgIGRlbGV0ZShuYW1lOiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXQobmFtZSwgJycsIC0xLCBwYXRoLCBkb21haW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBwYXRoICAgQ29va2llIHBhdGhcbiAgICAgKiBAcGFyYW0gZG9tYWluIENvb2tpZSBkb21haW5cbiAgICAgKi9cbiAgICBkZWxldGVBbGwocGF0aD86IHN0cmluZywgZG9tYWluPzogc3RyaW5nKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb29raWVzOiBhbnkgPSB0aGlzLmdldEFsbCgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgY29va2llTmFtZSBpbiBjb29raWVzKSB7XG4gICAgICAgICAgICBpZiAoY29va2llcy5oYXNPd25Qcm9wZXJ0eShjb29raWVOYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlKGNvb2tpZU5hbWUsIHBhdGgsIGRvbWFpbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmFtZSBDb29raWUgbmFtZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q29va2llUmVnRXhwKG5hbWU6IHN0cmluZyk6IFJlZ0V4cFxuICAgIHtcbiAgICAgICAgY29uc3QgZXNjYXBlZE5hbWU6IHN0cmluZyA9IG5hbWUucmVwbGFjZSgvKFtcXFtcXF17fSgpfD07Kz8sLipeJF0pL2lnLCAnXFxcXCQxJyk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/Ol4nICsgZXNjYXBlZE5hbWUgKyAnfDtcXFxccyonICsgZXNjYXBlZE5hbWUgKyAnKT0oLio/KSg/Ojt8JCknLCAnZycpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { InjectionToken, NgModule } from '@angular/core';
2
+ import { LazyImageDirective } from './image/lazy-image.directive';
3
+ import { BottomHitDirective } from './scroll/bottom-hit.directive';
4
+ import { Logger } from './logger/logger.service';
5
+ import { ConsoleLogger } from './logger/console-logger.service';
6
+ import { DDR_STORAGE_PREFIX, StorageService } from './storage/storage.service';
7
+ import { LocalStorageService } from './storage/local-storage.service';
8
+ import * as i0 from "@angular/core";
9
+ export const DDR_JWT_REFRESH_TOKEN_URL = new InjectionToken('DDR_JWT_REFRESH_TOKEN_URL');
10
+ export const DDR_LOGIN_PATH = new InjectionToken('DDR_LOGIN_PATH');
11
+ export class DdrExtensionsModule {
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: DdrExtensionsModule, declarations: [LazyImageDirective,
14
+ BottomHitDirective], exports: [LazyImageDirective,
15
+ BottomHitDirective] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrExtensionsModule, providers: [
17
+ {
18
+ provide: DDR_LOGIN_PATH,
19
+ useValue: '/login'
20
+ },
21
+ {
22
+ provide: Logger,
23
+ useClass: ConsoleLogger
24
+ },
25
+ {
26
+ provide: DDR_STORAGE_PREFIX,
27
+ useValue: 'ddr'
28
+ },
29
+ {
30
+ provide: StorageService,
31
+ useClass: LocalStorageService
32
+ },
33
+ ] }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DdrExtensionsModule, decorators: [{
36
+ type: NgModule,
37
+ args: [{
38
+ declarations: [
39
+ LazyImageDirective,
40
+ BottomHitDirective
41
+ ],
42
+ imports: [],
43
+ providers: [
44
+ {
45
+ provide: DDR_LOGIN_PATH,
46
+ useValue: '/login'
47
+ },
48
+ {
49
+ provide: Logger,
50
+ useClass: ConsoleLogger
51
+ },
52
+ {
53
+ provide: DDR_STORAGE_PREFIX,
54
+ useValue: 'ddr'
55
+ },
56
+ {
57
+ provide: StorageService,
58
+ useClass: LocalStorageService
59
+ },
60
+ ],
61
+ exports: [
62
+ LazyImageDirective,
63
+ BottomHitDirective
64
+ ]
65
+ }]
66
+ }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rkci1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFFcEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQVMsMkJBQTJCLENBQUMsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztBQStCM0UsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBM0J4QixrQkFBa0I7WUFDbEIsa0JBQWtCLGFBc0JsQixrQkFBa0I7WUFDbEIsa0JBQWtCOytHQUdiLG1CQUFtQixhQXZCakI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsY0FBYztnQkFDdkIsUUFBUSxFQUFFLFFBQVE7YUFDckI7WUFDRDtnQkFDSSxPQUFPLEVBQUUsTUFBTTtnQkFDZixRQUFRLEVBQUUsYUFBYTthQUMxQjtZQUNEO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFFBQVEsRUFBRSxLQUFLO2FBQ2xCO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFFBQVEsRUFBRSxtQkFBbUI7YUFDaEM7U0FDSjs7MkZBTVEsbUJBQW1CO2tCQTdCL0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysa0JBQWtCO3dCQUNsQixrQkFBa0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsUUFBUSxFQUFFLFFBQVE7eUJBQ3JCO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxNQUFNOzRCQUNmLFFBQVEsRUFBRSxhQUFhO3lCQUMxQjt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixRQUFRLEVBQUUsS0FBSzt5QkFDbEI7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFFBQVEsRUFBRSxtQkFBbUI7eUJBQ2hDO3FCQUNKO29CQUNELE9BQU8sRUFBRTt3QkFDTCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjtxQkFDckI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VuLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xhenlJbWFnZURpcmVjdGl2ZX0gZnJvbSAnLi9pbWFnZS9sYXp5LWltYWdlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JvdHRvbUhpdERpcmVjdGl2ZX0gZnJvbSAnLi9zY3JvbGwvYm90dG9tLWhpdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4vbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29uc29sZUxvZ2dlcn0gZnJvbSAnLi9sb2dnZXIvY29uc29sZS1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0REUl9TVE9SQUdFX1BSRUZJWCwgU3RvcmFnZVNlcnZpY2V9IGZyb20gJy4vc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlfSBmcm9tICcuL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEREUl9KV1RfUkVGUkVTSF9UT0tFTl9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRERSX0pXVF9SRUZSRVNIX1RPS0VOX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgRERSX0xPR0lOX1BBVEggPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRERSX0xPR0lOX1BBVEgnKTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTGF6eUltYWdlRGlyZWN0aXZlLFxuICAgICAgICBCb3R0b21IaXREaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBERFJfTE9HSU5fUEFUSCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiAnL2xvZ2luJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMb2dnZXIsXG4gICAgICAgICAgICB1c2VDbGFzczogQ29uc29sZUxvZ2dlclxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBERFJfU1RPUkFHRV9QUkVGSVgsXG4gICAgICAgICAgICB1c2VWYWx1ZTogJ2RkcidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgICAgICB1c2VDbGFzczogTG9jYWxTdG9yYWdlU2VydmljZVxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBMYXp5SW1hZ2VEaXJlY3RpdmUsXG4gICAgICAgIEJvdHRvbUhpdERpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGRyRXh0ZW5zaW9uc01vZHVsZVxue1xufVxuIl19
@@ -0,0 +1,35 @@
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 { DDR_LOGIN_PATH } from '../ddr-extensions.module';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ export class RedirectToLoginInterceptor {
9
+ constructor(router, loginPath) {
10
+ this.router = router;
11
+ this.loginPath = loginPath;
12
+ }
13
+ /**
14
+ * @override
15
+ */
16
+ intercept(req, next) {
17
+ return next.handle(req).pipe(catchError((err) => {
18
+ if (err instanceof HttpErrorResponse) {
19
+ if (err.status === 401) {
20
+ this.router.navigate([this.loginPath]);
21
+ }
22
+ }
23
+ return throwError(err);
24
+ }));
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: RedirectToLoginInterceptor, deps: [{ token: i1.Router }, { token: DDR_LOGIN_PATH }], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: RedirectToLoginInterceptor }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: RedirectToLoginInterceptor, decorators: [{
30
+ type: Injectable
31
+ }], ctorParameters: () => [{ type: i1.Router }, { type: undefined, decorators: [{
32
+ type: Inject,
33
+ args: [DDR_LOGIN_PATH]
34
+ }] }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tbG9naW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9odHRwL3JlZGlyZWN0LXRvLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBR3hELE1BQU0sT0FBTywwQkFBMEI7SUFFbkMsWUFBb0IsTUFBYyxFQUFrQyxTQUFpQjtRQUFqRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQWtDLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFckYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFckQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUU1QyxJQUFJLEdBQUcsWUFBWSxpQkFBaUIsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7OEdBckJRLDBCQUEwQix3Q0FFUyxjQUFjO2tIQUZqRCwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVU7OzBCQUc4QixNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RERSX0xPR0lOX1BBVEh9IGZyb20gJy4uL2Rkci1leHRlbnNpb25zLm1vZHVsZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWRpcmVjdFRvTG9naW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvclxue1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIEBJbmplY3QoRERSX0xPR0lOX1BBVEgpIHByaXZhdGUgbG9naW5QYXRoOiBzdHJpbmcpXG4gICAge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+XG4gICAge1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKGNhdGNoRXJyb3IoKGVycikgPT4ge1xuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmxvZ2luUGF0aF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgICAgfSkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -10,10 +10,10 @@ export class WithCredentialsInterceptor {
10
10
  });
11
11
  return next.handle(cloned);
12
12
  }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WithCredentialsInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WithCredentialsInterceptor }); }
13
15
  }
14
- WithCredentialsInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: WithCredentialsInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15
- WithCredentialsInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: WithCredentialsInterceptor });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: WithCredentialsInterceptor, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WithCredentialsInterceptor, decorators: [{
17
17
  type: Injectable
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvd2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTywwQkFBMEI7SUFFbkM7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3JCLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzt1SEFaUSwwQkFBMEI7MkhBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpdGhDcmVkZW50aWFsc0ludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIGNvbnN0IGNsb25lZCA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGNsb25lZCk7XG4gICAgfVxufVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvd2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTywwQkFBMEI7SUFFbkM7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3JCLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQVpRLDBCQUEwQjtrSEFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpdGhDcmVkZW50aWFsc0ludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIGNvbnN0IGNsb25lZCA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGNsb25lZCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,132 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, 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
+ import * as i0 from "@angular/core";
8
+ export class LazyImageDirective {
9
+ constructor(element, changeDetectorRef) {
10
+ this.element = element;
11
+ this.changeDetectorRef = changeDetectorRef;
12
+ this.objectFit = 'contain';
13
+ this.offset = 1000;
14
+ this.hostSrc = 'assets/placeholder.gif';
15
+ this.hostStyleObjectFit = 'contain';
16
+ this.displayed = false;
17
+ this.maxLoadedDimension = null;
18
+ }
19
+ windowResized($event) {
20
+ this.displayed = false;
21
+ this.check();
22
+ }
23
+ windowScroll($event) {
24
+ this.check();
25
+ }
26
+ /**
27
+ * @override
28
+ */
29
+ ngOnChanges(changes) {
30
+ this.displayed = false;
31
+ this.maxLoadedDimension = null;
32
+ this.check();
33
+ }
34
+ check() {
35
+ if (this.element.nativeElement.parentElement.offsetWidth > 0) {
36
+ this.doCheck();
37
+ }
38
+ else {
39
+ setTimeout(() => this.doCheck(), 1);
40
+ }
41
+ }
42
+ doCheck() {
43
+ if (this.displayed || this.isHidden(this.element.nativeElement)) {
44
+ return;
45
+ }
46
+ if (this.isInsideViewport(this.element.nativeElement, this.offset)) {
47
+ this.displayed = true;
48
+ const dimension = this.getDimension();
49
+ this.hostStyleWidthPx = dimension.width;
50
+ this.hostStyleHeightPx = dimension.height;
51
+ if (this.maxLoadedDimension != null
52
+ && this.maxLoadedDimension.width >= dimension.width
53
+ && this.maxLoadedDimension.height >= dimension.height) {
54
+ // console.log('has smaller dimension');
55
+ return;
56
+ }
57
+ this.maxLoadedDimension = dimension;
58
+ let wantedSize;
59
+ if (this.objectFit === 'cover') {
60
+ wantedSize = NumberUtils.getNextPowerOfTwo(Math.max(dimension.width, dimension.height));
61
+ this.hostStyleObjectFit = 'cover';
62
+ }
63
+ else {
64
+ wantedSize = NumberUtils.getNextPowerOfTwo(Math.min(dimension.width, dimension.height));
65
+ this.hostStyleObjectFit = 'contain';
66
+ }
67
+ this.hostSrc = StringUtils.updateUrlParameter(this.src, 'size', String(wantedSize));
68
+ this.changeDetectorRef.markForCheck();
69
+ }
70
+ }
71
+ isInsideViewport(element, threshold) {
72
+ const ownerDocument = element.ownerDocument;
73
+ const documentTop = window.pageYOffset || ownerDocument.body.scrollTop;
74
+ const documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;
75
+ const documentWidth = window.innerWidth || (ownerDocument.documentElement.clientWidth || document.body.clientWidth);
76
+ const documentHeight = window.innerHeight || (ownerDocument.documentElement.clientHeight || document.body.clientHeight);
77
+ const topOffset = element.getBoundingClientRect().top + documentTop - ownerDocument.documentElement.clientTop;
78
+ const leftOffset = element.getBoundingClientRect().left + documentLeft - ownerDocument.documentElement.clientLeft;
79
+ const isBelowViewport = documentHeight + documentTop <= topOffset - threshold;
80
+ const isAtRightOfViewport = documentWidth + window.pageXOffset <= leftOffset - threshold;
81
+ const isAboveViewport = documentTop >= topOffset + threshold + element.offsetHeight;
82
+ const isAtLeftOfViewport = documentLeft >= leftOffset + threshold + element.offsetWidth;
83
+ return !isBelowViewport && !isAboveViewport && !isAtRightOfViewport && !isAtLeftOfViewport;
84
+ }
85
+ getDimension() {
86
+ return {
87
+ width: this.element.nativeElement.parentElement.offsetWidth,
88
+ height: this.element.nativeElement.parentElement.offsetHeight,
89
+ };
90
+ }
91
+ isHidden(element) {
92
+ return window.getComputedStyle(element).display === 'none';
93
+ }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: LazyImageDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
95
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: LazyImageDirective, selector: "[ddrLazyImage]", inputs: { src: ["ddrLazyImage", "src"], objectFit: "objectFit", offset: "offset" }, host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" }, properties: { "src": "this.hostSrc", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.object-fit": "this.hostStyleObjectFit" } }, usesOnChanges: true, ngImport: i0 }); }
96
+ }
97
+ __decorate([
98
+ Debounce()
99
+ ], LazyImageDirective.prototype, "windowResized", null);
100
+ __decorate([
101
+ Limit()
102
+ ], LazyImageDirective.prototype, "windowScroll", null);
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: LazyImageDirective, decorators: [{
104
+ type: Directive,
105
+ args: [{ selector: '[ddrLazyImage]' }]
106
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { src: [{
107
+ type: Input,
108
+ args: ['ddrLazyImage']
109
+ }], objectFit: [{
110
+ type: Input
111
+ }], offset: [{
112
+ type: Input
113
+ }], hostSrc: [{
114
+ type: HostBinding,
115
+ args: ['src']
116
+ }], hostStyleWidthPx: [{
117
+ type: HostBinding,
118
+ args: ['style.width.px']
119
+ }], hostStyleHeightPx: [{
120
+ type: HostBinding,
121
+ args: ['style.height.px']
122
+ }], hostStyleObjectFit: [{
123
+ type: HostBinding,
124
+ args: ['style.object-fit']
125
+ }], windowResized: [{
126
+ type: HostListener,
127
+ args: ['window:resize', ['$event']]
128
+ }], windowScroll: [{
129
+ type: HostListener,
130
+ args: ['window:scroll', ['$event']]
131
+ }] } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1pbWFnZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW1hZ2UvbGF6eS1pbWFnZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDckQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUkvQyxNQUFNLE9BQU8sa0JBQWtCO0lBMkIzQixZQUFvQixPQUFtQixFQUFVLGlCQUFvQztRQUFqRSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXJCOUUsY0FBUyxHQUF3QixTQUFTLENBQUM7UUFHM0MsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdkLFlBQU8sR0FBRyx3QkFBd0IsQ0FBQztRQVNuQyx1QkFBa0IsR0FBRyxTQUFTLENBQUM7UUFFOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQix1QkFBa0IsR0FBNkMsSUFBSSxDQUFDO0lBSTVFLENBQUM7SUFJTSxhQUFhLENBQUMsTUFBYTtRQUU5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUlNLFlBQVksQ0FBQyxNQUFhO1FBRTdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBc0I7UUFFckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENB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Z0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQztJQUMvRCxDQUFDOzhHQW5JUSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7QUFpQ3BCO0lBRE4sUUFBUSxFQUFFO3VEQUtWO0FBSU07SUFETixLQUFLLEVBQUU7c0RBSVA7MkZBNUNRLGtCQUFrQjtrQkFEOUIsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQzsrR0FJNUIsR0FBRztzQkFEVCxLQUFLO3VCQUFDLGNBQWM7Z0JBSWQsU0FBUztzQkFEZixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxPQUFPO3NCQURiLFdBQVc7dUJBQUMsS0FBSztnQkFJWCxnQkFBZ0I7c0JBRHRCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUl0QixpQkFBaUI7c0JBRHZCLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUl2QixrQkFBa0I7c0JBRHhCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQWF4QixhQUFhO3NCQUZuQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVbEMsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TnVtYmVyVXRpbHN9IGZyb20gJy4uL3V0aWwvbnVtYmVyLXV0aWxzJztcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gJy4uL3V0aWwvc3RyaW5nLXV0aWxzJztcbmltcG9ydCB7RGVib3VuY2V9IGZyb20gJy4uL21ldGhvZGRlY29yYXRvci9kZWJvdW5jZSc7XG5pbXBvcnQge0xpbWl0fSBmcm9tICcuLi9tZXRob2RkZWNvcmF0b3IvbGltaXQnO1xuXG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2RkckxhenlJbWFnZV0nfSlcbmV4cG9ydCBjbGFzcyBMYXp5SW1hZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoJ2RkckxhenlJbWFnZScpXG4gICAgcHVibGljIHNyYyE6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9iamVjdEZpdDogJ2NvdmVyJyB8ICdjb250YWluJyA9ICdjb250YWluJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9mZnNldCA9IDEwMDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3NyYycpXG4gICAgcHVibGljIGhvc3RTcmMgPSAnYXNzZXRzL3BsYWNlaG9sZGVyLmdpZic7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgICBwdWJsaWMgaG9zdFN0eWxlV2lkdGhQeCE6IG51bWJlcjtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LnB4JylcbiAgICBwdWJsaWMgaG9zdFN0eWxlSGVpZ2h0UHghOiBudW1iZXI7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9iamVjdC1maXQnKVxuICAgIHB1YmxpYyBob3N0U3R5bGVPYmplY3RGaXQgPSAnY29udGFpbic7XG5cbiAgICBwcml2YXRlIGRpc3BsYXllZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBtYXhMb2FkZWREaW1lbnNpb246IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZilcbiAgICB7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgQERlYm91bmNlKClcbiAgICBwdWJsaWMgd2luZG93UmVzaXplZCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICAgIEBMaW1pdCgpXG4gICAgcHVibGljIHdpbmRvd1Njcm9sbCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tYXhMb2FkZWREaW1lbnNpb24gPSBudWxsO1xuICAgICAgICB0aGlzLmNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVjaygpOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZG9DaGVjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmRvQ2hlY2soKSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRvQ2hlY2soKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheWVkIHx8IHRoaXMuaXNIaWRkZW4odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0luc2lkZVZpZXdwb3J0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB0aGlzLm9mZnNldCkpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGRpbWVuc2lvbiA9IHRoaXMuZ2V0RGltZW5zaW9uKCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RTdHlsZVdpZHRoUHggPSBkaW1lbnNpb24ud2lkdGg7XG4gICAgICAgICAgICB0aGlzLmhvc3RTdHlsZUhlaWdodFB4ID0gZGltZW5zaW9uLmhlaWdodDtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMubWF4TG9hZGVkRGltZW5zaW9uICE9IG51bGxcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1heExvYWRlZERpbWVuc2lvbiEud2lkdGggPj0gZGltZW5zaW9uLndpZHRoXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXhMb2FkZWREaW1lbnNpb24hLmhlaWdodCA+PSBkaW1lbnNpb24uaGVpZ2h0XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnaGFzIHNtYWxsZXIgZGltZW5zaW9uJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm1heExvYWRlZERpbWVuc2lvbiA9IGRpbWVuc2lvbjtcblxuICAgICAgICAgICAgbGV0IHdhbnRlZFNpemU7XG4gICAgICAgICAgICBpZiAodGhpcy5vYmplY3RGaXQgPT09ICdjb3ZlcicpIHtcbiAgICAgICAgICAgICAgICB3YW50ZWRTaXplID0gTnVtYmVyVXRpbHMuZ2V0TmV4dFBvd2VyT2ZUd28oTWF0aC5tYXgoZGltZW5zaW9uLndpZHRoLCBkaW1lbnNpb24uaGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0U3R5bGVPYmplY3RGaXQgPSAnY292ZXInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3YW50ZWRTaXplID0gTnVtYmVyVXRpbHMuZ2V0TmV4dFBvd2VyT2ZUd28oTWF0aC5taW4oZGltZW5zaW9uLndpZHRoLCBkaW1lbnNpb24uaGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0U3R5bGVPYmplY3RGaXQgPSAnY29udGFpbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhvc3RTcmMgPSBTdHJpbmdVdGlscy51cGRhdGVVcmxQYXJhbWV0ZXIodGhpcy5zcmMsICdzaXplJywgU3RyaW5nKHdhbnRlZFNpemUpKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzSW5zaWRlVmlld3BvcnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRocmVzaG9sZDogbnVtYmVyKTogYm9vbGVhblxuICAgIHtcbiAgICAgICAgY29uc3Qgb3duZXJEb2N1bWVudCA9IGVsZW1lbnQub3duZXJEb2N1bWVudDtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgb3duZXJEb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRMZWZ0ID0gd2luZG93LnBhZ2VYT2Zmc2V0IHx8IG93bmVyRG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0O1xuXG4gICAgICAgIGNvbnN0IGRvY3VtZW50V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCAob3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCk7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IHx8IChvd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQpO1xuICAgICAgICBjb25zdCB0b3BPZmZzZXQgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGRvY3VtZW50VG9wIC0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wO1xuICAgICAgICBjb25zdCBsZWZ0T2Zmc2V0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgZG9jdW1lbnRMZWZ0IC0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50TGVmdDtcblxuICAgICAgICBjb25zdCBpc0JlbG93Vmlld3BvcnQgPSBkb2N1bWVudEhlaWdodCArIGRvY3VtZW50VG9wIDw9IHRvcE9mZnNldCAtIHRocmVzaG9sZDtcbiAgICAgICAgY29uc3QgaXNBdFJpZ2h0T2ZWaWV3cG9ydCA9IGRvY3VtZW50V2lkdGggKyB3aW5kb3cucGFnZVhPZmZzZXQgPD0gbGVmdE9mZnNldCAtIHRocmVzaG9sZDtcbiAgICAgICAgY29uc3QgaXNBYm92ZVZpZXdwb3J0ID0gZG9jdW1lbnRUb3AgPj0gdG9wT2Zmc2V0ICsgdGhyZXNob2xkICsgZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGlzQXRMZWZ0T2ZWaWV3cG9ydCA9IGRvY3VtZW50TGVmdCA+PSBsZWZ0T2Zmc2V0ICsgdGhyZXNob2xkICsgZWxlbWVudC5vZmZzZXRXaWR0aDtcblxuICAgICAgICByZXR1cm4gIWlzQmVsb3dWaWV3cG9ydCAmJiAhaXNBYm92ZVZpZXdwb3J0ICYmICFpc0F0UmlnaHRPZlZpZXdwb3J0ICYmICFpc0F0TGVmdE9mVmlld3BvcnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaW1lbnNpb24oKTogeyB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciB9XG4gICAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNIaWRkZW4oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuXG4gICAge1xuICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlzcGxheSA9PT0gJ25vbmUnO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./jwt.service";
4
+ export class JwtInterceptor {
5
+ constructor(jwtService) {
6
+ this.jwtService = jwtService;
7
+ }
8
+ /**
9
+ * @override
10
+ */
11
+ intercept(req, next) {
12
+ const token = this.jwtService.getToken();
13
+ if (null !== token && !this.jwtService.isExpired()) {
14
+ req = req.clone({
15
+ headers: req.headers.set('Authorization', 'Bearer ' + token)
16
+ });
17
+ }
18
+ return next.handle(req);
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtInterceptor }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtInterceptor, decorators: [{
24
+ type: Injectable
25
+ }], ctorParameters: () => [{ type: i1.JwtService }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvand0L2p3dC1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUt6QyxNQUFNLE9BQU8sY0FBYztJQUV2QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRTFDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRXJELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFekMsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2pELEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNaLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLEtBQUssQ0FBQzthQUMvRCxDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBcEJRLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0p3dFNlcnZpY2V9IGZyb20gJy4vand0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSnd0SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JcbntcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGp3dFNlcnZpY2U6IEp3dFNlcnZpY2UpXG4gICAge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+XG4gICAge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuand0U2VydmljZS5nZXRUb2tlbigpO1xuXG4gICAgICAgIGlmIChudWxsICE9PSB0b2tlbiAmJiAhdGhpcy5qd3RTZXJ2aWNlLmlzRXhwaXJlZCgpKSB7XG4gICAgICAgICAgICByZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIHRva2VuKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { throwError } from 'rxjs';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { catchError, map, shareReplay, switchMap } from 'rxjs/operators';
4
+ import { DDR_JWT_REFRESH_TOKEN_URL } from '../ddr-extensions.module';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./jwt.service";
7
+ import * as i2 from "@angular/common/http";
8
+ export class JwtRefreshTokenInterceptor {
9
+ constructor(jwtService, httpClient, jwtRefreshTokenUrl) {
10
+ this.jwtService = jwtService;
11
+ this.httpClient = httpClient;
12
+ this.jwtRefreshTokenUrl = jwtRefreshTokenUrl;
13
+ this.refreshTokenRequest$ = null;
14
+ }
15
+ /**
16
+ * @override
17
+ */
18
+ intercept(req, next) {
19
+ if (this.jwtService.isAboutToExpire() && !(req.url === this.jwtRefreshTokenUrl)) {
20
+ const refreshToken = this.jwtService.getRefreshToken();
21
+ if (null != refreshToken) {
22
+ return this.getRefreshTokenRequest(refreshToken).pipe(switchMap(() => next.handle(req)));
23
+ }
24
+ }
25
+ return next.handle(req);
26
+ }
27
+ getRefreshTokenRequest(refreshToken) {
28
+ if (null == this.refreshTokenRequest$) {
29
+ this.refreshTokenRequest$ = this.httpClient.post(this.jwtRefreshTokenUrl, { refresh_token: refreshToken }).pipe(map(response => {
30
+ this.jwtService.setTokens(response.token, response.refresh_token);
31
+ this.refreshTokenRequest$ = null;
32
+ return response;
33
+ }), catchError(error => {
34
+ this.jwtService.clear();
35
+ this.refreshTokenRequest$ = null;
36
+ return throwError(error);
37
+ }), shareReplay(1));
38
+ }
39
+ return this.refreshTokenRequest$;
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtRefreshTokenInterceptor, deps: [{ token: i1.JwtService }, { token: i2.HttpClient }, { token: DDR_JWT_REFRESH_TOKEN_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtRefreshTokenInterceptor }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtRefreshTokenInterceptor, decorators: [{
45
+ type: Injectable
46
+ }], ctorParameters: () => [{ type: i1.JwtService }, { type: i2.HttpClient }, { type: undefined, decorators: [{
47
+ type: Inject,
48
+ args: [DDR_JWT_REFRESH_TOKEN_URL]
49
+ }] }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9qd3Qvand0LXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUduRSxNQUFNLE9BQU8sMEJBQTBCO0lBSW5DLFlBQ1ksVUFBc0IsRUFDdEIsVUFBc0IsRUFDYSxrQkFBMEI7UUFGN0QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2EsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO1FBTGpFLHlCQUFvQixHQUF3QyxJQUFJLENBQUM7SUFRekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFckQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDOUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2RCxJQUFJLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUNqRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNwQyxDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7UUFHRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQW9CO1FBRS9DLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBbUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUMsSUFBSSxDQUMzSCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO2dCQUNqQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUM1QixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7UUFDTixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQzs4R0FqRFEsMEJBQTBCLHNFQU92Qix5QkFBeUI7a0hBUDVCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVTs7MEJBUUYsTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtKd3RUb2tlblJlc3BvbnNlfSBmcm9tICcuL2p3dC10b2tlbi1yZXNwb25zZSc7XG5pbXBvcnQge0p3dFNlcnZpY2V9IGZyb20gJy4vand0LnNlcnZpY2UnO1xuaW1wb3J0IHtERFJfSldUX1JFRlJFU0hfVE9LRU5fVVJMfSBmcm9tICcuLi9kZHItZXh0ZW5zaW9ucy5tb2R1bGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSnd0UmVmcmVzaFRva2VuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JcbntcbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlblJlcXVlc3QkOiBPYnNlcnZhYmxlPEp3dFRva2VuUmVzcG9uc2U+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBqd3RTZXJ2aWNlOiBKd3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIEBJbmplY3QoRERSX0pXVF9SRUZSRVNIX1RPS0VOX1VSTCkgcHJpdmF0ZSBqd3RSZWZyZXNoVG9rZW5Vcmw6IHN0cmluZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIGlmICh0aGlzLmp3dFNlcnZpY2UuaXNBYm91dFRvRXhwaXJlKCkgJiYgIShyZXEudXJsID09PSB0aGlzLmp3dFJlZnJlc2hUb2tlblVybCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuand0U2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgICAgIGlmIChudWxsICE9IHJlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFJlZnJlc2hUb2tlblJlcXVlc3QocmVmcmVzaFRva2VuKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbmV4dC5oYW5kbGUocmVxKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlblJlcXVlc3QocmVmcmVzaFRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEp3dFRva2VuUmVzcG9uc2U+XG4gICAge1xuICAgICAgICBpZiAobnVsbCA9PSB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkID0gdGhpcy5odHRwQ2xpZW50LnBvc3Q8Snd0VG9rZW5SZXNwb25zZT4odGhpcy5qd3RSZWZyZXNoVG9rZW5VcmwsIHtyZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW59KS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuand0U2VydmljZS5zZXRUb2tlbnMocmVzcG9uc2UudG9rZW4sIHJlc3BvbnNlLnJlZnJlc2hfdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmp3dFNlcnZpY2UuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCQ7XG4gICAgfVxufVxuIl19
@@ -69,13 +69,13 @@ export class JwtService {
69
69
  getRefreshTokenStorageKey() {
70
70
  return 'jwt.refresh_token';
71
71
  }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtService, deps: [{ token: i1.StorageService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
73
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtService, providedIn: 'root' }); }
72
74
  }
73
- JwtService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, deps: [{ token: i1.StorageService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
74
- JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, providedIn: 'root' });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: JwtService, decorators: [{
76
76
  type: Injectable,
77
77
  args: [{
78
78
  providedIn: 'root'
79
79
  }]
80
- }], ctorParameters: function () { return [{ type: i1.StorageService }, { type: i2.Logger }]; } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvand0L2p3dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekMsTUFBTSxPQUFPLFVBQVU7SUFZbkIsWUFDWSxjQUE4QixFQUM5QixhQUFxQjtRQURyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFaakM7O1dBRUc7UUFDSyxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNLLGdCQUFXLEdBQWtCLElBQUksQ0FBQztJQU8xQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsS0FBYSxFQUFFLFlBQW9CO1FBRWhELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEtBQWE7UUFFekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBRVgsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFFbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFFWixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxXQUFtQixLQUFLO1FBRTNDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUVSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVPLHlCQUF5QjtRQUU3QixPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7O3VHQXZGUSxVQUFVOzJHQUFWLFVBQVUsY0FGUCxNQUFNOzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gJy4uL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEp3dFNlcnZpY2VcbntcbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBleHBpcnkgb2YgdGhlIGN1cnJlbnQgdG9rZW4uXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b2tlbkV4cGlyeTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9nZ2VyU2VydmljZTogTG9nZ2VyXG4gICAgKVxuICAgIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHRva2VuIGFuZCBhIHJlZnJlc2ggdG9rZW4uXG4gICAgICovXG4gICAgcHVibGljIHNldFRva2Vucyh0b2tlbjogc3RyaW5nLCByZWZyZXNoVG9rZW46IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuc2V0VG9rZW4odG9rZW4pO1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKHRoaXMuZ2V0UmVmcmVzaFRva2VuU3RvcmFnZUtleSgpLCByZWZyZXNoVG9rZW4pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gSlNPTi5wYXJzZShhdG9iKHRva2VuLnNwbGl0KCcuJylbMV0pKTtcbiAgICAgICAgdGhpcy50b2tlbkV4cGlyeSA9IGRlY29kZWRUb2tlbi5leHAgKiAxMDAwO1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnTmV3IHJlZnJlc2ggdG9rZW4sIGV4cGlyeScsIG5ldyBEYXRlKHRoaXMudG9rZW5FeHBpcnkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb2tlbigpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSByZWZyZXNoIHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbFxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UucmV0cmlldmUodGhpcy5nZXRSZWZyZXNoVG9rZW5TdG9yYWdlS2V5KCkpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHRva2VuIGV4cGlyZWQuXG4gICAgICovXG4gICAgcHVibGljIGlzRXhwaXJlZCgpOiBib29sZWFuXG4gICAge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIG51bGwgPT0gdGhpcy50b2tlbkV4cGlyeSB8fCB0aGlzLnRva2VuRXhwaXJ5IDwgbm93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCB0b2tlbiBpcyBhYm91dCB0byBleHBpcmUuXG4gICAgICogQHBhcmFtIGV4cGlyeU1zXG4gICAgICovXG4gICAgcHVibGljIGlzQWJvdXRUb0V4cGlyZShleHBpcnlNczogbnVtYmVyID0gNjAwMDApOiBib29sZWFuXG4gICAge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIG51bGwgPT0gdGhpcy50b2tlbkV4cGlyeSB8fCB0aGlzLnRva2VuRXhwaXJ5IC0gZXhwaXJ5TXMgPCBub3c7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy50b2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMudG9rZW5FeHBpcnkgPSBudWxsO1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZSh0aGlzLmdldFJlZnJlc2hUb2tlblN0b3JhZ2VLZXkoKSlcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlblN0b3JhZ2VLZXkoKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gJ2p3dC5yZWZyZXNoX3Rva2VuJztcbiAgICB9XG59XG4iXX0=
80
+ }], ctorParameters: () => [{ type: i1.StorageService }, { type: i2.Logger }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvand0L2p3dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekMsTUFBTSxPQUFPLFVBQVU7SUFZbkIsWUFDWSxjQUE4QixFQUM5QixhQUFxQjtRQURyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFaakM7O1dBRUc7UUFDSyxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNLLGdCQUFXLEdBQWtCLElBQUksQ0FBQztJQU8xQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsS0FBYSxFQUFFLFlBQW9CO1FBRWhELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEtBQWE7UUFFekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBRVgsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFFbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFFWixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxXQUFtQixLQUFLO1FBRTNDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUVSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVPLHlCQUF5QjtRQUU3QixPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7OEdBdkZRLFVBQVU7a0hBQVYsVUFBVSxjQUZQLE1BQU07OzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gJy4uL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEp3dFNlcnZpY2VcbntcbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBleHBpcnkgb2YgdGhlIGN1cnJlbnQgdG9rZW4uXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b2tlbkV4cGlyeTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9nZ2VyU2VydmljZTogTG9nZ2VyXG4gICAgKVxuICAgIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHRva2VuIGFuZCBhIHJlZnJlc2ggdG9rZW4uXG4gICAgICovXG4gICAgcHVibGljIHNldFRva2Vucyh0b2tlbjogc3RyaW5nLCByZWZyZXNoVG9rZW46IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuc2V0VG9rZW4odG9rZW4pO1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKHRoaXMuZ2V0UmVmcmVzaFRva2VuU3RvcmFnZUtleSgpLCByZWZyZXNoVG9rZW4pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCB0b2tlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gSlNPTi5wYXJzZShhdG9iKHRva2VuLnNwbGl0KCcuJylbMV0pKTtcbiAgICAgICAgdGhpcy50b2tlbkV4cGlyeSA9IGRlY29kZWRUb2tlbi5leHAgKiAxMDAwO1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnTmV3IHJlZnJlc2ggdG9rZW4sIGV4cGlyeScsIG5ldyBEYXRlKHRoaXMudG9rZW5FeHBpcnkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb2tlbigpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSByZWZyZXNoIHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbFxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UucmV0cmlldmUodGhpcy5nZXRSZWZyZXNoVG9rZW5TdG9yYWdlS2V5KCkpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHRva2VuIGV4cGlyZWQuXG4gICAgICovXG4gICAgcHVibGljIGlzRXhwaXJlZCgpOiBib29sZWFuXG4gICAge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIG51bGwgPT0gdGhpcy50b2tlbkV4cGlyeSB8fCB0aGlzLnRva2VuRXhwaXJ5IDwgbm93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCB0b2tlbiBpcyBhYm91dCB0byBleHBpcmUuXG4gICAgICogQHBhcmFtIGV4cGlyeU1zXG4gICAgICovXG4gICAgcHVibGljIGlzQWJvdXRUb0V4cGlyZShleHBpcnlNczogbnVtYmVyID0gNjAwMDApOiBib29sZWFuXG4gICAge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIG51bGwgPT0gdGhpcy50b2tlbkV4cGlyeSB8fCB0aGlzLnRva2VuRXhwaXJ5IC0gZXhwaXJ5TXMgPCBub3c7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy50b2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMudG9rZW5FeHBpcnkgPSBudWxsO1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZSh0aGlzLmdldFJlZnJlc2hUb2tlblN0b3JhZ2VLZXkoKSlcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlblN0b3JhZ2VLZXkoKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gJ2p3dC5yZWZyZXNoX3Rva2VuJztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { Logger } from './logger.service';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class ConsoleLogger extends Logger {
5
+ /**
6
+ * @override
7
+ */
8
+ debug(...data) {
9
+ if (this.debugEnabled) {
10
+ console.debug(...data);
11
+ }
12
+ }
13
+ /**
14
+ * @override
15
+ */
16
+ info(...data) {
17
+ if (this.infoEnabled) {
18
+ console.info(...data);
19
+ }
20
+ }
21
+ /**
22
+ * @override
23
+ */
24
+ warn(...data) {
25
+ if (this.warnEnabled) {
26
+ console.warn(...data);
27
+ }
28
+ }
29
+ /**
30
+ * @override
31
+ */
32
+ error(...data) {
33
+ if (this.errorEnabled) {
34
+ console.error(...data);
35
+ }
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ConsoleLogger, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ConsoleLogger }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ConsoleLogger, decorators: [{
41
+ type: Injectable
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS1sb2dnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sb2dnZXIvY29uc29sZS1sb2dnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLGFBQWMsU0FBUSxNQUFNO0lBRXJDOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsSUFBVztRQUV2QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBQyxHQUFHLElBQVc7UUFFdEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBRXRCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsSUFBVztRQUV2QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7OEdBeENRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25zb2xlTG9nZ2VyIGV4dGVuZHMgTG9nZ2VyXG57XG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGRlYnVnKC4uLmRhdGE6IGFueVtdKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMuZGVidWdFbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGluZm8oLi4uZGF0YTogYW55W10pOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAodGhpcy5pbmZvRW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc29sZS5pbmZvKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIHdhcm4oLi4uZGF0YTogYW55W10pOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAodGhpcy53YXJuRW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGVycm9yKC4uLmRhdGE6IGFueVtdKTogdm9pZFxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JFbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKC4uLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19