@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
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udGRyaW5rYW5kcm9vdC1uZ3gtZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8iLCJzb3VyY2VzIjpbImRvbnRkcmlua2FuZHJvb3Qtbmd4LWV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udGRyaW5rYW5kcm9vdC1uZ3gtZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RvbnRkcmlua2FuZHJvb3Qtbmd4LWV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ /*
2
+ * Public API Surface of ngx-extensions
3
+ */
4
+ export * from './src/ddr-extensions.module';
5
+ export * from './src/cookie/cookie.service';
6
+ export * from './src/util/collection-utils';
7
+ export * from './src/util/string-utils';
8
+ export * from './src/util/object-utils';
9
+ export * from './src/util/number-utils';
10
+ export * from './src/util/type-utils';
11
+ export * from './src/scroll/scroll.service';
12
+ export * from './src/methoddecorator/debounce';
13
+ export * from './src/methoddecorator/limit';
14
+ export * from './src/image/lazy-image.directive';
15
+ export * from './src/scroll/bottom-hit.directive';
16
+ export * from './src/visibility/visibility.service';
17
+ export * from './src/http/with-credentials-interceptor.service';
18
+ export * from './src/http/url-info';
19
+ export * from './src/http/redirect-to-login-interceptor.service';
20
+ export * from './src/jwt/jwt-interceptor.service';
21
+ export * from './src/jwt/jwt.service';
22
+ export * from './src/jwt/jwt-refresh-token-interceptor.service';
23
+ export * from './src/jwt/jwt-token-response';
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1leHRlbnNpb25zXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9zcmMvZGRyLWV4dGVuc2lvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2Nvb2tpZS9jb29raWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy91dGlsL2NvbGxlY3Rpb24tdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdXRpbC9zdHJpbmctdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdXRpbC9vYmplY3QtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdXRpbC9udW1iZXItdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdXRpbC90eXBlLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3Njcm9sbC9zY3JvbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9tZXRob2RkZWNvcmF0b3IvZGVib3VuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvbWV0aG9kZGVjb3JhdG9yL2xpbWl0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2ltYWdlL2xhenktaW1hZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3Njcm9sbC9ib3R0b20taGl0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy92aXNpYmlsaXR5L3Zpc2liaWxpdHkuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2h0dHAvd2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2h0dHAvdXJsLWluZm8nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvaHR0cC9yZWRpcmVjdC10by1sb2dpbi1pbnRlcmNlcHRvci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9zcmMvand0L2p3dC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2p3dC9qd3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9qd3Qvand0LXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9qd3Qvand0LXRva2VuLXJlc3BvbnNlJztcbiJdfQ==
@@ -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
+ }
124
+ CookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: CookieService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
125
+ CookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: CookieService, providedIn: 'root' });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: CookieService, decorators: [{
127
+ type: Injectable,
128
+ args: [{
129
+ providedIn: 'root'
130
+ }]
131
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
132
+ type: Inject,
133
+ args: [DOCUMENT]
134
+ }] }]; } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29va2llL2Nvb2tpZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJGQUEyRjtBQUMzRiwyRkFBMkY7QUFDM0YsZ0RBQWdEO0FBRWhELE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLGFBQWE7SUFJdEIsWUFDOEIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUc1QyxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsS0FBSyxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQVk7UUFFZCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLElBQVk7UUFFWixJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9DLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FB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RCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsSUFBYSxFQUFFLE1BQWU7UUFFcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM1QixPQUFPO1NBQ1Y7UUFFRCxNQUFNLE9BQU8sR0FBUSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFbkMsS0FBSyxNQUFNLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDOUIsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDekM7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxJQUFZO1FBRWhDLE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0UsT0FBTyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsV0FBVyxHQUFHLFFBQVEsR0FBRyxXQUFXLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0YsQ0FBQzs7MEdBOUpRLGFBQWEsa0JBS1YsUUFBUTs4R0FMWCxhQUFhLGNBRlYsTUFBTTsyRkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBTVEsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBzZXJ2aWNlIGlzIGJhc2VkIG9uIHRoZSBgbmcyLWNvb2tpZXNgIHBhY2thZ2Ugd2hpY2ggc2FkbHkgaXMgbm90IGEgc2VydmljZSBhbmQgZG9lc1xuLy8gbm90IHVzZSBgRE9DVU1FTlRgIGluamVjdGlvbiBhbmQgdGhlcmVmb3JlIGRvZXNuJ3Qgd29yayB3ZWxsIHdpdGggQW9UIHByb2R1Y3Rpb24gYnVpbGRzLlxuLy8gUGFja2FnZTogaHR0cHM6Ly9naXRodWIuY29tL0JDSlRJL25nMi1jb29raWVzXG5cbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29va2llU2VydmljZVxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRJc0FjY2Vzc2libGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgICApXG4gICAge1xuICAgICAgICAvLyBUbyBhdm9pZCBpc3N1ZXMgd2l0aCBzZXJ2ZXIgc2lkZSBwcmVyZW5kZXJpbmcsIGNoZWNrIGlmIGBkb2N1bWVudGAgaXMgZGVmaW5lZC5cbiAgICAgICAgdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA9IGRvY3VtZW50ICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKi9cbiAgICBjaGVjayhuYW1lOiBzdHJpbmcpOiBib29sZWFuXG4gICAge1xuICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XG5cbiAgICAgICAgY29uc3QgcmVnRXhwOiBSZWdFeHAgPSB0aGlzLmdldENvb2tpZVJlZ0V4cChuYW1lKTtcbiAgICAgICAgcmV0dXJuIHJlZ0V4cC50ZXN0KHRoaXMuZG9jdW1lbnQuY29va2llKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmFtZSBDb29raWUgbmFtZVxuICAgICAqL1xuICAgIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmdcbiAgICB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlICYmIHRoaXMuY2hlY2sobmFtZSkpIHtcbiAgICAgICAgICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4cCA9IHRoaXMuZ2V0Q29va2llUmVnRXhwKG5hbWUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnRXhwLmV4ZWModGhpcy5kb2N1bWVudC5jb29raWUpO1xuICAgICAgICAgICAgaWYgKG51bGwgPT0gcmVzdWx0KSByZXR1cm4gJydcblxuICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRbMV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWxsKCk6IHt9XG4gICAge1xuICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvb2tpZXM6IHt9ID0ge307XG4gICAgICAgIGNvbnN0IGRvY3VtZW50OiBhbnkgPSB0aGlzLmRvY3VtZW50O1xuXG4gICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgJiYgZG9jdW1lbnQuY29va2llICE9PSAnJykge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXQ6IEFycmF5PHN0cmluZz4gPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb29raWU6IEFycmF5PHN0cmluZz4gPSBzcGxpdFtpXS5zcGxpdCgnPScpO1xuXG4gICAgICAgICAgICAgICAgY3VycmVudENvb2tpZVswXSA9IGN1cnJlbnRDb29raWVbMF0ucmVwbGFjZSgvXiAvLCAnJyk7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGNvb2tpZXNbZGVjb2RlVVJJQ29tcG9uZW50KGN1cnJlbnRDb29raWVbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChjdXJyZW50Q29va2llWzFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb29raWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lICAgIENvb2tpZSBuYW1lXG4gICAgICogQHBhcmFtIHZhbHVlICAgQ29va2llIHZhbHVlXG4gICAgICogQHBhcmFtIGV4cGlyZXMgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAgICogQHBhcmFtIHBhdGggICAgQ29va2llIHBhdGhcbiAgICAgKiBAcGFyYW0gZG9tYWluICBDb29raWUgZG9tYWluXG4gICAgICogQHBhcmFtIHNlY3VyZSAgU2VjdXJlIGZsYWdcbiAgICAgKi9cbiAgICBzZXQoXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgZXhwaXJlcz86IG51bWJlciB8IERhdGUsXG4gICAgICAgIHBhdGg/OiBzdHJpbmcsXG4gICAgICAgIGRvbWFpbj86IHN0cmluZyxcbiAgICAgICAgc2VjdXJlPzogYm9vbGVhblxuICAgICk6IHZvaWRcbiAgICB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvb2tpZVN0cmluZzogc3RyaW5nID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSArICc7JztcblxuICAgICAgICBpZiAoZXhwaXJlcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVFeHBpcmVzOiBEYXRlID0gbmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkgKyBleHBpcmVzICogMTAwMCAqIDYwICogNjAgKiAyNCk7XG5cbiAgICAgICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ2V4cGlyZXM9JyArIGRhdGVFeHBpcmVzLnRvVVRDU3RyaW5nKCkgKyAnOyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAncGF0aD0nICsgcGF0aCArICc7JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkb21haW4pIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnZG9tYWluPScgKyBkb21haW4gKyAnOyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VjdXJlKSB7XG4gICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ3NlY3VyZTsnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudC5jb29raWUgPSBjb29raWVTdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgICBDb29raWUgbmFtZVxuICAgICAqIEBwYXJhbSBwYXRoICAgQ29va2llIHBhdGhcbiAgICAgKiBAcGFyYW0gZG9tYWluIENvb2tpZSBkb21haW5cbiAgICAgKi9cbiAgICBkZWxldGUobmFtZTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0KG5hbWUsICcnLCAtMSwgcGF0aCwgZG9tYWluKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gcGF0aCAgIENvb2tpZSBwYXRoXG4gICAgICogQHBhcmFtIGRvbWFpbiBDb29raWUgZG9tYWluXG4gICAgICovXG4gICAgZGVsZXRlQWxsKHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWRcbiAgICB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29va2llczogYW55ID0gdGhpcy5nZXRBbGwoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZU5hbWUgaW4gY29va2llcykge1xuICAgICAgICAgICAgaWYgKGNvb2tpZXMuaGFzT3duUHJvcGVydHkoY29va2llTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENvb2tpZVJlZ0V4cChuYW1lOiBzdHJpbmcpOiBSZWdFeHBcbiAgICB7XG4gICAgICAgIGNvbnN0IGVzY2FwZWROYW1lOiBzdHJpbmcgPSBuYW1lLnJlcGxhY2UoLyhbXFxbXFxde30oKXw9Oys/LC4qXiRdKS9pZywgJ1xcXFwkMScpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKCcoPzpeJyArIGVzY2FwZWROYW1lICsgJ3w7XFxcXHMqJyArIGVzY2FwZWROYW1lICsgJyk9KC4qPykoPzo7fCQpJywgJ2cnKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,40 @@
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 * as i0 from "@angular/core";
5
+ export const DDR_STORAGE_PREFIX = new InjectionToken('DDR_STORAGE_PREFIX');
6
+ export const DDR_JWT_REFRESH_TOKEN_URL = new InjectionToken('DDR_JWT_REFRESH_TOKEN_URL');
7
+ export const DDR_LOGIN_PATH = new InjectionToken('DDR_LOGIN_PATH');
8
+ export class DdrExtensionsModule {
9
+ }
10
+ DdrExtensionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: DdrExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ DdrExtensionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: DdrExtensionsModule, declarations: [LazyImageDirective,
12
+ BottomHitDirective], exports: [LazyImageDirective,
13
+ BottomHitDirective] });
14
+ DdrExtensionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: DdrExtensionsModule, providers: [
15
+ {
16
+ provide: DDR_LOGIN_PATH,
17
+ useValue: '/login'
18
+ }
19
+ ] });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: DdrExtensionsModule, decorators: [{
21
+ type: NgModule,
22
+ args: [{
23
+ declarations: [
24
+ LazyImageDirective,
25
+ BottomHitDirective
26
+ ],
27
+ imports: [],
28
+ providers: [
29
+ {
30
+ provide: DDR_LOGIN_PATH,
31
+ useValue: '/login'
32
+ }
33
+ ],
34
+ exports: [
35
+ LazyImageDirective,
36
+ BottomHitDirective
37
+ ]
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRyLWV4dGVuc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rkci1leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFakUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBUywyQkFBMkIsQ0FBQyxDQUFDO0FBRWpHLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxnQkFBZ0IsQ0FBQyxDQUFDO0FBbUIzRSxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBZnhCLGtCQUFrQjtRQUNsQixrQkFBa0IsYUFVbEIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtpSEFHYixtQkFBbUIsYUFYakI7UUFDUDtZQUNJLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFFBQVEsRUFBRSxRQUFRO1NBQ3JCO0tBQ0o7MkZBTVEsbUJBQW1CO2tCQWpCL0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysa0JBQWtCO3dCQUNsQixrQkFBa0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsUUFBUSxFQUFFLFFBQVE7eUJBQ3JCO3FCQUNKO29CQUNELE9BQU8sRUFBRTt3QkFDTCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjtxQkFDckI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VuLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xhenlJbWFnZURpcmVjdGl2ZX0gZnJvbSAnLi9pbWFnZS9sYXp5LWltYWdlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JvdHRvbUhpdERpcmVjdGl2ZX0gZnJvbSAnLi9zY3JvbGwvYm90dG9tLWhpdC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgRERSX1NUT1JBR0VfUFJFRklYID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0REUl9TVE9SQUdFX1BSRUZJWCcpO1xuXG5leHBvcnQgY29uc3QgRERSX0pXVF9SRUZSRVNIX1RPS0VOX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdERFJfSldUX1JFRlJFU0hfVE9LRU5fVVJMJyk7XG5cbmV4cG9ydCBjb25zdCBERFJfTE9HSU5fUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdERFJfTE9HSU5fUEFUSCcpO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBMYXp5SW1hZ2VEaXJlY3RpdmUsXG4gICAgICAgIEJvdHRvbUhpdERpcmVjdGl2ZVxuICAgIF0sXG4gICAgaW1wb3J0czogW10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEREUl9MT0dJTl9QQVRILFxuICAgICAgICAgICAgdXNlVmFsdWU6ICcvbG9naW4nXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTGF6eUltYWdlRGlyZWN0aXZlLFxuICAgICAgICBCb3R0b21IaXREaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERkckV4dGVuc2lvbnNNb2R1bGVcbntcbn1cbiJdfQ==
@@ -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
+ }
27
+ RedirectToLoginInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: RedirectToLoginInterceptor, deps: [{ token: i1.Router }, { token: DDR_LOGIN_PATH }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ RedirectToLoginInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: RedirectToLoginInterceptor });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: RedirectToLoginInterceptor, decorators: [{
30
+ type: Injectable
31
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: undefined, decorators: [{
32
+ type: Inject,
33
+ args: [DDR_LOGIN_PATH]
34
+ }] }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tbG9naW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9odHRwL3JlZGlyZWN0LXRvLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBR3hELE1BQU0sT0FBTywwQkFBMEI7SUFFbkMsWUFBb0IsTUFBYyxFQUFrQyxTQUFpQjtRQUFqRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQWtDLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFckYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFckQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUU1QyxJQUFJLEdBQUcsWUFBWSxpQkFBaUIsRUFBRTtnQkFDbEMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDMUM7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzt1SEFyQlEsMEJBQTBCLHdDQUVTLGNBQWM7MkhBRmpELDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVOzswQkFHOEIsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0REUl9MT0dJTl9QQVRIfSBmcm9tICcuLi9kZHItZXh0ZW5zaW9ucy5tb2R1bGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RUb0xvZ2luSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JcbntcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBASW5qZWN0KEREUl9MT0dJTl9QQVRIKSBwcml2YXRlIGxvZ2luUGF0aDogc3RyaW5nKVxuICAgIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PlxuICAgIHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShjYXRjaEVycm9yKChlcnIpID0+IHtcblxuICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5sb2dpblBhdGhdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICAgIH0pKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ export class UrlInfo {
2
+ constructor(protocol, host, hostname, port, pathname, hash, search) {
3
+ this.protocol = protocol;
4
+ this.host = host;
5
+ this.hostname = hostname;
6
+ this.port = port;
7
+ this.pathname = pathname;
8
+ this.hash = hash;
9
+ this.search = search;
10
+ }
11
+ static parse(urlString) {
12
+ const parser = document.createElement('a');
13
+ parser.href = urlString;
14
+ return new UrlInfo(parser.protocol, parser.host, parser.hostname, parser.port === '' ? 80 : +parser.port, parser.pathname, parser.hash, parser.search);
15
+ }
16
+ getRoot() {
17
+ let root = this.protocol + '//' + this.hostname;
18
+ if (this.port !== 80)
19
+ root += ':' + this.port;
20
+ return root;
21
+ }
22
+ getUrl() {
23
+ return this.getRoot() + this.pathname;
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaHR0cC91cmwtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQUVoQixZQUNvQixRQUFnQixFQUNoQixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLElBQVksRUFDWixNQUFjO1FBTmQsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUdsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFpQjtRQUVqQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBRXhCLE9BQU8sSUFBSSxPQUFPLENBQ2QsTUFBTSxDQUFDLFFBQVEsRUFDZixNQUFNLENBQUMsSUFBSSxFQUNYLE1BQU0sQ0FBQyxRQUFRLEVBQ2YsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUN0QyxNQUFNLENBQUMsUUFBUSxFQUNmLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQztJQUNOLENBQUM7SUFFTSxPQUFPO1FBRVYsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRTtZQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUU5QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTTtRQUVULE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVybEluZm9cbntcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBwcm90b2NvbDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaG9zdDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaG9zdG5hbWU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHBvcnQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHBhdGhuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBoYXNoOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZWFyY2g6IHN0cmluZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZSh1cmxTdHJpbmc6IHN0cmluZyk6IFVybEluZm9cbiAgICB7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgcGFyc2VyLmhyZWYgPSB1cmxTdHJpbmc7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBVcmxJbmZvKFxuICAgICAgICAgICAgcGFyc2VyLnByb3RvY29sLFxuICAgICAgICAgICAgcGFyc2VyLmhvc3QsXG4gICAgICAgICAgICBwYXJzZXIuaG9zdG5hbWUsXG4gICAgICAgICAgICBwYXJzZXIucG9ydCA9PT0gJycgPyA4MCA6ICtwYXJzZXIucG9ydCxcbiAgICAgICAgICAgIHBhcnNlci5wYXRobmFtZSxcbiAgICAgICAgICAgIHBhcnNlci5oYXNoLFxuICAgICAgICAgICAgcGFyc2VyLnNlYXJjaCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Um9vdCgpOiBzdHJpbmdcbiAgICB7XG4gICAgICAgIGxldCByb290ID0gdGhpcy5wcm90b2NvbCArICcvLycgKyB0aGlzLmhvc3RuYW1lO1xuICAgICAgICBpZiAodGhpcy5wb3J0ICE9PSA4MCkgcm9vdCArPSAnOicgKyB0aGlzLnBvcnQ7XG5cbiAgICAgICAgcmV0dXJuIHJvb3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFVybCgpOiBzdHJpbmdcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvb3QoKSArIHRoaXMucGF0aG5hbWU7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class WithCredentialsInterceptor {
4
+ /**
5
+ * @override
6
+ */
7
+ intercept(req, next) {
8
+ const cloned = req.clone({
9
+ withCredentials: true
10
+ });
11
+ return next.handle(cloned);
12
+ }
13
+ }
14
+ WithCredentialsInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: WithCredentialsInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15
+ WithCredentialsInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: WithCredentialsInterceptor });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: WithCredentialsInterceptor, decorators: [{
17
+ type: Injectable
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvd2l0aC1jcmVkZW50aWFscy1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTywwQkFBMEI7SUFFbkM7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3JCLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzt1SEFaUSwwQkFBMEI7MkhBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpdGhDcmVkZW50aWFsc0ludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIGNvbnN0IGNsb25lZCA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGNsb25lZCk7XG4gICAgfVxufVxuIl19
@@ -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
+ }
95
+ LazyImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: LazyImageDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
96
+ LazyImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", 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 });
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: "14.2.2", ngImport: i0, type: LazyImageDirective, decorators: [{
104
+ type: Directive,
105
+ args: [{ selector: '[ddrLazyImage]' }]
106
+ }], ctorParameters: function () { return [{ 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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a0I7bUdBQWxCLGtCQUFrQjs7SUFnQzFCLFFBQVEsRUFBRTt1REFLVjs7SUFHQSxLQUFLLEVBQUU7c0RBSVA7MkZBNUNRLGtCQUFrQjtrQkFEOUIsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQztpSUFJNUIsR0FBRztzQkFEVCxLQUFLO3VCQUFDLGNBQWM7Z0JBSWQsU0FBUztzQkFEZixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxPQUFPO3NCQURiLFdBQVc7dUJBQUMsS0FBSztnQkFJWCxnQkFBZ0I7c0JBRHRCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUl0QixpQkFBaUI7c0JBRHZCLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUl2QixrQkFBa0I7c0JBRHhCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQWF4QixhQUFhO3NCQUZuQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVbEMsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TnVtYmVyVXRpbHN9IGZyb20gJy4uL3V0aWwvbnVtYmVyLXV0aWxzJztcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gJy4uL3V0aWwvc3RyaW5nLXV0aWxzJztcbmltcG9ydCB7RGVib3VuY2V9IGZyb20gJy4uL21ldGhvZGRlY29yYXRvci9kZWJvdW5jZSc7XG5pbXBvcnQge0xpbWl0fSBmcm9tICcuLi9tZXRob2RkZWNvcmF0b3IvbGltaXQnO1xuXG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2RkckxhenlJbWFnZV0nfSlcbmV4cG9ydCBjbGFzcyBMYXp5SW1hZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoJ2RkckxhenlJbWFnZScpXG4gICAgcHVibGljIHNyYyE6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9iamVjdEZpdDogJ2NvdmVyJyB8ICdjb250YWluJyA9ICdjb250YWluJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9mZnNldCA9IDEwMDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3NyYycpXG4gICAgcHVibGljIGhvc3RTcmMgPSAnYXNzZXRzL3BsYWNlaG9sZGVyLmdpZic7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgICBwdWJsaWMgaG9zdFN0eWxlV2lkdGhQeCE6IG51bWJlcjtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LnB4JylcbiAgICBwdWJsaWMgaG9zdFN0eWxlSGVpZ2h0UHghOiBudW1iZXI7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9iamVjdC1maXQnKVxuICAgIHB1YmxpYyBob3N0U3R5bGVPYmplY3RGaXQgPSAnY29udGFpbic7XG5cbiAgICBwcml2YXRlIGRpc3BsYXllZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBtYXhMb2FkZWREaW1lbnNpb246IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZilcbiAgICB7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgQERlYm91bmNlKClcbiAgICBwdWJsaWMgd2luZG93UmVzaXplZCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICAgIEBMaW1pdCgpXG4gICAgcHVibGljIHdpbmRvd1Njcm9sbCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5jaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tYXhMb2FkZWREaW1lbnNpb24gPSBudWxsO1xuICAgICAgICB0aGlzLmNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVjaygpOiB2b2lkXG4gICAge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCA+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
+ }
21
+ JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }], target: i0.ɵɵFactoryTarget.Injectable });
22
+ JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: JwtInterceptor });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: JwtInterceptor, decorators: [{
24
+ type: Injectable
25
+ }], ctorParameters: function () { return [{ type: i1.JwtService }]; } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvand0L2p3dC1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUt6QyxNQUFNLE9BQU8sY0FBYztJQUV2QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRTFDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRXJELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFekMsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoRCxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDWixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7MkdBcEJRLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Snd0U2VydmljZX0gZnJvbSAnLi9qd3Quc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKd3RJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvclxue1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgand0U2VydmljZTogSnd0U2VydmljZSlcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5qd3RTZXJ2aWNlLmdldFRva2VuKCk7XG5cbiAgICAgICAgaWYgKG51bGwgIT09IHRva2VuICYmICF0aGlzLmp3dFNlcnZpY2UuaXNFeHBpcmVkKCkpIHtcbiAgICAgICAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgdG9rZW4pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cbn1cbiJdfQ==
@@ -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
+ }
42
+ JwtRefreshTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: JwtRefreshTokenInterceptor, deps: [{ token: i1.JwtService }, { token: i2.HttpClient }, { token: DDR_JWT_REFRESH_TOKEN_URL }], target: i0.ɵɵFactoryTarget.Injectable });
43
+ JwtRefreshTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: JwtRefreshTokenInterceptor });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: JwtRefreshTokenInterceptor, decorators: [{
45
+ type: Injectable
46
+ }], ctorParameters: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9qd3Qvand0LXJlZnJlc2gtdG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUduRSxNQUFNLE9BQU8sMEJBQTBCO0lBSW5DLFlBQ1ksVUFBc0IsRUFDdEIsVUFBc0IsRUFDYSxrQkFBMEI7UUFGN0QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2EsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO1FBTGpFLHlCQUFvQixHQUF3QyxJQUFJLENBQUM7SUFRekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFckQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQzdFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkQsSUFBSSxJQUFJLElBQUksWUFBWSxFQUFFO2dCQUN0QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ2pELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3BDLENBQUM7YUFDTDtTQUNKO1FBR0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxZQUFvQjtRQUUvQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDbkMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFtQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztnQkFDakMsT0FBTyxRQUFRLENBQUM7WUFDcEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzVCLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQzs7dUhBakRRLDBCQUEwQixzRUFPdkIseUJBQXlCOzJIQVA1QiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVTs7MEJBUUYsTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtKd3RUb2tlblJlc3BvbnNlfSBmcm9tICcuL2p3dC10b2tlbi1yZXNwb25zZSc7XG5pbXBvcnQge0p3dFNlcnZpY2V9IGZyb20gJy4vand0LnNlcnZpY2UnO1xuaW1wb3J0IHtERFJfSldUX1JFRlJFU0hfVE9LRU5fVVJMfSBmcm9tICcuLi9kZHItZXh0ZW5zaW9ucy5tb2R1bGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSnd0UmVmcmVzaFRva2VuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JcbntcbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlblJlcXVlc3QkOiBPYnNlcnZhYmxlPEp3dFRva2VuUmVzcG9uc2U+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBqd3RTZXJ2aWNlOiBKd3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIEBJbmplY3QoRERSX0pXVF9SRUZSRVNIX1RPS0VOX1VSTCkgcHJpdmF0ZSBqd3RSZWZyZXNoVG9rZW5Vcmw6IHN0cmluZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIGlmICh0aGlzLmp3dFNlcnZpY2UuaXNBYm91dFRvRXhwaXJlKCkgJiYgIShyZXEudXJsID09PSB0aGlzLmp3dFJlZnJlc2hUb2tlblVybCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuand0U2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgICAgIGlmIChudWxsICE9IHJlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFJlZnJlc2hUb2tlblJlcXVlc3QocmVmcmVzaFRva2VuKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbmV4dC5oYW5kbGUocmVxKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlblJlcXVlc3QocmVmcmVzaFRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEp3dFRva2VuUmVzcG9uc2U+XG4gICAge1xuICAgICAgICBpZiAobnVsbCA9PSB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkID0gdGhpcy5odHRwQ2xpZW50LnBvc3Q8Snd0VG9rZW5SZXNwb25zZT4odGhpcy5qd3RSZWZyZXNoVG9rZW5VcmwsIHtyZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW59KS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuand0U2VydmljZS5zZXRUb2tlbnMocmVzcG9uc2UudG9rZW4sIHJlc3BvbnNlLnJlZnJlc2hfdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmp3dFNlcnZpY2UuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXRva2VuLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2p3dC9qd3QtdG9rZW4tcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSnd0VG9rZW5SZXNwb25zZVxue1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xufVxuIl19