@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,81 +1,81 @@
1
- import { ChangeDetectorRef, Inject, Injectable, Pipe } from "@angular/core";
2
- import { LANGUAGE_SERVICE } from "../common-types";
3
- import { ObjectUtils } from "../utils/object.utils";
4
- export class TranslatePipe {
5
- constructor(cdr, language) {
6
- this.cdr = cdr;
7
- this.language = language;
8
- }
9
- get currentLang() {
10
- return this.language.currentLanguage;
11
- }
12
- transform(query, ...args) {
13
- if (!query)
14
- return "";
15
- let dirty = false;
16
- const lang = this.currentLang;
17
- if (this.lang !== lang) {
18
- this.lang = lang;
19
- dirty = true;
20
- }
21
- const disabled = this.language.disableTranslations;
22
- if (this.disabled !== disabled) {
23
- this.disabled = disabled;
24
- dirty = true;
25
- }
26
- if (!ObjectUtils.equals(this.query, query)) {
27
- this.query = query;
28
- dirty = true;
29
- }
30
- if (!ObjectUtils.equals(this.args, args)) {
31
- this.args = args;
32
- this.params = null;
33
- if (ObjectUtils.isDefined(args[0]) && args.length) {
34
- if (typeof args[0] === "string" && args[0].length) {
35
- const validArgs = args[0]
36
- .replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g, `"$2":`)
37
- .replace(/:(\s)?(\')(.*?)(\')/g, `:"$3"`);
38
- try {
39
- this.params = JSON.parse(validArgs);
40
- }
41
- catch (e) {
42
- throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);
43
- }
44
- }
45
- else if (typeof args[0] === "object" && !Array.isArray(args[0])) {
46
- this.params = args[0];
47
- }
48
- }
49
- dirty = true;
50
- }
51
- if (dirty) {
52
- if (typeof query === "object") {
53
- this.lastValue = Array.isArray(query) ? this.language.getTranslationFromArray(query, this.params, lang) : this.language.getTranslationFromObject(query, this.params, lang);
54
- return this.lastValue;
55
- }
56
- if (this.disabled) {
57
- this.lastValue = query;
58
- return this.lastValue;
59
- }
60
- this.language.getTranslation(query, this.params).then(value => {
61
- this.lastValue = value;
62
- if (!this.cdr["destroyed"]) {
63
- this.cdr.detectChanges();
64
- }
65
- });
66
- }
67
- return this.lastValue;
68
- }
69
- }
70
- TranslatePipe.decorators = [
71
- { type: Injectable },
72
- { type: Pipe, args: [{
73
- name: "translate",
74
- pure: false
75
- },] }
76
- ];
77
- TranslatePipe.ctorParameters = () => [
78
- { type: ChangeDetectorRef },
79
- { type: undefined, decorators: [{ type: Inject, args: [LANGUAGE_SERVICE,] }] }
80
- ];
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvc3RlbXkvV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3BpcGVzL3RyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFtQixnQkFBZ0IsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFPbEQsTUFBTSxPQUFPLGFBQWE7SUFhdEIsWUFBcUIsR0FBc0IsRUFBcUMsUUFBMEI7UUFBckYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBcUMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFFMUcsQ0FBQztJQU5ELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUE7SUFDeEMsQ0FBQztJQU1ELFNBQVMsQ0FBQyxLQUF1QixFQUFFLEdBQUcsSUFBVztRQUM3QyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNoQjtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixLQUFL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NENBc0J5QixNQUFNLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtJTGFuZ3VhZ2VTZXJ2aWNlLCBMQU5HVUFHRV9TRVJWSUNFLCBUcmFuc2xhdGlvblF1ZXJ5fSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XG5cbkBJbmplY3RhYmxlKClcbkBQaXBlKHtcbiAgICBuYW1lOiBcInRyYW5zbGF0ZVwiLFxuICAgIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIHByaXZhdGUgbGFuZzogc3RyaW5nO1xuICAgIHByaXZhdGUgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBxdWVyeTogVHJhbnNsYXRpb25RdWVyeTtcbiAgICBwcml2YXRlIGFyZ3M6IGFueVtdO1xuICAgIHByaXZhdGUgcGFyYW1zOiBhbnk7XG4gICAgcHJpdmF0ZSBsYXN0VmFsdWU6IHN0cmluZztcblxuICAgIGdldCBjdXJyZW50TGFuZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZS5jdXJyZW50TGFuZ3VhZ2VcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBASW5qZWN0KExBTkdVQUdFX1NFUlZJQ0UpIHJlYWRvbmx5IGxhbmd1YWdlOiBJTGFuZ3VhZ2VTZXJ2aWNlKSB7XG5cbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0ocXVlcnk6IFRyYW5zbGF0aW9uUXVlcnksIC4uLmFyZ3M6IGFueVtdKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFxdWVyeSkgcmV0dXJuIFwiXCI7XG4gICAgICAgIGxldCBkaXJ0eSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBsYW5nID0gdGhpcy5jdXJyZW50TGFuZztcbiAgICAgICAgaWYgKHRoaXMubGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgICAgdGhpcy5sYW5nID0gbGFuZztcbiAgICAgICAgICAgIGRpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMubGFuZ3VhZ2UuZGlzYWJsZVRyYW5zbGF0aW9ucztcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IGRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICAgICAgICBkaXJ0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5lcXVhbHModGhpcy5xdWVyeSwgcXVlcnkpKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gICAgICAgICAgICBkaXJ0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5lcXVhbHModGhpcy5hcmdzLCBhcmdzKSkge1xuICAgICAgICAgICAgdGhpcy5hcmdzID0gYXJncztcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc0RlZmluZWQoYXJnc1swXSkgJiYgYXJncy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgJiYgYXJnc1swXS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRBcmdzOiBzdHJpbmcgPSBhcmdzWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvKFxcJyk/KFthLXpBLVowLTlfXSspKFxcJyk/KFxccyk/Oi9nLCBgXCIkMlwiOmApXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvOihcXHMpPyhcXCcpKC4qPykoXFwnKS9nLCBgOlwiJDNcImApO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJhbXMgPSBKU09OLnBhcnNlKHZhbGlkQXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihgV3JvbmcgcGFyYW1ldGVyIGluIFRyYW5zbGF0ZVBpcGUuIEV4cGVjdGVkIGEgdmFsaWQgT2JqZWN0LCByZWNlaXZlZDogJHthcmdzWzBdfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheShhcmdzWzBdKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmFtcyA9IGFyZ3NbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlydHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gQXJyYXkuaXNBcnJheShxdWVyeSkgPyB0aGlzLmxhbmd1YWdlLmdldFRyYW5zbGF0aW9uRnJvbUFycmF5KHF1ZXJ5LCB0aGlzLnBhcmFtcywgbGFuZykgOiB0aGlzLmxhbmd1YWdlLmdldFRyYW5zbGF0aW9uRnJvbU9iamVjdChxdWVyeSwgdGhpcy5wYXJhbXMsIGxhbmcpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxhc3RWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSBxdWVyeTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlLmdldFRyYW5zbGF0aW9uKHF1ZXJ5LCB0aGlzLnBhcmFtcykudGhlbih2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2RyW1wiZGVzdHJveWVkXCJdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gICAgfVxufVxuIl19
1
+ import { ChangeDetectorRef, Inject, Injectable, Pipe } from "@angular/core";
2
+ import { LANGUAGE_SERVICE } from "../common-types";
3
+ import { ObjectUtils } from "../utils/object.utils";
4
+ export class TranslatePipe {
5
+ constructor(cdr, language) {
6
+ this.cdr = cdr;
7
+ this.language = language;
8
+ }
9
+ get currentLang() {
10
+ return this.language.currentLanguage;
11
+ }
12
+ transform(query, ...args) {
13
+ if (!query)
14
+ return "";
15
+ let dirty = false;
16
+ const lang = this.currentLang;
17
+ if (this.lang !== lang) {
18
+ this.lang = lang;
19
+ dirty = true;
20
+ }
21
+ const disabled = this.language.disableTranslations;
22
+ if (this.disabled !== disabled) {
23
+ this.disabled = disabled;
24
+ dirty = true;
25
+ }
26
+ if (!ObjectUtils.equals(this.query, query)) {
27
+ this.query = query;
28
+ dirty = true;
29
+ }
30
+ if (!ObjectUtils.equals(this.args, args)) {
31
+ this.args = args;
32
+ this.params = null;
33
+ if (ObjectUtils.isDefined(args[0]) && args.length) {
34
+ if (typeof args[0] === "string" && args[0].length) {
35
+ const validArgs = args[0]
36
+ .replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g, `"$2":`)
37
+ .replace(/:(\s)?(\')(.*?)(\')/g, `:"$3"`);
38
+ try {
39
+ this.params = JSON.parse(validArgs);
40
+ }
41
+ catch (e) {
42
+ throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);
43
+ }
44
+ }
45
+ else if (typeof args[0] === "object" && !Array.isArray(args[0])) {
46
+ this.params = args[0];
47
+ }
48
+ }
49
+ dirty = true;
50
+ }
51
+ if (dirty) {
52
+ if (typeof query === "object") {
53
+ this.lastValue = Array.isArray(query) ? this.language.getTranslationFromArray(query, this.params, lang) : this.language.getTranslationFromObject(query, this.params, lang);
54
+ return this.lastValue;
55
+ }
56
+ if (this.disabled) {
57
+ this.lastValue = query;
58
+ return this.lastValue;
59
+ }
60
+ this.language.getTranslation(query, this.params).then(value => {
61
+ this.lastValue = value;
62
+ if (!this.cdr["destroyed"]) {
63
+ this.cdr.detectChanges();
64
+ }
65
+ });
66
+ }
67
+ return this.lastValue;
68
+ }
69
+ }
70
+ TranslatePipe.decorators = [
71
+ { type: Injectable },
72
+ { type: Pipe, args: [{
73
+ name: "translate",
74
+ pure: false
75
+ },] }
76
+ ];
77
+ TranslatePipe.ctorParameters = () => [
78
+ { type: ChangeDetectorRef },
79
+ { type: undefined, decorators: [{ type: Inject, args: [LANGUAGE_SERVICE,] }] }
80
+ ];
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiRDovV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3BpcGVzL3RyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFtQixnQkFBZ0IsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFPbEQsTUFBTSxPQUFPLGFBQWE7SUFhdEIsWUFBcUIsR0FBc0IsRUFBcUMsUUFBMEI7UUFBckYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBcUMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFFMUcsQ0FBQztJQU5ELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUE7SUFDeEMsQ0FBQztJQU1ELFNBQVMsQ0FBQyxLQUF1QixFQUFFLEdBQUcsSUFBVztRQUM3QyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNoQjtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixLQUFLLEdBQUcsSUFB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QUFNLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0lMYW5ndWFnZVNlcnZpY2UsIExBTkdVQUdFX1NFUlZJQ0UsIFRyYW5zbGF0aW9uUXVlcnl9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiBcInRyYW5zbGF0ZVwiLFxyXG4gICAgcHVyZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgICBwcml2YXRlIGxhbmc6IHN0cmluZztcclxuICAgIHByaXZhdGUgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIHF1ZXJ5OiBUcmFuc2xhdGlvblF1ZXJ5O1xyXG4gICAgcHJpdmF0ZSBhcmdzOiBhbnlbXTtcclxuICAgIHByaXZhdGUgcGFyYW1zOiBhbnk7XHJcbiAgICBwcml2YXRlIGxhc3RWYWx1ZTogc3RyaW5nO1xyXG5cclxuICAgIGdldCBjdXJyZW50TGFuZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlLmN1cnJlbnRMYW5ndWFnZVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBJbmplY3QoTEFOR1VBR0VfU0VSVklDRSkgcmVhZG9ubHkgbGFuZ3VhZ2U6IElMYW5ndWFnZVNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNmb3JtKHF1ZXJ5OiBUcmFuc2xhdGlvblF1ZXJ5LCAuLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFxdWVyeSkgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgbGV0IGRpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgbGFuZyA9IHRoaXMuY3VycmVudExhbmc7XHJcbiAgICAgICAgaWYgKHRoaXMubGFuZyAhPT0gbGFuZykge1xyXG4gICAgICAgICAgICB0aGlzLmxhbmcgPSBsYW5nO1xyXG4gICAgICAgICAgICBkaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5sYW5ndWFnZS5kaXNhYmxlVHJhbnNsYXRpb25zO1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkICE9PSBkaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgICAgICAgIGRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5lcXVhbHModGhpcy5xdWVyeSwgcXVlcnkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcclxuICAgICAgICAgICAgZGlydHkgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmVxdWFscyh0aGlzLmFyZ3MsIGFyZ3MpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXJncyA9IGFyZ3M7XHJcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gbnVsbDtcclxuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzRGVmaW5lZChhcmdzWzBdKSAmJiBhcmdzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiICYmIGFyZ3NbMF0ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRBcmdzOiBzdHJpbmcgPSBhcmdzWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oXFwnKT8oW2EtekEtWjAtOV9dKykoXFwnKT8oXFxzKT86L2csIGBcIiQyXCI6YClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLzooXFxzKT8oXFwnKSguKj8pKFxcJykvZywgYDpcIiQzXCJgKTtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmFtcyA9IEpTT04ucGFyc2UodmFsaWRBcmdzKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihgV3JvbmcgcGFyYW1ldGVyIGluIFRyYW5zbGF0ZVBpcGUuIEV4cGVjdGVkIGEgdmFsaWQgT2JqZWN0LCByZWNlaXZlZDogJHthcmdzWzBdfWApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3NbMF0gPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkoYXJnc1swXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmFtcyA9IGFyZ3NbMF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGlydHkgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlydHkpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSBBcnJheS5pc0FycmF5KHF1ZXJ5KSA/IHRoaXMubGFuZ3VhZ2UuZ2V0VHJhbnNsYXRpb25Gcm9tQXJyYXkocXVlcnksIHRoaXMucGFyYW1zLCBsYW5nKSA6IHRoaXMubGFuZ3VhZ2UuZ2V0VHJhbnNsYXRpb25Gcm9tT2JqZWN0KHF1ZXJ5LCB0aGlzLnBhcmFtcywgbGFuZyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gcXVlcnk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZS5nZXRUcmFuc2xhdGlvbihxdWVyeSwgdGhpcy5wYXJhbXMpLnRoZW4odmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jZHJbXCJkZXN0cm95ZWRcIl0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,18 +1,18 @@
1
- import { Pipe } from "@angular/core";
2
- import { ObjectUtils } from "../utils/object.utils";
3
- const emptyValues = [];
4
- export class ValuesPipe {
5
- transform(value) {
6
- if (!value)
7
- return emptyValues;
8
- return ObjectUtils.isArray(value)
9
- ? value
10
- : Object.keys(value).map(key => value[key]);
11
- }
12
- }
13
- ValuesPipe.decorators = [
14
- { type: Pipe, args: [{
15
- name: "values"
16
- },] }
17
- ];
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvc3RlbXkvV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3BpcGVzL3ZhbHVlcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxNQUFNLFdBQVcsR0FBVSxFQUFFLENBQUM7QUFLOUIsTUFBTSxPQUFPLFVBQVU7SUFFbkIsU0FBUyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUMvQixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7O1lBVkosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxRQUFRO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xuXG5jb25zdCBlbXB0eVZhbHVlczogYW55W10gPSBbXTtcblxuQFBpcGUoe1xuICAgIG5hbWU6IFwidmFsdWVzXCJcbn0pXG5leHBvcnQgY2xhc3MgVmFsdWVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnkpOiBhbnlbXSB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybiBlbXB0eVZhbHVlcztcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICA6IE9iamVjdC5rZXlzKHZhbHVlKS5tYXAoa2V5ID0+IHZhbHVlW2tleV0pO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { Pipe } from "@angular/core";
2
+ import { ObjectUtils } from "../utils/object.utils";
3
+ const emptyValues = [];
4
+ export class ValuesPipe {
5
+ transform(value) {
6
+ if (!value)
7
+ return emptyValues;
8
+ return ObjectUtils.isArray(value)
9
+ ? value
10
+ : Object.keys(value).map(key => value[key]);
11
+ }
12
+ }
13
+ ValuesPipe.decorators = [
14
+ { type: Pipe, args: [{
15
+ name: "values"
16
+ },] }
17
+ ];
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiRDovV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3BpcGVzL3ZhbHVlcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxNQUFNLFdBQVcsR0FBVSxFQUFFLENBQUM7QUFLOUIsTUFBTSxPQUFPLFVBQVU7SUFFbkIsU0FBUyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUMvQixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7O1lBVkosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxRQUFRO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcblxyXG5jb25zdCBlbXB0eVZhbHVlczogYW55W10gPSBbXTtcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6IFwidmFsdWVzXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbHVlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IGFueVtdIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm4gZW1wdHlWYWx1ZXM7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmlzQXJyYXkodmFsdWUpXHJcbiAgICAgICAgICAgID8gdmFsdWVcclxuICAgICAgICAgICAgOiBPYmplY3Qua2V5cyh2YWx1ZSkubWFwKGtleSA9PiB2YWx1ZVtrZXldKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,59 +1,59 @@
1
- import { ɵangular_packages_platform_browser_platform_browser_g as EventManagerPlugin } from "@angular/platform-browser";
2
- import { Inject, Injectable } from "@angular/core";
3
- import { DOCUMENT } from "@angular/common";
4
- import { addListener, removeListener } from "resize-detector";
5
- import { StringUtils } from "../utils/string.utils";
6
- import { UniversalService } from "../services/universal.service";
7
- function emptyRemove() {
8
- }
9
- export class ResizeEventPlugin extends EventManagerPlugin {
10
- constructor(doc, universal) {
11
- super(doc);
12
- this.universal = universal;
13
- }
14
- supports(eventName) {
15
- return eventName === ResizeEventPlugin.EVENT_NAME;
16
- }
17
- addEventListener(element, eventName, handler) {
18
- const zone = this.manager.getZone();
19
- return zone.runOutsideAngular(() => {
20
- if (this.universal.isServer)
21
- return emptyRemove;
22
- const cb = el => {
23
- zone.run(() => handler(el));
24
- };
25
- addListener(element, cb);
26
- return () => {
27
- try {
28
- removeListener(element, cb);
29
- }
30
- catch (e) {
31
- }
32
- };
33
- });
34
- }
35
- addGlobalEventListener(element, eventName, handler) {
36
- const zone = this.manager.getZone();
37
- return zone.runOutsideAngular(() => {
38
- if (this.universal.isServer)
39
- return emptyRemove;
40
- if (!StringUtils.has(element, "document", "window")) {
41
- console.error("Global resize event other than window or document?", element);
42
- return emptyRemove;
43
- }
44
- const target = "window" == element ? window : document;
45
- const listener = handler;
46
- target.addEventListener(eventName, listener);
47
- return () => target.removeEventListener(eventName, listener);
48
- });
49
- }
50
- }
51
- ResizeEventPlugin.EVENT_NAME = "resize";
52
- ResizeEventPlugin.decorators = [
53
- { type: Injectable }
54
- ];
55
- ResizeEventPlugin.ctorParameters = () => [
56
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
57
- { type: UniversalService }
58
- ];
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWV2ZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvcGx1Z2lucy9yZXNpemUtZXZlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxREFBcUQsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRCxTQUFTLFdBQVc7QUFFcEIsQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFJckQsWUFBOEIsR0FBUSxFQUFTLFNBQTJCO1FBQ3RFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURnQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUUxRSxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQVM7UUFDZCxPQUFPLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDdEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxPQUFpQjtRQUN2RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFBRSxPQUFPLFdBQVcsQ0FBQztZQUNoRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDWixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQztZQUNGLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekIsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSTtvQkFDQSxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUMvQjtnQkFBQyxPQUFPLENBQUMsRUFBRTtpQkFDWDtZQUNMLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQWUsRUFBRSxTQUFpQixFQUFFLE9BQWlCO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUFFLE9BQU8sV0FBVyxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sV0FBVyxDQUFDO2FBQ3RCO1lBQ0QsTUFBTSxNQUFNLEdBQWdCLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUF1QyxPQUFPLENBQUM7WUFDN0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3QyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQXhDYyw0QkFBVSxHQUFXLFFBQVEsQ0FBQzs7WUFIaEQsVUFBVTs7OzRDQUtNLE1BQU0sU0FBQyxRQUFRO1lBWHhCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9nIGFzIEV2ZW50TWFuYWdlclBsdWdpbn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgYWRkTGlzdGVuZXIsIHJlbW92ZUxpc3RlbmVyIH0gZnJvbSBcInJlc2l6ZS1kZXRlY3RvclwiO1xuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4uL3V0aWxzL3N0cmluZy51dGlsc1wiO1xuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvdW5pdmVyc2FsLnNlcnZpY2VcIjtcblxuZnVuY3Rpb24gZW1wdHlSZW1vdmUoKTogdm9pZCB7XG5cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlc2l6ZUV2ZW50UGx1Z2luIGV4dGVuZHMgRXZlbnRNYW5hZ2VyUGx1Z2luIHtcblxuICAgIHByaXZhdGUgc3RhdGljIEVWRU5UX05BTUU6IHN0cmluZyA9IFwicmVzaXplXCI7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2M6IGFueSwgcHVibGljIHVuaXZlcnNhbDogVW5pdmVyc2FsU2VydmljZSkge1xuICAgICAgICBzdXBlcihkb2MpO1xuICAgIH1cblxuICAgIHN1cHBvcnRzKGV2ZW50TmFtZSkge1xuICAgICAgICByZXR1cm4gZXZlbnROYW1lID09PSBSZXNpemVFdmVudFBsdWdpbi5FVkVOVF9OQU1FO1xuICAgIH1cblxuICAgIGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcbiAgICAgICAgY29uc3Qgem9uZSA9IHRoaXMubWFuYWdlci5nZXRab25lKCk7XG4gICAgICAgIHJldHVybiB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnVuaXZlcnNhbC5pc1NlcnZlcikgcmV0dXJuIGVtcHR5UmVtb3ZlO1xuICAgICAgICAgICAgY29uc3QgY2IgPSBlbCA9PiB7XG4gICAgICAgICAgICAgICAgem9uZS5ydW4oKCkgPT4gaGFuZGxlcihlbCkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFkZExpc3RlbmVyKGVsZW1lbnQsIGNiKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZWxlbWVudCwgY2IpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZEdsb2JhbEV2ZW50TGlzdGVuZXIoZWxlbWVudDogc3RyaW5nLCBldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgICAgIGNvbnN0IHpvbmUgPSB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO1xuICAgICAgICByZXR1cm4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHJldHVybiBlbXB0eVJlbW92ZTtcbiAgICAgICAgICAgIGlmICghU3RyaW5nVXRpbHMuaGFzKGVsZW1lbnQsIFwiZG9jdW1lbnRcIiwgXCJ3aW5kb3dcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiR2xvYmFsIHJlc2l6ZSBldmVudCBvdGhlciB0aGFuIHdpbmRvdyBvciBkb2N1bWVudD9cIiwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5UmVtb3ZlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0OiBFdmVudFRhcmdldCA9IFwid2luZG93XCIgPT0gZWxlbWVudCA/IHdpbmRvdyA6IGRvY3VtZW50O1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSA8RXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdD5oYW5kbGVyO1xuICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { ɵangular_packages_platform_browser_platform_browser_g as EventManagerPlugin } from "@angular/platform-browser";
2
+ import { Inject, Injectable } from "@angular/core";
3
+ import { DOCUMENT } from "@angular/common";
4
+ import { addListener, removeListener } from "resize-detector";
5
+ import { StringUtils } from "../utils/string.utils";
6
+ import { UniversalService } from "../services/universal.service";
7
+ function emptyRemove() {
8
+ }
9
+ export class ResizeEventPlugin extends EventManagerPlugin {
10
+ constructor(doc, universal) {
11
+ super(doc);
12
+ this.universal = universal;
13
+ }
14
+ supports(eventName) {
15
+ return eventName === ResizeEventPlugin.EVENT_NAME;
16
+ }
17
+ addEventListener(element, eventName, handler) {
18
+ const zone = this.manager.getZone();
19
+ return zone.runOutsideAngular(() => {
20
+ if (this.universal.isServer)
21
+ return emptyRemove;
22
+ const cb = el => {
23
+ zone.run(() => handler(el));
24
+ };
25
+ addListener(element, cb);
26
+ return () => {
27
+ try {
28
+ removeListener(element, cb);
29
+ }
30
+ catch (e) {
31
+ }
32
+ };
33
+ });
34
+ }
35
+ addGlobalEventListener(element, eventName, handler) {
36
+ const zone = this.manager.getZone();
37
+ return zone.runOutsideAngular(() => {
38
+ if (this.universal.isServer)
39
+ return emptyRemove;
40
+ if (!StringUtils.has(element, "document", "window")) {
41
+ console.error("Global resize event other than window or document?", element);
42
+ return emptyRemove;
43
+ }
44
+ const target = "window" == element ? window : document;
45
+ const listener = handler;
46
+ target.addEventListener(eventName, listener);
47
+ return () => target.removeEventListener(eventName, listener);
48
+ });
49
+ }
50
+ }
51
+ ResizeEventPlugin.EVENT_NAME = "resize";
52
+ ResizeEventPlugin.decorators = [
53
+ { type: Injectable }
54
+ ];
55
+ ResizeEventPlugin.ctorParameters = () => [
56
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
57
+ { type: UniversalService }
58
+ ];
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWV2ZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvcGx1Z2lucy9yZXNpemUtZXZlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxREFBcUQsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRCxTQUFTLFdBQVc7QUFFcEIsQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFJckQsWUFBOEIsR0FBUSxFQUFTLFNBQTJCO1FBQ3RFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURnQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUUxRSxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQVM7UUFDZCxPQUFPLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDdEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxPQUFpQjtRQUN2RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFBRSxPQUFPLFdBQVcsQ0FBQztZQUNoRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDWixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQztZQUNGLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekIsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSTtvQkFDQSxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUMvQjtnQkFBQyxPQUFPLENBQUMsRUFBRTtpQkFDWDtZQUNMLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQWUsRUFBRSxTQUFpQixFQUFFLE9BQWlCO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUFFLE9BQU8sV0FBVyxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sV0FBVyxDQUFDO2FBQ3RCO1lBQ0QsTUFBTSxNQUFNLEdBQWdCLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUF1QyxPQUFPLENBQUM7WUFDN0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3QyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQXhDYyw0QkFBVSxHQUFXLFFBQVEsQ0FBQzs7WUFIaEQsVUFBVTs7OzRDQUtNLE1BQU0sU0FBQyxRQUFRO1lBWHhCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9nIGFzIEV2ZW50TWFuYWdlclBsdWdpbn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgYWRkTGlzdGVuZXIsIHJlbW92ZUxpc3RlbmVyIH0gZnJvbSBcInJlc2l6ZS1kZXRlY3RvclwiO1xyXG5pbXBvcnQge1N0cmluZ1V0aWxzfSBmcm9tIFwiLi4vdXRpbHMvc3RyaW5nLnV0aWxzXCI7XHJcbmltcG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcblxyXG5mdW5jdGlvbiBlbXB0eVJlbW92ZSgpOiB2b2lkIHtcclxuXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFJlc2l6ZUV2ZW50UGx1Z2luIGV4dGVuZHMgRXZlbnRNYW5hZ2VyUGx1Z2luIHtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBFVkVOVF9OQU1FOiBzdHJpbmcgPSBcInJlc2l6ZVwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvYzogYW55LCBwdWJsaWMgdW5pdmVyc2FsOiBVbml2ZXJzYWxTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoZG9jKTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBwb3J0cyhldmVudE5hbWUpIHtcclxuICAgICAgICByZXR1cm4gZXZlbnROYW1lID09PSBSZXNpemVFdmVudFBsdWdpbi5FVkVOVF9OQU1FO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcclxuICAgICAgICBjb25zdCB6b25lID0gdGhpcy5tYW5hZ2VyLmdldFpvbmUoKTtcclxuICAgICAgICByZXR1cm4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnVuaXZlcnNhbC5pc1NlcnZlcikgcmV0dXJuIGVtcHR5UmVtb3ZlO1xyXG4gICAgICAgICAgICBjb25zdCBjYiA9IGVsID0+IHtcclxuICAgICAgICAgICAgICAgIHpvbmUucnVuKCgpID0+IGhhbmRsZXIoZWwpKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgYWRkTGlzdGVuZXIoZWxlbWVudCwgY2IpO1xyXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihlbGVtZW50LCBjYik7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRHbG9iYWxFdmVudExpc3RlbmVyKGVsZW1lbnQ6IHN0cmluZywgZXZlbnROYW1lOiBzdHJpbmcsIGhhbmRsZXI6IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xyXG4gICAgICAgIGNvbnN0IHpvbmUgPSB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO1xyXG4gICAgICAgIHJldHVybiB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudW5pdmVyc2FsLmlzU2VydmVyKSByZXR1cm4gZW1wdHlSZW1vdmU7XHJcbiAgICAgICAgICAgIGlmICghU3RyaW5nVXRpbHMuaGFzKGVsZW1lbnQsIFwiZG9jdW1lbnRcIiwgXCJ3aW5kb3dcIikpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJHbG9iYWwgcmVzaXplIGV2ZW50IG90aGVyIHRoYW4gd2luZG93IG9yIGRvY3VtZW50P1wiLCBlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eVJlbW92ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB0YXJnZXQ6IEV2ZW50VGFyZ2V0ID0gXCJ3aW5kb3dcIiA9PSBlbGVtZW50ID8gd2luZG93IDogZG9jdW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gPEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3Q+aGFuZGxlcjtcclxuICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcik7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,52 +1,52 @@
1
- import { ɵangular_packages_platform_browser_platform_browser_g as EventManagerPlugin } from "@angular/platform-browser";
2
- import { Inject, Injectable } from "@angular/core";
3
- import { DOCUMENT } from "@angular/common";
4
- import { StringUtils } from "../utils/string.utils";
5
- import { UniversalService } from "../services/universal.service";
6
- export function emptyRemove() {
7
- }
8
- export class ScrollEventPlugin extends EventManagerPlugin {
9
- constructor(doc, universal) {
10
- super(doc);
11
- this.universal = universal;
12
- }
13
- supports(eventName) {
14
- return eventName === ScrollEventPlugin.EVENT_NAME;
15
- }
16
- addEventListener(element, eventName, handler) {
17
- const zone = this.manager.getZone();
18
- return zone.runOutsideAngular(() => {
19
- if (this.universal.isServer)
20
- return emptyRemove;
21
- const callback = (e) => {
22
- zone.run(() => handler(e));
23
- };
24
- element.addEventListener(eventName, callback);
25
- return () => element.removeEventListener(eventName, callback);
26
- });
27
- }
28
- addGlobalEventListener(element, eventName, handler) {
29
- const zone = this.manager.getZone();
30
- return zone.runOutsideAngular(() => {
31
- if (this.universal.isServer)
32
- return emptyRemove;
33
- if (!StringUtils.has(element, "document", "window")) {
34
- console.error("Global resize event other than window or document?", element);
35
- return emptyRemove;
36
- }
37
- const target = "window" == element ? window : document;
38
- const listener = handler;
39
- target.addEventListener(eventName, listener);
40
- return () => target.removeEventListener(eventName, listener);
41
- });
42
- }
43
- }
44
- ScrollEventPlugin.EVENT_NAME = "scroll";
45
- ScrollEventPlugin.decorators = [
46
- { type: Injectable }
47
- ];
48
- ScrollEventPlugin.ctorParameters = () => [
49
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
50
- { type: UniversalService }
51
- ];
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWV2ZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvcGx1Z2lucy9zY3JvbGwtZXZlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxREFBcUQsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFL0QsTUFBTSxVQUFVLFdBQVc7QUFFM0IsQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFJckQsWUFBOEIsR0FBUSxFQUFVLFNBQTJCO1FBQ3ZFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURpQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUUzRSxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQVM7UUFDZCxPQUFPLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDdEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxPQUFpQjtRQUN2RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFBRSxPQUFPLFdBQVcsQ0FBQztZQUNoRCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVEsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQztZQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQWUsRUFBRSxTQUFpQixFQUFFLE9BQWlCO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUFFLE9BQU8sV0FBVyxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sV0FBVyxDQUFDO2FBQ3RCO1lBQ0QsTUFBTSxNQUFNLEdBQWdCLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUF1QyxPQUFPLENBQUM7WUFDN0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3QyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQW5DYyw0QkFBVSxHQUFXLFFBQVEsQ0FBQzs7WUFIaEQsVUFBVTs7OzRDQUtNLE1BQU0sU0FBQyxRQUFRO1lBWHhCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9nIGFzIEV2ZW50TWFuYWdlclBsdWdpbn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4uL3V0aWxzL3N0cmluZy51dGlsc1wiO1xuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvdW5pdmVyc2FsLnNlcnZpY2VcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5UmVtb3ZlKCk6IHZvaWQge1xuXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY3JvbGxFdmVudFBsdWdpbiBleHRlbmRzIEV2ZW50TWFuYWdlclBsdWdpbiB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBFVkVOVF9OQU1FOiBzdHJpbmcgPSBcInNjcm9sbFwiO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgZG9jOiBhbnksIHByaXZhdGUgdW5pdmVyc2FsOiBVbml2ZXJzYWxTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGRvYyk7XG4gICAgfVxuXG4gICAgc3VwcG9ydHMoZXZlbnROYW1lKSB7XG4gICAgICAgIHJldHVybiBldmVudE5hbWUgPT09IFNjcm9sbEV2ZW50UGx1Z2luLkVWRU5UX05BTUU7XG4gICAgfVxuXG4gICAgYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGhhbmRsZXI6IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xuICAgICAgICBjb25zdCB6b25lID0gdGhpcy5tYW5hZ2VyLmdldFpvbmUoKTtcbiAgICAgICAgcmV0dXJuIHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudW5pdmVyc2FsLmlzU2VydmVyKSByZXR1cm4gZW1wdHlSZW1vdmU7XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IChlOiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHpvbmUucnVuKCgpID0+IGhhbmRsZXIoZSkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjayk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZEdsb2JhbEV2ZW50TGlzdGVuZXIoZWxlbWVudDogc3RyaW5nLCBldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgICAgIGNvbnN0IHpvbmUgPSB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO1xuICAgICAgICByZXR1cm4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHJldHVybiBlbXB0eVJlbW92ZTtcbiAgICAgICAgICAgIGlmICghU3RyaW5nVXRpbHMuaGFzKGVsZW1lbnQsIFwiZG9jdW1lbnRcIiwgXCJ3aW5kb3dcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiR2xvYmFsIHJlc2l6ZSBldmVudCBvdGhlciB0aGFuIHdpbmRvdyBvciBkb2N1bWVudD9cIiwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5UmVtb3ZlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0OiBFdmVudFRhcmdldCA9IFwid2luZG93XCIgPT0gZWxlbWVudCA/IHdpbmRvdyA6IGRvY3VtZW50O1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSA8RXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdD5oYW5kbGVyO1xuICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { ɵangular_packages_platform_browser_platform_browser_g as EventManagerPlugin } from "@angular/platform-browser";
2
+ import { Inject, Injectable } from "@angular/core";
3
+ import { DOCUMENT } from "@angular/common";
4
+ import { StringUtils } from "../utils/string.utils";
5
+ import { UniversalService } from "../services/universal.service";
6
+ export function emptyRemove() {
7
+ }
8
+ export class ScrollEventPlugin extends EventManagerPlugin {
9
+ constructor(doc, universal) {
10
+ super(doc);
11
+ this.universal = universal;
12
+ }
13
+ supports(eventName) {
14
+ return eventName === ScrollEventPlugin.EVENT_NAME;
15
+ }
16
+ addEventListener(element, eventName, handler) {
17
+ const zone = this.manager.getZone();
18
+ return zone.runOutsideAngular(() => {
19
+ if (this.universal.isServer)
20
+ return emptyRemove;
21
+ const callback = (e) => {
22
+ zone.run(() => handler(e));
23
+ };
24
+ element.addEventListener(eventName, callback);
25
+ return () => element.removeEventListener(eventName, callback);
26
+ });
27
+ }
28
+ addGlobalEventListener(element, eventName, handler) {
29
+ const zone = this.manager.getZone();
30
+ return zone.runOutsideAngular(() => {
31
+ if (this.universal.isServer)
32
+ return emptyRemove;
33
+ if (!StringUtils.has(element, "document", "window")) {
34
+ console.error("Global resize event other than window or document?", element);
35
+ return emptyRemove;
36
+ }
37
+ const target = "window" == element ? window : document;
38
+ const listener = handler;
39
+ target.addEventListener(eventName, listener);
40
+ return () => target.removeEventListener(eventName, listener);
41
+ });
42
+ }
43
+ }
44
+ ScrollEventPlugin.EVENT_NAME = "scroll";
45
+ ScrollEventPlugin.decorators = [
46
+ { type: Injectable }
47
+ ];
48
+ ScrollEventPlugin.ctorParameters = () => [
49
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
50
+ { type: UniversalService }
51
+ ];
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWV2ZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvcGx1Z2lucy9zY3JvbGwtZXZlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxREFBcUQsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFL0QsTUFBTSxVQUFVLFdBQVc7QUFFM0IsQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFJckQsWUFBOEIsR0FBUSxFQUFVLFNBQTJCO1FBQ3ZFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURpQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUUzRSxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQVM7UUFDZCxPQUFPLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDdEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxPQUFpQjtRQUN2RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFBRSxPQUFPLFdBQVcsQ0FBQztZQUNoRCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVEsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQztZQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQWUsRUFBRSxTQUFpQixFQUFFLE9BQWlCO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUFFLE9BQU8sV0FBVyxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sV0FBVyxDQUFDO2FBQ3RCO1lBQ0QsTUFBTSxNQUFNLEdBQWdCLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUF1QyxPQUFPLENBQUM7WUFDN0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3QyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQW5DYyw0QkFBVSxHQUFXLFFBQVEsQ0FBQzs7WUFIaEQsVUFBVTs7OzRDQUtNLE1BQU0sU0FBQyxRQUFRO1lBWHhCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9nIGFzIEV2ZW50TWFuYWdlclBsdWdpbn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4uL3V0aWxzL3N0cmluZy51dGlsc1wiO1xyXG5pbXBvcnQge1VuaXZlcnNhbFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5UmVtb3ZlKCk6IHZvaWQge1xyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2Nyb2xsRXZlbnRQbHVnaW4gZXh0ZW5kcyBFdmVudE1hbmFnZXJQbHVnaW4ge1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIEVWRU5UX05BTUU6IHN0cmluZyA9IFwic2Nyb2xsXCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgZG9jOiBhbnksIHByaXZhdGUgdW5pdmVyc2FsOiBVbml2ZXJzYWxTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoZG9jKTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBwb3J0cyhldmVudE5hbWUpIHtcclxuICAgICAgICByZXR1cm4gZXZlbnROYW1lID09PSBTY3JvbGxFdmVudFBsdWdpbi5FVkVOVF9OQU1FO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcclxuICAgICAgICBjb25zdCB6b25lID0gdGhpcy5tYW5hZ2VyLmdldFpvbmUoKTtcclxuICAgICAgICByZXR1cm4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnVuaXZlcnNhbC5pc1NlcnZlcikgcmV0dXJuIGVtcHR5UmVtb3ZlO1xyXG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IChlOiBFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgem9uZS5ydW4oKCkgPT4gaGFuZGxlcihlKSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcclxuICAgICAgICAgICAgcmV0dXJuICgpID0+IGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRHbG9iYWxFdmVudExpc3RlbmVyKGVsZW1lbnQ6IHN0cmluZywgZXZlbnROYW1lOiBzdHJpbmcsIGhhbmRsZXI6IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xyXG4gICAgICAgIGNvbnN0IHpvbmUgPSB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO1xyXG4gICAgICAgIHJldHVybiB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudW5pdmVyc2FsLmlzU2VydmVyKSByZXR1cm4gZW1wdHlSZW1vdmU7XHJcbiAgICAgICAgICAgIGlmICghU3RyaW5nVXRpbHMuaGFzKGVsZW1lbnQsIFwiZG9jdW1lbnRcIiwgXCJ3aW5kb3dcIikpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJHbG9iYWwgcmVzaXplIGV2ZW50IG90aGVyIHRoYW4gd2luZG93IG9yIGRvY3VtZW50P1wiLCBlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eVJlbW92ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB0YXJnZXQ6IEV2ZW50VGFyZ2V0ID0gXCJ3aW5kb3dcIiA9PSBlbGVtZW50ID8gd2luZG93IDogZG9jdW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gPEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3Q+aGFuZGxlcjtcclxuICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcik7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=