@stemy/ngx-utils 10.2.44 → 10.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +27 -27
  2. package/bundles/stemy-ngx-utils.umd.js +5654 -5640
  3. package/bundles/stemy-ngx-utils.umd.js.map +1 -1
  4. package/bundles/stemy-ngx-utils.umd.min.js +1 -1
  5. package/bundles/stemy-ngx-utils.umd.min.js.map +1 -1
  6. package/esm2015/ngx-utils/common-types.js +111 -111
  7. package/esm2015/ngx-utils/components/dynamic-table/dynamic-table.component.js +139 -139
  8. package/esm2015/ngx-utils/components/pagination-menu/pagination-menu.component.js +96 -96
  9. package/esm2015/ngx-utils/components/unordered-list/unordered-list.component.js +51 -51
  10. package/esm2015/ngx-utils/directives/async-method.directive.js +58 -58
  11. package/esm2015/ngx-utils/directives/background.directive.js +51 -51
  12. package/esm2015/ngx-utils/directives/dynamic-table-template.directive.js +19 -19
  13. package/esm2015/ngx-utils/directives/global-template.directive.js +27 -27
  14. package/esm2015/ngx-utils/directives/icon.directive.js +59 -59
  15. package/esm2015/ngx-utils/directives/ngx-template-outlet.directive.js +88 -88
  16. package/esm2015/ngx-utils/directives/pagination-item.directive.js +33 -33
  17. package/esm2015/ngx-utils/directives/pagination.directive.js +76 -71
  18. package/esm2015/ngx-utils/directives/resource-if.directive.js +51 -51
  19. package/esm2015/ngx-utils/directives/sticky-class.directive.js +35 -35
  20. package/esm2015/ngx-utils/directives/sticky.directive.js +48 -48
  21. package/esm2015/ngx-utils/directives/unordered-list-item.directive.js +70 -70
  22. package/esm2015/ngx-utils/directives/unordered-list-template.directive.js +26 -26
  23. package/esm2015/ngx-utils/ngx-utils.module.js +232 -232
  24. package/esm2015/ngx-utils/pipes/chunk.pipe.js +21 -21
  25. package/esm2015/ngx-utils/pipes/entries.pipe.js +24 -24
  26. package/esm2015/ngx-utils/pipes/extra-item-properties.pipe.js +27 -27
  27. package/esm2015/ngx-utils/pipes/filter.pipe.js +38 -38
  28. package/esm2015/ngx-utils/pipes/find.pipe.js +25 -25
  29. package/esm2015/ngx-utils/pipes/format-number.pipe.js +19 -19
  30. package/esm2015/ngx-utils/pipes/get-offset.pipe.js +13 -13
  31. package/esm2015/ngx-utils/pipes/get-type.pipe.js +12 -12
  32. package/esm2015/ngx-utils/pipes/global-template.pipe.js +35 -35
  33. package/esm2015/ngx-utils/pipes/group-by.pipe.js +23 -23
  34. package/esm2015/ngx-utils/pipes/is-type.pipe.js +12 -12
  35. package/esm2015/ngx-utils/pipes/join.pipe.js +15 -15
  36. package/esm2015/ngx-utils/pipes/keys.pipe.js +18 -18
  37. package/esm2015/ngx-utils/pipes/map.pipe.js +25 -25
  38. package/esm2015/ngx-utils/pipes/max.pipe.js +22 -22
  39. package/esm2015/ngx-utils/pipes/min.pipe.js +22 -22
  40. package/esm2015/ngx-utils/pipes/reduce.pipe.js +26 -26
  41. package/esm2015/ngx-utils/pipes/remap.pipe.js +28 -28
  42. package/esm2015/ngx-utils/pipes/replace.pipe.js +12 -12
  43. package/esm2015/ngx-utils/pipes/reverse.pipe.js +20 -20
  44. package/esm2015/ngx-utils/pipes/round.pipe.js +19 -19
  45. package/esm2015/ngx-utils/pipes/safe-html.pipe.js +32 -32
  46. package/esm2015/ngx-utils/pipes/translate.pipe.js +81 -81
  47. package/esm2015/ngx-utils/pipes/values.pipe.js +18 -18
  48. package/esm2015/ngx-utils/plugins/resize-event.plugin.js +59 -59
  49. package/esm2015/ngx-utils/plugins/scroll-event.plugin.js +52 -52
  50. package/esm2015/ngx-utils/services/acl.service.js +78 -78
  51. package/esm2015/ngx-utils/services/api.service.js +35 -35
  52. package/esm2015/ngx-utils/services/auth.service.js +14 -14
  53. package/esm2015/ngx-utils/services/base-http.client.js +46 -46
  54. package/esm2015/ngx-utils/services/base-http.service.js +274 -274
  55. package/esm2015/ngx-utils/services/config.service.js +95 -95
  56. package/esm2015/ngx-utils/services/error-handler.service.js +49 -49
  57. package/esm2015/ngx-utils/services/events.service.js +24 -24
  58. package/esm2015/ngx-utils/services/formatter.service.js +44 -44
  59. package/esm2015/ngx-utils/services/global-template.service.js +35 -35
  60. package/esm2015/ngx-utils/services/icon.service.js +24 -24
  61. package/esm2015/ngx-utils/services/language.service.js +117 -117
  62. package/esm2015/ngx-utils/services/open-api.service.js +41 -41
  63. package/esm2015/ngx-utils/services/promise.service.js +49 -49
  64. package/esm2015/ngx-utils/services/state.service.js +143 -143
  65. package/esm2015/ngx-utils/services/static-language.service.js +144 -144
  66. package/esm2015/ngx-utils/services/storage.service.js +48 -48
  67. package/esm2015/ngx-utils/services/toaster.service.js +29 -29
  68. package/esm2015/ngx-utils/services/translated-url.serializer.js +70 -70
  69. package/esm2015/ngx-utils/services/universal.service.js +73 -73
  70. package/esm2015/ngx-utils/utils/ajax-request-handler.js +40 -40
  71. package/esm2015/ngx-utils/utils/array.utils.js +100 -90
  72. package/esm2015/ngx-utils/utils/auth.guard.js +153 -153
  73. package/esm2015/ngx-utils/utils/canvas.utils.js +388 -388
  74. package/esm2015/ngx-utils/utils/date.utils.js +28 -28
  75. package/esm2015/ngx-utils/utils/file.utils.js +90 -90
  76. package/esm2015/ngx-utils/utils/generic-value.js +20 -20
  77. package/esm2015/ngx-utils/utils/geometry.js +132 -132
  78. package/esm2015/ngx-utils/utils/initializer.js +17 -17
  79. package/esm2015/ngx-utils/utils/loader.utils.js +55 -55
  80. package/esm2015/ngx-utils/utils/math.utils.js +15 -15
  81. package/esm2015/ngx-utils/utils/object.utils.js +248 -248
  82. package/esm2015/ngx-utils/utils/observable.utils.js +63 -63
  83. package/esm2015/ngx-utils/utils/reflect.utils.js +33 -33
  84. package/esm2015/ngx-utils/utils/set.utils.js +20 -20
  85. package/esm2015/ngx-utils/utils/string.utils.js +28 -28
  86. package/esm2015/ngx-utils/utils/timer.utils.js +52 -52
  87. package/esm2015/ngx-utils/utils/unique.utils.js +24 -24
  88. package/esm2015/ngx-utils/utils/vector.js +77 -77
  89. package/esm2015/public_api.js +83 -83
  90. package/esm2015/stemy-ngx-utils.js +7 -7
  91. package/fesm2015/stemy-ngx-utils.js +4552 -4537
  92. package/fesm2015/stemy-ngx-utils.js.map +1 -1
  93. package/ngx-utils/common-types.d.ts +284 -284
  94. package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +43 -43
  95. package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +28 -28
  96. package/ngx-utils/components/unordered-list/unordered-list.component.d.ts +22 -22
  97. package/ngx-utils/directives/async-method.directive.d.ts +16 -16
  98. package/ngx-utils/directives/background.directive.d.ts +14 -14
  99. package/ngx-utils/directives/dynamic-table-template.directive.d.ts +8 -8
  100. package/ngx-utils/directives/global-template.directive.d.ts +10 -10
  101. package/ngx-utils/directives/icon.directive.d.ts +20 -20
  102. package/ngx-utils/directives/ngx-template-outlet.directive.d.ts +14 -14
  103. package/ngx-utils/directives/pagination-item.directive.d.ts +12 -12
  104. package/ngx-utils/directives/pagination.directive.d.ts +22 -21
  105. package/ngx-utils/directives/resource-if.directive.d.ts +16 -16
  106. package/ngx-utils/directives/sticky-class.directive.d.ts +12 -12
  107. package/ngx-utils/directives/sticky.directive.d.ts +16 -16
  108. package/ngx-utils/directives/unordered-list-item.directive.d.ts +25 -25
  109. package/ngx-utils/directives/unordered-list-template.directive.d.ts +10 -10
  110. package/ngx-utils/ngx-utils.module.d.ts +76 -76
  111. package/ngx-utils/pipes/chunk.pipe.d.ts +4 -4
  112. package/ngx-utils/pipes/entries.pipe.d.ts +9 -9
  113. package/ngx-utils/pipes/extra-item-properties.pipe.d.ts +5 -5
  114. package/ngx-utils/pipes/filter.pipe.d.ts +5 -5
  115. package/ngx-utils/pipes/find.pipe.d.ts +5 -5
  116. package/ngx-utils/pipes/format-number.pipe.d.ts +7 -7
  117. package/ngx-utils/pipes/get-offset.pipe.d.ts +4 -4
  118. package/ngx-utils/pipes/get-type.pipe.d.ts +4 -4
  119. package/ngx-utils/pipes/global-template.pipe.d.ts +13 -13
  120. package/ngx-utils/pipes/group-by.pipe.d.ts +5 -5
  121. package/ngx-utils/pipes/is-type.pipe.d.ts +4 -4
  122. package/ngx-utils/pipes/join.pipe.d.ts +4 -4
  123. package/ngx-utils/pipes/keys.pipe.d.ts +4 -4
  124. package/ngx-utils/pipes/map.pipe.d.ts +5 -5
  125. package/ngx-utils/pipes/max.pipe.d.ts +4 -4
  126. package/ngx-utils/pipes/min.pipe.d.ts +4 -4
  127. package/ngx-utils/pipes/reduce.pipe.d.ts +5 -5
  128. package/ngx-utils/pipes/remap.pipe.d.ts +4 -4
  129. package/ngx-utils/pipes/replace.pipe.d.ts +4 -4
  130. package/ngx-utils/pipes/reverse.pipe.d.ts +4 -4
  131. package/ngx-utils/pipes/round.pipe.d.ts +7 -7
  132. package/ngx-utils/pipes/safe-html.pipe.d.ts +7 -7
  133. package/ngx-utils/pipes/translate.pipe.d.ts +15 -15
  134. package/ngx-utils/pipes/values.pipe.d.ts +4 -4
  135. package/ngx-utils/plugins/resize-event.plugin.d.ts +10 -10
  136. package/ngx-utils/plugins/scroll-event.plugin.d.ts +11 -11
  137. package/ngx-utils/services/acl.service.d.ts +12 -12
  138. package/ngx-utils/services/api.service.d.ts +14 -14
  139. package/ngx-utils/services/auth.service.d.ts +8 -8
  140. package/ngx-utils/services/base-http.client.d.ts +12 -12
  141. package/ngx-utils/services/base-http.service.d.ts +42 -42
  142. package/ngx-utils/services/config.service.d.ts +21 -21
  143. package/ngx-utils/services/error-handler.service.d.ts +10 -10
  144. package/ngx-utils/services/events.service.d.ts +11 -11
  145. package/ngx-utils/services/formatter.service.d.ts +12 -12
  146. package/ngx-utils/services/global-template.service.d.ts +16 -16
  147. package/ngx-utils/services/icon.service.d.ts +10 -10
  148. package/ngx-utils/services/language.service.d.ts +18 -18
  149. package/ngx-utils/services/open-api.service.d.ts +8 -8
  150. package/ngx-utils/services/promise.service.d.ts +15 -15
  151. package/ngx-utils/services/state.service.d.ts +41 -41
  152. package/ngx-utils/services/static-language.service.d.ts +41 -41
  153. package/ngx-utils/services/storage.service.d.ts +12 -12
  154. package/ngx-utils/services/toaster.service.d.ts +10 -10
  155. package/ngx-utils/services/translated-url.serializer.d.ts +16 -16
  156. package/ngx-utils/services/universal.service.d.ts +24 -24
  157. package/ngx-utils/utils/ajax-request-handler.d.ts +11 -11
  158. package/ngx-utils/utils/array.utils.d.ts +10 -9
  159. package/ngx-utils/utils/auth.guard.d.ts +26 -26
  160. package/ngx-utils/utils/canvas.utils.d.ts +13 -13
  161. package/ngx-utils/utils/date.utils.d.ts +8 -8
  162. package/ngx-utils/utils/file.utils.d.ts +14 -14
  163. package/ngx-utils/utils/generic-value.d.ts +8 -8
  164. package/ngx-utils/utils/geometry.d.ts +50 -50
  165. package/ngx-utils/utils/initializer.d.ts +11 -11
  166. package/ngx-utils/utils/loader.utils.d.ts +7 -7
  167. package/ngx-utils/utils/math.utils.d.ts +5 -5
  168. package/ngx-utils/utils/object.utils.d.ts +31 -31
  169. package/ngx-utils/utils/observable.utils.d.ts +12 -12
  170. package/ngx-utils/utils/reflect.utils.d.ts +9 -9
  171. package/ngx-utils/utils/set.utils.d.ts +4 -4
  172. package/ngx-utils/utils/string.utils.d.ts +7 -7
  173. package/ngx-utils/utils/timer.utils.d.ts +6 -6
  174. package/ngx-utils/utils/unique.utils.d.ts +5 -5
  175. package/ngx-utils/utils/vector.d.ts +23 -23
  176. package/package.json +1 -1
  177. package/public_api.d.ts +82 -82
  178. package/stemy-ngx-utils.d.ts +6 -6
  179. package/stemy-ngx-utils.metadata.json +1 -1
  180. package/tools/circular.js +116 -116
  181. package/tools/config.js +78 -78
  182. package/tools/icons.js +13 -13
@@ -1,78 +1,78 @@
1
- import { Inject, Injectable, Injector } from "@angular/core";
2
- import { StateService } from "./state.service";
3
- import { AUTH_SERVICE } from "../common-types";
4
- import { ObjectUtils } from "../utils/object.utils";
5
- import { AuthGuard } from "../utils/auth.guard";
6
- const emptyGuards = [];
7
- export class AclService {
8
- constructor(injector, state, auth) {
9
- this.injector = injector;
10
- this.state = state;
11
- this.auth = auth;
12
- this.components = [];
13
- this.auth.userChanged.subscribe(() => {
14
- this.components.forEach(t => t.dirty = true);
15
- const info = this.getStateInfo();
16
- const check = info && info.guard instanceof AuthGuard ? info.guard.checkRoute(info.route) : Promise.resolve(true);
17
- check.then(result => {
18
- if (result) {
19
- AclService.checkStateDirty(info);
20
- return;
21
- }
22
- info.guard.getReturnState(info.route).then(returnState => {
23
- if (!returnState)
24
- return;
25
- this.state.navigate(returnState);
26
- });
27
- });
28
- });
29
- this.state.subscribe(() => {
30
- const info = this.getStateInfo();
31
- AclService.checkStateDirty(info);
32
- });
33
- }
34
- static checkStateDirty(info) {
35
- if (!info || !info.dirty)
36
- return;
37
- info.dirty = false;
38
- if (!ObjectUtils.checkInterface(info.component, {
39
- onUserInitialized: "function",
40
- onUserChanged: "function"
41
- }))
42
- return;
43
- const component = info.component;
44
- if (info.first) {
45
- component.onUserInitialized();
46
- info.first = false;
47
- return;
48
- }
49
- component.onUserChanged();
50
- }
51
- getStateInfo() {
52
- const route = this.state.route;
53
- if (!route)
54
- return null;
55
- let info = this.components.find(t => t.route == this.state.route);
56
- if (!info) {
57
- const guardType = (route.canActivate || emptyGuards)[0];
58
- info = {
59
- route: this.state.route,
60
- component: this.state.component,
61
- guard: guardType ? this.injector.get(guardType) : null,
62
- dirty: false,
63
- first: true
64
- };
65
- this.components.push(info);
66
- }
67
- return info;
68
- }
69
- }
70
- AclService.decorators = [
71
- { type: Injectable }
72
- ];
73
- AclService.ctorParameters = () => [
74
- { type: Injector },
75
- { type: StateService },
76
- { type: undefined, decorators: [{ type: Inject, args: [AUTH_SERVICE,] }] }
77
- ];
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvc3RlbXkvV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3NlcnZpY2VzL2FjbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztBQUc5QixNQUFNLE9BQU8sVUFBVTtJQW9CbkIsWUFBcUIsUUFBa0IsRUFBVyxLQUFtQixFQUFpQyxJQUFrQjtRQUFuRyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVcsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFpQyxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ3BILElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBcUIsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMs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Y3RvciwgVHlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7U3RhdGVTZXJ2aWNlfSBmcm9tIFwiLi9zdGF0ZS5zZXJ2aWNlXCI7XG5pbXBvcnQge0FVVEhfU0VSVklDRSwgSUFjbENvbXBvbmVudCwgSUF1dGhTZXJ2aWNlLCBJUm91dGVTdGF0ZUluZm99IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuLi91dGlscy9vYmplY3QudXRpbHNcIjtcbmltcG9ydCB7QXV0aEd1YXJkfSBmcm9tIFwiLi4vdXRpbHMvYXV0aC5ndWFyZFwiO1xuXG5jb25zdCBlbXB0eUd1YXJkczogYW55W10gPSBbXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFjbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnRzOiBJUm91dGVTdGF0ZUluZm9bXTtcblxuICAgIHByaXZhdGUgc3RhdGljIGNoZWNrU3RhdGVEaXJ0eShpbmZvOiBJUm91dGVTdGF0ZUluZm8pIHtcbiAgICAgICAgaWYgKCFpbmZvIHx8ICFpbmZvLmRpcnR5KSByZXR1cm47XG4gICAgICAgIGluZm8uZGlydHkgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5jaGVja0ludGVyZmFjZShpbmZvLmNvbXBvbmVudCwge1xuICAgICAgICAgICAgb25Vc2VySW5pdGlhbGl6ZWQ6IFwiZnVuY3Rpb25cIixcbiAgICAgICAgICAgIG9uVXNlckNoYW5nZWQ6IFwiZnVuY3Rpb25cIlxuICAgICAgICB9KSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBjb21wb25lbnQ6IElBY2xDb21wb25lbnQgPSBpbmZvLmNvbXBvbmVudDtcbiAgICAgICAgaWYgKGluZm8uZmlyc3QpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5vblVzZXJJbml0aWFsaXplZCgpO1xuICAgICAgICAgICAgaW5mby5maXJzdCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbXBvbmVudC5vblVzZXJDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLCByZWFkb25seSBzdGF0ZTogU3RhdGVTZXJ2aWNlLCBASW5qZWN0KEFVVEhfU0VSVklDRSkgcmVhZG9ubHkgYXV0aDogSUF1dGhTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50cyA9IFtdO1xuICAgICAgICB0aGlzLmF1dGgudXNlckNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKHQgPT4gdC5kaXJ0eSA9IHRydWUpO1xuICAgICAgICAgICAgY29uc3QgaW5mbyA9IHRoaXMuZ2V0U3RhdGVJbmZvKCk7XG4gICAgICAgICAgICBjb25zdCBjaGVjazogUHJvbWlzZTxib29sZWFuPiA9IGluZm8gJiYgaW5mby5ndWFyZCBpbnN0YW5jZW9mIEF1dGhHdWFyZCA/IGluZm8uZ3VhcmQuY2hlY2tSb3V0ZShpbmZvLnJvdXRlKSA6IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIGNoZWNrLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIEFjbFNlcnZpY2UuY2hlY2tTdGF0ZURpcnR5KGluZm8pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIChpbmZvLmd1YXJkIGFzIEF1dGhHdWFyZCkuZ2V0UmV0dXJuU3RhdGUoaW5mby5yb3V0ZSkudGhlbihyZXR1cm5TdGF0ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmV0dXJuU3RhdGUpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5uYXZpZ2F0ZShyZXR1cm5TdGF0ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3RhdGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLmdldFN0YXRlSW5mbygpO1xuICAgICAgICAgICAgQWNsU2VydmljZS5jaGVja1N0YXRlRGlydHkoaW5mbyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RhdGVJbmZvKCk6IElSb3V0ZVN0YXRlSW5mbyB7XG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5zdGF0ZS5yb3V0ZTtcbiAgICAgICAgaWYgKCFyb3V0ZSkgcmV0dXJuIG51bGw7XG4gICAgICAgIGxldCBpbmZvID0gdGhpcy5jb21wb25lbnRzLmZpbmQodCA9PiB0LnJvdXRlID09IHRoaXMuc3RhdGUucm91dGUpO1xuICAgICAgICBpZiAoIWluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGd1YXJkVHlwZTogVHlwZTxBdXRoR3VhcmQ+ID0gKHJvdXRlLmNhbkFjdGl2YXRlIHx8IGVtcHR5R3VhcmRzKVswXTtcbiAgICAgICAgICAgIGluZm8gPSB7XG4gICAgICAgICAgICAgICAgcm91dGU6IHRoaXMuc3RhdGUucm91dGUsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLnN0YXRlLmNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBndWFyZDogZ3VhcmRUeXBlID8gdGhpcy5pbmplY3Rvci5nZXQoZ3VhcmRUeXBlKSA6IG51bGwsXG4gICAgICAgICAgICAgICAgZGlydHk6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZpcnN0OiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzLnB1c2goaW5mbyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgfVxufVxuIl19
1
+ import { Inject, Injectable, Injector } from "@angular/core";
2
+ import { StateService } from "./state.service";
3
+ import { AUTH_SERVICE } from "../common-types";
4
+ import { ObjectUtils } from "../utils/object.utils";
5
+ import { AuthGuard } from "../utils/auth.guard";
6
+ const emptyGuards = [];
7
+ export class AclService {
8
+ constructor(injector, state, auth) {
9
+ this.injector = injector;
10
+ this.state = state;
11
+ this.auth = auth;
12
+ this.components = [];
13
+ this.auth.userChanged.subscribe(() => {
14
+ this.components.forEach(t => t.dirty = true);
15
+ const info = this.getStateInfo();
16
+ const check = info && info.guard instanceof AuthGuard ? info.guard.checkRoute(info.route) : Promise.resolve(true);
17
+ check.then(result => {
18
+ if (result) {
19
+ AclService.checkStateDirty(info);
20
+ return;
21
+ }
22
+ info.guard.getReturnState(info.route).then(returnState => {
23
+ if (!returnState)
24
+ return;
25
+ this.state.navigate(returnState);
26
+ });
27
+ });
28
+ });
29
+ this.state.subscribe(() => {
30
+ const info = this.getStateInfo();
31
+ AclService.checkStateDirty(info);
32
+ });
33
+ }
34
+ static checkStateDirty(info) {
35
+ if (!info || !info.dirty)
36
+ return;
37
+ info.dirty = false;
38
+ if (!ObjectUtils.checkInterface(info.component, {
39
+ onUserInitialized: "function",
40
+ onUserChanged: "function"
41
+ }))
42
+ return;
43
+ const component = info.component;
44
+ if (info.first) {
45
+ component.onUserInitialized();
46
+ info.first = false;
47
+ return;
48
+ }
49
+ component.onUserChanged();
50
+ }
51
+ getStateInfo() {
52
+ const route = this.state.route;
53
+ if (!route)
54
+ return null;
55
+ let info = this.components.find(t => t.route == this.state.route);
56
+ if (!info) {
57
+ const guardType = (route.canActivate || emptyGuards)[0];
58
+ info = {
59
+ route: this.state.route,
60
+ component: this.state.component,
61
+ guard: guardType ? this.injector.get(guardType) : null,
62
+ dirty: false,
63
+ first: true
64
+ };
65
+ this.components.push(info);
66
+ }
67
+ return info;
68
+ }
69
+ }
70
+ AclService.decorators = [
71
+ { type: Injectable }
72
+ ];
73
+ AclService.ctorParameters = () => [
74
+ { type: Injector },
75
+ { type: StateService },
76
+ { type: undefined, decorators: [{ type: Inject, args: [AUTH_SERVICE,] }] }
77
+ ];
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3NlcnZpY2VzL2FjbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztBQUc5QixNQUFNLE9BQU8sVUFBVTtJQW9CbkIsWUFBcUIsUUFBa0IsRUFBVyxLQUFtQixFQUFpQyxJQUFrQjtRQUFuRyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVcsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFpQyxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ3BILElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBcUIsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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ZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdGF0ZVNlcnZpY2V9IGZyb20gXCIuL3N0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBVVRIX1NFUlZJQ0UsIElBY2xDb21wb25lbnQsIElBdXRoU2VydmljZSwgSVJvdXRlU3RhdGVJbmZvfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuLi91dGlscy9vYmplY3QudXRpbHNcIjtcclxuaW1wb3J0IHtBdXRoR3VhcmR9IGZyb20gXCIuLi91dGlscy9hdXRoLmd1YXJkXCI7XHJcblxyXG5jb25zdCBlbXB0eUd1YXJkczogYW55W10gPSBbXTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFjbFNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgY29tcG9uZW50czogSVJvdXRlU3RhdGVJbmZvW107XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tTdGF0ZURpcnR5KGluZm86IElSb3V0ZVN0YXRlSW5mbykge1xyXG4gICAgICAgIGlmICghaW5mbyB8fCAhaW5mby5kaXJ0eSkgcmV0dXJuO1xyXG4gICAgICAgIGluZm8uZGlydHkgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmNoZWNrSW50ZXJmYWNlKGluZm8uY29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIG9uVXNlckluaXRpYWxpemVkOiBcImZ1bmN0aW9uXCIsXHJcbiAgICAgICAgICAgIG9uVXNlckNoYW5nZWQ6IFwiZnVuY3Rpb25cIlxyXG4gICAgICAgIH0pKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50OiBJQWNsQ29tcG9uZW50ID0gaW5mby5jb21wb25lbnQ7XHJcbiAgICAgICAgaWYgKGluZm8uZmlyc3QpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50Lm9uVXNlckluaXRpYWxpemVkKCk7XHJcbiAgICAgICAgICAgIGluZm8uZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb21wb25lbnQub25Vc2VyQ2hhbmdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvciwgcmVhZG9ubHkgc3RhdGU6IFN0YXRlU2VydmljZSwgQEluamVjdChBVVRIX1NFUlZJQ0UpIHJlYWRvbmx5IGF1dGg6IElBdXRoU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuYXV0aC51c2VyQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMuZm9yRWFjaCh0ID0+IHQuZGlydHkgPSB0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW5mbyA9IHRoaXMuZ2V0U3RhdGVJbmZvKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrOiBQcm9taXNlPGJvb2xlYW4+ID0gaW5mbyAmJiBpbmZvLmd1YXJkIGluc3RhbmNlb2YgQXV0aEd1YXJkID8gaW5mby5ndWFyZC5jaGVja1JvdXRlKGluZm8ucm91dGUpIDogUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICBjaGVjay50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQWNsU2VydmljZS5jaGVja1N0YXRlRGlydHkoaW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKGluZm8uZ3VhcmQgYXMgQXV0aEd1YXJkKS5nZXRSZXR1cm5TdGF0ZShpbmZvLnJvdXRlKS50aGVuKHJldHVyblN0YXRlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJldHVyblN0YXRlKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5uYXZpZ2F0ZShyZXR1cm5TdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5nZXRTdGF0ZUluZm8oKTtcclxuICAgICAgICAgICAgQWNsU2VydmljZS5jaGVja1N0YXRlRGlydHkoaW5mbyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTdGF0ZUluZm8oKTogSVJvdXRlU3RhdGVJbmZvIHtcclxuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuc3RhdGUucm91dGU7XHJcbiAgICAgICAgaWYgKCFyb3V0ZSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgbGV0IGluZm8gPSB0aGlzLmNvbXBvbmVudHMuZmluZCh0ID0+IHQucm91dGUgPT0gdGhpcy5zdGF0ZS5yb3V0ZSk7XHJcbiAgICAgICAgaWYgKCFpbmZvKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGd1YXJkVHlwZTogVHlwZTxBdXRoR3VhcmQ+ID0gKHJvdXRlLmNhbkFjdGl2YXRlIHx8IGVtcHR5R3VhcmRzKVswXTtcclxuICAgICAgICAgICAgaW5mbyA9IHtcclxuICAgICAgICAgICAgICAgIHJvdXRlOiB0aGlzLnN0YXRlLnJvdXRlLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLnN0YXRlLmNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIGd1YXJkOiBndWFyZFR5cGUgPyB0aGlzLmluamVjdG9yLmdldChndWFyZFR5cGUpIDogbnVsbCxcclxuICAgICAgICAgICAgICAgIGRpcnR5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGZpcnN0OiB0cnVlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cy5wdXNoKGluZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaW5mbztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,35 +1,35 @@
1
- import { Injectable } from "@angular/core";
2
- import { BaseHttpService } from "./base-http.service";
3
- export class ApiService extends BaseHttpService {
4
- get name() {
5
- return "api";
6
- }
7
- url(url) {
8
- return this.expressRequestUrl(`/api/${url}`);
9
- }
10
- get(url, options) {
11
- return this.getPromise(url, options);
12
- }
13
- delete(url, options) {
14
- return this.deletePromise(url, options);
15
- }
16
- post(url, body, options) {
17
- return this.postPromise(url, body, options);
18
- }
19
- put(url, body, options) {
20
- return this.putPromise(url, body, options);
21
- }
22
- patch(url, body, options) {
23
- return this.patchPromise(url, body, options);
24
- }
25
- upload(url, body, listener, options) {
26
- return this.uploadPromise(url, body, listener, options);
27
- }
28
- list(url, params) {
29
- return this.listPromise(url, params);
30
- }
31
- }
32
- ApiService.decorators = [
33
- { type: Injectable }
34
- ];
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvc3RlbXkvV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSXBELE1BQU0sT0FBTyxVQUFXLFNBQVEsZUFBZTtJQUUzQyxJQUFJLElBQUk7UUFDSixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsT0FBeUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxPQUF5QjtRQUN6QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBVyxFQUFFLElBQVUsRUFBRSxPQUF5QjtRQUNuRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFVLEVBQUUsT0FBeUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFXLEVBQUUsSUFBVSxFQUFFLE9BQXlCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVyxFQUFFLElBQVMsRUFBRSxRQUEyQixFQUFFLE9BQXlCO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVcsRUFBRSxNQUFtQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OztZQXJDSixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQge0lBcGlTZXJ2aWNlLCBJSHR0cFBhcmFtcywgSVJlcXVlc3RPcHRpb25zLCBQcm9ncmVzc0xpc3RlbmVyfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQge0Jhc2VIdHRwU2VydmljZX0gZnJvbSBcIi4vYmFzZS1odHRwLnNlcnZpY2VcIjtcbmltcG9ydCB7SVBhZ2luYXRpb25EYXRhfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcGlTZXJ2aWNlIGV4dGVuZHMgQmFzZUh0dHBTZXJ2aWNlIGltcGxlbWVudHMgSUFwaVNlcnZpY2Uge1xuXG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiYXBpXCI7XG4gICAgfVxuXG4gICAgdXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc1JlcXVlc3RVcmwoYC9hcGkvJHt1cmx9YCk7XG4gICAgfVxuXG4gICAgZ2V0KHVybDogc3RyaW5nLCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvbWlzZSh1cmwsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGRlbGV0ZSh1cmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZVByb21pc2UodXJsLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwb3N0KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFByb21pc2UodXJsLCBib2R5LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdXQodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wdXRQcm9taXNlKHVybCwgYm9keSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcGF0Y2godXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRjaFByb21pc2UodXJsLCBib2R5LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICB1cGxvYWQodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgbGlzdGVuZXI/OiBQcm9ncmVzc0xpc3RlbmVyLCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkUHJvbWlzZSh1cmwsIGJvZHksIGxpc3RlbmVyLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBsaXN0KHVybDogc3RyaW5nLCBwYXJhbXM6IElIdHRwUGFyYW1zKTogUHJvbWlzZTxJUGFnaW5hdGlvbkRhdGE+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdFByb21pc2UodXJsLCBwYXJhbXMpO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { Injectable } from "@angular/core";
2
+ import { BaseHttpService } from "./base-http.service";
3
+ export class ApiService extends BaseHttpService {
4
+ get name() {
5
+ return "api";
6
+ }
7
+ url(url) {
8
+ return this.expressRequestUrl(`/api/${url}`);
9
+ }
10
+ get(url, options, body) {
11
+ return this.getPromise(url, options, body);
12
+ }
13
+ delete(url, options, body) {
14
+ return this.deletePromise(url, options, body);
15
+ }
16
+ post(url, body, options) {
17
+ return this.postPromise(url, body, options);
18
+ }
19
+ put(url, body, options) {
20
+ return this.putPromise(url, body, options);
21
+ }
22
+ patch(url, body, options) {
23
+ return this.patchPromise(url, body, options);
24
+ }
25
+ upload(url, body, listener, options) {
26
+ return this.uploadPromise(url, body, listener, options);
27
+ }
28
+ list(url, params) {
29
+ return this.listPromise(url, params);
30
+ }
31
+ }
32
+ ApiService.decorators = [
33
+ { type: Injectable }
34
+ ];
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSXBELE1BQU0sT0FBTyxVQUFXLFNBQVEsZUFBZTtJQUUzQyxJQUFJLElBQUk7UUFDSixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsT0FBeUIsRUFBRSxJQUFVO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVyxFQUFFLE9BQXlCLEVBQUUsSUFBVTtRQUNyRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFVLEVBQUUsT0FBeUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBVSxFQUFFLE9BQXlCO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBVyxFQUFFLElBQVUsRUFBRSxPQUF5QjtRQUNwRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQUUsUUFBMkIsRUFBRSxPQUF5QjtRQUNqRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFXLEVBQUUsTUFBbUI7UUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7WUFyQ0osVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7SUFwaVNlcnZpY2UsIElIdHRwUGFyYW1zLCBJUmVxdWVzdE9wdGlvbnMsIFByb2dyZXNzTGlzdGVuZXJ9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtCYXNlSHR0cFNlcnZpY2V9IGZyb20gXCIuL2Jhc2UtaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SVBhZ2luYXRpb25EYXRhfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBcGlTZXJ2aWNlIGV4dGVuZHMgQmFzZUh0dHBTZXJ2aWNlIGltcGxlbWVudHMgSUFwaVNlcnZpY2Uge1xyXG5cclxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFwiYXBpXCI7XHJcbiAgICB9XHJcblxyXG4gICAgdXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5leHByZXNzUmVxdWVzdFVybChgL2FwaS8ke3VybH1gKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMsIGJvZHk/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFByb21pc2UodXJsLCBvcHRpb25zLCBib2R5KTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGUodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMsIGJvZHk/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZVByb21pc2UodXJsLCBvcHRpb25zLCBib2R5KTtcclxuICAgIH1cclxuXHJcbiAgICBwb3N0KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0UHJvbWlzZSh1cmwsIGJvZHksIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1dCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHV0UHJvbWlzZSh1cmwsIGJvZHksIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoKHVybDogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXRjaFByb21pc2UodXJsLCBib2R5LCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGxvYWQodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgbGlzdGVuZXI/OiBQcm9ncmVzc0xpc3RlbmVyLCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRQcm9taXNlKHVybCwgYm9keSwgbGlzdGVuZXIsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGxpc3QodXJsOiBzdHJpbmcsIHBhcmFtczogSUh0dHBQYXJhbXMpOiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RQcm9taXNlKHVybCwgcGFyYW1zKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,14 +1,14 @@
1
- import { EventEmitter } from "@angular/core";
2
- export class StaticAuthService {
3
- constructor() {
4
- this.isAuthenticated = true;
5
- this.userChanged = new EventEmitter();
6
- }
7
- checkAuthenticated() {
8
- return Promise.resolve(this.isAuthenticated);
9
- }
10
- getReturnState(route) {
11
- return null;
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3N0ZW15L1dvcmsvbmd4LXV0aWxzL3NyYy8iLCJzb3VyY2VzIjpbIm5neC11dGlscy9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBRUksb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFDaEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQVM3RCxDQUFDO0lBUEcsa0JBQWtCO1FBQ2QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0lSb3V0ZSwgSUF1dGhTZXJ2aWNlfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBTdGF0aWNBdXRoU2VydmljZSBpbXBsZW1lbnRzIElBdXRoU2VydmljZSB7XG5cbiAgICBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHVzZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY2hlY2tBdXRoZW50aWNhdGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuaXNBdXRoZW50aWNhdGVkKTtcbiAgICB9XG5cbiAgICBnZXRSZXR1cm5TdGF0ZShyb3V0ZTogSVJvdXRlKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iXX0=
1
+ import { EventEmitter } from "@angular/core";
2
+ export class StaticAuthService {
3
+ constructor() {
4
+ this.isAuthenticated = true;
5
+ this.userChanged = new EventEmitter();
6
+ }
7
+ checkAuthenticated() {
8
+ return Promise.resolve(this.isAuthenticated);
9
+ }
10
+ getReturnState(route) {
11
+ return null;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmsvbmd4LXV0aWxzL3NyYy8iLCJzb3VyY2VzIjpbIm5neC11dGlscy9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBRUksb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFDaEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQVM3RCxDQUFDO0lBUEcsa0JBQWtCO1FBQ2QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SVJvdXRlLCBJQXV0aFNlcnZpY2V9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGF0aWNBdXRoU2VydmljZSBpbXBsZW1lbnRzIElBdXRoU2VydmljZSB7XHJcblxyXG4gICAgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHVzZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGNoZWNrQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuaXNBdXRoZW50aWNhdGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRSZXR1cm5TdGF0ZShyb3V0ZTogSVJvdXRlKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,46 +1,46 @@
1
- import { Injectable } from "@angular/core";
2
- import { HttpClient, HttpHandler, HttpHeaders, HttpParams, HttpUrlEncodingCodec } from "@angular/common/http";
3
- import { ObjectUtils } from "../utils/object.utils";
4
- export class BaseHttpClient extends HttpClient {
5
- constructor(handler) {
6
- super(handler);
7
- this.requestHeaders = {};
8
- this.requestParams = {};
9
- this.extraRequestParams = {
10
- language: "en"
11
- };
12
- }
13
- makeHeaders(headers, withCredentials = true) {
14
- headers = Object.assign({}, this.requestHeaders, headers);
15
- const authHeader = headers["Authorization"] || "";
16
- if (!withCredentials && !authHeader.startsWith("Bearer")) {
17
- delete headers["Authorization"];
18
- }
19
- return new HttpHeaders(headers);
20
- }
21
- makeParams(params) {
22
- params = Object.assign({}, this.extraRequestParams, this.requestParams, params);
23
- return new HttpParams({
24
- encoder: new HttpUrlEncodingCodec(),
25
- fromObject: Object.keys(params || {}).reduce((result, key) => {
26
- const value = params[key];
27
- result[key] = ObjectUtils.isObject(value) ? JSON.stringify(value) : (ObjectUtils.isNullOrUndefined(value) ? "" : value.toString());
28
- return result;
29
- }, {})
30
- });
31
- }
32
- setExtraRequestParam(name, value) {
33
- if (typeof value == "undefined") {
34
- delete this.extraRequestParams[name];
35
- return;
36
- }
37
- this.extraRequestParams[name] = value;
38
- }
39
- }
40
- BaseHttpClient.decorators = [
41
- { type: Injectable }
42
- ];
43
- BaseHttpClient.ctorParameters = () => [
44
- { type: HttpHandler }
45
- ];
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLmNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvc2VydmljZXMvYmFzZS1odHRwLmNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBUTFDLFlBQVksT0FBb0I7UUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCLEVBQUUsa0JBQTJCLElBQUk7UUFDL0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0RCxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFvQjtRQUMzQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEYsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNsQixPQUFPLEVBQUUsSUFBSSxvQkFBb0IsRUFBRTtZQUNuQyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUN6RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDbkksT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsS0FBVztRQUMxQyxJQUFJLE9BQU8sS0FBSyxJQUFJLFdBQVcsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7OztZQTdDSixVQUFVOzs7WUFKUyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGFuZGxlciwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsIEh0dHBVcmxFbmNvZGluZ0NvZGVjfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7SUh0dHBIZWFkZXJzLCBJSHR0cFBhcmFtc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFzZUh0dHBDbGllbnQgZXh0ZW5kcyBIdHRwQ2xpZW50IHtcblxuICAgIHJlcXVlc3RIZWFkZXJzOiBJSHR0cEhlYWRlcnM7XG4gICAgcmVxdWVzdFBhcmFtczogSUh0dHBQYXJhbXM7XG4gICAgcmVuZXdUb2tlbkZ1bmM6ICgpID0+IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgZXh0cmFSZXF1ZXN0UGFyYW1zOiBJSHR0cFBhcmFtcztcblxuICAgIGNvbnN0cnVjdG9yKGhhbmRsZXI6IEh0dHBIYW5kbGVyKSB7XG4gICAgICAgIHN1cGVyKGhhbmRsZXIpO1xuICAgICAgICB0aGlzLnJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgICAgIHRoaXMucmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgICAgICB0aGlzLmV4dHJhUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBcImVuXCJcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBtYWtlSGVhZGVycyhoZWFkZXJzPzogSUh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSB0cnVlKTogSHR0cEhlYWRlcnMge1xuICAgICAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5yZXF1ZXN0SGVhZGVycywgaGVhZGVycyk7XG4gICAgICAgIGNvbnN0IGF1dGhIZWFkZXIgPSBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSBhcyBzdHJpbmcgfHwgXCJcIjtcbiAgICAgICAgaWYgKCF3aXRoQ3JlZGVudGlhbHMgJiYgIWF1dGhIZWFkZXIuc3RhcnRzV2l0aChcIkJlYXJlclwiKSkge1xuICAgICAgICAgICAgZGVsZXRlIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoaGVhZGVycyk7XG4gICAgfVxuXG4gICAgbWFrZVBhcmFtcyhwYXJhbXM/OiBJSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xuICAgICAgICBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmV4dHJhUmVxdWVzdFBhcmFtcywgdGhpcy5yZXF1ZXN0UGFyYW1zLCBwYXJhbXMpO1xuICAgICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgICAgZW5jb2RlcjogbmV3IEh0dHBVcmxFbmNvZGluZ0NvZGVjKCksXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiBPYmplY3Qua2V5cyhwYXJhbXMgfHwge30pLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc1trZXldO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogKE9iamVjdFV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSA/IFwiXCIgOiB2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwge30pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldEV4dHJhUmVxdWVzdFBhcmFtKG5hbWU6IHN0cmluZywgdmFsdWU/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5leHRyYVJlcXVlc3RQYXJhbXNbbmFtZV07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leHRyYVJlcXVlc3RQYXJhbXNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG59XG4iXX0=
1
+ import { Injectable } from "@angular/core";
2
+ import { HttpClient, HttpHandler, HttpHeaders, HttpParams, HttpUrlEncodingCodec } from "@angular/common/http";
3
+ import { ObjectUtils } from "../utils/object.utils";
4
+ export class BaseHttpClient extends HttpClient {
5
+ constructor(handler) {
6
+ super(handler);
7
+ this.requestHeaders = {};
8
+ this.requestParams = {};
9
+ this.extraRequestParams = {
10
+ language: "en"
11
+ };
12
+ }
13
+ makeHeaders(headers, withCredentials = true) {
14
+ headers = Object.assign({}, this.requestHeaders, headers);
15
+ const authHeader = headers["Authorization"] || "";
16
+ if (!withCredentials && !authHeader.startsWith("Bearer")) {
17
+ delete headers["Authorization"];
18
+ }
19
+ return new HttpHeaders(headers);
20
+ }
21
+ makeParams(params) {
22
+ params = Object.assign({}, this.extraRequestParams, this.requestParams, params);
23
+ return new HttpParams({
24
+ encoder: new HttpUrlEncodingCodec(),
25
+ fromObject: Object.keys(params || {}).reduce((result, key) => {
26
+ const value = params[key];
27
+ result[key] = ObjectUtils.isObject(value) ? JSON.stringify(value) : (ObjectUtils.isNullOrUndefined(value) ? "" : value.toString());
28
+ return result;
29
+ }, {})
30
+ });
31
+ }
32
+ setExtraRequestParam(name, value) {
33
+ if (typeof value == "undefined") {
34
+ delete this.extraRequestParams[name];
35
+ return;
36
+ }
37
+ this.extraRequestParams[name] = value;
38
+ }
39
+ }
40
+ BaseHttpClient.decorators = [
41
+ { type: Injectable }
42
+ ];
43
+ BaseHttpClient.ctorParameters = () => [
44
+ { type: HttpHandler }
45
+ ];
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLmNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvc2VydmljZXMvYmFzZS1odHRwLmNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBUTFDLFlBQVksT0FBb0I7UUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCLEVBQUUsa0JBQTJCLElBQUk7UUFDL0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0RCxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFvQjtRQUMzQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEYsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNsQixPQUFPLEVBQUUsSUFBSSxvQkFBb0IsRUFBRTtZQUNuQyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUN6RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDbkksT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsS0FBVztRQUMxQyxJQUFJLE9BQU8sS0FBSyxJQUFJLFdBQVcsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7OztZQTdDSixVQUFVOzs7WUFKUyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBIYW5kbGVyLCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcywgSHR0cFVybEVuY29kaW5nQ29kZWN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge0lIdHRwSGVhZGVycywgSUh0dHBQYXJhbXN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmFzZUh0dHBDbGllbnQgZXh0ZW5kcyBIdHRwQ2xpZW50IHtcclxuXHJcbiAgICByZXF1ZXN0SGVhZGVyczogSUh0dHBIZWFkZXJzO1xyXG4gICAgcmVxdWVzdFBhcmFtczogSUh0dHBQYXJhbXM7XHJcbiAgICByZW5ld1Rva2VuRnVuYzogKCkgPT4gdm9pZDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZXh0cmFSZXF1ZXN0UGFyYW1zOiBJSHR0cFBhcmFtcztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihoYW5kbGVyOiBIdHRwSGFuZGxlcikge1xyXG4gICAgICAgIHN1cGVyKGhhbmRsZXIpO1xyXG4gICAgICAgIHRoaXMucmVxdWVzdEhlYWRlcnMgPSB7fTtcclxuICAgICAgICB0aGlzLnJlcXVlc3RQYXJhbXMgPSB7fTtcclxuICAgICAgICB0aGlzLmV4dHJhUmVxdWVzdFBhcmFtcyA9IHtcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6IFwiZW5cIlxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUhlYWRlcnMoaGVhZGVycz86IElIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gdHJ1ZSk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5yZXF1ZXN0SGVhZGVycywgaGVhZGVycyk7XHJcbiAgICAgICAgY29uc3QgYXV0aEhlYWRlciA9IGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdIGFzIHN0cmluZyB8fCBcIlwiO1xyXG4gICAgICAgIGlmICghd2l0aENyZWRlbnRpYWxzICYmICFhdXRoSGVhZGVyLnN0YXJ0c1dpdGgoXCJCZWFyZXJcIikpIHtcclxuICAgICAgICAgICAgZGVsZXRlIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKGhlYWRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIG1ha2VQYXJhbXMocGFyYW1zPzogSUh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgICAgICBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmV4dHJhUmVxdWVzdFBhcmFtcywgdGhpcy5yZXF1ZXN0UGFyYW1zLCBwYXJhbXMpO1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGVuY29kZXI6IG5ldyBIdHRwVXJsRW5jb2RpbmdDb2RlYygpLFxyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiBPYmplY3Qua2V5cyhwYXJhbXMgfHwge30pLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zW2tleV07XHJcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IE9iamVjdFV0aWxzLmlzT2JqZWN0KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IChPYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgPyBcIlwiIDogdmFsdWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9LCB7fSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRFeHRyYVJlcXVlc3RQYXJhbShuYW1lOiBzdHJpbmcsIHZhbHVlPzogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmV4dHJhUmVxdWVzdFBhcmFtc1tuYW1lXTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmV4dHJhUmVxdWVzdFBhcmFtc1tuYW1lXSA9IHZhbHVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==