stream-chat-angular 5.13.0 → 6.0.0-beta.2

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 (165) hide show
  1. package/assets/i18n/en.d.ts +1 -0
  2. package/assets/version.d.ts +1 -1
  3. package/{esm2020 → esm2022}/assets/i18n/en.mjs +2 -1
  4. package/{esm2020 → esm2022}/assets/version.mjs +2 -2
  5. package/{esm2020 → esm2022}/lib/attachment-configuration.service.mjs +4 -4
  6. package/esm2022/lib/attachment-list/attachment-list.component.mjs +212 -0
  7. package/esm2022/lib/attachment-preview-list/attachment-preview-list.component.mjs +55 -0
  8. package/{esm2020 → esm2022}/lib/attachment.service.mjs +5 -5
  9. package/esm2022/lib/avatar/avatar.component.mjs +157 -0
  10. package/{esm2020 → esm2022}/lib/avatar-placeholder/avatar-placeholder.component.mjs +6 -6
  11. package/esm2022/lib/channel/channel.component.mjs +45 -0
  12. package/esm2022/lib/channel-header/channel-header.component.mjs +72 -0
  13. package/esm2022/lib/channel-list/channel-list.component.mjs +50 -0
  14. package/esm2022/lib/channel-preview/channel-preview.component.mjs +150 -0
  15. package/esm2022/lib/channel.service.mjs +1389 -0
  16. package/esm2022/lib/chat-client.service.mjs +227 -0
  17. package/{esm2020 → esm2022}/lib/custom-templates.service.mjs +5 -5
  18. package/{esm2020 → esm2022}/lib/date-parser.service.mjs +5 -5
  19. package/esm2022/lib/file-utils.mjs +35 -0
  20. package/{esm2020 → esm2022}/lib/get-channel-display-text.mjs +1 -1
  21. package/{esm2020 → esm2022}/lib/get-message-translation.mjs +1 -1
  22. package/{esm2020 → esm2022}/lib/icon/icon-placeholder/icon-placeholder.component.mjs +6 -6
  23. package/{esm2020 → esm2022}/lib/icon/icon.component.mjs +5 -5
  24. package/{esm2020 → esm2022}/lib/icon/icon.module.mjs +11 -11
  25. package/{esm2020 → esm2022}/lib/icon/loading-indicator/loading-indicator.component.mjs +5 -5
  26. package/{esm2020 → esm2022}/lib/icon/loading-indicator-placeholder/loading-indicator-placeholder.component.mjs +6 -6
  27. package/{esm2020 → esm2022}/lib/list-users.mjs +1 -1
  28. package/esm2022/lib/message/message.component.mjs +486 -0
  29. package/esm2022/lib/message-actions-box/message-actions-box.component.mjs +120 -0
  30. package/{esm2020 → esm2022}/lib/message-actions.service.mjs +5 -5
  31. package/esm2022/lib/message-bounce-prompt/message-bounce-prompt.component.mjs +71 -0
  32. package/{esm2020 → esm2022}/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +6 -6
  33. package/{esm2020 → esm2022}/lib/message-input/emoji-input.service.mjs +5 -5
  34. package/{esm2020 → esm2022}/lib/message-input/message-input-config.service.mjs +5 -5
  35. package/esm2022/lib/message-input/message-input.component.mjs +507 -0
  36. package/{esm2020 → esm2022}/lib/message-input/textarea/textarea.component.mjs +5 -5
  37. package/{esm2020 → esm2022}/lib/message-input/textarea.directive.mjs +5 -5
  38. package/{esm2020 → esm2022}/lib/message-input/voice-recorder.service.mjs +5 -5
  39. package/{esm2020 → esm2022}/lib/message-list/group-styles.mjs +1 -1
  40. package/esm2022/lib/message-list/message-list.component.mjs +715 -0
  41. package/{esm2020 → esm2022}/lib/message-preview.mjs +1 -1
  42. package/esm2022/lib/message-reactions/message-reactions.component.mjs +165 -0
  43. package/esm2022/lib/message-reactions-selector/message-reactions-selector.component.mjs +57 -0
  44. package/{esm2020 → esm2022}/lib/message-reactions.service.mjs +5 -5
  45. package/{esm2020 → esm2022}/lib/message-text/message-text.component.mjs +6 -6
  46. package/esm2022/lib/message.service.mjs +43 -0
  47. package/{esm2020 → esm2022}/lib/modal/modal.component.mjs +6 -6
  48. package/{esm2020 → esm2022}/lib/notification/notification.component.mjs +6 -6
  49. package/esm2022/lib/notification-list/notification-list.component.mjs +33 -0
  50. package/{esm2020 → esm2022}/lib/notification.service.mjs +5 -5
  51. package/esm2022/lib/paginated-list/paginated-list.component.mjs +94 -0
  52. package/{esm2020 → esm2022}/lib/parse-date.mjs +1 -1
  53. package/{esm2020 → esm2022}/lib/read-by.mjs +1 -1
  54. package/esm2022/lib/stream-autocomplete-textarea.module.mjs +33 -0
  55. package/{esm2020 → esm2022}/lib/stream-avatar.module.mjs +5 -5
  56. package/{esm2020 → esm2022}/lib/stream-chat.module.mjs +59 -59
  57. package/{esm2020 → esm2022}/lib/stream-i18n.service.mjs +5 -5
  58. package/esm2022/lib/stream-textarea.module.mjs +31 -0
  59. package/{esm2020 → esm2022}/lib/theme.service.mjs +5 -5
  60. package/{esm2020 → esm2022}/lib/thread/thread.component.mjs +6 -6
  61. package/{esm2020 → esm2022}/lib/transliteration.service.mjs +5 -5
  62. package/esm2022/lib/types.mjs +2 -0
  63. package/{esm2020 → esm2022}/lib/user-list/user-list.component.mjs +5 -5
  64. package/esm2022/lib/virtualized-list.service.mjs +273 -0
  65. package/{esm2020 → esm2022}/lib/virtualized-message-list.service.mjs +1 -1
  66. package/{esm2020 → esm2022}/lib/voice-recorder/amplitude-recorder.service.mjs +5 -5
  67. package/{esm2020 → esm2022}/lib/voice-recorder/audio-recorder.service.mjs +5 -5
  68. package/{esm2020 → esm2022}/lib/voice-recorder/media-recorder.mjs +1 -1
  69. package/esm2022/lib/voice-recorder/mp3-transcoder.mjs +61 -0
  70. package/esm2022/lib/voice-recorder/transcoder.service.mjs +121 -0
  71. package/esm2022/lib/voice-recorder/voice-recorder-wavebar/voice-recorder-wavebar.component.mjs +32 -0
  72. package/esm2022/lib/voice-recorder/voice-recorder.component.mjs +80 -0
  73. package/{esm2020 → esm2022}/lib/voice-recorder/voice-recorder.module.mjs +9 -9
  74. package/esm2022/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.mjs +112 -0
  75. package/esm2022/lib/voice-recording/voice-recording.component.mjs +91 -0
  76. package/{esm2020 → esm2022}/lib/voice-recording/voice-recording.module.mjs +5 -5
  77. package/{esm2020 → esm2022}/lib/wave-form-sampler.mjs +1 -1
  78. package/esm2022/public-api.mjs +82 -0
  79. package/{fesm2020 → fesm2022}/stream-chat-angular.mjs +865 -1140
  80. package/fesm2022/stream-chat-angular.mjs.map +1 -0
  81. package/lib/attachment-list/attachment-list.component.d.ts +2 -5
  82. package/lib/attachment-preview-list/attachment-preview-list.component.d.ts +2 -2
  83. package/lib/attachment.service.d.ts +1 -1
  84. package/lib/avatar/avatar.component.d.ts +4 -4
  85. package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +1 -1
  86. package/lib/channel-list/channel-list.component.d.ts +1 -0
  87. package/lib/channel-preview/channel-preview.component.d.ts +3 -4
  88. package/lib/channel.service.d.ts +40 -106
  89. package/lib/chat-client.service.d.ts +1 -4
  90. package/lib/custom-templates.service.d.ts +10 -10
  91. package/lib/icon/icon-placeholder/icon-placeholder.component.d.ts +1 -1
  92. package/lib/icon/icon.component.d.ts +2 -2
  93. package/lib/message/message.component.d.ts +2 -2
  94. package/lib/message-actions-box/message-actions-box.component.d.ts +2 -3
  95. package/lib/message-actions.service.d.ts +1 -1
  96. package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +2 -2
  97. package/lib/message-input/message-input.component.d.ts +2 -2
  98. package/lib/message-input/textarea/textarea.component.d.ts +1 -1
  99. package/lib/message-input/textarea.directive.d.ts +2 -2
  100. package/lib/message-list/group-styles.d.ts +1 -1
  101. package/lib/message-list/message-list.component.d.ts +2 -3
  102. package/lib/message-reactions/message-reactions.component.d.ts +2 -3
  103. package/lib/message-reactions-selector/message-reactions-selector.component.d.ts +1 -2
  104. package/lib/message-text/message-text.component.d.ts +2 -2
  105. package/lib/modal/modal.component.d.ts +1 -1
  106. package/lib/notification/notification.component.d.ts +1 -1
  107. package/lib/notification-list/notification-list.component.d.ts +0 -1
  108. package/lib/paginated-list/paginated-list.component.d.ts +5 -2
  109. package/lib/read-by.d.ts +1 -1
  110. package/lib/types.d.ts +98 -84
  111. package/lib/user-list/user-list.component.d.ts +1 -1
  112. package/lib/voice-recorder/amplitude-recorder.service.d.ts +2 -2
  113. package/lib/voice-recorder/media-recorder.d.ts +2 -2
  114. package/lib/voice-recorder/transcoder.service.d.ts +4 -4
  115. package/lib/voice-recorder/voice-recorder-wavebar/voice-recorder-wavebar.component.d.ts +0 -1
  116. package/lib/voice-recorder/voice-recorder.component.d.ts +2 -2
  117. package/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.d.ts +3 -3
  118. package/lib/voice-recording/voice-recording.component.d.ts +1 -1
  119. package/package.json +15 -21
  120. package/public-api.d.ts +0 -1
  121. package/src/assets/i18n/en.ts +1 -0
  122. package/src/assets/version.ts +1 -1
  123. package/esm2020/lib/attachment-list/attachment-list.component.mjs +0 -224
  124. package/esm2020/lib/attachment-preview-list/attachment-preview-list.component.mjs +0 -55
  125. package/esm2020/lib/avatar/avatar.component.mjs +0 -160
  126. package/esm2020/lib/channel/channel.component.mjs +0 -45
  127. package/esm2020/lib/channel-header/channel-header.component.mjs +0 -72
  128. package/esm2020/lib/channel-list/channel-list.component.mjs +0 -47
  129. package/esm2020/lib/channel-preview/channel-preview.component.mjs +0 -155
  130. package/esm2020/lib/channel-query.mjs +0 -77
  131. package/esm2020/lib/channel.service.mjs +0 -1546
  132. package/esm2020/lib/chat-client.service.mjs +0 -238
  133. package/esm2020/lib/file-utils.mjs +0 -35
  134. package/esm2020/lib/message/message.component.mjs +0 -486
  135. package/esm2020/lib/message-actions-box/message-actions-box.component.mjs +0 -123
  136. package/esm2020/lib/message-bounce-prompt/message-bounce-prompt.component.mjs +0 -71
  137. package/esm2020/lib/message-input/message-input.component.mjs +0 -507
  138. package/esm2020/lib/message-list/message-list.component.mjs +0 -717
  139. package/esm2020/lib/message-reactions/message-reactions.component.mjs +0 -168
  140. package/esm2020/lib/message-reactions-selector/message-reactions-selector.component.mjs +0 -61
  141. package/esm2020/lib/message.service.mjs +0 -43
  142. package/esm2020/lib/notification-list/notification-list.component.mjs +0 -36
  143. package/esm2020/lib/paginated-list/paginated-list.component.mjs +0 -94
  144. package/esm2020/lib/stream-autocomplete-textarea.module.mjs +0 -33
  145. package/esm2020/lib/stream-textarea.module.mjs +0 -31
  146. package/esm2020/lib/types.mjs +0 -2
  147. package/esm2020/lib/virtualized-list.service.mjs +0 -271
  148. package/esm2020/lib/voice-recorder/mp3-transcoder.mjs +0 -61
  149. package/esm2020/lib/voice-recorder/transcoder.service.mjs +0 -121
  150. package/esm2020/lib/voice-recorder/voice-recorder-wavebar/voice-recorder-wavebar.component.mjs +0 -35
  151. package/esm2020/lib/voice-recorder/voice-recorder.component.mjs +0 -80
  152. package/esm2020/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.mjs +0 -112
  153. package/esm2020/lib/voice-recording/voice-recording.component.mjs +0 -91
  154. package/esm2020/public-api.mjs +0 -83
  155. package/fesm2015/stream-chat-angular.mjs +0 -9152
  156. package/fesm2015/stream-chat-angular.mjs.map +0 -1
  157. package/fesm2020/stream-chat-angular.mjs.map +0 -1
  158. package/lib/channel-query.d.ts +0 -26
  159. /package/{esm2020 → esm2022}/lib/format-duration.mjs +0 -0
  160. /package/{esm2020 → esm2022}/lib/injection-tokens.mjs +0 -0
  161. /package/{esm2020 → esm2022}/lib/is-image-attachment.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/is-on-separate-date.mjs +0 -0
  163. /package/{esm2020 → esm2022}/lib/is-safari.mjs +0 -0
  164. /package/{esm2020 → esm2022}/lib/message-input/textarea.interface.mjs +0 -0
  165. /package/{esm2020 → esm2022}/stream-chat-angular.mjs +0 -0
@@ -11,13 +11,13 @@ export class ThemeService {
11
11
  */
12
12
  this.theme$ = new BehaviorSubject('light');
13
13
  }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
14
16
  }
15
- ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
- ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ThemeService, providedIn: 'root' });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ThemeService, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: ThemeService, decorators: [{
18
18
  type: Injectable,
19
19
  args: [{
20
20
  providedIn: 'root',
21
21
  }]
22
- }], ctorParameters: function () { return []; } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFdkM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQU12QjtRQUxBOztXQUVHO1FBQ0gsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLE9BQU8sQ0FBQyxDQUFDO0lBRS9CLENBQUM7O3lHQU5MLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGUgYFRoZW1lU2VydmljZWAgY2FuIGJlIHVzZWQgdG8gY2hhbmdlIHRoZSB0aGVtZSBvZiB0aGUgY2hhdCBVSSBhbmQgdG8gY3VzdG9taXplIHRoZSB0aGVtZS4gT3VyIFt0aGVtaW5nIGd1aWRlXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3RoZW1pbmcvdGhlbWluZ3YyLykgZ2l2ZXMgYSBjb21wbGV0ZSBvdmVydmlldyBhYm91dCB0aGUgdG9waWMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICAvKipcbiAgICogQSBTdWJqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2V0IG9yIHNldCB0aGUgY3VycmVudGx5IGFjdGl2ZSB0aGVtZS4gQnkgZGVmYXVsdCBsaWdodCBhbmQgZGFyayB0aGVtZXMgYXJlIHN1cHBvcnRlZC5cbiAgICovXG4gIHRoZW1lJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignbGlnaHQnKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
22
+ }], ctorParameters: () => [] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFdkM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQU12QjtRQUxBOztXQUVHO1FBQ0gsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLE9BQU8sQ0FBQyxDQUFDO0lBRS9CLENBQUM7OEdBTkwsWUFBWTtrSEFBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGUgYFRoZW1lU2VydmljZWAgY2FuIGJlIHVzZWQgdG8gY2hhbmdlIHRoZSB0aGVtZSBvZiB0aGUgY2hhdCBVSSBhbmQgdG8gY3VzdG9taXplIHRoZSB0aGVtZS4gT3VyIFt0aGVtaW5nIGd1aWRlXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL3RoZW1pbmcvdGhlbWluZ3YyLykgZ2l2ZXMgYSBjb21wbGV0ZSBvdmVydmlldyBhYm91dCB0aGUgdG9waWMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICAvKipcbiAgICogQSBTdWJqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2V0IG9yIHNldCB0aGUgY3VycmVudGx5IGFjdGl2ZSB0aGVtZS4gQnkgZGVmYXVsdCBsaWdodCBhbmQgZGFyayB0aGVtZXMgYXJlIHN1cHBvcnRlZC5cbiAgICovXG4gIHRoZW1lJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignbGlnaHQnKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
@@ -38,14 +38,14 @@ export class ThreadComponent {
38
38
  }
39
39
  return getChannelDisplayText(this.channel, this.chatClientService.chatClient.user);
40
40
  }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: ThreadComponent, deps: [{ token: i1.CustomTemplatesService }, { token: i2.ChannelService }, { token: i3.ChatClientService }], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0", type: ThreadComponent, selector: "stream-thread", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"str-chat__thread-container\">\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.threadHeaderTemplate$ | async) ||\n defaultThreadHeader;\n context: getThreadHeaderContext()\n \"\n />\n <ng-content />\n</div>\n\n<ng-template\n #defaultThreadHeader\n let-parentMessage=\"parentMessage\"\n let-closeThreadHandler=\"closeThreadHandler\"\n>\n <div class=\"str-chat__thread-header\">\n <div class=\"str-chat__thread-header-details\">\n <div class=\"str-chat__thread-header-name\" translate>\n streamChat.Thread\n </div>\n <div\n class=\"str-chat__thread-header-channel-name\"\n data-testid=\"channel-name\"\n >\n {{ channelName }}\n </div>\n </div>\n <button\n class=\"str-chat__square-button str-chat__close-thread-button\"\n data-testid=\"close-button\"\n (click)=\"closeThreadHandler()\"\n >\n <stream-icon-placeholder icon=\"close\" />\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.IconPlaceholderComponent, selector: "stream-icon-placeholder", inputs: ["icon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
41
43
  }
42
- ThreadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ThreadComponent, deps: [{ token: i1.CustomTemplatesService }, { token: i2.ChannelService }, { token: i3.ChatClientService }], target: i0.ɵɵFactoryTarget.Component });
43
- ThreadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ThreadComponent, selector: "stream-thread", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"str-chat__thread-container\">\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.threadHeaderTemplate$ | async) ||\n defaultThreadHeader;\n context: getThreadHeaderContext()\n \"\n ></ng-container>\n <ng-content></ng-content>\n</div>\n\n<ng-template\n #defaultThreadHeader\n let-parentMessage=\"parentMessage\"\n let-closeThreadHandler=\"closeThreadHandler\"\n>\n <div class=\"str-chat__thread-header\">\n <div class=\"str-chat__thread-header-details\">\n <div class=\"str-chat__thread-header-name\" translate>\n streamChat.Thread\n </div>\n <div\n class=\"str-chat__thread-header-channel-name\"\n data-testid=\"channel-name\"\n >\n {{ channelName }}\n </div>\n </div>\n <button\n class=\"str-chat__square-button str-chat__close-thread-button\"\n data-testid=\"close-button\"\n (click)=\"closeThreadHandler()\"\n >\n <stream-icon-placeholder icon=\"close\"></stream-icon-placeholder>\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.IconPlaceholderComponent, selector: "stream-icon-placeholder", inputs: ["icon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ThreadComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: ThreadComponent, decorators: [{
45
45
  type: Component,
46
- args: [{ selector: 'stream-thread', template: "<div class=\"str-chat__thread-container\">\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.threadHeaderTemplate$ | async) ||\n defaultThreadHeader;\n context: getThreadHeaderContext()\n \"\n ></ng-container>\n <ng-content></ng-content>\n</div>\n\n<ng-template\n #defaultThreadHeader\n let-parentMessage=\"parentMessage\"\n let-closeThreadHandler=\"closeThreadHandler\"\n>\n <div class=\"str-chat__thread-header\">\n <div class=\"str-chat__thread-header-details\">\n <div class=\"str-chat__thread-header-name\" translate>\n streamChat.Thread\n </div>\n <div\n class=\"str-chat__thread-header-channel-name\"\n data-testid=\"channel-name\"\n >\n {{ channelName }}\n </div>\n </div>\n <button\n class=\"str-chat__square-button str-chat__close-thread-button\"\n data-testid=\"close-button\"\n (click)=\"closeThreadHandler()\"\n >\n <stream-icon-placeholder icon=\"close\"></stream-icon-placeholder>\n </button>\n </div>\n</ng-template>\n" }]
47
- }], ctorParameters: function () { return [{ type: i1.CustomTemplatesService }, { type: i2.ChannelService }, { type: i3.ChatClientService }]; }, propDecorators: { class: [{
46
+ args: [{ selector: 'stream-thread', template: "<div class=\"str-chat__thread-container\">\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.threadHeaderTemplate$ | async) ||\n defaultThreadHeader;\n context: getThreadHeaderContext()\n \"\n />\n <ng-content />\n</div>\n\n<ng-template\n #defaultThreadHeader\n let-parentMessage=\"parentMessage\"\n let-closeThreadHandler=\"closeThreadHandler\"\n>\n <div class=\"str-chat__thread-header\">\n <div class=\"str-chat__thread-header-details\">\n <div class=\"str-chat__thread-header-name\" translate>\n streamChat.Thread\n </div>\n <div\n class=\"str-chat__thread-header-channel-name\"\n data-testid=\"channel-name\"\n >\n {{ channelName }}\n </div>\n </div>\n <button\n class=\"str-chat__square-button str-chat__close-thread-button\"\n data-testid=\"close-button\"\n (click)=\"closeThreadHandler()\"\n >\n <stream-icon-placeholder icon=\"close\" />\n </button>\n </div>\n</ng-template>\n" }]
47
+ }], ctorParameters: () => [{ type: i1.CustomTemplatesService }, { type: i2.ChannelService }, { type: i3.ChatClientService }], propDecorators: { class: [{
48
48
  type: HostBinding,
49
49
  args: ['class']
50
50
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBTWxFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQU9wRTs7R0FFRztBQU1ILE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ1Msc0JBQThDLEVBQzdDLGNBQThCLEVBQzlCLGlCQUFvQztRQUZyQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzdDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUmhCLFVBQUssR0FBRyxrQkFBa0IsQ0FBQztRQUdqRCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFPekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUNoRCxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUN4RCxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUMxQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUN0QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDNUQsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8scUJBQXFCLENBQzFCLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3ZDLENBQUM7SUFDSixDQUFDOzs0R0E5Q1UsZUFBZTtnR0FBZixlQUFlLHNHQ3JCNUIsOGlDQXFDQTsyRkRoQmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxlQUFlOzBLQUtLLEtBQUs7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFubmVsIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgQ2hhdENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi9jaGF0LWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0Q2hhbm5lbERpc3BsYXlUZXh0IH0gZnJvbSAnLi4vZ2V0LWNoYW5uZWwtZGlzcGxheS10ZXh0JztcbmltcG9ydCB7XG4gIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4gIFN0cmVhbU1lc3NhZ2UsXG4gIFRocmVhZEhlYWRlckNvbnRleHQsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYFRocmVhZGAgY29tcG9uZW50IHJlcHJlc2VudHMgYSBbbWVzc2FnZSB0aHJlYWRdKC9jaGF0L2RvY3MvamF2YXNjcmlwdC90aHJlYWRzLyksIGl0IGlzIGEgY29udGFpbmVyIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGEgdGhyZWFkIHdpdGggYSBoZWFkZXIsIFtgTWVzc2FnZUxpc3RgXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQpIGFuZCBbYE1lc3NhZ2VJbnB1dGBdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvY29tcG9uZW50cy9NZXNzYWdlSW5wdXRDb21wb25lbnQvKSBjb21wb25lbnRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tdGhyZWFkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RocmVhZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRocmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwcml2YXRlIGNsYXNzID0gJ3N0ci1jaGF0X190aHJlYWQnO1xuICBwYXJlbnRNZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBjaGFubmVsOiBDaGFubmVsPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZVBhcmVudE1lc3NhZ2UkLnN1YnNjcmliZShcbiAgICAgICAgKHBhcmVudE1lc3NhZ2UpID0+ICh0aGlzLnBhcmVudE1lc3NhZ2UgPSBwYXJlbnRNZXNzYWdlKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWwkLnN1YnNjcmliZShcbiAgICAgICAgKGNoYW5uZWwpID0+ICh0aGlzLmNoYW5uZWwgPSBjaGFubmVsKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGdldFRocmVhZEhlYWRlckNvbnRleHQoKTogVGhyZWFkSGVhZGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmVudE1lc3NhZ2U6IHRoaXMucGFyZW50TWVzc2FnZSxcbiAgICAgIGNsb3NlVGhyZWFkSGFuZGxlcjogKCkgPT4gdGhpcy5jbG9zZVRocmVhZCgpLFxuICAgIH07XG4gIH1cblxuICBjbG9zZVRocmVhZCgpIHtcbiAgICB2b2lkIHRoaXMuY2hhbm5lbFNlcnZpY2Uuc2V0QXNBY3RpdmVQYXJlbnRNZXNzYWdlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBnZXQgY2hhbm5lbE5hbWUoKSB7XG4gICAgaWYgKCF0aGlzLmNoYW5uZWwgfHwgIXRoaXMuY2hhdENsaWVudFNlcnZpY2UuY2hhdENsaWVudC51c2VyKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBnZXRDaGFubmVsRGlzcGxheVRleHQoXG4gICAgICB0aGlzLmNoYW5uZWwsXG4gICAgICB0aGlzLmNoYXRDbGllbnRTZXJ2aWNlLmNoYXRDbGllbnQudXNlclxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzdHItY2hhdF9fdGhyZWFkLWNvbnRhaW5lclwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIChjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLnRocmVhZEhlYWRlclRlbXBsYXRlJCB8IGFzeW5jKSB8fFxuICAgICAgICBkZWZhdWx0VGhyZWFkSGVhZGVyO1xuICAgICAgY29udGV4dDogZ2V0VGhyZWFkSGVhZGVyQ29udGV4dCgpXG4gICAgXCJcbiAgPjwvbmctY29udGFpbmVyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWZhdWx0VGhyZWFkSGVhZGVyXG4gIGxldC1wYXJlbnRNZXNzYWdlPVwicGFyZW50TWVzc2FnZVwiXG4gIGxldC1jbG9zZVRocmVhZEhhbmRsZXI9XCJjbG9zZVRocmVhZEhhbmRsZXJcIlxuPlxuICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX3RocmVhZC1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX3RocmVhZC1oZWFkZXItZGV0YWlsc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X190aHJlYWQtaGVhZGVyLW5hbWVcIiB0cmFuc2xhdGU+XG4gICAgICAgIHN0cmVhbUNoYXQuVGhyZWFkXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzdHItY2hhdF9fdGhyZWFkLWhlYWRlci1jaGFubmVsLW5hbWVcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImNoYW5uZWwtbmFtZVwiXG4gICAgICA+XG4gICAgICAgIHt7IGNoYW5uZWxOYW1lIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInN0ci1jaGF0X19zcXVhcmUtYnV0dG9uIHN0ci1jaGF0X19jbG9zZS10aHJlYWQtYnV0dG9uXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiY2xvc2UtYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJjbG9zZVRocmVhZEhhbmRsZXIoKVwiXG4gICAgPlxuICAgICAgPHN0cmVhbS1pY29uLXBsYWNlaG9sZGVyIGljb249XCJjbG9zZVwiPjwvc3RyZWFtLWljb24tcGxhY2Vob2xkZXI+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBTWxFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQU9wRTs7R0FFRztBQU1ILE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ1Msc0JBQThDLEVBQzdDLGNBQThCLEVBQzlCLGlCQUFvQztRQUZyQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzdDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUmhCLFVBQUssR0FBRyxrQkFBa0IsQ0FBQztRQUdqRCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFPekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUNoRCxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUN4RCxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUMxQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUN0QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDNUQsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8scUJBQXFCLENBQzFCLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3ZDLENBQUM7SUFDSixDQUFDOzhHQTlDVSxlQUFlO2tHQUFmLGVBQWUsc0dDckI1Qiw2L0JBcUNBOzsyRkRoQmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxlQUFlO3dKQUtLLEtBQUs7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFubmVsIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgQ2hhdENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi9jaGF0LWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0Q2hhbm5lbERpc3BsYXlUZXh0IH0gZnJvbSAnLi4vZ2V0LWNoYW5uZWwtZGlzcGxheS10ZXh0JztcbmltcG9ydCB7XG4gIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4gIFN0cmVhbU1lc3NhZ2UsXG4gIFRocmVhZEhlYWRlckNvbnRleHQsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYFRocmVhZGAgY29tcG9uZW50IHJlcHJlc2VudHMgYSBbbWVzc2FnZSB0aHJlYWRdKC9jaGF0L2RvY3MvamF2YXNjcmlwdC90aHJlYWRzLyksIGl0IGlzIGEgY29udGFpbmVyIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGEgdGhyZWFkIHdpdGggYSBoZWFkZXIsIFtgTWVzc2FnZUxpc3RgXSgvY2hhdC9kb2NzL3Nkay9hbmd1bGFyL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQpIGFuZCBbYE1lc3NhZ2VJbnB1dGBdKC9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvY29tcG9uZW50cy9NZXNzYWdlSW5wdXRDb21wb25lbnQvKSBjb21wb25lbnRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tdGhyZWFkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RocmVhZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRocmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwcml2YXRlIGNsYXNzID0gJ3N0ci1jaGF0X190aHJlYWQnO1xuICBwYXJlbnRNZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBjaGFubmVsOiBDaGFubmVsPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVQYXJlbnRNZXNzYWdlJC5zdWJzY3JpYmUoXG4gICAgICAgIChwYXJlbnRNZXNzYWdlKSA9PiAodGhpcy5wYXJlbnRNZXNzYWdlID0gcGFyZW50TWVzc2FnZSksXG4gICAgICApLFxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWwkLnN1YnNjcmliZShcbiAgICAgICAgKGNoYW5uZWwpID0+ICh0aGlzLmNoYW5uZWwgPSBjaGFubmVsKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgZ2V0VGhyZWFkSGVhZGVyQ29udGV4dCgpOiBUaHJlYWRIZWFkZXJDb250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyZW50TWVzc2FnZTogdGhpcy5wYXJlbnRNZXNzYWdlLFxuICAgICAgY2xvc2VUaHJlYWRIYW5kbGVyOiAoKSA9PiB0aGlzLmNsb3NlVGhyZWFkKCksXG4gICAgfTtcbiAgfVxuXG4gIGNsb3NlVGhyZWFkKCkge1xuICAgIHZvaWQgdGhpcy5jaGFubmVsU2VydmljZS5zZXRBc0FjdGl2ZVBhcmVudE1lc3NhZ2UodW5kZWZpbmVkKTtcbiAgfVxuXG4gIGdldCBjaGFubmVsTmFtZSgpIHtcbiAgICBpZiAoIXRoaXMuY2hhbm5lbCB8fCAhdGhpcy5jaGF0Q2xpZW50U2VydmljZS5jaGF0Q2xpZW50LnVzZXIpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGdldENoYW5uZWxEaXNwbGF5VGV4dChcbiAgICAgIHRoaXMuY2hhbm5lbCxcbiAgICAgIHRoaXMuY2hhdENsaWVudFNlcnZpY2UuY2hhdENsaWVudC51c2VyLFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzdHItY2hhdF9fdGhyZWFkLWNvbnRhaW5lclwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIChjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLnRocmVhZEhlYWRlclRlbXBsYXRlJCB8IGFzeW5jKSB8fFxuICAgICAgICBkZWZhdWx0VGhyZWFkSGVhZGVyO1xuICAgICAgY29udGV4dDogZ2V0VGhyZWFkSGVhZGVyQ29udGV4dCgpXG4gICAgXCJcbiAgLz5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgI2RlZmF1bHRUaHJlYWRIZWFkZXJcbiAgbGV0LXBhcmVudE1lc3NhZ2U9XCJwYXJlbnRNZXNzYWdlXCJcbiAgbGV0LWNsb3NlVGhyZWFkSGFuZGxlcj1cImNsb3NlVGhyZWFkSGFuZGxlclwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fdGhyZWFkLWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fdGhyZWFkLWhlYWRlci1kZXRhaWxzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX3RocmVhZC1oZWFkZXItbmFtZVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgc3RyZWFtQ2hhdC5UaHJlYWRcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X190aHJlYWQtaGVhZGVyLWNoYW5uZWwtbmFtZVwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiY2hhbm5lbC1uYW1lXCJcbiAgICAgID5cbiAgICAgICAge3sgY2hhbm5lbE5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic3RyLWNoYXRfX3NxdWFyZS1idXR0b24gc3RyLWNoYXRfX2Nsb3NlLXRocmVhZC1idXR0b25cIlxuICAgICAgZGF0YS10ZXN0aWQ9XCJjbG9zZS1idXR0b25cIlxuICAgICAgKGNsaWNrKT1cImNsb3NlVGhyZWFkSGFuZGxlcigpXCJcbiAgICA+XG4gICAgICA8c3RyZWFtLWljb24tcGxhY2Vob2xkZXIgaWNvbj1cImNsb3NlXCIgLz5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -14,11 +14,11 @@ export class TransliterationService {
14
14
  transliterate(s) {
15
15
  return transliterate(s);
16
16
  }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: TransliterationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: TransliterationService, providedIn: 'root' }); }
17
19
  }
18
- TransliterationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TransliterationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
- TransliterationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TransliterationService, providedIn: 'root' });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TransliterationService, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: TransliterationService, decorators: [{
21
21
  type: Injectable,
22
22
  args: [{ providedIn: 'root' }]
23
- }], ctorParameters: function () { return []; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsaXRlcmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdHJhbnNsaXRlcmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLGFBQWEsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGdCQUFlLENBQUM7SUFFaEI7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxDQUFTO1FBQ3JCLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7O21IQVZVLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRFQsTUFBTTsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0cmFuc2xpdGVyYXRlIGZyb20gJ0BzdHJlYW0taW8vdHJhbnNsaXRlcmF0ZSc7XG5cbi8qKlxuICogVGhlIGBUcmFuc2xpdGVyYXRpb25TZXJ2aWNlYCB3cmFwcyB0aGUgW0BzaW5kcmVzb3JodXMvdHJhbnNsaXRlcmF0ZV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHNpbmRyZXNvcmh1cy90cmFuc2xpdGVyYXRlKSBsaWJyYXJ5XG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsaXRlcmF0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHMgdGhlIHN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZFxuICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB0cmFuc2xpdGVyYXRpb25cbiAgICovXG4gIHRyYW5zbGl0ZXJhdGUoczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRyYW5zbGl0ZXJhdGUocyk7XG4gIH1cbn1cbiJdfQ==
23
+ }], ctorParameters: () => [] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsaXRlcmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdHJhbnNsaXRlcmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLGFBQWEsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGdCQUFlLENBQUM7SUFFaEI7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxDQUFTO1FBQ3JCLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7OEdBVlUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FEVCxNQUFNOzsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0cmFuc2xpdGVyYXRlIGZyb20gJ0BzdHJlYW0taW8vdHJhbnNsaXRlcmF0ZSc7XG5cbi8qKlxuICogVGhlIGBUcmFuc2xpdGVyYXRpb25TZXJ2aWNlYCB3cmFwcyB0aGUgW0BzaW5kcmVzb3JodXMvdHJhbnNsaXRlcmF0ZV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHNpbmRyZXNvcmh1cy90cmFuc2xpdGVyYXRlKSBsaWJyYXJ5XG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsaXRlcmF0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHMgdGhlIHN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZFxuICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB0cmFuc2xpdGVyYXRpb25cbiAgICovXG4gIHRyYW5zbGl0ZXJhdGUoczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRyYW5zbGl0ZXJhdGUocyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEF0dGFjaG1lbnQsXG4gIENoYW5uZWwsXG4gIENoYW5uZWxGaWx0ZXJzLFxuICBDaGFubmVsTWFuYWdlckV2ZW50SGFuZGxlck92ZXJyaWRlcyxcbiAgQ2hhbm5lbE1hbmFnZXJPcHRpb25zLFxuICBDaGFubmVsTWVtYmVyUmVzcG9uc2UsXG4gIENoYW5uZWxPcHRpb25zLFxuICBDaGFubmVsU29ydCxcbiAgQ29tbWFuZFJlc3BvbnNlLFxuICBFdmVudCxcbiAgRXh0ZW5kYWJsZUdlbmVyaWNzLFxuICBGb3JtYXRNZXNzYWdlUmVzcG9uc2UsXG4gIExpdGVyYWxTdHJpbmdGb3JVbmlvbixcbiAgTWVzc2FnZVJlc3BvbnNlQmFzZSxcbiAgTXV0ZSxcbiAgUmVhY3Rpb25Hcm91cFJlc3BvbnNlLFxuICBSZWFjdGlvblJlc3BvbnNlLFxuICBVc2VyLFxuICBVc2VyUmVzcG9uc2UsXG59IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IEF0dGFjaG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hdHRhY2htZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIFVua25vd25UeXBlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVRyaWdnZXIgPSB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBjb21wb25lbnRQcm9wczogVW5rbm93blR5cGU7XG4gICAgZGF0YTogVW5rbm93blR5cGU7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRXh0ZW5kYWJsZUdlbmVyaWNzICYge1xuICBhdHRhY2htZW50VHlwZTogRGVmYXVsdEF0dGFjaG1lbnRUeXBlO1xuICBjaGFubmVsVHlwZTogRGVmYXVsdENoYW5uZWxUeXBlO1xuICBjb21tYW5kVHlwZTogTGl0ZXJhbFN0cmluZ0ZvclVuaW9uO1xuICBldmVudFR5cGU6IFVua25vd25UeXBlO1xuICBtZXNzYWdlVHlwZTogRGVmYXVsdE1lc3NhZ2VUeXBlO1xuICByZWFjdGlvblR5cGU6IFVua25vd25UeXBlO1xuICB1c2VyVHlwZTogRGVmYXVsdFVzZXJUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdEF0dGFjaG1lbnRUeXBlID0gVW5rbm93blR5cGUgJiB7XG4gIGFzc2V0X3VybD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGltYWdlcz86IEFycmF5PEF0dGFjaG1lbnQ8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz4+O1xuICBtaW1lX3R5cGU/OiBzdHJpbmc7XG4gIGlzQ3VzdG9tQXR0YWNobWVudD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0Q2hhbm5lbFR5cGUgPSBVbmtub3duVHlwZSAmIHtcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIG1lbWJlcl9jb3VudD86IG51bWJlcjtcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0Q29tbWFuZFR5cGUgPSBMaXRlcmFsU3RyaW5nRm9yVW5pb247XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRNZXNzYWdlVHlwZSA9IFVua25vd25UeXBlICYge1xuICBjdXN0b21UeXBlPzogJ2NoYW5uZWwuaW50cm8nIHwgJ21lc3NhZ2UuZGF0ZSc7XG4gIGRhdGU/OiBzdHJpbmcgfCBEYXRlO1xuICBlcnJvclN0YXR1c0NvZGU/OiBudW1iZXI7XG4gIGV2ZW50PzogRXZlbnQ8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG4gIHVucmVhZD86IGJvb2xlYW47XG4gIHJlYWRCeTogVXNlclJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W107XG4gIHRyYW5zbGF0aW9uPzogc3RyaW5nO1xuICBxdW90ZWRfbWVzc2FnZT86IE1lc3NhZ2VSZXNwb25zZUJhc2U8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0VXNlclR5cGVJbnRlcm5hbCA9IHtcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIHN0YXR1cz86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRVc2VyVHlwZSA9IFVua25vd25UeXBlICZcbiAgRGVmYXVsdFVzZXJUeXBlSW50ZXJuYWwgJiB7XG4gICAgbXV0ZXM/OiBBcnJheTxNdXRlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+PjtcbiAgfTtcblxuZXhwb3J0IHR5cGUgU3RyZWFtTWVzc2FnZTxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzLFxuPiA9IEZvcm1hdE1lc3NhZ2VSZXNwb25zZTxUPjtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudFVwbG9hZEVycm9yUmVhc29uID1cbiAgfCAnZmlsZS1zaXplJ1xuICB8ICdmaWxlLWV4dGVuc2lvbidcbiAgfCAndW5rbm93bic7XG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRVcGxvYWQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSB7XG4gIGZpbGU6IEZpbGU7XG4gIHN0YXRlOiAnZXJyb3InIHwgJ3N1Y2Nlc3MnIHwgJ3VwbG9hZGluZyc7XG4gIGVycm9yUmVhc29uPzogQXR0YWNobWVudFVwbG9hZEVycm9yUmVhc29uO1xuICBlcnJvckV4dHJhSW5mbz86IHsgcGFyYW06IHN0cmluZyB9W107XG4gIHVybD86IHN0cmluZztcbiAgdHlwZTogJ2ltYWdlJyB8ICdmaWxlJyB8ICd2aWRlbycgfCAndm9pY2VSZWNvcmRpbmcnO1xuICBwcmV2aWV3VXJpPzogc3RyaW5nIHwgQXJyYXlCdWZmZXI7XG4gIHRodW1iX3VybD86IHN0cmluZztcbiAgZXh0cmFEYXRhPzogUGFydGlhbDxBdHRhY2htZW50PFQ+PjtcbiAgZnJvbUF0dGFjaG1lbnQ/OiBBdHRhY2htZW50PFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW1Db250ZXh0ID0ge1xuICBpdGVtOiBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRBdXRvY29tcGxldGVMaXN0SXRlbUNvbnRleHQgPSB7XG4gIGl0ZW06IENvbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtO1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW0gPSAoXG4gIHwgQ2hhbm5lbE1lbWJlclJlc3BvbnNlXG4gIHwgVXNlclJlc3BvbnNlXG4pICYge1xuICBhdXRvY29tcGxldGVMYWJlbDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW0gPSBDb21tYW5kUmVzcG9uc2UgJiB7XG4gIGF1dG9jb21wbGV0ZUxhYmVsOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25UeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdpbmZvJztcblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUGF5bG9hZDxUID0gb2JqZWN0PiA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogTm90aWZpY2F0aW9uVHlwZTtcbiAgdGV4dD86IHN0cmluZztcbiAgdHJhbnNsYXRlUGFyYW1zPzogb2JqZWN0O1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPFQ+O1xuICB0ZW1wbGF0ZUNvbnRleHQ/OiBUO1xuICBkaXNtaXNzRm46ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsUHJldmlld0NvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSB7XG4gIGNoYW5uZWw6IENoYW5uZWw8VD47XG59O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsUHJldmlld0luZm9Db250ZXh0PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0gQ2hhbm5lbFByZXZpZXdDb250ZXh0ICYge1xuICBsYXRlc3RNZXNzYWdlPzogU3RyZWFtTWVzc2FnZTxUPjtcbiAgLyoqXG4gICAqIFRoZSB0ZXh0IG9mIHRoZSBsYXRlc3QgbWVzc2FnZSwgb3Igc29tZSBtZXRhIGluZm9ybWF0aW9uIChmb3IgZXhhbXBsZTogXCJOb3RoaW5nIHlldFwiKVxuICAgKi9cbiAgbGF0ZXN0TWVzc2FnZVRleHQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgY2hhbm5lbCwgb3IgdGhlIG5hbWUgb2YgdGhlIGNoYW5uZWwgbWVtYmVyc1xuICAgKi9cbiAgY2hhbm5lbERpc3BsYXlUaXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBtZXNzYWdlIChvbmx5IGF2YWlsYWJsZSBpZiB0aGUgbGFzdCBtZXNzYWdlIHdhcyBzZW50IGJ5IHRoZSBjdXJyZW50IHVzZXIpXG4gICAqL1xuICBsYXRlc3RNZXNzYWdlU3RhdHVzPzogJ2RlbGl2ZXJlZCcgfCAncmVhZCc7XG4gIC8qKlxuICAgKiBUaGUgdGltZSBvZiB0aGUgbGFzdCBtZXNzYWdlIChmb3JtYXR0ZWQgdG8gYSB1c2VyLWZyaWVuZGx5IHN0cmluZylcbiAgICovXG4gIGxhdGVzdE1lc3NhZ2VUaW1lPzogc3RyaW5nO1xuICB1bnJlYWRDb3VudDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvblRlbXBsYXRlQ29udGV4dCA9IHtcbiAgY29udGVudDogc3RyaW5nO1xuICB1c2VyOiBVc2VyUmVzcG9uc2U7XG59O1xuXG5leHBvcnQgdHlwZSBFbW9qaVBpY2tlckNvbnRleHQgPSB7XG4gIGVtb2ppSW5wdXQkOiBTdWJqZWN0PHN0cmluZz47XG59O1xuXG5leHBvcnQgdHlwZSBUeXBpbmdJbmRpY2F0b3JDb250ZXh0ID0ge1xuICB1c2Vyc1R5cGluZyQ6IE9ic2VydmFibGU8VXNlclJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W10+O1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUNvbnRleHQgPSB7XG4gIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIGVuYWJsZWRNZXNzYWdlQWN0aW9uczogc3RyaW5nW107XG4gIGlzTGFzdFNlbnRNZXNzYWdlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBtb2RlOiAndGhyZWFkJyB8ICdtYWluJztcbiAgaXNIaWdobGlnaHRlZDogYm9vbGVhbjtcbiAgY3VzdG9tQWN0aW9uczogQ3VzdG9tTWVzc2FnZUFjdGlvbkl0ZW1bXTtcbiAgc2Nyb2xsJD86IE9ic2VydmFibGU8dm9pZD47XG59O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsQWN0aW9uc0NvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSB7IGNoYW5uZWw6IENoYW5uZWw8VD4gfTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tQXR0YWNobWVudExpc3RDb250ZXh0PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZztcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnQ8VD5bXTtcbiAgcGFyZW50TWVzc2FnZUlkPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudExpc3RDb250ZXh0ID0gQ3VzdG9tQXR0YWNobWVudExpc3RDb250ZXh0ICYge1xuICBpbWFnZU1vZGFsU3RhdGVDaGFuZ2VIYW5kbGVyPzogKHN0YXRlOiAnb3BlbmVkJyB8ICdjbG9zZWQnKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQXZhdGFyVHlwZSA9ICdjaGFubmVsJyB8ICd1c2VyJztcblxuZXhwb3J0IHR5cGUgQXZhdGFyTG9jYXRpb24gPVxuICB8ICdjaGFubmVsLXByZXZpZXcnXG4gIHwgJ2NoYW5uZWwtaGVhZGVyJ1xuICB8ICdtZXNzYWdlLXNlbmRlcidcbiAgfCAnbWVzc2FnZS1yZWFkZXInXG4gIHwgJ3F1b3RlZC1tZXNzYWdlLXNlbmRlcidcbiAgfCAnYXV0b2NvbXBsZXRlLWl0ZW0nXG4gIHwgJ3R5cGluZy1pbmRpY2F0b3InXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB0aGlzIHdpbGwgYmUgcmVuYW1lZCB0byB1c2VyLWxpc3QgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZVxuICAgKi9cbiAgfCAncmVhY3Rpb24nO1xuXG5leHBvcnQgdHlwZSBBdmF0YXJDb250ZXh0ID0ge1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGltYWdlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHR5cGU6IEF2YXRhclR5cGUgfCB1bmRlZmluZWQ7XG4gIGxvY2F0aW9uOiBBdmF0YXJMb2NhdGlvbiB8IHVuZGVmaW5lZDtcbiAgY2hhbm5lbD86IENoYW5uZWw8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG4gIHVzZXI/OiBVc2VyPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xuICBpbml0aWFsc1R5cGU/OiAnZmlyc3QtbGV0dGVyLW9mLWZpcnN0LXdvcmQnIHwgJ2ZpcnN0LWxldHRlci1vZi1lYWNoLXdvcmQnO1xuICBzaG93T25saW5lSW5kaWNhdG9yPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRQcmV2aWV3TGlzdENvbnRleHQgPSB7XG4gIGF0dGFjaG1lbnRVcGxvYWRzJDogT2JzZXJ2YWJsZTxBdHRhY2htZW50VXBsb2FkW10+IHwgdW5kZWZpbmVkO1xuICByZXRyeVVwbG9hZEhhbmRsZXI6IChmOiBGaWxlKSA9PiB2b2lkO1xuICBkZWxldGVVcGxvYWRIYW5kbGVyOiAodTogQXR0YWNobWVudFVwbG9hZCkgPT4gdm9pZDtcbiAgc2VydmljZTogQXR0YWNobWVudFNlcnZpY2U7XG59O1xuXG5leHBvcnQgdHlwZSBJY29uQ29udGV4dCA9IHtcbiAgaWNvbjogSWNvbiB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25zQm94Q29udGV4dDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzLFxuPiA9IHtcbiAgaXNNaW5lOiBib29sZWFuO1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlPFQ+IHwgdW5kZWZpbmVkO1xuICBlbmFibGVkQWN0aW9uczogc3RyaW5nW107XG4gIG1lc3NhZ2VUZXh0SHRtbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUFjdGlvbkhhbmRsZXJFeHRyYVBhcmFtcyA9IHtcbiAgaXNNaW5lOiBib29sZWFuO1xuICBtZXNzYWdlVGV4dEh0bWxFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlQWN0aW9uSGFuZGxlcjxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzLFxuPiA9IChcbiAgbWVzc2FnZTogU3RyZWFtTWVzc2FnZTxUPixcbiAgcGFyYW1zOiBNZXNzYWdlQWN0aW9uSGFuZGxlckV4dHJhUGFyYW1zLFxuKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlQWN0aW9uQm94SXRlbUNvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSB7XG4gIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAoKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD4pID0+IHN0cmluZykgfCBzdHJpbmc7XG4gIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD47XG4gIGFjdGlvbkhhbmRsZXJFeHRyYVBhcmFtczogTWVzc2FnZUFjdGlvbkhhbmRsZXJFeHRyYVBhcmFtcztcbiAgYWN0aW9uSGFuZGxlcjogTWVzc2FnZUFjdGlvbkhhbmRsZXI8VD47XG59O1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlUmVhY3Rpb25BY3Rpb25JdGVtPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0ge1xuICBhY3Rpb25OYW1lOiAncmVhY3QnO1xuICBpc1Zpc2libGU6IChcbiAgICBlbmFibGVkQWN0aW9uczogc3RyaW5nW10sXG4gICAgaXNNaW5lOiBib29sZWFuLFxuICAgIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD4sXG4gICkgPT4gYm9vbGVhbjtcbn07XG5cbnR5cGUgTWVzc2FnZUFjdGlvbkl0ZW1CYXNlPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0ge1xuICBhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXk6ICgobWVzc2FnZTogU3RyZWFtTWVzc2FnZTxUPikgPT4gc3RyaW5nKSB8IHN0cmluZztcbiAgaXNWaXNpYmxlOiAoXG4gICAgZW5hYmxlZEFjdGlvbnM6IHN0cmluZ1tdLFxuICAgIGlzTWluZTogYm9vbGVhbixcbiAgICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlPFQ+LFxuICApID0+IGJvb2xlYW47XG4gIGFjdGlvbkhhbmRsZXI6IE1lc3NhZ2VBY3Rpb25IYW5kbGVyO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUFjdGlvbkl0ZW08XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSBNZXNzYWdlQWN0aW9uSXRlbUJhc2U8VD4gJiB7XG4gIGFjdGlvbk5hbWU6XG4gICAgfCAncXVvdGUnXG4gICAgfCAncGluJ1xuICAgIHwgJ2ZsYWcnXG4gICAgfCAnZWRpdCdcbiAgICB8ICdkZWxldGUnXG4gICAgfCAnbWFyay11bnJlYWQnXG4gICAgfCAndGhyZWFkLXJlcGx5J1xuICAgIHwgJ2NvcHktbWVzc2FnZS10ZXh0Jztcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0gTWVzc2FnZUFjdGlvbkl0ZW1CYXNlPFQ+ICYge1xuICBhY3Rpb25OYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlUmVhY3Rpb25zU2VsZWN0b3JDb250ZXh0ID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgb3duUmVhY3Rpb25zOiBSZWFjdGlvblJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W107XG59O1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlUmVhY3Rpb25zQ29udGV4dCA9IHtcbiAgbWVzc2FnZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgYG1lc3NhZ2VSZWFjdGlvbkdyb3Vwc2AgKi9cbiAgbWVzc2FnZVJlYWN0aW9uQ291bnRzOiB7IFtrZXkgaW4gTWVzc2FnZVJlYWN0aW9uVHlwZV0/OiBudW1iZXIgfTtcbiAgLyoqIEBkZXByZWNhdGVkIHlvdSBjYW4gZmV0Y2ggdGhlIHJlYWN0aW9ucyB1c2luZyBbYGNoYXRTZXJ2aWNlLmNoYXRDbGllbnQucXVlcnlSZWFjdGlvbnMoKWBdKC9jaGF0L2RvY3MvamF2YXNjcmlwdC9zZW5kX3JlYWN0aW9uLyZxPXF1ZXJ5UmVhY3Rpb25zI3F1ZXJ5LXJlYWN0aW9ucykgKi9cbiAgbGF0ZXN0UmVhY3Rpb25zOiBSZWFjdGlvblJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W107XG4gIG93blJlYWN0aW9uczogUmVhY3Rpb25SZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdO1xuICBtZXNzYWdlUmVhY3Rpb25Hcm91cHM6IHtcbiAgICBba2V5IGluIE1lc3NhZ2VSZWFjdGlvblR5cGVdOiBSZWFjdGlvbkdyb3VwUmVzcG9uc2U7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBNb2RhbENvbnRleHQgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNPcGVuQ2hhbmdlSGFuZGxlcjogKGlzT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgY29udGVudDogVGVtcGxhdGVSZWY8dm9pZD47XG59O1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25Db250ZXh0ID0ge1xuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlIHwgdW5kZWZpbmVkO1xuICBjb250ZW50OiBUZW1wbGF0ZVJlZjx2b2lkPiB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIFRocmVhZEhlYWRlckNvbnRleHQgPSB7XG4gIHBhcmVudE1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIGNsb3NlVGhyZWFkSGFuZGxlcjogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VSZWFjdGlvblR5cGUgPSBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRDb25maWdyYXRpb24gPSB7XG4gIHVybDogc3RyaW5nO1xuICBoZWlnaHQ6IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEltYWdlQXR0YWNobWVudENvbmZpZ3VyYXRpb24gPSBBdHRhY2htZW50Q29uZmlncmF0aW9uICYge1xuICBvcmlnaW5hbEhlaWdodDogbnVtYmVyO1xuICBvcmlnaW5hbFdpZHRoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBWaWRlb0F0dGFjaG1lbnRDb25maWd1cmF0aW9uID0gSW1hZ2VBdHRhY2htZW50Q29uZmlndXJhdGlvbiAmIHtcbiAgdGh1bWJVcmw/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWxpdmVyZWRTdGF0dXNDb250ZXh0ID0ge1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlO1xufTtcblxuZXhwb3J0IHR5cGUgU2VuZGluZ1N0YXR1c0NvbnRleHQgPSB7XG4gIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21NZXRhZGF0YUNvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSB7XG4gIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD47XG59O1xuXG5leHBvcnQgdHlwZSBSZWFkU3RhdHVzQ29udGV4dCA9IHtcbiAgbWVzc2FnZTogU3RyZWFtTWVzc2FnZTtcbiAgcmVhZEJ5VGV4dDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhbm5lbEhlYWRlckluZm9Db250ZXh0PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0geyBjaGFubmVsOiBDaGFubmVsPFQ+IH07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUF0dGFjaG1lbnRVcGxvYWRDb250ZXh0ID0ge1xuICBpc011bHRpcGxlRmlsZVVwbG9hZEVuYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGF0dGFjaG1lbnRTZXJ2aWNlOiBBdHRhY2htZW50U2VydmljZTtcbn07XG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRDb250ZXh0ID0ge1xuICBhdHRhY2htZW50OiBBdHRhY2htZW50PERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xufTtcblxuZXhwb3J0IHR5cGUgU3lzdGVtTWVzc2FnZUNvbnRleHQgPSBNZXNzYWdlQ29udGV4dCAmIHtcbiAgcGFyc2VkRGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0ZVNlcGFyYXRvckNvbnRleHQgPSB7XG4gIGRhdGU6IERhdGU7XG4gIHBhcnNlZERhdGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFVucmVhZE1lc3NhZ2VzSW5kaWNhdG9yQ29udGV4dCA9IHtcbiAgdW5yZWFkQ291bnQ6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFVucmVhZE1lc3NhZ2VzTm90aWZpY2F0aW9uQ29udGV4dCA9XG4gIFVucmVhZE1lc3NhZ2VzSW5kaWNhdG9yQ29udGV4dCAmIHtcbiAgICBvbkp1bXA6ICgpID0+IHZvaWQ7XG4gICAgb25EaXNtaXNzOiAoKSA9PiB2b2lkO1xuICB9O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsUXVlcnlTdGF0ZSA9IHtcbiAgc3RhdGU6ICdpbi1wcm9ncmVzcycgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuICAvLyBObyB0eXBlIGRlZiBmcm9tIHN0cmVhbS1jaGF0XG4gIGVycm9yPzogdW5rbm93bjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VJbnB1dDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzLFxuPiA9IHtcbiAgdGV4dDogc3RyaW5nO1xuICBhdHRhY2htZW50czogQXR0YWNobWVudDxUPltdO1xuICBtZW50aW9uZWRVc2VyczogVXNlclJlc3BvbnNlPFQ+W107XG4gIHBhcmVudElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHF1b3RlZE1lc3NhZ2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjdXN0b21EYXRhOiB1bmRlZmluZWQgfCBQYXJ0aWFsPFRbJ21lc3NhZ2VUeXBlJ10+O1xufTtcblxuZXhwb3J0IHR5cGUgT2Zmc2V0TmV4dFBhZ2VDb25maWd1cmF0aW9uID0ge1xuICB0eXBlOiAnb2Zmc2V0JztcbiAgb2Zmc2V0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJ0TmV4dFBhZ2VDb25maWd1cmF0aW9uPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0ge1xuICB0eXBlOiAnZmlsdGVyJztcbiAgcGFnaW5hdGlvbkZpbHRlcjogQ2hhbm5lbEZpbHRlcnM8VD47XG59O1xuXG5leHBvcnQgdHlwZSBOZXh0UGFnZUNvbmZpZ3VyYXRpb24gPVxuICB8IE9mZnNldE5leHRQYWdlQ29uZmlndXJhdGlvblxuICB8IEZpbHRlcnROZXh0UGFnZUNvbmZpZ3VyYXRpb25cbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VSZWFjdGlvbkNsaWNrRGV0YWlscyA9IHtcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XG4gIHJlYWN0aW9uVHlwZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUFjdGlvbnNDbGlja0RldGFpbHM8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSBNZXNzYWdlQWN0aW9uc0JveENvbnRleHQ8VD4gJiB7IGN1c3RvbUFjdGlvbnM6IEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtW10gfTtcblxuZXhwb3J0IHR5cGUgR3JvdXBTdHlsZU9wdGlvbnMgPSB7XG4gIG5vR3JvdXBCeVVzZXI/OiBib29sZWFuO1xuICBsYXN0UmVhZE1lc3NhZ2VJZD86IHN0cmluZztcbiAgbm9Hcm91cEJ5UmVhZFN0YXRlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENoYW5uZWxRdWVyeVR5cGUgPSAnZmlyc3QtcGFnZScgfCAnbmV4dC1wYWdlJyB8ICdyZWNvdmVyLXN0YXRlJztcblxuZXhwb3J0IHR5cGUgQ2hhbm5lbFF1ZXJ5UmVzdWx0PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0ge1xuICBjaGFubmVsczogQ2hhbm5lbDxUPltdO1xuICBoYXNNb3JlUGFnZTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFZpcnR1YWxpemVkTGlzdFNjcm9sbFBvc2l0aW9uID0gJ3RvcCcgfCAnYm90dG9tJyB8ICdtaWRkbGUnO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsaXplZExpc3RRdWVyeVN0YXRlID0ge1xuICBzdGF0ZTogJ2xvYWRpbmctdG9wJyB8ICdsb2FkaW5nLWJvdHRvbScgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuICBlcnJvcj86IHVua25vd247XG59O1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsaXplZExpc3RRdWVyeURpcmVjdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbmV4cG9ydCB0eXBlIFZpcnR1YWxpemVkTGlzdFZlcnRpY2FsSXRlbVBvc2l0aW9uID0gJ3RvcCcgfCAnYm90dG9tJyB8ICdtaWRkbGUnO1xuXG5leHBvcnQgdHlwZSBBdWRpb1JlY29yZGluZyA9IE1lZGlhUmVjb3JkaW5nICYgeyB3YXZlZm9ybV9kYXRhOiBudW1iZXJbXSB9O1xuXG5leHBvcnQgdHlwZSBNZWRpYVJlY29yZGluZyA9IHtcbiAgcmVjb3JkaW5nOiBGaWxlO1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICBtaW1lX3R5cGU6IHN0cmluZztcbiAgYXNzZXRfdXJsOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUF0dGFjaG1lbnRQcmV2aWV3TGlzdENvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSB7XG4gIHNlcnZpY2U6IEF0dGFjaG1lbnRTZXJ2aWNlPFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgVGhyZWFkUmVwbHlCdXR0b25Db250ZXh0PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0ge1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlPFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tQXV0b2NvbXBsZXRlSXRlbUNvbnRleHQgPSB7XG4gIGl0ZW06IEN1c3RvbUF1dG9jb21wbGV0ZUl0ZW07XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21BdXRvY29tcGxldGVJdGVtID0ge1xuICAvKipcbiAgICogVGhpcyBpcyB0aGUgdGV4dCB0aGF0IHdpbGwgYmUgaW5zZXJ0ZWQgaW50byB0aGUgbWVzc2FnZSBpbnB1dCBvbmNlIGEgdXNlciBzZWxlY3RzIGFuIG9wdGlvbiAoYXBwZW5kZWQgYWZ0ZXIgdGhlIHRyaWdnZXIgY2hhcmFjdGVyKVxuICAgKi9cbiAgYXV0b2NvbXBsZXRlTGFiZWw6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUF1dG9jb21wbGV0ZSA9IHtcbiAgLyoqXG4gICAqIFRoZSBjaGFyYWN0ZXIgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIGF1dG9jb21wbGV0ZSAoZm9yIGV4YW1wbGUgIylcbiAgICpcbiAgICogVGhlIFNESyBzdXBwb3J0cyBAIGFuZCAvIGJ5IGRlZmF1bHQsIHNvIHlvdSBjYW4ndCB1c2UgdGhvc2VcbiAgICovXG4gIHRyaWdnZXJDaGFyYWN0ZXI6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBIVE1MIHRlbXBsYXRlIHRvIGRpc3BsYXkgYW4gaXRlbSBpbiB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICovXG4gIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx7IGl0ZW06IEN1c3RvbUF1dG9jb21wbGV0ZUl0ZW0gfT47XG4gIC8qKlxuICAgKiBTZXQgdG8gYHRydWVgIGlmIHNwYWNlIGNoYXJhY3RlcnMgY2FuIGJlIHBhcnQgb2YgdGhlIGBhdXRvY29tcGxldGVMYWJlbGBcbiAgICovXG4gIGFsbG93U3BhY2U6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgb3B0aW9ucyB0byBjaG9vc2UgZnJvbVxuICAgKlxuICAgKiBJbiBjYXNlIHlvdSB3YW50IHRvIHVzZSBkeW5hbWljL3NlcnZlci1zaWRlIGZpbHRlcmluZywgdXNlIGB1cGRhdGVPcHRpb25zYCBpbnN0ZWFkXG4gICAqL1xuICBvcHRpb25zOiBDdXN0b21BdXRvY29tcGxldGVJdGVtW107XG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byBoYXZlIGR5bmFtaWMvc2VydmVyLXNpZGUgZmlsdGVyaW5nIHByb3ZpZGUgYSAgbWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgYW55IHRpbWUgdGhlIGF1dG9jb21wbGV0ZSBvcHRpb25zIHNob3VsZCBiZSBmaWx0ZXJlZFxuICAgKiBAcGFyYW0gc2VhcmNoVGVybSB0aGUgdGV4dCB0byBmaWx0ZXIgYnkgKHdpdGhvdXQgdGhlIHRyaWdnZXIgY2hhcmFjdGVyKSwgY2FuIGJlIGFuIGVtcHR5IHN0cmluZ1xuICAgKiBAcmV0dXJucyBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgdG8gdGhlIG9wdGlvbnMsIHlvdSBzaG91bGQgdGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nXG4gICAqL1xuICB1cGRhdGVPcHRpb25zPzogKHNlYXJjaFRlcm06IHN0cmluZykgPT4gUHJvbWlzZTxDdXN0b21BdXRvY29tcGxldGVJdGVtW10+O1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVRleHRDb250ZXh0ID0ge1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkIHwgTWVzc2FnZVJlc3BvbnNlQmFzZTtcbiAgaXNRdW90ZWQ6IGJvb2xlYW47XG4gIHNob3VsZFRyYW5zbGF0ZTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENoYW5uZWxTZXJ2aWNlT3B0aW9uczxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzLFxuPiA9IENoYW5uZWxNYW5hZ2VyT3B0aW9ucyAmIHtcbiAgc2hvdWxkU2V0QWN0aXZlQ2hhbm5lbD86IGJvb2xlYW47XG4gIGV2ZW50SGFuZGxlck92ZXJyaWRlcz86IENoYW5uZWxNYW5hZ2VyRXZlbnRIYW5kbGVyT3ZlcnJpZGVzPFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhbm5lbFF1ZXJ5Q29uZmlnPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4+ID0ge1xuICBmaWx0ZXJzOiBDaGFubmVsRmlsdGVyczxUPjtcbiAgc29ydDogQ2hhbm5lbFNvcnQ8VD47XG4gIG9wdGlvbnM6IENoYW5uZWxPcHRpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhbm5lbFF1ZXJ5Q29uZmlnSW5wdXQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbj4gPSB7XG4gIGZpbHRlcnM6IENoYW5uZWxGaWx0ZXJzPFQ+O1xuICBzb3J0PzogQ2hhbm5lbFNvcnQ8VD47XG4gIG9wdGlvbnM/OiBDaGFubmVsT3B0aW9ucztcbn07XG4iXX0=
@@ -29,12 +29,12 @@ export class UserListComponent {
29
29
  trackByUserId(_, item) {
30
30
  return item.id;
31
31
  }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: UserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0", type: UserListComponent, selector: "stream-user-list", inputs: { users: "users", isLoading: "isLoading", hasMore: "hasMore" }, outputs: { loadMore: "loadMore" }, ngImport: i0, template: "<stream-paginated-list\n [items]=\"users\"\n [hasMore]=\"hasMore\"\n (loadMore)=\"loadMore.emit()\"\n [isLoading]=\"isLoading\"\n [trackBy]=\"trackByUserId\"\n>\n <ng-template let-user=\"item\">\n <div class=\"str-chat__user-list-item\">\n <stream-avatar-placeholder\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n type=\"user\"\n location=\"reaction\"\n [imageUrl]=\"user.image\"\n [name]=\"user.name\"\n [user]=\"user\"\n />\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n user.name\n }}</span>\n </div>\n </ng-template>\n</stream-paginated-list>\n", dependencies: [{ kind: "component", type: i1.AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: ["name", "imageUrl", "location", "channel", "user", "type", "initialsType", "showOnlineIndicator"] }, { kind: "component", type: i2.PaginatedListComponent, selector: "stream-paginated-list", inputs: ["items", "isLoading", "hasMore", "trackBy"], outputs: ["loadMore"] }] }); }
32
34
  }
33
- UserListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
- UserListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UserListComponent, selector: "stream-user-list", inputs: { users: "users", isLoading: "isLoading", hasMore: "hasMore" }, outputs: { loadMore: "loadMore" }, ngImport: i0, template: "<stream-paginated-list\n [items]=\"users\"\n [hasMore]=\"hasMore\"\n (loadMore)=\"loadMore.emit()\"\n [isLoading]=\"isLoading\"\n [trackBy]=\"trackByUserId\"\n>\n <ng-template let-user=\"item\">\n <div class=\"str-chat__user-list-item\">\n <stream-avatar-placeholder\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n type=\"user\"\n location=\"reaction\"\n [imageUrl]=\"user.image\"\n [name]=\"user.name\"\n [user]=\"user\"\n ></stream-avatar-placeholder>\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n user.name\n }}</span>\n </div>\n </ng-template>\n</stream-paginated-list>\n", dependencies: [{ kind: "component", type: i1.AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: ["name", "imageUrl", "location", "channel", "user", "type", "initialsType", "showOnlineIndicator"] }, { kind: "component", type: i2.PaginatedListComponent, selector: "stream-paginated-list", inputs: ["items", "isLoading", "hasMore", "trackBy"], outputs: ["loadMore"] }] });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UserListComponent, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: UserListComponent, decorators: [{
36
36
  type: Component,
37
- args: [{ selector: 'stream-user-list', template: "<stream-paginated-list\n [items]=\"users\"\n [hasMore]=\"hasMore\"\n (loadMore)=\"loadMore.emit()\"\n [isLoading]=\"isLoading\"\n [trackBy]=\"trackByUserId\"\n>\n <ng-template let-user=\"item\">\n <div class=\"str-chat__user-list-item\">\n <stream-avatar-placeholder\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n type=\"user\"\n location=\"reaction\"\n [imageUrl]=\"user.image\"\n [name]=\"user.name\"\n [user]=\"user\"\n ></stream-avatar-placeholder>\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n user.name\n }}</span>\n </div>\n </ng-template>\n</stream-paginated-list>\n" }]
37
+ args: [{ selector: 'stream-user-list', template: "<stream-paginated-list\n [items]=\"users\"\n [hasMore]=\"hasMore\"\n (loadMore)=\"loadMore.emit()\"\n [isLoading]=\"isLoading\"\n [trackBy]=\"trackByUserId\"\n>\n <ng-template let-user=\"item\">\n <div class=\"str-chat__user-list-item\">\n <stream-avatar-placeholder\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n type=\"user\"\n location=\"reaction\"\n [imageUrl]=\"user.image\"\n [name]=\"user.name\"\n [user]=\"user\"\n />\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n user.name\n }}</span>\n </div>\n </ng-template>\n</stream-paginated-list>\n" }]
38
38
  }], propDecorators: { users: [{
39
39
  type: Input
40
40
  }], isLoading: [{
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
44
44
  }], loadMore: [{
45
45
  type: Output
46
46
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJdkU7O0dBRUc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBTUU7O1dBRUc7UUFDTSxVQUFLLEdBQThDLEVBQUUsQ0FBQztRQUMvRDs7V0FFRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0I7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOzs7O1dBSUc7UUFDZ0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLeEQ7SUFIQyxhQUFhLENBQUMsQ0FBUyxFQUFFLElBQWtCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDOzs4R0F0QlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsbUtDWjlCLDZ0QkF3QkE7MkZEWmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjs4QkFRbkIsS0FBSztzQkFBYixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQU1hLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlclJlc3BvbnNlIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYFVzZXJMaXN0Q29tcG9uZW50YCBjYW4gZGlzcGxheSBhIGxpc3Qgb2YgU3RyZWFtIHVzZXJzIHdpdGggcGFnaW5hdGlvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tdXNlci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJMaXN0Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSB1c2VycyB0byBkaXNwbGF5XG4gICAqL1xuICBASW5wdXQoKSB1c2VyczogVXNlclJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W10gPSBbXTtcbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgdGhlIGxvYWRpbmcgaW5kaWNhdG9yIHdpbGwgYmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgLyoqXG4gICAqIElmIGBmYWxzZWAgdGhlIGNvbXBvbmVudCB3b24ndCBhc2sgZm9yIG1vcmUgZGF0YSB2dWEgdGhlIGBsb2FkTW9yZWAgb3V0cHV0XG4gICAqL1xuICBASW5wdXQoKSBoYXNNb3JlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHdpbGwgc2lnbmFsIHZpYSB0aGlzIG91dHB1dCB3aGVuIG1vcmUgaXRlbXMgc2hvdWxkIGJlIGZldGNoZWRcbiAgICpcbiAgICogVGhlIG5ldyBpdGVtcyBzaG91bGQgYmUgYXBwZW5kZWQgdG8gdGhlIGBpdGVtc2AgYXJyYXlcbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkTW9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICB0cmFja0J5VXNlcklkKF86IG51bWJlciwgaXRlbTogVXNlclJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cbn1cbiIsIjxzdHJlYW0tcGFnaW5hdGVkLWxpc3RcbiAgW2l0ZW1zXT1cInVzZXJzXCJcbiAgW2hhc01vcmVdPVwiaGFzTW9yZVwiXG4gIChsb2FkTW9yZSk9XCJsb2FkTW9yZS5lbWl0KClcIlxuICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gIFt0cmFja0J5XT1cInRyYWNrQnlVc2VySWRcIlxuPlxuICA8bmctdGVtcGxhdGUgbGV0LXVzZXI9XCJpdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X191c2VyLWxpc3QtaXRlbVwiPlxuICAgICAgPHN0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXJcbiAgICAgICAgZGF0YS10ZXN0Y2xhc3M9XCJhdmF0YXJcIlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19hdmF0YXIgc3RyLWNoYXRfX2F2YXRhci0tY2lyY2xlXCJcbiAgICAgICAgdHlwZT1cInVzZXJcIlxuICAgICAgICBsb2NhdGlvbj1cInJlYWN0aW9uXCJcbiAgICAgICAgW2ltYWdlVXJsXT1cInVzZXIuaW1hZ2VcIlxuICAgICAgICBbbmFtZV09XCJ1c2VyLm5hbWVcIlxuICAgICAgICBbdXNlcl09XCJ1c2VyXCJcbiAgICAgID48L3N0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXI+XG4gICAgICA8c3BhbiBkYXRhLXRlc3RjbGFzcz1cInVzZXJuYW1lXCIgY2xhc3M9XCJzdHItY2hhdF9fdXNlci1pdGVtLS1uYW1lXCI+e3tcbiAgICAgICAgdXNlci5uYW1lXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvc3RyZWFtLXBhZ2luYXRlZC1saXN0PlxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJdkU7O0dBRUc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBTUU7O1dBRUc7UUFDTSxVQUFLLEdBQThDLEVBQUUsQ0FBQztRQUMvRDs7V0FFRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0I7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOzs7O1dBSUc7UUFDZ0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLeEQ7SUFIQyxhQUFhLENBQUMsQ0FBUyxFQUFFLElBQWtCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDOzhHQXRCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixtS0NaOUIsa3NCQXdCQTs7MkZEWmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjs4QkFRbkIsS0FBSztzQkFBYixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQU1hLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlclJlc3BvbnNlIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYFVzZXJMaXN0Q29tcG9uZW50YCBjYW4gZGlzcGxheSBhIGxpc3Qgb2YgU3RyZWFtIHVzZXJzIHdpdGggcGFnaW5hdGlvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tdXNlci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJMaXN0Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSB1c2VycyB0byBkaXNwbGF5XG4gICAqL1xuICBASW5wdXQoKSB1c2VyczogVXNlclJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W10gPSBbXTtcbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgdGhlIGxvYWRpbmcgaW5kaWNhdG9yIHdpbGwgYmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgLyoqXG4gICAqIElmIGBmYWxzZWAgdGhlIGNvbXBvbmVudCB3b24ndCBhc2sgZm9yIG1vcmUgZGF0YSB2dWEgdGhlIGBsb2FkTW9yZWAgb3V0cHV0XG4gICAqL1xuICBASW5wdXQoKSBoYXNNb3JlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHdpbGwgc2lnbmFsIHZpYSB0aGlzIG91dHB1dCB3aGVuIG1vcmUgaXRlbXMgc2hvdWxkIGJlIGZldGNoZWRcbiAgICpcbiAgICogVGhlIG5ldyBpdGVtcyBzaG91bGQgYmUgYXBwZW5kZWQgdG8gdGhlIGBpdGVtc2AgYXJyYXlcbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkTW9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICB0cmFja0J5VXNlcklkKF86IG51bWJlciwgaXRlbTogVXNlclJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cbn1cbiIsIjxzdHJlYW0tcGFnaW5hdGVkLWxpc3RcbiAgW2l0ZW1zXT1cInVzZXJzXCJcbiAgW2hhc01vcmVdPVwiaGFzTW9yZVwiXG4gIChsb2FkTW9yZSk9XCJsb2FkTW9yZS5lbWl0KClcIlxuICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gIFt0cmFja0J5XT1cInRyYWNrQnlVc2VySWRcIlxuPlxuICA8bmctdGVtcGxhdGUgbGV0LXVzZXI9XCJpdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X191c2VyLWxpc3QtaXRlbVwiPlxuICAgICAgPHN0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXJcbiAgICAgICAgZGF0YS10ZXN0Y2xhc3M9XCJhdmF0YXJcIlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19hdmF0YXIgc3RyLWNoYXRfX2F2YXRhci0tY2lyY2xlXCJcbiAgICAgICAgdHlwZT1cInVzZXJcIlxuICAgICAgICBsb2NhdGlvbj1cInJlYWN0aW9uXCJcbiAgICAgICAgW2ltYWdlVXJsXT1cInVzZXIuaW1hZ2VcIlxuICAgICAgICBbbmFtZV09XCJ1c2VyLm5hbWVcIlxuICAgICAgICBbdXNlcl09XCJ1c2VyXCJcbiAgICAgIC8+XG4gICAgICA8c3BhbiBkYXRhLXRlc3RjbGFzcz1cInVzZXJuYW1lXCIgY2xhc3M9XCJzdHItY2hhdF9fdXNlci1pdGVtLS1uYW1lXCI+e3tcbiAgICAgICAgdXNlci5uYW1lXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvc3RyZWFtLXBhZ2luYXRlZC1saXN0PlxuIl19
@@ -0,0 +1,273 @@
1
+ import { BehaviorSubject, Subject, combineLatest, distinctUntilChanged, filter, merge, of, pairwise, switchMap, take, } from 'rxjs';
2
+ /**
3
+ * The `VirtualizedListService` removes items from a list that are not currently displayed. This is a high-level overview of how it works:
4
+ * - Create a new instance for each list that needs virtualization
5
+ * - Input: Provide a reactive stream that emits all items in the list
6
+ * - Input: Provide a reactive stream that emit the current scroll position (top, middle or bottom)
7
+ * - Input: maximum number of items that are allowed in the list (in practice the service can make the virtualized list half this number, you should take this into account when choosing the value)
8
+ * - Output: The service will emit the current list of displayed items via the virtualized items reactive stream
9
+ * - For simplicity, the service won't track the height of the items, nor it needs an exact scroll location -> this is how removing items work:
10
+ * - If scroll location is bottom/top items around the current bottom/top item will be emitted in the virtualized items stream
11
+ * - If scroll location is middle, the service won't remove items, if new items are received, those will be appended to the virtualized list (this means that in theory the list can grow very big if a lot of new items are received while the user is scrolled somewhere, this is a trade-off for the simplicity of no height tracking)
12
+ * - Since there is no height tracking, you should make sure to provide a maximum number that is big enough to fill the biggest expected screen size twice
13
+ * - If the user scrolls to the bottom/top and there are no more local items to show, the service will trigger a query to load more items
14
+ * - Input: you should provide the page size to use, in order for the service to determine if loading is necessary
15
+ *
16
+ * The `VirtualizedMessageListService` provides an implementation for the message list component.
17
+ */
18
+ export class VirtualizedListService {
19
+ constructor(allItems$, scrollPosition$, jumpToItem$, pageSize = 25, maxItemCount = pageSize * 4) {
20
+ this.allItems$ = allItems$;
21
+ this.scrollPosition$ = scrollPosition$;
22
+ this.jumpToItem$ = jumpToItem$;
23
+ this.pageSize = pageSize;
24
+ this.maxItemCount = maxItemCount;
25
+ this.queryStateSubject = new BehaviorSubject({
26
+ state: 'success',
27
+ });
28
+ this.bufferOnTop = 0;
29
+ this.bufferOnBottom = 0;
30
+ this.loadFromBuffer$ = new Subject();
31
+ this.virtualizedItemsSubject = new BehaviorSubject([]);
32
+ this.subscriptions = [];
33
+ this.virtualizedItems$ = this.virtualizedItemsSubject.asObservable();
34
+ this.queryState$ = this.queryStateSubject.asObservable();
35
+ this.subscriptions.push(this.virtualizedItems$.subscribe((virtaluzedItems) => {
36
+ this.allItems$.pipe(take(1)).subscribe((allItems) => {
37
+ if (virtaluzedItems.length === allItems.length) {
38
+ this.bufferOnTop = 0;
39
+ this.bufferOnBottom = 0;
40
+ }
41
+ else if (virtaluzedItems.length === 0) {
42
+ this.bufferOnTop = allItems.length;
43
+ this.bufferOnBottom = 0;
44
+ }
45
+ else {
46
+ this.bufferOnTop = allItems.indexOf(virtaluzedItems[0]);
47
+ this.bufferOnBottom =
48
+ allItems.length -
49
+ allItems.indexOf(virtaluzedItems[virtaluzedItems.length - 1]) -
50
+ 1;
51
+ }
52
+ });
53
+ }));
54
+ this.subscriptions.push(merge(this.allItems$, this.loadFromBuffer$)
55
+ .pipe(switchMap(() => {
56
+ return combineLatest([
57
+ this.allItems$.pipe(take(1)),
58
+ this.scrollPosition$.pipe(take(1)),
59
+ ]);
60
+ }))
61
+ .subscribe(([items, scrollPosition]) => {
62
+ if (scrollPosition === 'middle') {
63
+ return;
64
+ }
65
+ const currentItems = this.virtualizedItemsSubject.getValue();
66
+ if (items.length <= this.maxItemCount) {
67
+ this.virtualizedItemsSubject.next(items);
68
+ }
69
+ else {
70
+ let startIndex = 0;
71
+ let endIndex = undefined;
72
+ const numberOfItemsToRemove = items.length - Math.round(this.maxItemCount / 2);
73
+ const numberOfItemsAfterRemove = items.length - numberOfItemsToRemove;
74
+ switch (scrollPosition) {
75
+ case 'top':
76
+ if (currentItems.length > 0) {
77
+ const middleIndex = items.findIndex((i) => this.isEqual(i, currentItems[0]));
78
+ if (middleIndex !== -1) {
79
+ startIndex = Math.max(0, middleIndex - Math.ceil(numberOfItemsAfterRemove / 2));
80
+ endIndex = startIndex + numberOfItemsAfterRemove;
81
+ }
82
+ }
83
+ else {
84
+ endIndex = numberOfItemsAfterRemove;
85
+ }
86
+ break;
87
+ case 'bottom':
88
+ if (currentItems.length > 0) {
89
+ const middleIndex = items.findIndex((i) => this.isEqual(i, currentItems[currentItems.length - 1]));
90
+ if (middleIndex !== -1) {
91
+ endIndex = Math.min(items.length, middleIndex +
92
+ Math.floor(numberOfItemsAfterRemove / 2) +
93
+ 1);
94
+ startIndex = endIndex - numberOfItemsAfterRemove;
95
+ }
96
+ }
97
+ else {
98
+ startIndex = items.length - numberOfItemsAfterRemove;
99
+ }
100
+ break;
101
+ }
102
+ const virtualizedItems = items.slice(startIndex, endIndex);
103
+ this.virtualizedItemsSubject.next(virtualizedItems);
104
+ }
105
+ }));
106
+ this.subscriptions.push(this.scrollPosition$
107
+ .pipe(distinctUntilChanged())
108
+ .subscribe((position) => {
109
+ if (this.queryStateSubject.getValue().state === `loading-${position}`) {
110
+ return;
111
+ }
112
+ if (position === 'top') {
113
+ if (this.bufferOnTop < this.pageSize) {
114
+ void this.loadMore(position);
115
+ }
116
+ else {
117
+ this.loadMoreFromBuffer('top');
118
+ }
119
+ }
120
+ else if (position === 'bottom') {
121
+ if (this.bufferOnBottom < this.pageSize) {
122
+ void this.loadMore(position);
123
+ }
124
+ else {
125
+ this.loadMoreFromBuffer('bottom');
126
+ }
127
+ }
128
+ }));
129
+ this.subscriptions.push(this.allItems$
130
+ .pipe(pairwise(), filter(() => {
131
+ let scrollPosition;
132
+ this.scrollPosition$
133
+ .pipe(take(1))
134
+ .subscribe((s) => (scrollPosition = s));
135
+ return scrollPosition === 'middle';
136
+ }))
137
+ .subscribe(([prevItems, currentItems]) => {
138
+ if (currentItems.length < this.maxItemCount ||
139
+ this.virtualizedItems.length === 0) {
140
+ this.virtualizedItemsSubject.next(currentItems);
141
+ }
142
+ else {
143
+ const currentFirstItem = this.virtualizedItems[0];
144
+ const currentLastItem = this.virtualizedItems[this.virtualizedItems.length - 1];
145
+ const prevStartIndex = prevItems.findIndex((i) => this.isEqual(i, currentFirstItem));
146
+ const prevEndIndex = prevItems.findIndex((i) => this.isEqual(i, currentLastItem));
147
+ const isStartRemainedSame = currentItems[prevStartIndex]
148
+ ? this.isEqual(currentItems[prevStartIndex], currentFirstItem)
149
+ : false;
150
+ const isEndRemainedSame = currentItems[prevEndIndex]
151
+ ? this.isEqual(currentItems[prevEndIndex], currentLastItem)
152
+ : false;
153
+ const hasNewItemsBottom = prevEndIndex === prevItems.length - 1 && isEndRemainedSame
154
+ ? prevItems.length !== currentItems.length
155
+ : false;
156
+ if (isStartRemainedSame && isEndRemainedSame) {
157
+ const endIndex = hasNewItemsBottom ? undefined : prevEndIndex + 1;
158
+ this.virtualizedItemsSubject.next(currentItems.slice(prevStartIndex, endIndex));
159
+ }
160
+ let currentStartIndex = isStartRemainedSame ? prevStartIndex : -1;
161
+ let currentEndIndex = isEndRemainedSame ? prevEndIndex : -1;
162
+ if (!isStartRemainedSame) {
163
+ currentStartIndex = currentItems.findIndex((i) => this.isEqual(i, currentFirstItem));
164
+ }
165
+ if (!isEndRemainedSame) {
166
+ currentEndIndex = currentItems.findIndex((i) => this.isEqual(i, currentLastItem));
167
+ }
168
+ const hasNewItemsTop = prevStartIndex === 0 && !isStartRemainedSame
169
+ ? currentStartIndex !== 0
170
+ : false;
171
+ if (currentStartIndex !== -1 && currentEndIndex !== -1) {
172
+ const startIndex = hasNewItemsTop ? 0 : currentStartIndex;
173
+ this.virtualizedItemsSubject.next(currentItems.slice(startIndex, currentEndIndex + 1));
174
+ }
175
+ else {
176
+ if (currentStartIndex === -1 && currentEndIndex !== -1) {
177
+ currentStartIndex = Math.max(0, currentEndIndex - (prevEndIndex - prevStartIndex));
178
+ }
179
+ if (currentEndIndex === -1 && currentStartIndex !== -1) {
180
+ currentEndIndex = Math.min(currentItems.length - 1, currentStartIndex + (prevEndIndex - prevStartIndex));
181
+ }
182
+ this.virtualizedItemsSubject.next(currentItems.slice(currentStartIndex, currentEndIndex + 1));
183
+ }
184
+ }
185
+ }));
186
+ if (this.jumpToItem$) {
187
+ this.subscriptions.push(this.jumpToItem$
188
+ .pipe(switchMap((jumpToItem) => combineLatest([this.allItems$.pipe(take(1)), of(jumpToItem)])))
189
+ .subscribe(([allItems, jumpToItem]) => {
190
+ if (jumpToItem.item) {
191
+ if (allItems.length < this.maxItemCount) {
192
+ this.virtualizedItemsSubject.next(allItems);
193
+ }
194
+ else {
195
+ const itemIndex = allItems.findIndex((i) =>
196
+ // @ts-expect-error TODO: do we know a better typing here?
197
+ this.isEqual(i, jumpToItem.item));
198
+ if (itemIndex === -1) {
199
+ return;
200
+ }
201
+ else {
202
+ const position = jumpToItem.position || 'middle';
203
+ const numberOfItemsToRemove = allItems.length - Math.round(this.maxItemCount / 2);
204
+ const numberOfItemsAfterRemove = allItems.length - numberOfItemsToRemove;
205
+ let startIndex = -1;
206
+ let endIndex = -1;
207
+ switch (position) {
208
+ case 'top':
209
+ startIndex = itemIndex;
210
+ endIndex = Math.min(allItems.length, startIndex + numberOfItemsAfterRemove);
211
+ break;
212
+ case 'bottom':
213
+ endIndex = itemIndex + 1;
214
+ startIndex = Math.max(0, endIndex - numberOfItemsAfterRemove);
215
+ break;
216
+ case 'middle': {
217
+ const itemsOnTop = itemIndex;
218
+ const itemsOnBottom = allItems.length - itemIndex;
219
+ if (itemsOnTop < Math.ceil(numberOfItemsAfterRemove / 2)) {
220
+ startIndex = 0;
221
+ }
222
+ if (itemsOnBottom <
223
+ Math.floor(numberOfItemsAfterRemove / 2) + 1) {
224
+ endIndex = allItems.length;
225
+ }
226
+ if (startIndex === -1) {
227
+ if (endIndex !== -1) {
228
+ startIndex = endIndex - numberOfItemsAfterRemove;
229
+ }
230
+ else {
231
+ startIndex =
232
+ itemIndex - Math.ceil(numberOfItemsAfterRemove / 2);
233
+ }
234
+ }
235
+ if (endIndex === -1) {
236
+ endIndex = startIndex + numberOfItemsAfterRemove;
237
+ }
238
+ }
239
+ }
240
+ this.virtualizedItemsSubject.next(allItems.slice(startIndex, endIndex));
241
+ }
242
+ }
243
+ }
244
+ }));
245
+ }
246
+ }
247
+ /**
248
+ * The current value of virtualized items
249
+ */
250
+ get virtualizedItems() {
251
+ return this.virtualizedItemsSubject.getValue();
252
+ }
253
+ /**
254
+ * Remove all subscriptions, call this once you're done using an instance of this service
255
+ */
256
+ dispose() {
257
+ this.subscriptions.forEach((s) => s.unsubscribe());
258
+ }
259
+ loadMoreFromBuffer(_) {
260
+ this.loadFromBuffer$.next();
261
+ }
262
+ async loadMore(direction) {
263
+ this.queryStateSubject.next({ state: `loading-${direction}` });
264
+ try {
265
+ await this.query(direction);
266
+ this.queryStateSubject.next({ state: 'success' });
267
+ }
268
+ catch (e) {
269
+ this.queryStateSubject.next({ state: 'error', error: e });
270
+ }
271
+ }
272
+ }
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbGl6ZWQtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL3ZpcnR1YWxpemVkLWxpc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLE9BQU8sRUFFUCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixLQUFLLEVBQ0wsRUFBRSxFQUNGLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBUWQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxPQUFnQixzQkFBc0I7SUFrQjFDLFlBQ1UsU0FBMEIsRUFDMUIsZUFBMEQsRUFDbEQsV0FHZCxFQUNjLFdBQVcsRUFBRSxFQUNiLGVBQWUsUUFBUSxHQUFHLENBQUM7UUFQbkMsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsb0JBQWUsR0FBZixlQUFlLENBQTJDO1FBQ2xELGdCQUFXLEdBQVgsV0FBVyxDQUd6QjtRQUNjLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDYixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQWpCbkMsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQTRCO1lBQzNFLEtBQUssRUFBRSxTQUFTO1NBQ2pCLENBQUMsQ0FBQztRQUNPLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN4Qyw0QkFBdUIsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN2RCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFZekMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsV0FBVyxH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QUFDLHVCQUF1QixDQUFDLElBQUksQ0FDL0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQ3JDLENBQUM7eUJBQ0g7cUJBQ0Y7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FDTCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxDQUFnQztRQUMzRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQXdDO1FBQzdELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDbkQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztDQU9GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1lcmdlLFxuICBvZixcbiAgcGFpcndpc2UsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBWaXJ0dWFsaXplZExpc3RRdWVyeURpcmVjdGlvbixcbiAgVmlydHVhbGl6ZWRMaXN0UXVlcnlTdGF0ZSxcbiAgVmlydHVhbGl6ZWRMaXN0U2Nyb2xsUG9zaXRpb24sXG4gIFZpcnR1YWxpemVkTGlzdFZlcnRpY2FsSXRlbVBvc2l0aW9uLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYFZpcnR1YWxpemVkTGlzdFNlcnZpY2VgIHJlbW92ZXMgaXRlbXMgZnJvbSBhIGxpc3QgdGhhdCBhcmUgbm90IGN1cnJlbnRseSBkaXNwbGF5ZWQuIFRoaXMgaXMgYSBoaWdoLWxldmVsIG92ZXJ2aWV3IG9mIGhvdyBpdCB3b3JrczpcbiAqIC0gQ3JlYXRlIGEgbmV3IGluc3RhbmNlIGZvciBlYWNoIGxpc3QgdGhhdCBuZWVkcyB2aXJ0dWFsaXphdGlvblxuICogLSBJbnB1dDogUHJvdmlkZSBhIHJlYWN0aXZlIHN0cmVhbSB0aGF0IGVtaXRzIGFsbCBpdGVtcyBpbiB0aGUgbGlzdFxuICogLSBJbnB1dDogUHJvdmlkZSBhIHJlYWN0aXZlIHN0cmVhbSB0aGF0IGVtaXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uICh0b3AsIG1pZGRsZSBvciBib3R0b20pXG4gKiAtIElucHV0OiBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0aGF0IGFyZSBhbGxvd2VkIGluIHRoZSBsaXN0IChpbiBwcmFjdGljZSB0aGUgc2VydmljZSBjYW4gbWFrZSB0aGUgdmlydHVhbGl6ZWQgbGlzdCBoYWxmIHRoaXMgbnVtYmVyLCB5b3Ugc2hvdWxkIHRha2UgdGhpcyBpbnRvIGFjY291bnQgd2hlbiBjaG9vc2luZyB0aGUgdmFsdWUpXG4gKiAtIE91dHB1dDogVGhlIHNlcnZpY2Ugd2lsbCBlbWl0IHRoZSBjdXJyZW50IGxpc3Qgb2YgZGlzcGxheWVkIGl0ZW1zIHZpYSB0aGUgdmlydHVhbGl6ZWQgaXRlbXMgcmVhY3RpdmUgc3RyZWFtXG4gKiAtIEZvciBzaW1wbGljaXR5LCB0aGUgc2VydmljZSB3b24ndCB0cmFjayB0aGUgaGVpZ2h0IG9mIHRoZSBpdGVtcywgbm9yIGl0IG5lZWRzIGFuIGV4YWN0IHNjcm9sbCBsb2NhdGlvbiAtPiB0aGlzIGlzIGhvdyByZW1vdmluZyBpdGVtcyB3b3JrOlxuICogICAtIElmIHNjcm9sbCBsb2NhdGlvbiBpcyBib3R0b20vdG9wIGl0ZW1zIGFyb3VuZCB0aGUgY3VycmVudCBib3R0b20vdG9wIGl0ZW0gd2lsbCBiZSBlbWl0dGVkIGluIHRoZSB2aXJ0dWFsaXplZCBpdGVtcyBzdHJlYW1cbiAqICAgLSBJZiBzY3JvbGwgbG9jYXRpb24gaXMgbWlkZGxlLCB0aGUgc2VydmljZSB3b24ndCByZW1vdmUgaXRlbXMsIGlmIG5ldyBpdGVtcyBhcmUgcmVjZWl2ZWQsIHRob3NlIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIHZpcnR1YWxpemVkIGxpc3QgICh0aGlzIG1lYW5zIHRoYXQgaW4gdGhlb3J5IHRoZSBsaXN0IGNhbiBncm93IHZlcnkgYmlnIGlmIGEgbG90IG9mIG5ldyBpdGVtcyBhcmUgcmVjZWl2ZWQgd2hpbGUgdGhlIHVzZXIgaXMgc2Nyb2xsZWQgc29tZXdoZXJlLCB0aGlzIGlzIGEgdHJhZGUtb2ZmIGZvciB0aGUgc2ltcGxpY2l0eSBvZiBubyBoZWlnaHQgdHJhY2tpbmcpXG4gKiAgIC0gU2luY2UgdGhlcmUgaXMgbm8gaGVpZ2h0IHRyYWNraW5nLCB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byBwcm92aWRlIGEgbWF4aW11bSBudW1iZXIgdGhhdCBpcyBiaWcgZW5vdWdoIHRvIGZpbGwgdGhlIGJpZ2dlc3QgZXhwZWN0ZWQgc2NyZWVuIHNpemUgdHdpY2VcbiAqIC0gSWYgdGhlIHVzZXIgc2Nyb2xscyB0byB0aGUgYm90dG9tL3RvcCBhbmQgdGhlcmUgYXJlIG5vIG1vcmUgbG9jYWwgaXRlbXMgdG8gc2hvdywgdGhlIHNlcnZpY2Ugd2lsbCB0cmlnZ2VyIGEgcXVlcnkgdG8gbG9hZCBtb3JlIGl0ZW1zXG4gKiAgIC0gSW5wdXQ6IHlvdSBzaG91bGQgcHJvdmlkZSB0aGUgcGFnZSBzaXplIHRvIHVzZSwgaW4gb3JkZXIgZm9yIHRoZSBzZXJ2aWNlIHRvIGRldGVybWluZSBpZiBsb2FkaW5nIGlzIG5lY2Vzc2FyeVxuICpcbiAqIFRoZSBgVmlydHVhbGl6ZWRNZXNzYWdlTGlzdFNlcnZpY2VgIHByb3ZpZGVzIGFuIGltcGxlbWVudGF0aW9uIGZvciB0aGUgbWVzc2FnZSBsaXN0IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZpcnR1YWxpemVkTGlzdFNlcnZpY2U8VD4ge1xuICAvKipcbiAgICogVGhlIGl0ZW1zIHRoYXQgc2hvdWxkIGJlIGN1cnJlbnRseSBkaXNwbGF5ZWQsIGEgc3Vic2V0IG9mIGFsbCBpdGVtc1xuICAgKi9cbiAgdmlydHVhbGl6ZWRJdGVtcyQ6IE9ic2VydmFibGU8VFtdPjtcbiAgLyoqXG4gICAqIFRoZSByZXN1bHQgb2YgdGhlIGxhc3QgcXVlcnkgdXNlZCB0byBsb2FkIG1vcmUgaXRlbXNcbiAgICovXG4gIHF1ZXJ5U3RhdGUkOiBPYnNlcnZhYmxlPFZpcnR1YWxpemVkTGlzdFF1ZXJ5U3RhdGU+O1xuICBwcm90ZWN0ZWQgcXVlcnlTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZpcnR1YWxpemVkTGlzdFF1ZXJ5U3RhdGU+KHtcbiAgICBzdGF0ZTogJ3N1Y2Nlc3MnLFxuICB9KTtcbiAgcHJvdGVjdGVkIGJ1ZmZlck9uVG9wID0gMDtcbiAgcHJvdGVjdGVkIGJ1ZmZlck9uQm90dG9tID0gMDtcbiAgcHJvdGVjdGVkIGxvYWRGcm9tQnVmZmVyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgdmlydHVhbGl6ZWRJdGVtc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbGxJdGVtcyQ6IE9ic2VydmFibGU8VFtdPixcbiAgICBwcml2YXRlIHNjcm9sbFBvc2l0aW9uJDogT2JzZXJ2YWJsZTxWaXJ0dWFsaXplZExpc3RTY3JvbGxQb3NpdGlvbj4sXG4gICAgcHVibGljIHJlYWRvbmx5IGp1bXBUb0l0ZW0kPzogT2JzZXJ2YWJsZTx7XG4gICAgICBpdGVtOiBQYXJ0aWFsPFQ+IHwgdW5kZWZpbmVkO1xuICAgICAgcG9zaXRpb24/OiBWaXJ0dWFsaXplZExpc3RWZXJ0aWNhbEl0ZW1Qb3NpdGlvbjtcbiAgICB9PixcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFnZVNpemUgPSAyNSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWF4SXRlbUNvdW50ID0gcGFnZVNpemUgKiA0LFxuICApIHtcbiAgICB0aGlzLnZpcnR1YWxpemVkSXRlbXMkID0gdGhpcy52aXJ0dWFsaXplZEl0ZW1zU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnF1ZXJ5U3RhdGUkID0gdGhpcy5xdWVyeVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudmlydHVhbGl6ZWRJdGVtcyQuc3Vic2NyaWJlKCh2aXJ0YWx1emVkSXRlbXMpID0+IHtcbiAgICAgICAgdGhpcy5hbGxJdGVtcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGFsbEl0ZW1zKSA9PiB7XG4gICAgICAgICAgaWYgKHZpcnRhbHV6ZWRJdGVtcy5sZW5ndGggPT09IGFsbEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJPblRvcCA9IDA7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlck9uQm90dG9tID0gMDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHZpcnRhbHV6ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyT25Ub3AgPSBhbGxJdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlck9uQm90dG9tID0gMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJPblRvcCA9IGFsbEl0ZW1zLmluZGV4T2YodmlydGFsdXplZEl0ZW1zWzBdKTtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyT25Cb3R0b20gPVxuICAgICAgICAgICAgICBhbGxJdGVtcy5sZW5ndGggLVxuICAgICAgICAgICAgICBhbGxJdGVtcy5pbmRleE9mKHZpcnRhbHV6ZWRJdGVtc1t2aXJ0YWx1emVkSXRlbXMubGVuZ3RoIC0gMV0pIC1cbiAgICAgICAgICAgICAgMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIG1lcmdlKHRoaXMuYWxsSXRlbXMkLCB0aGlzLmxvYWRGcm9tQnVmZmVyJClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgdGhpcy5hbGxJdGVtcyQucGlwZSh0YWtlKDEpKSxcbiAgICAgICAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbiQucGlwZSh0YWtlKDEpKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKFtpdGVtcywgc2Nyb2xsUG9zaXRpb25dKSA9PiB7XG4gICAgICAgICAgaWYgKHNjcm9sbFBvc2l0aW9uID09PSAnbWlkZGxlJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSB0aGlzLnZpcnR1YWxpemVkSXRlbXNTdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA8PSB0aGlzLm1heEl0ZW1Db3VudCkge1xuICAgICAgICAgICAgdGhpcy52aXJ0dWFsaXplZEl0ZW1zU3ViamVjdC5uZXh0KGl0ZW1zKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSAwO1xuICAgICAgICAgICAgbGV0IGVuZEluZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyT2ZJdGVtc1RvUmVtb3ZlID1cbiAgICAgICAgICAgICAgaXRlbXMubGVuZ3RoIC0gTWF0aC5yb3VuZCh0aGlzLm1heEl0ZW1Db3VudCAvIDIpO1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyT2ZJdGVtc0FmdGVyUmVtb3ZlID1cbiAgICAgICAgICAgICAgaXRlbXMubGVuZ3RoIC0gbnVtYmVyT2ZJdGVtc1RvUmVtb3ZlO1xuICAgICAgICAgICAgc3dpdGNoIChzY3JvbGxQb3NpdGlvbikge1xuICAgICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbWlkZGxlSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoKGkpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFcXVhbChpLCBjdXJyZW50SXRlbXNbMF0pLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlmIChtaWRkbGVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCA9IE1hdGgubWF4KFxuICAgICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgICAgbWlkZGxlSW5kZXggLSBNYXRoLmNlaWwobnVtYmVyT2ZJdGVtc0FmdGVyUmVtb3ZlIC8gMiksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gc3RhcnRJbmRleCArIG51bWJlck9mSXRlbXNBZnRlclJlbW92ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgZW5kSW5kZXggPSBudW1iZXJPZkl0ZW1zQWZ0ZXJSZW1vdmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbWlkZGxlSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoKGkpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFcXVhbChpLCBjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDFdKSxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBpZiAobWlkZGxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbXMubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgIG1pZGRsZUluZGV4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IobnVtYmVyT2ZJdGVtc0FmdGVyUmVtb3ZlIC8gMikgK1xuICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCA9IGVuZEluZGV4IC0gbnVtYmVyT2ZJdGVtc0FmdGVyUmVtb3ZlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gaXRlbXMubGVuZ3RoIC0gbnVtYmVyT2ZJdGVtc0FmdGVyUmVtb3ZlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZpcnR1YWxpemVkSXRlbXMgPSBpdGVtcy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxpemVkSXRlbXNTdWJqZWN0Lm5leHQodmlydHVhbGl6ZWRJdGVtcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbiRcbiAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgocG9zaXRpb24pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5U3RhdGVTdWJqZWN0LmdldFZhbHVlKCkuc3RhdGUgPT09IGBsb2FkaW5nLSR7cG9zaXRpb259YFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5idWZmZXJPblRvcCA8IHRoaXMucGFnZVNpemUpIHtcbiAgICAgICAgICAgICAgdm9pZCB0aGlzLmxvYWRNb3JlKHBvc2l0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZE1vcmVGcm9tQnVmZmVyKCd0b3AnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVyT25Cb3R0b20gPCB0aGlzLnBhZ2VTaXplKSB7XG4gICAgICAgICAgICAgIHZvaWQgdGhpcy5sb2FkTW9yZShwb3NpdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmxvYWRNb3JlRnJvbUJ1ZmZlcignYm90dG9tJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5hbGxJdGVtcyRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uITogVmlydHVhbGl6ZWRMaXN0U2Nyb2xsUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9uJFxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzKSA9PiAoc2Nyb2xsUG9zaXRpb24gPSBzKSk7XG4gICAgICAgICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24gPT09ICdtaWRkbGUnO1xuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2SXRlbXMsIGN1cnJlbnRJdGVtc10pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjdXJyZW50SXRlbXMubGVuZ3RoIDwgdGhpcy5tYXhJdGVtQ291bnQgfHxcbiAgICAgICAgICAgIHRoaXMudmlydHVhbGl6ZWRJdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudmlydHVhbGl6ZWRJdGVtc1N1YmplY3QubmV4dChjdXJyZW50SXRlbXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Rmlyc3RJdGVtID0gdGhpcy52aXJ0dWFsaXplZEl0ZW1zWzBdO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudExhc3RJdGVtID1cbiAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsaXplZEl0ZW1zW3RoaXMudmlydHVhbGl6ZWRJdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZTdGFydEluZGV4ID0gcHJldkl0ZW1zLmZpbmRJbmRleCgoaSkgPT5cbiAgICAgICAgICAgICAgdGhpcy5pc0VxdWFsKGksIGN1cnJlbnRGaXJzdEl0ZW0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZFbmRJbmRleCA9IHByZXZJdGVtcy5maW5kSW5kZXgoKGkpID0+XG4gICAgICAgICAgICAgIHRoaXMuaXNFcXVhbChpLCBjdXJyZW50TGFzdEl0ZW0pLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgaXNTdGFydFJlbWFpbmVkU2FtZSA9IGN1cnJlbnRJdGVtc1twcmV2U3RhcnRJbmRleF1cbiAgICAgICAgICAgICAgPyB0aGlzLmlzRXF1YWwoY3VycmVudEl0ZW1zW3ByZXZTdGFydEluZGV4XSwgY3VycmVudEZpcnN0SXRlbSlcbiAgICAgICAgICAgICAgOiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGlzRW5kUmVtYWluZWRTYW1lID0gY3VycmVudEl0ZW1zW3ByZXZFbmRJbmRleF1cbiAgICAgICAgICAgICAgPyB0aGlzLmlzRXF1YWwoY3VycmVudEl0ZW1zW3ByZXZFbmRJbmRleF0sIGN1cnJlbnRMYXN0SXRlbSlcbiAgICAgICAgICAgICAgOiBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgaGFzTmV3SXRlbXNCb3R0b20gPVxuICAgICAgICAgICAgICBwcmV2RW5kSW5kZXggPT09IHByZXZJdGVtcy5sZW5ndGggLSAxICYmIGlzRW5kUmVtYWluZWRTYW1lXG4gICAgICAgICAgICAgICAgPyBwcmV2SXRlbXMubGVuZ3RoICE9PSBjdXJyZW50SXRlbXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGlzU3RhcnRSZW1haW5lZFNhbWUgJiYgaXNFbmRSZW1haW5lZFNhbWUpIHtcbiAgICAgICAgICAgICAgY29uc3QgZW5kSW5kZXggPSBoYXNOZXdJdGVtc0JvdHRvbSA/IHVuZGVmaW5lZCA6IHByZXZFbmRJbmRleCArIDE7XG4gICAgICAgICAgICAgIHRoaXMudmlydHVhbGl6ZWRJdGVtc1N1YmplY3QubmV4dChcbiAgICAgICAgICAgICAgICBjdXJyZW50SXRlbXMuc2xpY2UocHJldlN0YXJ0SW5kZXgsIGVuZEluZGV4KSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGN1cnJlbnRTdGFydEluZGV4ID0gaXNTdGFydFJlbWFpbmVkU2FtZSA/IHByZXZTdGFydEluZGV4IDogLTE7XG4gICAgICAgICAgICBsZXQgY3VycmVudEVuZEluZGV4ID0gaXNFbmRSZW1haW5lZFNhbWUgPyBwcmV2RW5kSW5kZXggOiAtMTtcblxuICAgICAgICAgICAgaWYgKCFpc1N0YXJ0UmVtYWluZWRTYW1lKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRTdGFydEluZGV4ID0gY3VycmVudEl0ZW1zLmZpbmRJbmRleCgoaSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmlzRXF1YWwoaSwgY3VycmVudEZpcnN0SXRlbSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzRW5kUmVtYWluZWRTYW1lKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRFbmRJbmRleCA9IGN1cnJlbnRJdGVtcy5maW5kSW5kZXgoKGkpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VxdWFsKGksIGN1cnJlbnRMYXN0SXRlbSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc05ld0l0ZW1zVG9wID1cbiAgICAgICAgICAgICAgcHJldlN0YXJ0SW5kZXggPT09IDAgJiYgIWlzU3RhcnRSZW1haW5lZFNhbWVcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRTdGFydEluZGV4ICE9PSAwXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGFydEluZGV4ICE9PSAtMSAmJiBjdXJyZW50RW5kSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBoYXNOZXdJdGVtc1RvcCA/IDAgOiBjdXJyZW50U3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsaXplZEl0ZW1zU3ViamVjdC5uZXh0KFxuICAgICAgICAgICAgICAgIGN1cnJlbnRJdGVtcy5zbGljZShzdGFydEluZGV4LCBjdXJyZW50RW5kSW5kZXggKyAxKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChjdXJyZW50U3RhcnRJbmRleCA9PT0gLTEgJiYgY3VycmVudEVuZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRTdGFydEluZGV4ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgY3VycmVudEVuZEluZGV4IC0gKHByZXZFbmRJbmRleCAtIHByZXZTdGFydEluZGV4KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGN1cnJlbnRFbmRJbmRleCA9PT0gLTEgJiYgY3VycmVudFN0YXJ0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEVuZEluZGV4ID0gTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICBjdXJyZW50SXRlbXMubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdGFydEluZGV4ICsgKHByZXZFbmRJbmRleCAtIHByZXZTdGFydEluZGV4KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsaXplZEl0ZW1zU3ViamVjdC5uZXh0KFxuICAgICAgICAgICAgICAgIGN1cnJlbnRJdGVtcy5zbGljZShjdXJyZW50U3RhcnRJbmRleCwgY3VycmVudEVuZEluZGV4ICsgMSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICApO1xuICAgIGlmICh0aGlzLmp1bXBUb0l0ZW0kKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgdGhpcy5qdW1wVG9JdGVtJFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChqdW1wVG9JdGVtKSA9PlxuICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmFsbEl0ZW1zJC5waXBlKHRha2UoMSkpLCBvZihqdW1wVG9JdGVtKV0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoW2FsbEl0ZW1zLCBqdW1wVG9JdGVtXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGp1bXBUb0l0ZW0uaXRlbSkge1xuICAgICAgICAgICAgICBpZiAoYWxsSXRlbXMubGVuZ3RoIDwgdGhpcy5tYXhJdGVtQ291bnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpcnR1YWxpemVkSXRlbXNTdWJqZWN0Lm5leHQoYWxsSXRlbXMpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IGFsbEl0ZW1zLmZpbmRJbmRleCgoaSkgPT5cbiAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogZG8gd2Uga25vdyBhIGJldHRlciB0eXBpbmcgaGVyZT9cbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNFcXVhbChpLCBqdW1wVG9JdGVtLml0ZW0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1JbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBqdW1wVG9JdGVtLnBvc2l0aW9uIHx8ICdtaWRkbGUnO1xuICAgICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyT2ZJdGVtc1RvUmVtb3ZlID1cbiAgICAgICAgICAgICAgICAgICAgYWxsSXRlbXMubGVuZ3RoIC0gTWF0aC5yb3VuZCh0aGlzLm1heEl0ZW1Db3VudCAvIDIpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyT2ZJdGVtc0FmdGVyUmVtb3ZlID1cbiAgICAgICAgICAgICAgICAgICAgYWxsSXRlbXMubGVuZ3RoIC0gbnVtYmVyT2ZJdGVtc1RvUmVtb3ZlO1xuICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICAgIGxldCBlbmRJbmRleCA9IC0xO1xuXG4gICAgICAgICAgICAgICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCA9IGl0ZW1JbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRJbmRleCA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsSXRlbXMubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArIG51bWJlck9mSXRlbXNBZnRlclJlbW92ZSxcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gaXRlbUluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kSW5kZXggLSBudW1iZXJPZkl0ZW1zQWZ0ZXJSZW1vdmUsXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbWlkZGxlJzoge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zT25Ub3AgPSBpdGVtSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXNPbkJvdHRvbSA9IGFsbEl0ZW1zLmxlbmd0aCAtIGl0ZW1JbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtc09uVG9wIDwgTWF0aC5jZWlsKG51bWJlck9mSXRlbXNBZnRlclJlbW92ZSAvIDIpXG4gICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNPbkJvdHRvbSA8XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKG51bWJlck9mSXRlbXNBZnRlclJlbW92ZSAvIDIpICsgMVxuICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kSW5kZXggPSBhbGxJdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBlbmRJbmRleCAtIG51bWJlck9mSXRlbXNBZnRlclJlbW92ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1JbmRleCAtIE1hdGguY2VpbChudW1iZXJPZkl0ZW1zQWZ0ZXJSZW1vdmUgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyBudW1iZXJPZkl0ZW1zQWZ0ZXJSZW1vdmU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMudmlydHVhbGl6ZWRJdGVtc1N1YmplY3QubmV4dChcbiAgICAgICAgICAgICAgICAgICAgYWxsSXRlbXMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHZhbHVlIG9mIHZpcnR1YWxpemVkIGl0ZW1zXG4gICAqL1xuICBnZXQgdmlydHVhbGl6ZWRJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy52aXJ0dWFsaXplZEl0ZW1zU3ViamVjdC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgc3Vic2NyaXB0aW9ucywgY2FsbCB0aGlzIG9uY2UgeW91J3JlIGRvbmUgdXNpbmcgYW4gaW5zdGFuY2Ugb2YgdGhpcyBzZXJ2aWNlXG4gICAqL1xuICBkaXNwb3NlKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxvYWRNb3JlRnJvbUJ1ZmZlcihfOiBWaXJ0dWFsaXplZExpc3RRdWVyeURpcmVjdGlvbikge1xuICAgIHRoaXMubG9hZEZyb21CdWZmZXIkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1vcmUoZGlyZWN0aW9uOiBWaXJ0dWFsaXplZExpc3RRdWVyeURpcmVjdGlvbikge1xuICAgIHRoaXMucXVlcnlTdGF0ZVN1YmplY3QubmV4dCh7IHN0YXRlOiBgbG9hZGluZy0ke2RpcmVjdGlvbn1gIH0pO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KGRpcmVjdGlvbik7XG4gICAgICB0aGlzLnF1ZXJ5U3RhdGVTdWJqZWN0Lm5leHQoeyBzdGF0ZTogJ3N1Y2Nlc3MnIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMucXVlcnlTdGF0ZVN1YmplY3QubmV4dCh7IHN0YXRlOiAnZXJyb3InLCBlcnJvcjogZSB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaXNFcXVhbDogKHQxOiBULCB0MjogVCkgPT4gYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcXVlcnk6IChcbiAgICBkaXJlY3Rpb246IFZpcnR1YWxpemVkTGlzdFF1ZXJ5RGlyZWN0aW9uLFxuICApID0+IFByb21pc2U8dW5rbm93bj47XG59XG4iXX0=
@@ -70,4 +70,4 @@ export class VirtualizedMessageListService extends VirtualizedListService {
70
70
  });
71
71
  }
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbGl6ZWQtbWVzc2FnZS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdmlydHVhbGl6ZWQtbWVzc2FnZS1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRTs7R0FFRztBQUNILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxzQkFBcUM7SUFDdEYsWUFDa0IsSUFBdUIsRUFDdkMsZUFBMEQsRUFDbEQsY0FBOEI7UUFFdEMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FNRCxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ2xCLElBQUksTUFBTSxHQUdOO2dCQUNGLElBQUksRUFBRSxTQUFTO2FBQ2hCLENBQUM7WUFDRixJQUFJLGVBQW1DLENBQUM7WUFDeEMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNuQixlQUFlLEdBQUcsYUFBYSxDQUFDLFFBQVE7b0JBQ3RDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUTtvQkFDeEIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0wsZUFBZSxHQUFHLGFBQWEsQ0FBQyxRQUFRO29CQUN0QyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ2xCLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDZjtZQUVELElBQUksZUFBZSxFQUFFO2dCQUNuQixNQUFNLFFBQVEsR0FDWixJQUFJLEtBQUssTUFBTTtvQkFDYixDQUFDLENBQUMsY0FBYyxDQUFDLHFCQUFxQjtvQkFDdEMsQ0FBQyxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQztnQkFDaEQsTUFBTSxFQUFFLEdBQ04sZUFBZSxLQUFLLFFBQVE7b0JBQzFCLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNuQyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsRUFBRTtvQkFDTixNQUFNLEdBQUc7d0JBQ1AsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNaLFFBQVEsRUFBRSxhQUFhLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO3FCQUM5RCxDQUFDO2lCQUNIO2dCQUNELGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQ25DO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUNiLElBQUksS0FBSyxNQUFNO1lBQ2IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0I7WUFDdkMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztRQUMzQyxLQUFLLENBQ0gsU0FBUyxFQUNULGVBQWUsRUFDZixjQUFjLEVBQ2QsY0FBYyxDQUFDLGVBQWUsQ0FDL0IsQ0FBQztRQTNEYyxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUUvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFvRTlCLFlBQU8sR0FBRyxDQUFDLEVBQWlCLEVBQUUsRUFBaUIsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRXBFLFVBQUssR0FBRyxDQUFDLFNBQXdDLEVBQUUsRUFBRTtZQUM3RCxNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU07Z0JBQ2xCLENBQUMsQ0FBQyxDQUFDLFNBQTRCLEVBQUUsRUFBRSxDQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLENBQUMsU0FBNEIsRUFBRSxFQUFFLENBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEUsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxNQUFNLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xELElBQ0UsQ0FBQyxTQUFTLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO29CQUM3QyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFDbkQ7b0JBQ0EsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDN0I7Z0JBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUM7SUFoQ0YsQ0FBQztJQUVTLGtCQUFrQixDQUFDLFNBQXdDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQXlCRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgVmlydHVhbGl6ZWRMaXN0UXVlcnlEaXJlY3Rpb24sXG4gIFZpcnR1YWxpemVkTGlzdFNjcm9sbFBvc2l0aW9uLFxuICBTdHJlYW1NZXNzYWdlLFxuICBWaXJ0dWFsaXplZExpc3RWZXJ0aWNhbEl0ZW1Qb3NpdGlvbixcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZpcnR1YWxpemVkTGlzdFNlcnZpY2UgfSBmcm9tICcuL3ZpcnR1YWxpemVkLWxpc3Quc2VydmljZSc7XG5cbi8qKlxuICogVGhlIGBWaXJ0dWFsaXplZE1lc3NhZ2VMaXN0U2VydmljZWAgcmVtb3ZlcyBtZXNzYWdlcyBmcm9tIHRoZSBtZXNzYWdlIGxpc3QgdGhhdCBhcmUgY3VycmVudGx5IG5vdCBpbiB2aWV3XG4gKi9cbmV4cG9ydCBjbGFzcyBWaXJ0dWFsaXplZE1lc3NhZ2VMaXN0U2VydmljZSBleHRlbmRzIFZpcnR1YWxpemVkTGlzdFNlcnZpY2U8U3RyZWFtTWVzc2FnZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZTogJ3RocmVhZCcgfCAnbWFpbicsXG4gICAgc2Nyb2xsUG9zaXRpb24kOiBPYnNlcnZhYmxlPFZpcnR1YWxpemVkTGlzdFNjcm9sbFBvc2l0aW9uPixcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZVxuICApIHtcbiAgICBjb25zdCBqdW1wVG9NZXNzYWdlJCA9IGNoYW5uZWxTZXJ2aWNlLmp1bXBUb01lc3NhZ2UkLnBpcGUoXG4gICAgICBtYXA8XG4gICAgICAgIHsgaWQ/OiBzdHJpbmc7IHBhcmVudElkPzogc3RyaW5nIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpdGVtOiBQYXJ0aWFsPFN0cmVhbU1lc3NhZ2U+IHwgdW5kZWZpbmVkO1xuICAgICAgICAgIHBvc2l0aW9uPzogVmlydHVhbGl6ZWRMaXN0VmVydGljYWxJdGVtUG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgID4oKGp1bXBUb01lc3NhZ2UpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDoge1xuICAgICAgICAgIGl0ZW06IFBhcnRpYWw8U3RyZWFtTWVzc2FnZT4gfCB1bmRlZmluZWQ7XG4gICAgICAgICAgcG9zaXRpb24/OiBWaXJ0dWFsaXplZExpc3RWZXJ0aWNhbEl0ZW1Qb3NpdGlvbjtcbiAgICAgICAgfSA9IHtcbiAgICAgICAgICBpdGVtOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIGxldCB0YXJnZXRNZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKG1vZGUgPT09ICdtYWluJykge1xuICAgICAgICAgIHRhcmdldE1lc3NhZ2VJZCA9IGp1bXBUb01lc3NhZ2UucGFyZW50SWRcbiAgICAgICAgICAgID8ganVtcFRvTWVzc2FnZS5wYXJlbnRJZFxuICAgICAgICAgICAgOiBqdW1wVG9NZXNzYWdlLmlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldE1lc3NhZ2VJZCA9IGp1bXBUb01lc3NhZ2UucGFyZW50SWRcbiAgICAgICAgICAgID8ganVtcFRvTWVzc2FnZS5pZFxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0TWVzc2FnZUlkKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZXMgPVxuICAgICAgICAgICAgbW9kZSA9PT0gJ21haW4nXG4gICAgICAgICAgICAgID8gY2hhbm5lbFNlcnZpY2UuYWN0aXZlQ2hhbm5lbE1lc3NhZ2VzXG4gICAgICAgICAgICAgIDogY2hhbm5lbFNlcnZpY2UuYWN0aXZlQ2hhbm5lbFRocmVhZFJlcGxpZXM7XG4gICAgICAgICAgY29uc3QgaWQgPVxuICAgICAgICAgICAgdGFyZ2V0TWVzc2FnZUlkID09PSAnbGF0ZXN0J1xuICAgICAgICAgICAgICA/IG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdPy5pZFxuICAgICAgICAgICAgICA6IHRhcmdldE1lc3NhZ2VJZDtcbiAgICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgICAgaXRlbTogeyBpZCB9LFxuICAgICAgICAgICAgICBwb3NpdGlvbjoganVtcFRvTWVzc2FnZS5pZCA9PT0gJ2xhdGVzdCcgPyAnYm90dG9tJyA6ICdtaWRkbGUnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2hhbm5lbFNlcnZpY2UuY2xlYXJNZXNzYWdlSnVtcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBtZXNzYWdlcyQgPVxuICAgICAgbW9kZSA9PT0gJ21haW4nXG4gICAgICAgID8gY2hhbm5lbFNlcnZpY2UuYWN0aXZlQ2hhbm5lbE1lc3NhZ2VzJFxuICAgICAgICA6IGNoYW5uZWxTZXJ2aWNlLmFjdGl2ZVRocmVhZE1lc3NhZ2VzJDtcbiAgICBzdXBlcihcbiAgICAgIG1lc3NhZ2VzJCxcbiAgICAgIHNjcm9sbFBvc2l0aW9uJCxcbiAgICAgIGp1bXBUb01lc3NhZ2UkLFxuICAgICAgY2hhbm5lbFNlcnZpY2UubWVzc2FnZVBhZ2VTaXplXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkTW9yZUZyb21CdWZmZXIoZGlyZWN0aW9uOiBWaXJ0dWFsaXplZExpc3RRdWVyeURpcmVjdGlvbik6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTdGF0ZVN1YmplY3QubmV4dCh7IHN0YXRlOiBgbG9hZGluZy0ke2RpcmVjdGlvbn1gIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkRnJvbUJ1ZmZlciQubmV4dCgpO1xuICAgICAgdGhpcy5xdWVyeVN0YXRlU3ViamVjdC5uZXh0KHsgc3RhdGU6ICdzdWNjZXNzJyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0VxdWFsID0gKHQxOiBTdHJlYW1NZXNzYWdlLCB0MjogU3RyZWFtTWVzc2FnZSkgPT4gdDEuaWQgPT09IHQyLmlkO1xuXG4gIHByb3RlY3RlZCBxdWVyeSA9IChkaXJlY3Rpb246IFZpcnR1YWxpemVkTGlzdFF1ZXJ5RGlyZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9XG4gICAgICB0aGlzLm1vZGUgPT09ICdtYWluJ1xuICAgICAgICA/IChkaXJlY3Rpb246ICdvbGRlcicgfCAnbmV3ZXInKSA9PlxuICAgICAgICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5sb2FkTW9yZU1lc3NhZ2VzKGRpcmVjdGlvbilcbiAgICAgICAgOiAoZGlyZWN0aW9uOiAnb2xkZXInIHwgJ25ld2VyJykgPT5cbiAgICAgICAgICAgIHRoaXMuY2hhbm5lbFNlcnZpY2UubG9hZE1vcmVUaHJlYWRSZXBsaWVzKGRpcmVjdGlvbik7XG4gICAgY29uc3QgcmVzdWx0ID0gcmVxdWVzdChkaXJlY3Rpb24gPT09ICd0b3AnID8gJ29sZGVyJyA6ICduZXdlcicpO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlTdGF0ZVN1YmplY3QubmV4dCh7IHN0YXRlOiAnc3VjY2VzcycgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIChkaXJlY3Rpb24gPT09ICd0b3AnICYmIHRoaXMuYnVmZmVyT25Ub3AgPiAwKSB8fFxuICAgICAgICAoZGlyZWN0aW9uID09PSAnYm90dG9tJyAmJiB0aGlzLmJ1ZmZlck9uQm90dG9tID4gMClcbiAgICAgICkge1xuICAgICAgICB0aGlzLmxvYWRGcm9tQnVmZmVyJC5uZXh0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICB9O1xufVxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbGl6ZWQtbWVzc2FnZS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdmlydHVhbGl6ZWQtbWVzc2FnZS1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRTs7R0FFRztBQUNILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxzQkFBcUM7SUFDdEYsWUFDa0IsSUFBdUIsRUFDdkMsZUFBMEQsRUFDbEQsY0FBOEI7UUFFdEMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FNRCxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ2xCLElBQUksTUFBTSxHQUdOO2dCQUNGLElBQUksRUFBRSxTQUFTO2FBQ2hCLENBQUM7WUFDRixJQUFJLGVBQW1DLENBQUM7WUFDeEMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNuQixlQUFlLEdBQUcsYUFBYSxDQUFDLFFBQVE7b0JBQ3RDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUTtvQkFDeEIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0wsZUFBZSxHQUFHLGFBQWEsQ0FBQyxRQUFRO29CQUN0QyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ2xCLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDZjtZQUVELElBQUksZUFBZSxFQUFFO2dCQUNuQixNQUFNLFFBQVEsR0FDWixJQUFJLEtBQUssTUFBTTtvQkFDYixDQUFDLENBQUMsY0FBYyxDQUFDLHFCQUFxQjtvQkFDdEMsQ0FBQyxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQztnQkFDaEQsTUFBTSxFQUFFLEdBQ04sZUFBZSxLQUFLLFFBQVE7b0JBQzFCLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNuQyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsRUFBRTtvQkFDTixNQUFNLEdBQUc7d0JBQ1AsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNaLFFBQVEsRUFBRSxhQUFhLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO3FCQUM5RCxDQUFDO2lCQUNIO2dCQUNELGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQ25DO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUNiLElBQUksS0FBSyxNQUFNO1lBQ2IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0I7WUFDdkMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztRQUMzQyxLQUFLLENBQ0gsU0FBUyxFQUNULGVBQWUsRUFDZixjQUFjLEVBQ2QsY0FBYyxDQUFDLGVBQWUsQ0FDL0IsQ0FBQztRQTNEYyxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUUvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFvRTlCLFlBQU8sR0FBRyxDQUFDLEVBQWlCLEVBQUUsRUFBaUIsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRXBFLFVBQUssR0FBRyxDQUFDLFNBQXdDLEVBQUUsRUFBRTtZQUM3RCxNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU07Z0JBQ2xCLENBQUMsQ0FBQyxDQUFDLFNBQTRCLEVBQUUsRUFBRSxDQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLENBQUMsU0FBNEIsRUFBRSxFQUFFLENBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEUsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxNQUFNLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xELElBQ0UsQ0FBQyxTQUFTLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO29CQUM3QyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFDbkQ7b0JBQ0EsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDN0I7Z0JBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUM7SUFoQ0YsQ0FBQztJQUVTLGtCQUFrQixDQUFDLFNBQXdDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQXlCRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgVmlydHVhbGl6ZWRMaXN0UXVlcnlEaXJlY3Rpb24sXG4gIFZpcnR1YWxpemVkTGlzdFNjcm9sbFBvc2l0aW9uLFxuICBTdHJlYW1NZXNzYWdlLFxuICBWaXJ0dWFsaXplZExpc3RWZXJ0aWNhbEl0ZW1Qb3NpdGlvbixcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZpcnR1YWxpemVkTGlzdFNlcnZpY2UgfSBmcm9tICcuL3ZpcnR1YWxpemVkLWxpc3Quc2VydmljZSc7XG5cbi8qKlxuICogVGhlIGBWaXJ0dWFsaXplZE1lc3NhZ2VMaXN0U2VydmljZWAgcmVtb3ZlcyBtZXNzYWdlcyBmcm9tIHRoZSBtZXNzYWdlIGxpc3QgdGhhdCBhcmUgY3VycmVudGx5IG5vdCBpbiB2aWV3XG4gKi9cbmV4cG9ydCBjbGFzcyBWaXJ0dWFsaXplZE1lc3NhZ2VMaXN0U2VydmljZSBleHRlbmRzIFZpcnR1YWxpemVkTGlzdFNlcnZpY2U8U3RyZWFtTWVzc2FnZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZTogJ3RocmVhZCcgfCAnbWFpbicsXG4gICAgc2Nyb2xsUG9zaXRpb24kOiBPYnNlcnZhYmxlPFZpcnR1YWxpemVkTGlzdFNjcm9sbFBvc2l0aW9uPixcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSxcbiAgKSB7XG4gICAgY29uc3QganVtcFRvTWVzc2FnZSQgPSBjaGFubmVsU2VydmljZS5qdW1wVG9NZXNzYWdlJC5waXBlKFxuICAgICAgbWFwPFxuICAgICAgICB7IGlkPzogc3RyaW5nOyBwYXJlbnRJZD86IHN0cmluZyB9LFxuICAgICAgICB7XG4gICAgICAgICAgaXRlbTogUGFydGlhbDxTdHJlYW1NZXNzYWdlPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBwb3NpdGlvbj86IFZpcnR1YWxpemVkTGlzdFZlcnRpY2FsSXRlbVBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgICA+KChqdW1wVG9NZXNzYWdlKSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHtcbiAgICAgICAgICBpdGVtOiBQYXJ0aWFsPFN0cmVhbU1lc3NhZ2U+IHwgdW5kZWZpbmVkO1xuICAgICAgICAgIHBvc2l0aW9uPzogVmlydHVhbGl6ZWRMaXN0VmVydGljYWxJdGVtUG9zaXRpb247XG4gICAgICAgIH0gPSB7XG4gICAgICAgICAgaXRlbTogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgdGFyZ2V0TWVzc2FnZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChtb2RlID09PSAnbWFpbicpIHtcbiAgICAgICAgICB0YXJnZXRNZXNzYWdlSWQgPSBqdW1wVG9NZXNzYWdlLnBhcmVudElkXG4gICAgICAgICAgICA/IGp1bXBUb01lc3NhZ2UucGFyZW50SWRcbiAgICAgICAgICAgIDoganVtcFRvTWVzc2FnZS5pZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRNZXNzYWdlSWQgPSBqdW1wVG9NZXNzYWdlLnBhcmVudElkXG4gICAgICAgICAgICA/IGp1bXBUb01lc3NhZ2UuaWRcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhcmdldE1lc3NhZ2VJZCkge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzID1cbiAgICAgICAgICAgIG1vZGUgPT09ICdtYWluJ1xuICAgICAgICAgICAgICA/IGNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWxNZXNzYWdlc1xuICAgICAgICAgICAgICA6IGNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWxUaHJlYWRSZXBsaWVzO1xuICAgICAgICAgIGNvbnN0IGlkID1cbiAgICAgICAgICAgIHRhcmdldE1lc3NhZ2VJZCA9PT0gJ2xhdGVzdCdcbiAgICAgICAgICAgICAgPyBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXT8uaWRcbiAgICAgICAgICAgICAgOiB0YXJnZXRNZXNzYWdlSWQ7XG4gICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICAgIGl0ZW06IHsgaWQgfSxcbiAgICAgICAgICAgICAgcG9zaXRpb246IGp1bXBUb01lc3NhZ2UuaWQgPT09ICdsYXRlc3QnID8gJ2JvdHRvbScgOiAnbWlkZGxlJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGNoYW5uZWxTZXJ2aWNlLmNsZWFyTWVzc2FnZUp1bXAoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KSxcbiAgICApO1xuICAgIGNvbnN0IG1lc3NhZ2VzJCA9XG4gICAgICBtb2RlID09PSAnbWFpbidcbiAgICAgICAgPyBjaGFubmVsU2VydmljZS5hY3RpdmVDaGFubmVsTWVzc2FnZXMkXG4gICAgICAgIDogY2hhbm5lbFNlcnZpY2UuYWN0aXZlVGhyZWFkTWVzc2FnZXMkO1xuICAgIHN1cGVyKFxuICAgICAgbWVzc2FnZXMkLFxuICAgICAgc2Nyb2xsUG9zaXRpb24kLFxuICAgICAganVtcFRvTWVzc2FnZSQsXG4gICAgICBjaGFubmVsU2VydmljZS5tZXNzYWdlUGFnZVNpemUsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkTW9yZUZyb21CdWZmZXIoZGlyZWN0aW9uOiBWaXJ0dWFsaXplZExpc3RRdWVyeURpcmVjdGlvbik6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTdGF0ZVN1YmplY3QubmV4dCh7IHN0YXRlOiBgbG9hZGluZy0ke2RpcmVjdGlvbn1gIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkRnJvbUJ1ZmZlciQubmV4dCgpO1xuICAgICAgdGhpcy5xdWVyeVN0YXRlU3ViamVjdC5uZXh0KHsgc3RhdGU6ICdzdWNjZXNzJyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0VxdWFsID0gKHQxOiBTdHJlYW1NZXNzYWdlLCB0MjogU3RyZWFtTWVzc2FnZSkgPT4gdDEuaWQgPT09IHQyLmlkO1xuXG4gIHByb3RlY3RlZCBxdWVyeSA9IChkaXJlY3Rpb246IFZpcnR1YWxpemVkTGlzdFF1ZXJ5RGlyZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9XG4gICAgICB0aGlzLm1vZGUgPT09ICdtYWluJ1xuICAgICAgICA/IChkaXJlY3Rpb246ICdvbGRlcicgfCAnbmV3ZXInKSA9PlxuICAgICAgICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5sb2FkTW9yZU1lc3NhZ2VzKGRpcmVjdGlvbilcbiAgICAgICAgOiAoZGlyZWN0aW9uOiAnb2xkZXInIHwgJ25ld2VyJykgPT5cbiAgICAgICAgICAgIHRoaXMuY2hhbm5lbFNlcnZpY2UubG9hZE1vcmVUaHJlYWRSZXBsaWVzKGRpcmVjdGlvbik7XG4gICAgY29uc3QgcmVzdWx0ID0gcmVxdWVzdChkaXJlY3Rpb24gPT09ICd0b3AnID8gJ29sZGVyJyA6ICduZXdlcicpO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlTdGF0ZVN1YmplY3QubmV4dCh7IHN0YXRlOiAnc3VjY2VzcycgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIChkaXJlY3Rpb24gPT09ICd0b3AnICYmIHRoaXMuYnVmZmVyT25Ub3AgPiAwKSB8fFxuICAgICAgICAoZGlyZWN0aW9uID09PSAnYm90dG9tJyAmJiB0aGlzLmJ1ZmZlck9uQm90dG9tID4gMClcbiAgICAgICkge1xuICAgICAgICB0aGlzLmxvYWRGcm9tQnVmZmVyJC5uZXh0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICB9O1xufVxuIl19