@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,24 +1,24 @@
1
- import { EventEmitter, Injectable } from "@angular/core";
2
- export class IconService {
3
- constructor() {
4
- this.iconsLoaded = new EventEmitter();
5
- this.disabled = false;
6
- }
7
- get isDisabled() {
8
- return this.disabled;
9
- }
10
- set isDisabled(value) {
11
- this.disabled = value;
12
- this.iconsLoaded.emit();
13
- }
14
- getIcon(icon, activeIcon, active) {
15
- icon = typeof icons == "undefined" ? icon : (icons[icon] || icon);
16
- activeIcon = typeof icons == "undefined" ? activeIcon : (icons[activeIcon] || icon);
17
- return Promise.resolve(active ? activeIcon : icon);
18
- }
19
- }
20
- IconService.decorators = [
21
- { type: Injectable }
22
- ];
23
- IconService.ctorParameters = () => [];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3N0ZW15L1dvcmsvbmd4LXV0aWxzL3NyYy8iLCJzb3VyY2VzIjpbIm5neC11dGlscy9zZXJ2aWNlcy9pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFRdkQsTUFBTSxPQUFPLFdBQVc7SUFlcEI7UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQWhCRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBV0QsT0FBTyxDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLE1BQWU7UUFDckQsSUFBSSxHQUFHLE9BQU8sS0FBSyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNsRSxVQUFVLEdBQUcsT0FBTyxLQUFLLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7O1lBekJKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SUljb25TZXJ2aWNlfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5cbmRlY2xhcmUgY29uc3QgaWNvbnM6IHtcbiAgICBbaWNvbjogc3RyaW5nXTogc3RyaW5nO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljb25TZXJ2aWNlIGltcGxlbWVudHMgSUljb25TZXJ2aWNlIHtcblxuICAgIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgaXNEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaWNvbnNMb2FkZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWFkb25seSBpY29uc0xvYWRlZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pY29uc0xvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0SWNvbihpY29uOiBzdHJpbmcsIGFjdGl2ZUljb246IHN0cmluZywgYWN0aXZlOiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgaWNvbiA9IHR5cGVvZiBpY29ucyA9PSBcInVuZGVmaW5lZFwiID8gaWNvbiA6IChpY29uc1tpY29uXSB8fCBpY29uKTtcbiAgICAgICAgYWN0aXZlSWNvbiA9IHR5cGVvZiBpY29ucyA9PSBcInVuZGVmaW5lZFwiID8gYWN0aXZlSWNvbiA6IChpY29uc1thY3RpdmVJY29uXSB8fCBpY29uKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhY3RpdmUgPyBhY3RpdmVJY29uIDogaWNvbik7XG4gICAgfVxufVxuIl19
1
+ import { EventEmitter, Injectable } from "@angular/core";
2
+ export class IconService {
3
+ constructor() {
4
+ this.iconsLoaded = new EventEmitter();
5
+ this.disabled = false;
6
+ }
7
+ get isDisabled() {
8
+ return this.disabled;
9
+ }
10
+ set isDisabled(value) {
11
+ this.disabled = value;
12
+ this.iconsLoaded.emit();
13
+ }
14
+ getIcon(icon, activeIcon, active) {
15
+ icon = typeof icons == "undefined" ? icon : (icons[icon] || icon);
16
+ activeIcon = typeof icons == "undefined" ? activeIcon : (icons[activeIcon] || icon);
17
+ return Promise.resolve(active ? activeIcon : icon);
18
+ }
19
+ }
20
+ IconService.decorators = [
21
+ { type: Injectable }
22
+ ];
23
+ IconService.ctorParameters = () => [];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmsvbmd4LXV0aWxzL3NyYy8iLCJzb3VyY2VzIjpbIm5neC11dGlscy9zZXJ2aWNlcy9pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFRdkQsTUFBTSxPQUFPLFdBQVc7SUFlcEI7UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQWhCRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBV0QsT0FBTyxDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLE1BQWU7UUFDckQsSUFBSSxHQUFHLE9BQU8sS0FBSyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNsRSxVQUFVLEdBQUcsT0FBTyxLQUFLLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7O1lBekJKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJSWNvblNlcnZpY2V9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbmRlY2xhcmUgY29uc3QgaWNvbnM6IHtcclxuICAgIFtpY29uOiBzdHJpbmddOiBzdHJpbmc7XHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJY29uU2VydmljZSBpbXBsZW1lbnRzIElJY29uU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5pY29uc0xvYWRlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zTG9hZGVkOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pY29uc0xvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJY29uKGljb246IHN0cmluZywgYWN0aXZlSWNvbjogc3RyaW5nLCBhY3RpdmU6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIGljb24gPSB0eXBlb2YgaWNvbnMgPT0gXCJ1bmRlZmluZWRcIiA/IGljb24gOiAoaWNvbnNbaWNvbl0gfHwgaWNvbik7XHJcbiAgICAgICAgYWN0aXZlSWNvbiA9IHR5cGVvZiBpY29ucyA9PSBcInVuZGVmaW5lZFwiID8gYWN0aXZlSWNvbiA6IChpY29uc1thY3RpdmVJY29uXSB8fCBpY29uKTtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFjdGl2ZSA/IGFjdGl2ZUljb24gOiBpY29uKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,117 +1,117 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from "@angular/core";
3
- import { BehaviorSubject, combineLatest } from "rxjs";
4
- import { map } from "rxjs/operators";
5
- import { StaticLanguageService } from "./static-language.service";
6
- export class LanguageService extends StaticLanguageService {
7
- get currentLanguage() {
8
- return this.currentLang || this.defaultLanguage;
9
- }
10
- set currentLanguage(lang) {
11
- this.useLanguage(lang).then(() => {
12
- this.events.languageChanged.emit(lang);
13
- });
14
- }
15
- get settings() {
16
- const settings = this.languageSettings.value;
17
- return !settings ? {} : settings.settings[this.currentLanguage] || {};
18
- }
19
- get $settings() {
20
- this.loadSettings().then(s => this.languageSettings.next(s));
21
- return combineLatest([this.languageSettings, this.events.languageChanged]).pipe(map(([settings, lang]) => {
22
- return !settings ? {} : settings.settings[lang] || {};
23
- }));
24
- }
25
- initService() {
26
- this.client.setExtraRequestParam("language", "de");
27
- this.translationRequests = {};
28
- this.languageSettings = new BehaviorSubject(null);
29
- if (this.universal.isServer)
30
- return;
31
- window["setLanguage"] = (lang) => {
32
- this.currentLanguage = lang;
33
- };
34
- }
35
- initFromSettings() {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const defaultLanguage = this.defaultLanguage;
38
- const settings = yield this.loadSettings();
39
- this.languageSettings.next(settings);
40
- const devLanguages = settings.devLanguages || [];
41
- this.languageList = (settings.languages || []).filter(lang => {
42
- return devLanguages.indexOf(lang) < 0;
43
- });
44
- const lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage : defaultLanguage;
45
- yield this.useLanguage(lang);
46
- this.events.languageChanged.emit(lang);
47
- });
48
- }
49
- getTranslation(key, params = null) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- if (!key)
52
- return "";
53
- try {
54
- const lowerKey = key.toLocaleLowerCase();
55
- const dict = yield this.loadDictionary();
56
- if (lowerKey in dict) {
57
- return this.interpolate(dict[lowerKey], params);
58
- }
59
- return this.interpolate(key, params);
60
- }
61
- catch (reason) {
62
- console.log("ERROR IN TRANSLATIONS", reason);
63
- return key;
64
- }
65
- });
66
- }
67
- useLanguage(lang) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- lang = this.languages.indexOf(lang) < 0 ? this.languages[0] : lang;
70
- this.client.setExtraRequestParam("language", lang);
71
- if (lang == this.currentLang)
72
- return this.dictionary;
73
- this.storage.set("language", lang);
74
- this.currentLang = lang;
75
- const dict = yield this.loadDictionary();
76
- this.translations[lang] = dict;
77
- return dict;
78
- });
79
- }
80
- loadDictionary() {
81
- const lang = this.currentLanguage;
82
- this.translationRequests[lang] = this.translationRequests[lang] || new Promise(resolve => {
83
- this.httpClient.get(`${this.config.translationUrl}${lang}`).toPromise().then(response => {
84
- response = response || {};
85
- resolve(Object.keys(response).reduce((result, key) => {
86
- result[key.toLocaleLowerCase()] = response[key];
87
- return result;
88
- }, {}));
89
- }, () => {
90
- resolve({});
91
- });
92
- });
93
- return this.translationRequests[lang];
94
- }
95
- loadSettings() {
96
- this.settingsPromise = this.settingsPromise || this.client.get(`${this.config.translationUrl}languageSettings`).toPromise()
97
- .then((settings) => {
98
- return settings;
99
- }, () => {
100
- return {
101
- languages: ["de", "en", "hu"],
102
- devLanguages: [],
103
- defaultLanguage: "de",
104
- settings: {
105
- de: {},
106
- hu: {},
107
- end: {}
108
- }
109
- };
110
- });
111
- return this.settingsPromise;
112
- }
113
- }
114
- LanguageService.decorators = [
115
- { type: Injectable }
116
- ];
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFHaEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0lBTXRELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUM3QyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElB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LEVBQUUsRUFBRTtvQkFDakQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoRCxPQUFPLE1BQU0sQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDWixDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUNKLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLGtCQUFrQixDQUFDLENBQUMsU0FBUyxFQUFFO2FBQ3RILElBQUksQ0FDRCxDQUFDLFFBQTJCLEVBQUUsRUFBRTtZQUM1QixPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxFQUFFO1lBQ0osT0FBTztnQkFDSCxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztnQkFDN0IsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUU7b0JBQ04sRUFBRSxFQUFFLEVBQUU7b0JBQ04sRUFBRSxFQUFFLEVBQUU7b0JBQ04sR0FBRyxFQUFFLEVBQUU7aUJBQ1Y7YUFDSixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQzs7O1lBakhKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7bWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7SUxhbmd1YWdlU2V0dGluZ3MsIElUcmFuc2xhdGlvbnN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7U3RhdGljTGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9zdGF0aWMtbGFuZ3VhZ2Uuc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VTZXJ2aWNlIGV4dGVuZHMgU3RhdGljTGFuZ3VhZ2VTZXJ2aWNlIHtcblxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGlvblJlcXVlc3RzOiBJVHJhbnNsYXRpb25zO1xuICAgIHByb3RlY3RlZCBzZXR0aW5nc1Byb21pc2U6IFByb21pc2U8SUxhbmd1YWdlU2V0dGluZ3M+O1xuICAgIHByb3RlY3RlZCBsYW5ndWFnZVNldHRpbmdzOiBCZWhhdmlvclN1YmplY3Q8SUxhbmd1YWdlU2V0dGluZ3M+O1xuXG4gICAgZ2V0IGN1cnJlbnRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZyB8fCB0aGlzLmRlZmF1bHRMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBzZXQgY3VycmVudExhbmd1YWdlKGxhbmc6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVzZUxhbmd1YWdlKGxhbmcpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLmVtaXQobGFuZyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBzZXR0aW5ncygpOiBJTGFuZ3VhZ2VTZXR0aW5ncyB7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5sYW5ndWFnZVNldHRpbmdzLnZhbHVlO1xuICAgICAgICByZXR1cm4gIXNldHRpbmdzID8ge30gOiBzZXR0aW5ncy5zZXR0aW5nc1t0aGlzLmN1cnJlbnRMYW5ndWFnZV0gfHwge307XG4gICAgfVxuXG4gICAgZ2V0ICRzZXR0aW5ncygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aGlzLmxvYWRTZXR0aW5ncygpLnRoZW4ocyA9PiB0aGlzLmxhbmd1YWdlU2V0dGluZ3MubmV4dChzKSk7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmxhbmd1YWdlU2V0dGluZ3MsIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZF0pLnBpcGUobWFwKChbc2V0dGluZ3MsIGxhbmddKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gIXNldHRpbmdzID8ge30gOiBzZXR0aW5ncy5zZXR0aW5nc1tsYW5nIGFzIHN0cmluZ10gfHwge307XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdFNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xpZW50LnNldEV4dHJhUmVxdWVzdFBhcmFtKFwibGFuZ3VhZ2VcIiwgXCJkZVwiKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzID0ge307XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXR0aW5ncyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUxhbmd1YWdlU2V0dGluZ3M+KG51bGwpO1xuICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHJldHVybjtcbiAgICAgICAgd2luZG93W1wic2V0TGFuZ3VhZ2VcIl0gPSAobGFuZzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGxhbmc7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdEZyb21TZXR0aW5ncygpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2UgPSB0aGlzLmRlZmF1bHRMYW5ndWFnZTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xuICAgICAgICB0aGlzLmxhbmd1YWdlU2V0dGluZ3MubmV4dChzZXR0aW5ncyk7XG4gICAgICAgIGNvbnN0IGRldkxhbmd1YWdlcyA9IHNldHRpbmdzLmRldkxhbmd1YWdlcyB8fCBbXTtcbiAgICAgICAgdGhpcy5sYW5ndWFnZUxpc3QgPSAoc2V0dGluZ3MubGFuZ3VhZ2VzIHx8IFtdKS5maWx0ZXIobGFuZyA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGV2TGFuZ3VhZ2VzLmluZGV4T2YobGFuZykgPCAwO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGFuZyA9IHRoaXMubGFuZ3VhZ2VzLmluZGV4T2YoZGVmYXVsdExhbmd1YWdlKSA8IDAgPyBzZXR0aW5ncy5kZWZhdWx0TGFuZ3VhZ2UgOiBkZWZhdWx0TGFuZ3VhZ2U7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlTGFuZ3VhZ2UobGFuZyk7XG4gICAgICAgIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZC5lbWl0KGxhbmcpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFRyYW5zbGF0aW9uKGtleTogc3RyaW5nLCBwYXJhbXM6IGFueSA9IG51bGwpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAoIWtleSkgcmV0dXJuIFwiXCI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBsb3dlcktleSA9IGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3QgZGljdCA9IGF3YWl0IHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgICAgICAgIGlmIChsb3dlcktleSBpbiBkaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUoZGljdFtsb3dlcktleV0sIHBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShrZXksIHBhcmFtcyk7XG4gICAgICAgIH0gY2F0Y2ggKHJlYXNvbikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFUlJPUiBJTiBUUkFOU0xBVElPTlNcIiwgcmVhc29uKTtcbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdXNlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKTogUHJvbWlzZTxJVHJhbnNsYXRpb25zPiB7XG4gICAgICAgIGxhbmcgPSB0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGxhbmcpIDwgMCA/IHRoaXMubGFuZ3VhZ2VzWzBdIDogbGFuZztcbiAgICAgICAgdGhpcy5jbGllbnQuc2V0RXh0cmFSZXF1ZXN0UGFyYW0oXCJsYW5ndWFnZVwiLCBsYW5nKTtcbiAgICAgICAgaWYgKGxhbmcgPT0gdGhpcy5jdXJyZW50TGFuZykgcmV0dXJuIHRoaXMuZGljdGlvbmFyeTtcbiAgICAgICAgdGhpcy5zdG9yYWdlLnNldChcImxhbmd1YWdlXCIsIGxhbmcpO1xuICAgICAgICB0aGlzLmN1cnJlbnRMYW5nID0gbGFuZztcbiAgICAgICAgY29uc3QgZGljdCA9IGF3YWl0IHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ10gPSBkaWN0O1xuICAgICAgICByZXR1cm4gZGljdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZERpY3Rpb25hcnkoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgbGFuZyA9IHRoaXMuY3VycmVudExhbmd1YWdlO1xuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdHNbbGFuZ10gPSB0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdHNbbGFuZ10gfHwgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnLnRyYW5zbGF0aW9uVXJsfSR7bGFuZ31gKS50b1Byb21pc2UoKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlIHx8IHt9O1xuICAgICAgICAgICAgICAgIHJlc29sdmUoT2JqZWN0LmtleXMocmVzcG9uc2UpLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleS50b0xvY2FsZUxvd2VyQ2FzZSgpXSA9IHJlc3BvbnNlW2tleV07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSwge30pKTtcbiAgICAgICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHt9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25SZXF1ZXN0c1tsYW5nXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZFNldHRpbmdzKCk6IFByb21pc2U8SUxhbmd1YWdlU2V0dGluZ3M+IHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc1Byb21pc2UgPSB0aGlzLnNldHRpbmdzUHJvbWlzZSB8fCB0aGlzLmNsaWVudC5nZXQoYCR7dGhpcy5jb25maWcudHJhbnNsYXRpb25Vcmx9bGFuZ3VhZ2VTZXR0aW5nc2ApLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAoc2V0dGluZ3M6IElMYW5ndWFnZVNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5ncztcbiAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZXM6IFtcImRlXCIsIFwiZW5cIiwgXCJodVwiXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldkxhbmd1YWdlczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TGFuZ3VhZ2U6IFwiZGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGU6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh1OiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NQcm9taXNlO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from "@angular/core";
3
+ import { BehaviorSubject, combineLatest } from "rxjs";
4
+ import { map } from "rxjs/operators";
5
+ import { StaticLanguageService } from "./static-language.service";
6
+ export class LanguageService extends StaticLanguageService {
7
+ get currentLanguage() {
8
+ return this.currentLang || this.defaultLanguage;
9
+ }
10
+ set currentLanguage(lang) {
11
+ this.useLanguage(lang).then(() => {
12
+ this.events.languageChanged.emit(lang);
13
+ });
14
+ }
15
+ get settings() {
16
+ const settings = this.languageSettings.value;
17
+ return !settings ? {} : settings.settings[this.currentLanguage] || {};
18
+ }
19
+ get $settings() {
20
+ this.loadSettings().then(s => this.languageSettings.next(s));
21
+ return combineLatest([this.languageSettings, this.events.languageChanged]).pipe(map(([settings, lang]) => {
22
+ return !settings ? {} : settings.settings[lang] || {};
23
+ }));
24
+ }
25
+ initService() {
26
+ this.client.setExtraRequestParam("language", "de");
27
+ this.translationRequests = {};
28
+ this.languageSettings = new BehaviorSubject(null);
29
+ if (this.universal.isServer)
30
+ return;
31
+ window["setLanguage"] = (lang) => {
32
+ this.currentLanguage = lang;
33
+ };
34
+ }
35
+ initFromSettings() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const defaultLanguage = this.defaultLanguage;
38
+ const settings = yield this.loadSettings();
39
+ this.languageSettings.next(settings);
40
+ const devLanguages = settings.devLanguages || [];
41
+ this.languageList = (settings.languages || []).filter(lang => {
42
+ return devLanguages.indexOf(lang) < 0;
43
+ });
44
+ const lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage : defaultLanguage;
45
+ yield this.useLanguage(lang);
46
+ this.events.languageChanged.emit(lang);
47
+ });
48
+ }
49
+ getTranslation(key, params = null) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ if (!key)
52
+ return "";
53
+ try {
54
+ const lowerKey = key.toLocaleLowerCase();
55
+ const dict = yield this.loadDictionary();
56
+ if (lowerKey in dict) {
57
+ return this.interpolate(dict[lowerKey], params);
58
+ }
59
+ return this.interpolate(key, params);
60
+ }
61
+ catch (reason) {
62
+ console.log("ERROR IN TRANSLATIONS", reason);
63
+ return key;
64
+ }
65
+ });
66
+ }
67
+ useLanguage(lang) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ lang = this.languages.indexOf(lang) < 0 ? this.languages[0] : lang;
70
+ this.client.setExtraRequestParam("language", lang);
71
+ if (lang == this.currentLang)
72
+ return this.dictionary;
73
+ this.storage.set("language", lang);
74
+ this.currentLang = lang;
75
+ const dict = yield this.loadDictionary();
76
+ this.translations[lang] = dict;
77
+ return dict;
78
+ });
79
+ }
80
+ loadDictionary() {
81
+ const lang = this.currentLanguage;
82
+ this.translationRequests[lang] = this.translationRequests[lang] || new Promise(resolve => {
83
+ this.httpClient.get(`${this.config.translationUrl}${lang}`).toPromise().then(response => {
84
+ response = response || {};
85
+ resolve(Object.keys(response).reduce((result, key) => {
86
+ result[key.toLocaleLowerCase()] = response[key];
87
+ return result;
88
+ }, {}));
89
+ }, () => {
90
+ resolve({});
91
+ });
92
+ });
93
+ return this.translationRequests[lang];
94
+ }
95
+ loadSettings() {
96
+ this.settingsPromise = this.settingsPromise || this.client.get(`${this.config.translationUrl}languageSettings`).toPromise()
97
+ .then((settings) => {
98
+ return settings;
99
+ }, () => {
100
+ return {
101
+ languages: ["de", "en", "hu"],
102
+ devLanguages: [],
103
+ defaultLanguage: "de",
104
+ settings: {
105
+ de: {},
106
+ hu: {},
107
+ end: {}
108
+ }
109
+ };
110
+ });
111
+ return this.settingsPromise;
112
+ }
113
+ }
114
+ LanguageService.decorators = [
115
+ { type: Injectable }
116
+ ];
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFHaEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0lBTXRELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUM3QyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxn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RTtvQkFDakQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoRCxPQUFPLE1BQU0sQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDWixDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUNKLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLGtCQUFrQixDQUFDLENBQUMsU0FBUyxFQUFFO2FBQ3RILElBQUksQ0FDRCxDQUFDLFFBQTJCLEVBQUUsRUFBRTtZQUM1QixPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxFQUFFO1lBQ0osT0FBTztnQkFDSCxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztnQkFDN0IsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUU7b0JBQ04sRUFBRSxFQUFFLEVBQUU7b0JBQ04sRUFBRSxFQUFFLEVBQUU7b0JBQ04sR0FBRyxFQUFFLEVBQUU7aUJBQ1Y7YUFDSixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQzs7O1lBakhKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlU2V0dGluZ3MsIElUcmFuc2xhdGlvbnN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtTdGF0aWNMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlcnZpY2UgZXh0ZW5kcyBTdGF0aWNMYW5ndWFnZVNlcnZpY2Uge1xyXG5cclxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGlvblJlcXVlc3RzOiBJVHJhbnNsYXRpb25zO1xyXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzUHJvbWlzZTogUHJvbWlzZTxJTGFuZ3VhZ2VTZXR0aW5ncz47XHJcbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2VTZXR0aW5nczogQmVoYXZpb3JTdWJqZWN0PElMYW5ndWFnZVNldHRpbmdzPjtcclxuXHJcbiAgICBnZXQgY3VycmVudExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmcgfHwgdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGN1cnJlbnRMYW5ndWFnZShsYW5nOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnVzZUxhbmd1YWdlKGxhbmcpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuZW1pdChsYW5nKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2V0dGluZ3MoKTogSUxhbmd1YWdlU2V0dGluZ3Mge1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5sYW5ndWFnZVNldHRpbmdzLnZhbHVlO1xyXG4gICAgICAgIHJldHVybiAhc2V0dGluZ3MgPyB7fSA6IHNldHRpbmdzLnNldHRpbmdzW3RoaXMuY3VycmVudExhbmd1YWdlXSB8fCB7fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgJHNldHRpbmdzKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkU2V0dGluZ3MoKS50aGVuKHMgPT4gdGhpcy5sYW5ndWFnZVNldHRpbmdzLm5leHQocykpO1xyXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmxhbmd1YWdlU2V0dGluZ3MsIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZF0pLnBpcGUobWFwKChbc2V0dGluZ3MsIGxhbmddKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAhc2V0dGluZ3MgPyB7fSA6IHNldHRpbmdzLnNldHRpbmdzW2xhbmcgYXMgc3RyaW5nXSB8fCB7fTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xpZW50LnNldEV4dHJhUmVxdWVzdFBhcmFtKFwibGFuZ3VhZ2VcIiwgXCJkZVwiKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdHMgPSB7fTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2V0dGluZ3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElMYW5ndWFnZVNldHRpbmdzPihudWxsKTtcclxuICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHJldHVybjtcclxuICAgICAgICB3aW5kb3dbXCJzZXRMYW5ndWFnZVwiXSA9IChsYW5nOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSBsYW5nO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5pdEZyb21TZXR0aW5ncygpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2V0dGluZ3MubmV4dChzZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc3QgZGV2TGFuZ3VhZ2VzID0gc2V0dGluZ3MuZGV2TGFuZ3VhZ2VzIHx8IFtdO1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0ID0gKHNldHRpbmdzLmxhbmd1YWdlcyB8fCBbXSkuZmlsdGVyKGxhbmcgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZGV2TGFuZ3VhZ2VzLmluZGV4T2YobGFuZykgPCAwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGRlZmF1bHRMYW5ndWFnZSkgPCAwID8gc2V0dGluZ3MuZGVmYXVsdExhbmd1YWdlIDogZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMudXNlTGFuZ3VhZ2UobGFuZyk7XHJcbiAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLmVtaXQobGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtczogYW55ID0gbnVsbCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgaWYgKCFrZXkpIHJldHVybiBcIlwiO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvd2VyS2V5ID0ga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpY3QgPSBhd2FpdCB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XHJcbiAgICAgICAgICAgIGlmIChsb3dlcktleSBpbiBkaWN0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShkaWN0W2xvd2VyS2V5XSwgcGFyYW1zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShrZXksIHBhcmFtcyk7XHJcbiAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRVJST1IgSU4gVFJBTlNMQVRJT05TXCIsIHJlYXNvbik7XHJcbiAgICAgICAgICAgIHJldHVybiBrZXk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyB1c2VMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiBQcm9taXNlPElUcmFuc2xhdGlvbnM+IHtcclxuICAgICAgICBsYW5nID0gdGhpcy5sYW5ndWFnZXMuaW5kZXhPZihsYW5nKSA8IDAgPyB0aGlzLmxhbmd1YWdlc1swXSA6IGxhbmc7XHJcbiAgICAgICAgdGhpcy5jbGllbnQuc2V0RXh0cmFSZXF1ZXN0UGFyYW0oXCJsYW5ndWFnZVwiLCBsYW5nKTtcclxuICAgICAgICBpZiAobGFuZyA9PSB0aGlzLmN1cnJlbnRMYW5nKSByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5O1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoXCJsYW5ndWFnZVwiLCBsYW5nKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5nID0gbGFuZztcclxuICAgICAgICBjb25zdCBkaWN0ID0gYXdhaXQgdGhpcy5sb2FkRGljdGlvbmFyeSgpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmddID0gZGljdDtcclxuICAgICAgICByZXR1cm4gZGljdDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbG9hZERpY3Rpb25hcnkoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBjb25zdCBsYW5nID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddID0gdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddIHx8IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnLnRyYW5zbGF0aW9uVXJsfSR7bGFuZ31gKS50b1Byb21pc2UoKS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UgfHwge307XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleS50b0xvY2FsZUxvd2VyQ2FzZSgpXSA9IHJlc3BvbnNlW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0sIHt9KSk7XHJcbiAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTxJTGFuZ3VhZ2VTZXR0aW5ncz4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NQcm9taXNlID0gdGhpcy5zZXR0aW5nc1Byb21pc2UgfHwgdGhpcy5jbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnLnRyYW5zbGF0aW9uVXJsfWxhbmd1YWdlU2V0dGluZ3NgKS50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAudGhlbihcclxuICAgICAgICAgICAgICAgIChzZXR0aW5nczogSUxhbmd1YWdlU2V0dGluZ3MpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0dGluZ3M7XHJcbiAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VzOiBbXCJkZVwiLCBcImVuXCIsIFwiaHVcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldkxhbmd1YWdlczogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZTogXCJkZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGU6IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHU6IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiB7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5nc1Byb21pc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,41 +1,41 @@
1
- import { __awaiter } from "tslib";
2
- import { Inject, Injectable } from "@angular/core";
3
- import { API_SERVICE } from "../common-types";
4
- export class OpenApiService {
5
- constructor(api) {
6
- this.api = api;
7
- }
8
- getSchemas() {
9
- this.schemasPromise = this.schemasPromise || new Promise((resolve => {
10
- this.api.get("api-docs").then(res => {
11
- var _a;
12
- const schemas = ((_a = res.components) === null || _a === void 0 ? void 0 : _a.schemas) || res.definitions || {};
13
- Object.values(schemas).forEach(schema => {
14
- Object.keys(schema.properties || {}).forEach(p => {
15
- schema.properties[p].id = p;
16
- });
17
- });
18
- resolve(schemas);
19
- }, () => {
20
- resolve({});
21
- });
22
- }));
23
- return this.schemasPromise;
24
- }
25
- getSchema(name) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const schemas = yield this.getSchemas();
28
- const schema = schemas[name];
29
- if (!schema)
30
- return null;
31
- return schemas[name];
32
- });
33
- }
34
- }
35
- OpenApiService.decorators = [
36
- { type: Injectable }
37
- ];
38
- OpenApiService.ctorParameters = () => [
39
- { type: undefined, decorators: [{ type: Inject, args: [API_SERVICE,] }] }
40
- ];
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvc2VydmljZXMvb3Blbi1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFdBQVcsRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRixNQUFNLE9BQU8sY0FBYztJQUl2QixZQUEwQyxHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBRTFELENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOztnQkFDaEMsTUFBTSxPQUFPLEdBQW9CLE9BQUEsR0FBRyxDQUFDLFVBQVUsMENBQUUsT0FBTyxLQUFJLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUNsRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDN0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNoQyxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtnQkFDSixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFSyxTQUFTLENBQUMsSUFBWTs7WUFDeEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3pCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7S0FBQTs7O1lBL0JKLFVBQVU7Ozs0Q0FLTSxNQUFNLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtBUElfU0VSVklDRSwgSUFwaVNlcnZpY2UsIElPcGVuQXBpU2NoZW1hLCBJT3BlbkFwaVNjaGVtYXN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9wZW5BcGlTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc2NoZW1hc1Byb21pc2U6IFByb21pc2U8SU9wZW5BcGlTY2hlbWFzPjtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoQVBJX1NFUlZJQ0UpIHJlYWRvbmx5IGFwaTogSUFwaVNlcnZpY2UpIHtcblxuICAgIH1cblxuICAgIGdldFNjaGVtYXMoKTogUHJvbWlzZTxJT3BlbkFwaVNjaGVtYXM+IHtcbiAgICAgICAgdGhpcy5zY2hlbWFzUHJvbWlzZSA9IHRoaXMuc2NoZW1hc1Byb21pc2UgfHwgbmV3IFByb21pc2UoKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgdGhpcy5hcGkuZ2V0KFwiYXBpLWRvY3NcIikudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVtYXM6IElPcGVuQXBpU2NoZW1hcyA9IHJlcy5jb21wb25lbnRzPy5zY2hlbWFzIHx8IHJlcy5kZWZpbml0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKHNjaGVtYXMpLmZvckVhY2goc2NoZW1hID0+IHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMgfHwge30pLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWEucHJvcGVydGllc1twXS5pZCA9IHA7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoc2NoZW1hcyk7XG4gICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5zY2hlbWFzUHJvbWlzZTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRTY2hlbWEobmFtZTogc3RyaW5nKTogUHJvbWlzZTxJT3BlbkFwaVNjaGVtYT4ge1xuICAgICAgICBjb25zdCBzY2hlbWFzID0gYXdhaXQgdGhpcy5nZXRTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IHNjaGVtYSA9IHNjaGVtYXNbbmFtZV07XG4gICAgICAgIGlmICghc2NoZW1hKSByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIHNjaGVtYXNbbmFtZV07XG4gICAgfVxufVxuIl19
1
+ import { __awaiter } from "tslib";
2
+ import { Inject, Injectable } from "@angular/core";
3
+ import { API_SERVICE } from "../common-types";
4
+ export class OpenApiService {
5
+ constructor(api) {
6
+ this.api = api;
7
+ }
8
+ getSchemas() {
9
+ this.schemasPromise = this.schemasPromise || new Promise((resolve => {
10
+ this.api.get("api-docs").then(res => {
11
+ var _a;
12
+ const schemas = ((_a = res.components) === null || _a === void 0 ? void 0 : _a.schemas) || res.definitions || {};
13
+ Object.values(schemas).forEach(schema => {
14
+ Object.keys(schema.properties || {}).forEach(p => {
15
+ schema.properties[p].id = p;
16
+ });
17
+ });
18
+ resolve(schemas);
19
+ }, () => {
20
+ resolve({});
21
+ });
22
+ }));
23
+ return this.schemasPromise;
24
+ }
25
+ getSchema(name) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const schemas = yield this.getSchemas();
28
+ const schema = schemas[name];
29
+ if (!schema)
30
+ return null;
31
+ return schemas[name];
32
+ });
33
+ }
34
+ }
35
+ OpenApiService.decorators = [
36
+ { type: Injectable }
37
+ ];
38
+ OpenApiService.ctorParameters = () => [
39
+ { type: undefined, decorators: [{ type: Inject, args: [API_SERVICE,] }] }
40
+ ];
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvc2VydmljZXMvb3Blbi1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFdBQVcsRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRixNQUFNLE9BQU8sY0FBYztJQUl2QixZQUEwQyxHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBRTFELENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOztnQkFDaEMsTUFBTSxPQUFPLEdBQW9CLE9BQUEsR0FBRyxDQUFDLFVBQVUsMENBQUUsT0FBTyxLQUFJLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUNsRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDN0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNoQyxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtnQkFDSixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFSyxTQUFTLENBQUMsSUFBWTs7WUFDeEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3pCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7S0FBQTs7O1lBL0JKLFVBQVU7Ozs0Q0FLTSxNQUFNLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FQSV9TRVJWSUNFLCBJQXBpU2VydmljZSwgSU9wZW5BcGlTY2hlbWEsIElPcGVuQXBpU2NoZW1hc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT3BlbkFwaVNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgc2NoZW1hc1Byb21pc2U6IFByb21pc2U8SU9wZW5BcGlTY2hlbWFzPjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQSV9TRVJWSUNFKSByZWFkb25seSBhcGk6IElBcGlTZXJ2aWNlKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGdldFNjaGVtYXMoKTogUHJvbWlzZTxJT3BlbkFwaVNjaGVtYXM+IHtcclxuICAgICAgICB0aGlzLnNjaGVtYXNQcm9taXNlID0gdGhpcy5zY2hlbWFzUHJvbWlzZSB8fCBuZXcgUHJvbWlzZSgocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBpLmdldChcImFwaS1kb2NzXCIpLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVtYXM6IElPcGVuQXBpU2NoZW1hcyA9IHJlcy5jb21wb25lbnRzPy5zY2hlbWFzIHx8IHJlcy5kZWZpbml0aW9ucyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoc2NoZW1hcykuZm9yRWFjaChzY2hlbWEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNjaGVtYS5wcm9wZXJ0aWVzIHx8IHt9KS5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWEucHJvcGVydGllc1twXS5pZCA9IHA7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoc2NoZW1hcyk7XHJcbiAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NoZW1hc1Byb21pc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0U2NoZW1hKG5hbWU6IHN0cmluZyk6IFByb21pc2U8SU9wZW5BcGlTY2hlbWE+IHtcclxuICAgICAgICBjb25zdCBzY2hlbWFzID0gYXdhaXQgdGhpcy5nZXRTY2hlbWFzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gc2NoZW1hc1tuYW1lXTtcclxuICAgICAgICBpZiAoIXNjaGVtYSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHNjaGVtYXNbbmFtZV07XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,49 +1,49 @@
1
- import { EventEmitter, Inject, Injectable, NgZone } from "@angular/core";
2
- export class PromiseService {
3
- constructor(zone) {
4
- this.zone = zone;
5
- this.promiseCount = 0;
6
- this.promiseChanged = new EventEmitter();
7
- }
8
- get count() {
9
- return this.promiseCount;
10
- }
11
- get onChanged() {
12
- return this.promiseChanged;
13
- }
14
- create(executor) {
15
- return this.add(this.zone.runOutsideAngular(() => new Promise(executor)));
16
- }
17
- all(promises) {
18
- return this.add(this.zone.runOutsideAngular(() => Promise.all(promises)));
19
- }
20
- resolve(value) {
21
- return this.add(this.zone.runOutsideAngular(() => Promise.resolve(value)));
22
- }
23
- promiseFinished() {
24
- if (this.promiseCount == 0)
25
- return;
26
- this.promiseCount--;
27
- this.promiseChanged.emit(this.promiseCount);
28
- }
29
- add(promise) {
30
- this.promiseCount++;
31
- this.promiseChanged.emit(this.promiseCount);
32
- return new Promise((resolve, reject) => {
33
- promise.then(v => {
34
- resolve(v);
35
- this.promiseFinished();
36
- }, r => {
37
- reject(r);
38
- this.promiseFinished();
39
- });
40
- });
41
- }
42
- }
43
- PromiseService.decorators = [
44
- { type: Injectable }
45
- ];
46
- PromiseService.ctorParameters = () => [
47
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }
48
- ];
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3N0ZW15L1dvcmsvbmd4LXV0aWxzL3NyYy8iLCJzb3VyY2VzIjpbIm5neC11dGlscy9zZXJ2aWNlcy9wcm9taXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl2RSxNQUFNLE9BQU8sY0FBYztJQWF2QixZQUE0QyxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDckQsQ0FBQztJQWRELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFVRCxNQUFNLENBQUksUUFBaUc7UUFDdkcsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE9BQU8sQ0FBSSxLQUF5QjtRQUNoQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQztZQUFFLE9BQU87UUFDbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sR0FBRyxDQUFJLE9BQW1CO1FBQzlCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDVixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQWpESixVQUFVOzs7WUFIK0IsTUFBTSx1QkFpQi9CLE1BQU0sU0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtJUHJvbWlzZVNlcnZpY2V9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb21pc2VTZXJ2aWNlIGltcGxlbWVudHMgSVByb21pc2VTZXJ2aWNlIHtcblxuICAgIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IG9uQ2hhbmdlZCgpOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VDaGFuZ2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvbWlzZUNvdW50OiBudW1iZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9taXNlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj47XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5nWm9uZSkgcHVibGljIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSkge1xuICAgICAgICB0aGlzLnByb21pc2VDb3VudCA9IDA7XG4gICAgICAgIHRoaXMucHJvbWlzZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICB9XG5cbiAgICBjcmVhdGU8VD4oZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkgPT4gdm9pZCk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGQodGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IG5ldyBQcm9taXNlPFQ+KGV4ZWN1dG9yKSkpO1xuICAgIH1cblxuICAgIGFsbChwcm9taXNlczogUHJvbWlzZTxhbnk+W10pOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGQodGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IFByb21pc2UuYWxsKHByb21pc2VzKSkpO1xuICAgIH1cblxuICAgIHJlc29sdmU8VD4odmFsdWU6IFQgfCBQcm9taXNlTGlrZTxUPik6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGQodGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IFByb21pc2UucmVzb2x2ZSh2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb21pc2VGaW5pc2hlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJvbWlzZUNvdW50ID09IDApIHJldHVybjtcbiAgICAgICAgdGhpcy5wcm9taXNlQ291bnQtLTtcbiAgICAgICAgdGhpcy5wcm9taXNlQ2hhbmdlZC5lbWl0KHRoaXMucHJvbWlzZUNvdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZDxUPihwcm9taXNlOiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHRoaXMucHJvbWlzZUNvdW50Kys7XG4gICAgICAgIHRoaXMucHJvbWlzZUNoYW5nZWQuZW1pdCh0aGlzLnByb21pc2VDb3VudCk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHByb21pc2UudGhlbih2ID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHYpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvbWlzZUZpbmlzaGVkKCk7XG4gICAgICAgICAgICB9LCByID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3Qocik7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9taXNlRmluaXNoZWQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
1
+ import { EventEmitter, Inject, Injectable, NgZone } from "@angular/core";
2
+ export class PromiseService {
3
+ constructor(zone) {
4
+ this.zone = zone;
5
+ this.promiseCount = 0;
6
+ this.promiseChanged = new EventEmitter();
7
+ }
8
+ get count() {
9
+ return this.promiseCount;
10
+ }
11
+ get onChanged() {
12
+ return this.promiseChanged;
13
+ }
14
+ create(executor) {
15
+ return this.add(this.zone.runOutsideAngular(() => new Promise(executor)));
16
+ }
17
+ all(promises) {
18
+ return this.add(this.zone.runOutsideAngular(() => Promise.all(promises)));
19
+ }
20
+ resolve(value) {
21
+ return this.add(this.zone.runOutsideAngular(() => Promise.resolve(value)));
22
+ }
23
+ promiseFinished() {
24
+ if (this.promiseCount == 0)
25
+ return;
26
+ this.promiseCount--;
27
+ this.promiseChanged.emit(this.promiseCount);
28
+ }
29
+ add(promise) {
30
+ this.promiseCount++;
31
+ this.promiseChanged.emit(this.promiseCount);
32
+ return new Promise((resolve, reject) => {
33
+ promise.then(v => {
34
+ resolve(v);
35
+ this.promiseFinished();
36
+ }, r => {
37
+ reject(r);
38
+ this.promiseFinished();
39
+ });
40
+ });
41
+ }
42
+ }
43
+ PromiseService.decorators = [
44
+ { type: Injectable }
45
+ ];
46
+ PromiseService.ctorParameters = () => [
47
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }
48
+ ];
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmsvbmd4LXV0aWxzL3NyYy8iLCJzb3VyY2VzIjpbIm5neC11dGlscy9zZXJ2aWNlcy9wcm9taXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl2RSxNQUFNLE9BQU8sY0FBYztJQWF2QixZQUE0QyxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDckQsQ0FBQztJQWRELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFVRCxNQUFNLENBQUksUUFBaUc7UUFDdkcsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE9BQU8sQ0FBSSxLQUF5QjtRQUNoQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQztZQUFFLE9BQU87UUFDbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sR0FBRyxDQUFJLE9BQW1CO1FBQzlCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDVixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQWpESixVQUFVOzs7WUFIK0IsTUFBTSx1QkFpQi9CLE1BQU0sU0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0lQcm9taXNlU2VydmljZX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvbWlzZVNlcnZpY2UgaW1wbGVtZW50cyBJUHJvbWlzZVNlcnZpY2Uge1xyXG5cclxuICAgIGdldCBjb3VudCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VDb3VudDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgb25DaGFuZ2VkKCk6IEV2ZW50RW1pdHRlcjxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlQ2hhbmdlZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb21pc2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9taXNlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChOZ1pvbmUpIHB1YmxpYyByZWFkb25seSB6b25lOiBOZ1pvbmUpIHtcclxuICAgICAgICB0aGlzLnByb21pc2VDb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5wcm9taXNlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZTxUPihleGVjdXRvcjogKHJlc29sdmU6ICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSA9PiB2b2lkKTogUHJvbWlzZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgUHJvbWlzZTxUPihleGVjdXRvcikpKTtcclxuICAgIH1cclxuXHJcbiAgICBhbGwocHJvbWlzZXM6IFByb21pc2U8YW55PltdKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGQodGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IFByb21pc2UuYWxsKHByb21pc2VzKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc29sdmU8VD4odmFsdWU6IFQgfCBQcm9taXNlTGlrZTxUPik6IFByb21pc2U8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZCh0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHZhbHVlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvbWlzZUZpbmlzaGVkKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnByb21pc2VDb3VudCA9PSAwKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9taXNlQ291bnQtLTtcclxuICAgICAgICB0aGlzLnByb21pc2VDaGFuZ2VkLmVtaXQodGhpcy5wcm9taXNlQ291bnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkPFQ+KHByb21pc2U6IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcclxuICAgICAgICB0aGlzLnByb21pc2VDb3VudCsrO1xyXG4gICAgICAgIHRoaXMucHJvbWlzZUNoYW5nZWQuZW1pdCh0aGlzLnByb21pc2VDb3VudCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBwcm9taXNlLnRoZW4odiA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKHYpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9taXNlRmluaXNoZWQoKTtcclxuICAgICAgICAgICAgfSwgciA9PiB7XHJcbiAgICAgICAgICAgICAgICByZWplY3Qocik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb21pc2VGaW5pc2hlZCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=