stream-chat-angular 4.66.1 → 5.0.0-v5.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 (161) hide show
  1. package/assets/version.d.ts +1 -1
  2. package/{esm2015/assets/version.js → esm2020/assets/version.mjs} +2 -2
  3. package/esm2020/lib/attachment-configuration.service.mjs +185 -0
  4. package/esm2020/lib/attachment-list/attachment-list.component.mjs +205 -0
  5. package/esm2020/lib/attachment-preview-list/attachment-preview-list.component.mjs +45 -0
  6. package/esm2020/lib/attachment.service.mjs +262 -0
  7. package/esm2020/lib/avatar/avatar.component.mjs +163 -0
  8. package/esm2020/lib/avatar-placeholder/avatar-placeholder.component.mjs +74 -0
  9. package/esm2020/lib/channel/channel.component.mjs +46 -0
  10. package/esm2020/lib/channel-header/channel-header.component.mjs +79 -0
  11. package/esm2020/lib/channel-list/channel-list-toggle.service.mjs +72 -0
  12. package/esm2020/lib/channel-list/channel-list.component.mjs +60 -0
  13. package/esm2020/lib/channel-preview/channel-preview.component.mjs +155 -0
  14. package/esm2020/lib/channel.service.mjs +1460 -0
  15. package/esm2020/lib/chat-client.service.mjs +206 -0
  16. package/{esm2015/lib/custom-templates.service.js → esm2020/lib/custom-templates.service.mjs} +3 -3
  17. package/{esm2015/lib/date-parser.service.js → esm2020/lib/date-parser.service.mjs} +3 -3
  18. package/esm2020/lib/edit-message-form/edit-message-form.component.mjs +83 -0
  19. package/esm2020/lib/get-channel-display-text.mjs +14 -0
  20. package/esm2020/lib/get-message-translation.mjs +12 -0
  21. package/esm2020/lib/icon/icon.component.mjs +21 -0
  22. package/esm2020/lib/icon-placeholder/icon-placeholder.component.mjs +31 -0
  23. package/esm2020/lib/loading-indicator/loading-indicator.component.mjs +31 -0
  24. package/esm2020/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.mjs +38 -0
  25. package/esm2020/lib/message/message.component.mjs +418 -0
  26. package/esm2020/lib/message-actions-box/message-actions-box.component.mjs +130 -0
  27. package/esm2020/lib/message-actions.service.mjs +119 -0
  28. package/esm2020/lib/message-bounce-prompt/message-bounce-prompt.component.mjs +71 -0
  29. package/esm2020/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +262 -0
  30. package/{esm2015/lib/message-input/emoji-input.service.js → esm2020/lib/message-input/emoji-input.service.mjs} +3 -3
  31. package/{esm2015/lib/message-input/message-input-config.service.js → esm2020/lib/message-input/message-input-config.service.mjs} +3 -3
  32. package/esm2020/lib/message-input/message-input.component.mjs +443 -0
  33. package/{esm2015/lib/message-input/textarea/textarea.component.js → esm2020/lib/message-input/textarea/textarea.component.mjs} +5 -9
  34. package/esm2020/lib/message-input/textarea.directive.mjs +89 -0
  35. package/esm2020/lib/message-list/group-styles.mjs +52 -0
  36. package/{esm2015/lib/message-list/image-load.service.js → esm2020/lib/message-list/image-load.service.mjs} +3 -3
  37. package/esm2020/lib/message-list/message-list.component.mjs +699 -0
  38. package/esm2020/lib/message-preview.mjs +21 -0
  39. package/esm2020/lib/message-reactions/message-reactions.component.mjs +252 -0
  40. package/{esm2015/lib/message-reactions.service.js → esm2020/lib/message-reactions.service.mjs} +3 -3
  41. package/{esm2015/lib/message.service.js → esm2020/lib/message.service.mjs} +4 -4
  42. package/esm2020/lib/modal/modal.component.mjs +69 -0
  43. package/esm2020/lib/notification/notification.component.mjs +20 -0
  44. package/esm2020/lib/notification-list/notification-list.component.mjs +37 -0
  45. package/esm2020/lib/notification.service.mjs +79 -0
  46. package/esm2020/lib/read-by.mjs +12 -0
  47. package/{esm2015/lib/stream-autocomplete-textarea.module.js → esm2020/lib/stream-autocomplete-textarea.module.mjs} +6 -6
  48. package/{esm2015/lib/stream-avatar.module.js → esm2020/lib/stream-avatar.module.mjs} +5 -5
  49. package/{esm2015/lib/stream-chat.module.js → esm2020/lib/stream-chat.module.mjs} +14 -16
  50. package/{esm2015/lib/stream-i18n.service.js → esm2020/lib/stream-i18n.service.mjs} +5 -5
  51. package/{esm2015/lib/stream-textarea.module.js → esm2020/lib/stream-textarea.module.mjs} +6 -6
  52. package/esm2020/lib/theme.service.mjs +123 -0
  53. package/esm2020/lib/thread/thread.component.mjs +51 -0
  54. package/{esm2015/lib/transliteration.service.js → esm2020/lib/transliteration.service.mjs} +3 -3
  55. package/esm2020/lib/types.mjs +2 -0
  56. package/esm2020/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.mjs +183 -0
  57. package/esm2020/lib/voice-recording/voice-recording.component.mjs +102 -0
  58. package/fesm2015/{stream-chat-angular.js → stream-chat-angular.mjs} +313 -426
  59. package/fesm2015/stream-chat-angular.mjs.map +1 -0
  60. package/fesm2020/stream-chat-angular.mjs +7123 -0
  61. package/fesm2020/stream-chat-angular.mjs.map +1 -0
  62. package/lib/attachment-list/attachment-list.component.d.ts +3 -3
  63. package/lib/attachment-preview-list/attachment-preview-list.component.d.ts +1 -1
  64. package/lib/attachment.service.d.ts +0 -1
  65. package/lib/avatar/avatar.component.d.ts +1 -1
  66. package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +1 -1
  67. package/lib/channel/channel.component.d.ts +1 -1
  68. package/lib/channel-header/channel-header.component.d.ts +1 -1
  69. package/lib/channel-list/channel-list-toggle.service.d.ts +0 -1
  70. package/lib/channel-list/channel-list.component.d.ts +1 -1
  71. package/lib/channel-preview/channel-preview.component.d.ts +1 -1
  72. package/lib/channel.service.d.ts +7 -7
  73. package/lib/chat-client.service.d.ts +1 -1
  74. package/lib/edit-message-form/edit-message-form.component.d.ts +1 -1
  75. package/lib/get-message-translation.d.ts +1 -1
  76. package/lib/icon/icon.component.d.ts +1 -1
  77. package/lib/icon-placeholder/icon-placeholder.component.d.ts +1 -1
  78. package/lib/loading-indicator/loading-indicator.component.d.ts +1 -1
  79. package/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.d.ts +1 -1
  80. package/lib/message/message.component.d.ts +3 -7
  81. package/lib/message-actions-box/message-actions-box.component.d.ts +2 -4
  82. package/lib/message-actions.service.d.ts +0 -1
  83. package/lib/message-bounce-prompt/message-bounce-prompt.component.d.ts +1 -1
  84. package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +1 -1
  85. package/lib/message-input/message-input.component.d.ts +2 -2
  86. package/lib/message-input/textarea/textarea.component.d.ts +1 -1
  87. package/lib/message-input/textarea.directive.d.ts +1 -1
  88. package/lib/message-list/group-styles.d.ts +1 -1
  89. package/lib/message-list/message-list.component.d.ts +4 -5
  90. package/lib/message-reactions/message-reactions.component.d.ts +1 -4
  91. package/lib/message.service.d.ts +0 -1
  92. package/lib/modal/modal.component.d.ts +1 -1
  93. package/lib/notification/notification.component.d.ts +1 -1
  94. package/lib/notification-list/notification-list.component.d.ts +2 -2
  95. package/lib/notification.service.d.ts +2 -5
  96. package/lib/stream-chat.module.d.ts +3 -3
  97. package/lib/theme.service.d.ts +1 -2
  98. package/lib/thread/thread.component.d.ts +1 -1
  99. package/lib/types.d.ts +18 -18
  100. package/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.d.ts +2 -2
  101. package/lib/voice-recording/voice-recording.component.d.ts +1 -1
  102. package/package.json +31 -17
  103. package/src/assets/styles/v2/css/index.css +1 -1
  104. package/src/assets/styles/v2/css/index.layout.css +1 -1
  105. package/src/assets/styles/v2/scss/_base.scss +2 -2
  106. package/src/assets/version.ts +1 -1
  107. package/bundles/stream-chat-angular.umd.js +0 -8445
  108. package/bundles/stream-chat-angular.umd.js.map +0 -1
  109. package/esm2015/lib/attachment-configuration.service.js +0 -186
  110. package/esm2015/lib/attachment-list/attachment-list.component.js +0 -209
  111. package/esm2015/lib/attachment-preview-list/attachment-preview-list.component.js +0 -49
  112. package/esm2015/lib/attachment.service.js +0 -276
  113. package/esm2015/lib/avatar/avatar.component.js +0 -172
  114. package/esm2015/lib/avatar-placeholder/avatar-placeholder.component.js +0 -78
  115. package/esm2015/lib/channel/channel.component.js +0 -50
  116. package/esm2015/lib/channel-header/channel-header.component.js +0 -86
  117. package/esm2015/lib/channel-list/channel-list-toggle.service.js +0 -73
  118. package/esm2015/lib/channel-list/channel-list.component.js +0 -67
  119. package/esm2015/lib/channel-preview/channel-preview.component.js +0 -167
  120. package/esm2015/lib/channel.service.js +0 -1487
  121. package/esm2015/lib/chat-client.service.js +0 -211
  122. package/esm2015/lib/edit-message-form/edit-message-form.component.js +0 -87
  123. package/esm2015/lib/get-channel-display-text.js +0 -15
  124. package/esm2015/lib/get-message-translation.js +0 -13
  125. package/esm2015/lib/icon/icon.component.js +0 -25
  126. package/esm2015/lib/icon-placeholder/icon-placeholder.component.js +0 -35
  127. package/esm2015/lib/loading-indicator/loading-indicator.component.js +0 -35
  128. package/esm2015/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.js +0 -42
  129. package/esm2015/lib/message/message.component.js +0 -436
  130. package/esm2015/lib/message-actions-box/message-actions-box.component.js +0 -137
  131. package/esm2015/lib/message-actions.service.js +0 -114
  132. package/esm2015/lib/message-bounce-prompt/message-bounce-prompt.component.js +0 -80
  133. package/esm2015/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.js +0 -262
  134. package/esm2015/lib/message-input/message-input.component.js +0 -455
  135. package/esm2015/lib/message-input/textarea.directive.js +0 -90
  136. package/esm2015/lib/message-list/group-styles.js +0 -53
  137. package/esm2015/lib/message-list/message-list.component.js +0 -726
  138. package/esm2015/lib/message-preview.js +0 -7
  139. package/esm2015/lib/message-reactions/message-reactions.component.js +0 -266
  140. package/esm2015/lib/modal/modal.component.js +0 -74
  141. package/esm2015/lib/notification/notification.component.js +0 -24
  142. package/esm2015/lib/notification-list/notification-list.component.js +0 -38
  143. package/esm2015/lib/notification.service.js +0 -79
  144. package/esm2015/lib/read-by.js +0 -13
  145. package/esm2015/lib/theme.service.js +0 -122
  146. package/esm2015/lib/thread/thread.component.js +0 -55
  147. package/esm2015/lib/types.js +0 -2
  148. package/esm2015/lib/voice-recording/voice-recording-wavebar/voice-recording-wavebar.component.js +0 -192
  149. package/esm2015/lib/voice-recording/voice-recording.component.js +0 -115
  150. package/fesm2015/stream-chat-angular.js.map +0 -1
  151. /package/{esm2015/assets/i18n/en.js → esm2020/assets/i18n/en.mjs} +0 -0
  152. /package/{esm2015/lib/injection-tokens.js → esm2020/lib/injection-tokens.mjs} +0 -0
  153. /package/{esm2015/lib/is-image-attachment.js → esm2020/lib/is-image-attachment.mjs} +0 -0
  154. /package/{esm2015/lib/is-image-file.js → esm2020/lib/is-image-file.mjs} +0 -0
  155. /package/{esm2015/lib/is-on-separate-date.js → esm2020/lib/is-on-separate-date.mjs} +0 -0
  156. /package/{esm2015/lib/list-users.js → esm2020/lib/list-users.mjs} +0 -0
  157. /package/{esm2015/lib/message-input/textarea.interface.js → esm2020/lib/message-input/textarea.interface.mjs} +0 -0
  158. /package/{esm2015/lib/parse-date.js → esm2020/lib/parse-date.mjs} +0 -0
  159. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  160. /package/{esm2015/stream-chat-angular.js → esm2020/stream-chat-angular.mjs} +0 -0
  161. /package/{stream-chat-angular.d.ts → index.d.ts} +0 -0
@@ -1,90 +0,0 @@
1
- import { EventEmitter, Input, Output, } from '@angular/core';
2
- import { Directive } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class TextareaDirective {
5
- constructor(viewContainerRef) {
6
- this.viewContainerRef = viewContainerRef;
7
- this.value = '';
8
- this.valueChange = new EventEmitter();
9
- this.send = new EventEmitter();
10
- this.userMentions = new EventEmitter();
11
- this.subscriptions = [];
12
- this.unpropagatedChanges = [];
13
- }
14
- ngOnChanges(changes) {
15
- var _a, _b;
16
- this.unpropagatedChanges.push(changes);
17
- if (!this.componentRef) {
18
- return;
19
- }
20
- if (changes.componentRef) {
21
- this.subscriptions.forEach((s) => s.unsubscribe());
22
- if (this.componentRef) {
23
- this.subscriptions.push(this.componentRef.instance.valueChange.subscribe((value) => this.valueChange.next(value)));
24
- this.subscriptions.push(this.componentRef.instance.send.subscribe((value) => this.send.next(value)));
25
- if (this.componentRef.instance.userMentions) {
26
- this.subscriptions.push(this.componentRef.instance.userMentions.subscribe((value) => this.userMentions.next(value)));
27
- }
28
- this.componentRef.instance.areMentionsEnabled = this.areMentionsEnabled;
29
- this.componentRef.instance.mentionScope = this.mentionScope;
30
- this.componentRef.instance.value = this.value;
31
- this.componentRef.instance.placeholder = this.placeholder;
32
- this.componentRef.instance.inputMode = this.inputMode;
33
- this.componentRef.instance.autoFocus = this.autoFocus;
34
- }
35
- }
36
- if (changes.areMentionsEnabled) {
37
- this.componentRef.instance.areMentionsEnabled = this.areMentionsEnabled;
38
- }
39
- if (changes.mentionScope) {
40
- this.componentRef.instance.mentionScope = this.mentionScope;
41
- }
42
- if (changes.value) {
43
- this.componentRef.instance.value = this.value;
44
- }
45
- if (changes.placeholder) {
46
- this.componentRef.instance.placeholder = this.placeholder;
47
- }
48
- if (changes.inputMode) {
49
- this.componentRef.instance.inputMode = this.inputMode;
50
- }
51
- if (changes.autoFocus) {
52
- this.componentRef.instance.autoFocus = this.autoFocus;
53
- }
54
- // ngOnChanges not called for dynamic components since we don't use template binding
55
- let changesToPropagate = {};
56
- this.unpropagatedChanges.forEach((c) => (changesToPropagate = Object.assign(Object.assign({}, changesToPropagate), c)));
57
- // eslint-disable-next-line @angular-eslint/no-lifecycle-call
58
- (_b = (_a = this.componentRef.instance).ngOnChanges) === null || _b === void 0 ? void 0 : _b.call(_a, changesToPropagate);
59
- this.unpropagatedChanges = [];
60
- }
61
- }
62
- TextareaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TextareaDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
63
- TextareaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: TextareaDirective, selector: "[streamTextarea]", inputs: { componentRef: "componentRef", areMentionsEnabled: "areMentionsEnabled", mentionScope: "mentionScope", inputMode: "inputMode", value: "value", placeholder: "placeholder", autoFocus: "autoFocus" }, outputs: { valueChange: "valueChange", send: "send", userMentions: "userMentions" }, usesOnChanges: true, ngImport: i0 });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TextareaDirective, decorators: [{
65
- type: Directive,
66
- args: [{
67
- selector: '[streamTextarea]',
68
- }]
69
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { componentRef: [{
70
- type: Input
71
- }], areMentionsEnabled: [{
72
- type: Input
73
- }], mentionScope: [{
74
- type: Input
75
- }], inputMode: [{
76
- type: Input
77
- }], value: [{
78
- type: Input
79
- }], placeholder: [{
80
- type: Input
81
- }], autoFocus: [{
82
- type: Input
83
- }], valueChange: [{
84
- type: Output
85
- }], send: [{
86
- type: Output
87
- }], userMentions: [{
88
- type: Output
89
- }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtaW5wdXQvdGV4dGFyZWEuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVExQyxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQW1CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBUjVDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFHRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUM3RCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDbkMsd0JBQW1CLEdBQW9CLEVBQUUsQ0FBQztJQUNNLENBQUM7SUFFekQsV0FBVyxDQUFDLE9BQXNCOztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUNELElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDbkQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLFlBQVksQ0FB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LElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7OEdBNUVVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7dUdBRVUsWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ2EsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxJQUFJO3NCQUF0QixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyUmVzcG9uc2UgfSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyBUZXh0YXJlYUludGVyZmFjZSB9IGZyb20gJy4vdGV4dGFyZWEuaW50ZXJmYWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N0cmVhbVRleHRhcmVhXScsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29tcG9uZW50UmVmOlxuICAgIHwgQ29tcG9uZW50UmVmPFRleHRhcmVhSW50ZXJmYWNlICYgUGFydGlhbDxPbkNoYW5nZXM+PlxuICAgIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhcmVNZW50aW9uc0VuYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lbnRpb25TY29wZT86ICdjaGFubmVsJyB8ICdhcHBsaWNhdGlvbic7XG4gIEBJbnB1dCgpIGlucHV0TW9kZSE6ICdtb2JpbGUnIHwgJ2Rlc2t0b3AnO1xuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhdXRvRm9jdXMhOiBib29sZWFuO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSB1c2VyTWVudGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXJSZXNwb25zZVtdPigpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgdW5wcm9wYWdhdGVkQ2hhbmdlczogU2ltcGxlQ2hhbmdlc1tdID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnVucHJvcGFnYXRlZENoYW5nZXMucHVzaChjaGFuZ2VzKTtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmNvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh2YWx1ZSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnNlbmQuc3Vic2NyaWJlKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgIHRoaXMuc2VuZC5uZXh0KHZhbHVlKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnVzZXJNZW50aW9ucykge1xuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudXNlck1lbnRpb25zLnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICAgICAgICAgIHRoaXMudXNlck1lbnRpb25zLm5leHQodmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5hcmVNZW50aW9uc0VuYWJsZWQgPSB0aGlzLmFyZU1lbnRpb25zRW5hYmxlZDtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubWVudGlvblNjb3BlID0gdGhpcy5tZW50aW9uU2NvcGU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5pbnB1dE1vZGUgPSB0aGlzLmlucHV0TW9kZTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuYXV0b0ZvY3VzID0gdGhpcy5hdXRvRm9jdXM7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmFyZU1lbnRpb25zRW5hYmxlZCkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuYXJlTWVudGlvbnNFbmFibGVkID0gdGhpcy5hcmVNZW50aW9uc0VuYWJsZWQ7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLm1lbnRpb25TY29wZSkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubWVudGlvblNjb3BlID0gdGhpcy5tZW50aW9uU2NvcGU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnBsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmlucHV0TW9kZSkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaW5wdXRNb2RlID0gdGhpcy5pbnB1dE1vZGU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuYXV0b0ZvY3VzID0gdGhpcy5hdXRvRm9jdXM7XG4gICAgfVxuICAgIC8vIG5nT25DaGFuZ2VzIG5vdCBjYWxsZWQgZm9yIGR5bmFtaWMgY29tcG9uZW50cyBzaW5jZSB3ZSBkb24ndCB1c2UgdGVtcGxhdGUgYmluZGluZ1xuICAgIGxldCBjaGFuZ2VzVG9Qcm9wYWdhdGUgPSB7fTtcbiAgICB0aGlzLnVucHJvcGFnYXRlZENoYW5nZXMuZm9yRWFjaChcbiAgICAgIChjKSA9PiAoY2hhbmdlc1RvUHJvcGFnYXRlID0geyAuLi5jaGFuZ2VzVG9Qcm9wYWdhdGUsIC4uLmMgfSlcbiAgICApO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tbGlmZWN5Y2xlLWNhbGxcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5uZ09uQ2hhbmdlcz8uKGNoYW5nZXNUb1Byb3BhZ2F0ZSk7XG4gICAgdGhpcy51bnByb3BhZ2F0ZWRDaGFuZ2VzID0gW107XG4gIH1cbn1cbiJdfQ==
@@ -1,53 +0,0 @@
1
- export const getGroupStyles = (message, previousMessage, nextMessage, options = {
2
- noGroupByUser: false,
3
- lastReadMessageId: undefined,
4
- noGroupByReadState: false,
5
- }) => {
6
- var _a, _b, _c, _d, _e, _f;
7
- if (options.noGroupByUser ||
8
- (message.attachments && message.attachments.length !== 0))
9
- return 'single';
10
- const isTopMessage = !previousMessage ||
11
- !isOnSameDay(previousMessage.created_at, message.created_at) ||
12
- previousMessage.type === 'system' ||
13
- (previousMessage.attachments &&
14
- ((_a = previousMessage.attachments) === null || _a === void 0 ? void 0 : _a.length) !== 0) ||
15
- ((_b = message.user) === null || _b === void 0 ? void 0 : _b.id) !== ((_c = previousMessage.user) === null || _c === void 0 ? void 0 : _c.id) ||
16
- previousMessage.type === 'error' ||
17
- previousMessage.deleted_at ||
18
- (previousMessage.id === options.lastReadMessageId &&
19
- !options.noGroupByReadState) ||
20
- previousMessage.message_text_updated_at ||
21
- (message.reaction_counts &&
22
- Object.keys(message.reaction_counts).length > 0);
23
- const isBottomMessage = !nextMessage ||
24
- !isOnSameDay(message.created_at, nextMessage.created_at) ||
25
- nextMessage.type === 'system' ||
26
- (nextMessage.attachments && ((_d = nextMessage.attachments) === null || _d === void 0 ? void 0 : _d.length) !== 0) ||
27
- ((_e = message.user) === null || _e === void 0 ? void 0 : _e.id) !== ((_f = nextMessage.user) === null || _f === void 0 ? void 0 : _f.id) ||
28
- nextMessage.type === 'error' ||
29
- nextMessage.deleted_at ||
30
- (message.id === options.lastReadMessageId && !options.noGroupByReadState) ||
31
- message.message_text_updated_at ||
32
- (nextMessage.reaction_counts &&
33
- Object.keys(nextMessage.reaction_counts).length > 0);
34
- if (!isTopMessage && !isBottomMessage) {
35
- if (message.deleted_at || message.type === 'error')
36
- return 'single';
37
- return 'middle';
38
- }
39
- if (isBottomMessage) {
40
- if (isTopMessage || message.deleted_at || message.type === 'error')
41
- return 'single';
42
- return 'bottom';
43
- }
44
- if (isTopMessage)
45
- return 'top';
46
- return '';
47
- };
48
- const isOnSameDay = (date1, date2) => {
49
- return (date1.getFullYear() === date2.getFullYear() &&
50
- date1.getMonth() === date2.getMonth() &&
51
- date1.getDate() === date2.getDate());
52
- };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtc3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtbGlzdC9ncm91cC1zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQzVCLE9BQXNCLEVBQ3RCLGVBQStCLEVBQy9CLFdBQTJCLEVBQzNCLFVBQTZCO0lBQzNCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGlCQUFpQixFQUFFLFNBQVM7SUFDNUIsa0JBQWtCLEVBQUUsS0FBSztDQUMxQixFQUNXLEVBQUU7O0lBQ2QsSUFDRSxPQUFPLENBQUMsYUFBYTtRQUNyQixDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRXpELE9BQU8sUUFBUSxDQUFDO0lBRWxCLE1BQU0sWUFBWSxHQUNoQixDQUFDLGVBQWU7UUFDaEIsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzVELGVBQWUsQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUNqQyxDQUFDLGVBQWUsQ0FBQyxXQUFXO1lBQzFCLENBQUEsTUFBQSxlQUFlLENBQUMsV0FBVywwQ0FBRSxNQUFNLE1BQUssQ0FBQyxDQUFDO1FBQzVDLENBQUEsTUFBQSxPQUFPLENBQUMsSUFBSSwwQ0FBRSxFQUFFLE9BQUssTUFBQSxlQUFlLENBQUMsSUFBSSwwQ0FBRSxFQUFFLENBQUE7UUFDN0MsZUFBZSxDQUFDLElBQUksS0FBSyxPQUFPO1FBQ2hDLGVBQWUsQ0FBQyxVQUFVO1FBQzFCLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsaUJBQWlCO1lBQy9DLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1FBQzlCLGVBQWUsQ0FBQyx1QkFBdUI7UUFDdkMsQ0FBQyxPQUFPLENBQUMsZUFBZTtZQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFckQsTUFBTSxlQUFlLEdBQ25CLENBQUMsV0FBVztRQUNaLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUN4RCxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVE7UUFDN0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLENBQUEsTUFBQSxXQUFXLENBQUMsV0FBVywwQ0FBRSxNQUFNLE1BQUssQ0FBQyxDQUFDO1FBQ2xFLENBQUEsTUFBQSxPQUFPLENBQUMsSUFBSSwwQ0FBRSxFQUFFLE9BQUssTUFBQSxXQUFXLENBQUMsSUFBSSwwQ0FBRSxFQUFFLENBQUE7UUFDekMsV0FBVyxDQUFDLElBQUksS0FBSyxPQUFPO1FBQzVCLFdBQVcsQ0FBQyxVQUFVO1FBQ3RCLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsaUJBQWlCLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDekUsT0FBTyxDQUFDLHVCQUF1QjtRQUMvQixDQUFDLFdBQVcsQ0FBQyxlQUFlO1lBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV6RCxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3JDLElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU87WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUNwRSxPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUVELElBQUksZUFBZSxFQUFFO1FBQ25CLElBQUksWUFBWSxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPO1lBQ2hFLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0lBRUQsSUFBSSxZQUFZO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFL0IsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQVcsRUFBRSxLQUFXLEVBQUUsRUFBRTtJQUMvQyxPQUFPLENBQ0wsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssQ0FBQyxXQUFXLEVBQUU7UUFDM0MsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDckMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDcEMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyb3VwU3R5bGVPcHRpb25zLCBTdHJlYW1NZXNzYWdlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBHcm91cFN0eWxlID0gJycgfCAnbWlkZGxlJyB8ICd0b3AnIHwgJ2JvdHRvbScgfCAnc2luZ2xlJztcblxuZXhwb3J0IGNvbnN0IGdldEdyb3VwU3R5bGVzID0gKFxuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlLFxuICBwcmV2aW91c01lc3NhZ2U/OiBTdHJlYW1NZXNzYWdlLFxuICBuZXh0TWVzc2FnZT86IFN0cmVhbU1lc3NhZ2UsXG4gIG9wdGlvbnM6IEdyb3VwU3R5bGVPcHRpb25zID0ge1xuICAgIG5vR3JvdXBCeVVzZXI6IGZhbHNlLFxuICAgIGxhc3RSZWFkTWVzc2FnZUlkOiB1bmRlZmluZWQsXG4gICAgbm9Hcm91cEJ5UmVhZFN0YXRlOiBmYWxzZSxcbiAgfVxuKTogR3JvdXBTdHlsZSA9PiB7XG4gIGlmIChcbiAgICBvcHRpb25zLm5vR3JvdXBCeVVzZXIgfHxcbiAgICAobWVzc2FnZS5hdHRhY2htZW50cyAmJiBtZXNzYWdlLmF0dGFjaG1lbnRzLmxlbmd0aCAhPT0gMClcbiAgKVxuICAgIHJldHVybiAnc2luZ2xlJztcblxuICBjb25zdCBpc1RvcE1lc3NhZ2UgPVxuICAgICFwcmV2aW91c01lc3NhZ2UgfHxcbiAgICAhaXNPblNhbWVEYXkocHJldmlvdXNNZXNzYWdlLmNyZWF0ZWRfYXQsIG1lc3NhZ2UuY3JlYXRlZF9hdCkgfHxcbiAgICBwcmV2aW91c01lc3NhZ2UudHlwZSA9PT0gJ3N5c3RlbScgfHxcbiAgICAocHJldmlvdXNNZXNzYWdlLmF0dGFjaG1lbnRzICYmXG4gICAgICBwcmV2aW91c01lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aCAhPT0gMCkgfHxcbiAgICBtZXNzYWdlLnVzZXI/LmlkICE9PSBwcmV2aW91c01lc3NhZ2UudXNlcj8uaWQgfHxcbiAgICBwcmV2aW91c01lc3NhZ2UudHlwZSA9PT0gJ2Vycm9yJyB8fFxuICAgIHByZXZpb3VzTWVzc2FnZS5kZWxldGVkX2F0IHx8XG4gICAgKHByZXZpb3VzTWVzc2FnZS5pZCA9PT0gb3B0aW9ucy5sYXN0UmVhZE1lc3NhZ2VJZCAmJlxuICAgICAgIW9wdGlvbnMubm9Hcm91cEJ5UmVhZFN0YXRlKSB8fFxuICAgIHByZXZpb3VzTWVzc2FnZS5tZXNzYWdlX3RleHRfdXBkYXRlZF9hdCB8fFxuICAgIChtZXNzYWdlLnJlYWN0aW9uX2NvdW50cyAmJlxuICAgICAgT2JqZWN0LmtleXMobWVzc2FnZS5yZWFjdGlvbl9jb3VudHMpLmxlbmd0aCA+IDApO1xuXG4gIGNvbnN0IGlzQm90dG9tTWVzc2FnZSA9XG4gICAgIW5leHRNZXNzYWdlIHx8XG4gICAgIWlzT25TYW1lRGF5KG1lc3NhZ2UuY3JlYXRlZF9hdCwgbmV4dE1lc3NhZ2UuY3JlYXRlZF9hdCkgfHxcbiAgICBuZXh0TWVzc2FnZS50eXBlID09PSAnc3lzdGVtJyB8fFxuICAgIChuZXh0TWVzc2FnZS5hdHRhY2htZW50cyAmJiBuZXh0TWVzc2FnZS5hdHRhY2htZW50cz8ubGVuZ3RoICE9PSAwKSB8fFxuICAgIG1lc3NhZ2UudXNlcj8uaWQgIT09IG5leHRNZXNzYWdlLnVzZXI/LmlkIHx8XG4gICAgbmV4dE1lc3NhZ2UudHlwZSA9PT0gJ2Vycm9yJyB8fFxuICAgIG5leHRNZXNzYWdlLmRlbGV0ZWRfYXQgfHxcbiAgICAobWVzc2FnZS5pZCA9PT0gb3B0aW9ucy5sYXN0UmVhZE1lc3NhZ2VJZCAmJiAhb3B0aW9ucy5ub0dyb3VwQnlSZWFkU3RhdGUpIHx8XG4gICAgbWVzc2FnZS5tZXNzYWdlX3RleHRfdXBkYXRlZF9hdCB8fFxuICAgIChuZXh0TWVzc2FnZS5yZWFjdGlvbl9jb3VudHMgJiZcbiAgICAgIE9iamVjdC5rZXlzKG5leHRNZXNzYWdlLnJlYWN0aW9uX2NvdW50cykubGVuZ3RoID4gMCk7XG5cbiAgaWYgKCFpc1RvcE1lc3NhZ2UgJiYgIWlzQm90dG9tTWVzc2FnZSkge1xuICAgIGlmIChtZXNzYWdlLmRlbGV0ZWRfYXQgfHwgbWVzc2FnZS50eXBlID09PSAnZXJyb3InKSByZXR1cm4gJ3NpbmdsZSc7XG4gICAgcmV0dXJuICdtaWRkbGUnO1xuICB9XG5cbiAgaWYgKGlzQm90dG9tTWVzc2FnZSkge1xuICAgIGlmIChpc1RvcE1lc3NhZ2UgfHwgbWVzc2FnZS5kZWxldGVkX2F0IHx8IG1lc3NhZ2UudHlwZSA9PT0gJ2Vycm9yJylcbiAgICAgIHJldHVybiAnc2luZ2xlJztcbiAgICByZXR1cm4gJ2JvdHRvbSc7XG4gIH1cblxuICBpZiAoaXNUb3BNZXNzYWdlKSByZXR1cm4gJ3RvcCc7XG5cbiAgcmV0dXJuICcnO1xufTtcblxuY29uc3QgaXNPblNhbWVEYXkgPSAoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSA9PiB7XG4gIHJldHVybiAoXG4gICAgZGF0ZTEuZ2V0RnVsbFllYXIoKSA9PT0gZGF0ZTIuZ2V0RnVsbFllYXIoKSAmJlxuICAgIGRhdGUxLmdldE1vbnRoKCkgPT09IGRhdGUyLmdldE1vbnRoKCkgJiZcbiAgICBkYXRlMS5nZXREYXRlKCkgPT09IGRhdGUyLmdldERhdGUoKVxuICApO1xufTtcbiJdfQ==