@banta/sdk 5.3.0 → 5.4.0

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 (138) hide show
  1. package/{esm2022 → esm2020}/banta-sdk.mjs +4 -4
  2. package/{esm2022 → esm2020}/lib/attachment-scraper.mjs +1 -1
  3. package/esm2020/lib/banta/banta.component.mjs +204 -0
  4. package/{esm2022 → esm2020}/lib/banta-logo.component.mjs +11 -11
  5. package/{esm2022 → esm2020}/lib/banta-sdk.module.mjs +135 -135
  6. package/esm2020/lib/chat/banta-chat/banta-chat.component.mjs +209 -0
  7. package/esm2020/lib/chat/chat-message/chat-message.component.mjs +62 -0
  8. package/esm2020/lib/chat/chat-view/chat-view.component.mjs +170 -0
  9. package/{esm2022 → esm2020}/lib/chat/chat.module.mjs +51 -51
  10. package/{esm2022 → esm2020}/lib/chat/index.mjs +5 -5
  11. package/esm2020/lib/chat/live-chat-message.component.mjs +80 -0
  12. package/{esm2022 → esm2020}/lib/chat-backend-base.mjs +30 -30
  13. package/esm2020/lib/chat-backend.mjs +194 -0
  14. package/{esm2022 → esm2020}/lib/chat-source-base.mjs +1 -1
  15. package/esm2020/lib/chat-source.mjs +233 -0
  16. package/esm2020/lib/comments/attachment-button/attachment-button.component.mjs +76 -0
  17. package/esm2020/lib/comments/attachment-scraper.directive.mjs +107 -0
  18. package/esm2020/lib/comments/banta-comments/banta-comments.component.mjs +749 -0
  19. package/esm2020/lib/comments/comment/comment.component.mjs +175 -0
  20. package/esm2020/lib/comments/comment-field/comment-field.component.mjs +401 -0
  21. package/esm2020/lib/comments/comment-sort/comment-sort.component.mjs +37 -0
  22. package/esm2020/lib/comments/comment-view/comment-view.component.mjs +470 -0
  23. package/{esm2022 → esm2020}/lib/comments/comments.module.mjs +111 -111
  24. package/{esm2022 → esm2020}/lib/comments/index.mjs +10 -10
  25. package/esm2020/lib/comments/live-comment.component.mjs +80 -0
  26. package/{esm2022 → esm2020}/lib/comments/reply-send-options.directive.mjs +13 -13
  27. package/esm2020/lib/common/attachment/attachment.component.mjs +128 -0
  28. package/{esm2022 → esm2020}/lib/common/attachments/attachments.component.mjs +75 -75
  29. package/{esm2022 → esm2020}/lib/common/common.module.mjs +68 -68
  30. package/{esm2022 → esm2020}/lib/common/index.mjs +10 -10
  31. package/{esm2022 → esm2020}/lib/common/lazy-connection.mjs +14 -14
  32. package/esm2020/lib/common/lightbox/lightbox.component.mjs +31 -0
  33. package/esm2020/lib/common/markdown-to-html.pipe.mjs +88 -0
  34. package/esm2020/lib/common/mention-linker.pipe.mjs +35 -0
  35. package/esm2020/lib/common/timer-pool.service.mjs +83 -0
  36. package/esm2020/lib/common/timestamp.component.mjs +123 -0
  37. package/{esm2022 → esm2020}/lib/common/trust-resource-url.pipe.mjs +22 -22
  38. package/esm2020/lib/emoji/emoji-selector-button.component.mjs +116 -0
  39. package/esm2020/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +98 -0
  40. package/{esm2022 → esm2020}/lib/emoji/emoji.module.mjs +55 -55
  41. package/{esm2022 → esm2020}/lib/emoji/emojis.mjs +6507 -6507
  42. package/{esm2022 → esm2020}/lib/emoji/index.mjs +4 -4
  43. package/esm2020/lib/giphy-attachments.mjs +16 -0
  44. package/{esm2022 → esm2020}/lib/index.mjs +19 -19
  45. package/{esm2022 → esm2020}/lib/live-message.component.mjs +61 -61
  46. package/{esm2022 → esm2020}/lib/message-menu-item.mjs +1 -1
  47. package/{esm2022 → esm2020}/lib/sdk-options.mjs +1 -1
  48. package/esm2020/lib/static-chat-source.mjs +71 -0
  49. package/esm2020/lib/tweet-attachments.mjs +13 -0
  50. package/esm2020/lib/url-attachments.mjs +42 -0
  51. package/esm2020/lib/youtube-attachments.mjs +29 -0
  52. package/{esm2022 → esm2020}/public-api.mjs +4 -4
  53. package/fesm2015/banta-sdk.mjs +11258 -0
  54. package/fesm2015/banta-sdk.mjs.map +1 -0
  55. package/{fesm2022 → fesm2020}/banta-sdk.mjs +10823 -10822
  56. package/fesm2020/banta-sdk.mjs.map +1 -0
  57. package/index.d.ts +5 -5
  58. package/lib/attachment-scraper.d.ts +15 -15
  59. package/lib/banta/banta.component.d.ts +58 -58
  60. package/lib/banta-logo.component.d.ts +5 -5
  61. package/lib/banta-sdk.module.d.ts +31 -31
  62. package/lib/chat/banta-chat/banta-chat.component.d.ts +79 -79
  63. package/lib/chat/chat-message/chat-message.component.d.ts +21 -21
  64. package/lib/chat/chat-view/chat-view.component.d.ts +52 -52
  65. package/lib/chat/chat.module.d.ts +15 -15
  66. package/lib/chat/index.d.ts +5 -5
  67. package/lib/chat/live-chat-message.component.d.ts +23 -23
  68. package/lib/chat-backend-base.d.ts +72 -72
  69. package/lib/chat-backend.d.ts +67 -67
  70. package/lib/chat-source-base.d.ts +44 -44
  71. package/lib/chat-source.d.ts +65 -65
  72. package/lib/comments/attachment-button/attachment-button.component.d.ts +17 -17
  73. package/lib/comments/attachment-scraper.directive.d.ts +21 -21
  74. package/lib/comments/banta-comments/banta-comments.component.d.ts +203 -203
  75. package/lib/comments/comment/comment.component.d.ts +72 -72
  76. package/lib/comments/comment-field/comment-field.component.d.ts +89 -89
  77. package/lib/comments/comment-sort/comment-sort.component.d.ts +16 -16
  78. package/lib/comments/comment-view/comment-view.component.d.ts +121 -121
  79. package/lib/comments/comments.module.d.ts +30 -30
  80. package/lib/comments/index.d.ts +10 -10
  81. package/lib/comments/live-comment.component.d.ts +23 -23
  82. package/lib/comments/reply-send-options.directive.d.ts +5 -5
  83. package/lib/common/attachment/attachment.component.d.ts +34 -34
  84. package/lib/common/attachments/attachments.component.d.ts +26 -26
  85. package/lib/common/common.module.d.ts +19 -19
  86. package/lib/common/index.d.ts +10 -10
  87. package/lib/common/lazy-connection.d.ts +6 -6
  88. package/lib/common/lightbox/lightbox.component.d.ts +14 -14
  89. package/lib/common/markdown-to-html.pipe.d.ts +15 -15
  90. package/lib/common/mention-linker.pipe.d.ts +13 -13
  91. package/lib/common/timer-pool.service.d.ts +15 -15
  92. package/lib/common/timestamp.component.d.ts +19 -19
  93. package/lib/common/trust-resource-url.pipe.d.ts +10 -10
  94. package/lib/emoji/emoji-selector-button.component.d.ts +30 -30
  95. package/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.d.ts +26 -26
  96. package/lib/emoji/emoji.module.d.ts +16 -16
  97. package/lib/emoji/emojis.d.ts +6507 -6507
  98. package/lib/emoji/index.d.ts +4 -4
  99. package/lib/giphy-attachments.d.ts +5 -5
  100. package/lib/index.d.ts +19 -19
  101. package/lib/live-message.component.d.ts +22 -22
  102. package/lib/message-menu-item.d.ts +6 -6
  103. package/lib/sdk-options.d.ts +5 -5
  104. package/lib/static-chat-source.d.ts +42 -42
  105. package/lib/tweet-attachments.d.ts +5 -5
  106. package/lib/url-attachments.d.ts +14 -14
  107. package/lib/youtube-attachments.d.ts +5 -5
  108. package/package.json +11 -5
  109. package/public-api.d.ts +1 -1
  110. package/esm2022/lib/banta/banta.component.mjs +0 -204
  111. package/esm2022/lib/chat/banta-chat/banta-chat.component.mjs +0 -209
  112. package/esm2022/lib/chat/chat-message/chat-message.component.mjs +0 -62
  113. package/esm2022/lib/chat/chat-view/chat-view.component.mjs +0 -170
  114. package/esm2022/lib/chat/live-chat-message.component.mjs +0 -80
  115. package/esm2022/lib/chat-backend.mjs +0 -194
  116. package/esm2022/lib/chat-source.mjs +0 -233
  117. package/esm2022/lib/comments/attachment-button/attachment-button.component.mjs +0 -76
  118. package/esm2022/lib/comments/attachment-scraper.directive.mjs +0 -107
  119. package/esm2022/lib/comments/banta-comments/banta-comments.component.mjs +0 -748
  120. package/esm2022/lib/comments/comment/comment.component.mjs +0 -175
  121. package/esm2022/lib/comments/comment-field/comment-field.component.mjs +0 -401
  122. package/esm2022/lib/comments/comment-sort/comment-sort.component.mjs +0 -37
  123. package/esm2022/lib/comments/comment-view/comment-view.component.mjs +0 -470
  124. package/esm2022/lib/comments/live-comment.component.mjs +0 -80
  125. package/esm2022/lib/common/attachment/attachment.component.mjs +0 -128
  126. package/esm2022/lib/common/lightbox/lightbox.component.mjs +0 -31
  127. package/esm2022/lib/common/markdown-to-html.pipe.mjs +0 -88
  128. package/esm2022/lib/common/mention-linker.pipe.mjs +0 -35
  129. package/esm2022/lib/common/timer-pool.service.mjs +0 -83
  130. package/esm2022/lib/common/timestamp.component.mjs +0 -123
  131. package/esm2022/lib/emoji/emoji-selector-button.component.mjs +0 -115
  132. package/esm2022/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +0 -98
  133. package/esm2022/lib/giphy-attachments.mjs +0 -16
  134. package/esm2022/lib/static-chat-source.mjs +0 -71
  135. package/esm2022/lib/tweet-attachments.mjs +0 -13
  136. package/esm2022/lib/url-attachments.mjs +0 -42
  137. package/esm2022/lib/youtube-attachments.mjs +0 -29
  138. package/fesm2022/banta-sdk.mjs.map +0 -1
@@ -1,203 +1,203 @@
1
- import { ElementRef, NgZone, QueryList } from '@angular/core';
2
- import { User, ChatMessage } from '@banta/common';
3
- import { HashTag } from '../comment-field/comment-field.component';
4
- import { Subject, Observable } from 'rxjs';
5
- import { ActivatedRoute } from '@angular/router';
6
- import { ChatBackendBase } from '../../chat-backend-base';
7
- import { ChatSourceBase } from '../../chat-source-base';
8
- import { MatSnackBar } from '@angular/material/snack-bar';
9
- import { MessageMenuItem } from '../../message-menu-item';
10
- import { CommentViewComponent } from '../comment-view/comment-view.component';
11
- import { CommentComponent } from '../comment/comment.component';
12
- import * as i0 from "@angular/core";
13
- /**
14
- * Comments component
15
- */
16
- export declare class BantaCommentsComponent {
17
- private backend;
18
- private elementRef;
19
- private activatedRoute;
20
- private matSnackBar;
21
- private ngZone;
22
- constructor(backend: ChatBackendBase, elementRef: ElementRef<HTMLElement>, activatedRoute: ActivatedRoute, matSnackBar: MatSnackBar, ngZone: NgZone);
23
- get element(): HTMLElement;
24
- private handleBackendExceptionAsAlert;
25
- private handleBackendExceptionAsSnack;
26
- private handleBackendException;
27
- ngOnInit(): void;
28
- private resizeObserver;
29
- private width;
30
- private height;
31
- isMobileSized: boolean;
32
- sendReplyOptionsTemplate: any;
33
- markViewReady: () => void;
34
- viewReady: Promise<void>;
35
- ngAfterViewInit(): void;
36
- ngOnDestroy(): void;
37
- private setSourceFromTopicID;
38
- loadingTitle: string;
39
- private _loadingMessage;
40
- loadingMessageVisible: boolean;
41
- get loadingMessage(): string;
42
- set loadingMessage(value: string);
43
- loading: boolean;
44
- showLoadingScreen: boolean;
45
- loadingStartedAt: number;
46
- messageChangedAt: number;
47
- sharedCommentID: string;
48
- lastSharedCommentID: string;
49
- customMenuItems: MessageMenuItem[];
50
- private startLoading;
51
- private _loadingTimer;
52
- private _loadingMessageIndex;
53
- /**
54
- * The canonical URL where this comment section can be found. If not specified, uses the current URL.
55
- */
56
- url: string;
57
- maxCommentLength: number;
58
- loadingMessages: string[];
59
- useInlineReplies: boolean;
60
- /**
61
- * Access the CommentViewComponent for this BantaCommentsComponent.
62
- * CommentViewComponent is responsible for interacting with the ChatSource
63
- * object and rendering comments as CommentComponents. It is the source of
64
- * truth for which CommentComponent corresponds to which ChatMessage.
65
- *
66
- * Note that this CommentViewComponent is only for the top level comments.
67
- * Replies are handled by a separate CommentViewComponent which can be
68
- * retrieved using the threadView property.
69
- */
70
- commentView: CommentViewComponent;
71
- threadViewQuery: QueryList<CommentViewComponent>;
72
- /**
73
- * Attempts to find the CommentComponent that corresponds to the given ChatMessage.
74
- * The ChatMessage could be a top-level message in this conversation, or a reply,
75
- * but note that a CommentComponent will only exist for a reply if the user has
76
- * the relevant reply thread open.
77
- * @param message The message to look for
78
- */
79
- getCommentComponentForMessage(message: ChatMessage): CommentComponent;
80
- /**
81
- * Access the CommentViewComponent corresponding to the currently open reply thread.
82
- * This is not the top level comments, but instead the reply thread that the user has
83
- * opened (only one set of replies can be open at a time).
84
- *
85
- * For details about what CommentViewComponent affords you, see the commentView property.
86
- */
87
- get threadView(): CommentViewComponent;
88
- waitForThreadView(): Promise<CommentViewComponent>;
89
- markLoaded: () => void;
90
- loaded: Promise<void>;
91
- private updateLoading;
92
- private _signInSelected;
93
- private _permissionDeniedError;
94
- private _editAvatarSelected;
95
- private _upvoted;
96
- private _reported;
97
- private _selected;
98
- private _userSelected;
99
- private _shared;
100
- private _usernameSelected;
101
- private _avatarSelected;
102
- private _source;
103
- /**
104
- * Track whether we created this source. If we did not (ie it was passed in from the caller),
105
- * then we are not responsible for calling close(). If we do own it though, we will call close()
106
- * when we are done with it.
107
- */
108
- private _sourceIsOwned;
109
- private _subs;
110
- private _topicID;
111
- user: User;
112
- selectedMessage: ChatMessage;
113
- selectedMessageThread: ChatSourceBase;
114
- selectedMessageVisible: boolean;
115
- connectionState: string;
116
- signInLabel: string;
117
- sendLabel: string;
118
- signingInLabel: string;
119
- replyLabel: string;
120
- sendingLabel: string;
121
- permissionDeniedLabel: string;
122
- postCommentLabel: string;
123
- postReplyLabel: string;
124
- allowAttachments: boolean;
125
- fixedHeight: boolean;
126
- maxMessages: number;
127
- maxVisibleMessages: number;
128
- genericAvatarUrl: string;
129
- shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSourceBase) => boolean | Promise<boolean>;
130
- participants: User[];
131
- private _sourceSubscription;
132
- get source(): ChatSourceBase;
133
- set source(value: ChatSourceBase);
134
- hashtags: HashTag[];
135
- get topicID(): string;
136
- set topicID(value: string);
137
- get signInSelected(): Observable<void>;
138
- get editAvatarSelected(): Subject<void>;
139
- get permissionDeniedError(): Observable<string>;
140
- get upvoted(): Observable<ChatMessage>;
141
- get reported(): Observable<ChatMessage>;
142
- get selected(): Observable<ChatMessage>;
143
- get userSelected(): Observable<ChatMessage>;
144
- get usernameSelected(): Observable<User>;
145
- get avatarSelected(): Observable<User>;
146
- get shared(): Observable<ChatMessage>;
147
- private _reloadSourceTimeout;
148
- private reloadSource;
149
- private _sortOrder;
150
- get sortOrder(): "newest" | "oldest" | "likes";
151
- set sortOrder(value: "newest" | "oldest" | "likes");
152
- private _filterMode;
153
- get filterMode(): string;
154
- set filterMode(value: string);
155
- private _metadata;
156
- /**
157
- * Arbitrary metadata to send to the chat server. This can be used to provide context about the client to the server
158
- * for things like validating authorization and other uses.
159
- */
160
- get metadata(): Record<string, any>;
161
- set metadata(value: Record<string, any>);
162
- get filterModes(): string[];
163
- get filterModeLabels(): {
164
- all: string;
165
- mine: string;
166
- threads: string;
167
- "my-likes": string;
168
- };
169
- get sortOrders(): readonly ["newest", "oldest", "likes"];
170
- get sortOrderLabels(): {
171
- newest: string;
172
- oldest: string;
173
- likes: string;
174
- };
175
- sendMessage: (message: ChatMessage) => void;
176
- sendReply: (message: ChatMessage) => void;
177
- scrollToComment(commentId: ChatMessage['id']): Promise<void>;
178
- loadingSharedComment: boolean;
179
- sharedCommentMissing: boolean;
180
- navigateToSharedComment(id: string): Promise<void>;
181
- handlePermissionDenied(errorMessage: string): void;
182
- sendPermissionDenied(message: string): void;
183
- scrollToMessage(message: ChatMessage): void;
184
- private addParticipant;
185
- likeMessage(source: ChatSourceBase, message: ChatMessage): Promise<void>;
186
- unlikeMessage(source: ChatSourceBase, message: ChatMessage): Promise<void>;
187
- reportMessage(message: ChatMessage): Promise<void>;
188
- unselectMessage(): Promise<void>;
189
- toggleSelectedMessage(message: ChatMessage): Promise<void>;
190
- selectMessage(message: ChatMessage): Promise<ChatSourceBase>;
191
- showSignIn(): Promise<void>;
192
- showEditAvatar(): Promise<void>;
193
- selectMessageUser(message: ChatMessage): Promise<void>;
194
- selectUsername(user: User): Promise<void>;
195
- selectAvatar(user: User): Promise<void>;
196
- shareMessage(message: ChatMessage): Promise<void>;
197
- deleteMessage(message: ChatMessage): Promise<void>;
198
- editMessage(source: ChatSourceBase, message: ChatMessage, newText: string): Promise<void>;
199
- startEditing(message: ChatMessage): Promise<void>;
200
- saveEdit(message: ChatMessage, text: string): Promise<void>;
201
- static ɵfac: i0.ɵɵFactoryDeclaration<BantaCommentsComponent, never>;
202
- static ɵcmp: i0.ɵɵComponentDeclaration<BantaCommentsComponent, "banta-comments", never, { "customMenuItems": { "alias": "customMenuItems"; "required": false; }; "url": { "alias": "url"; "required": false; }; "maxCommentLength": { "alias": "maxCommentLength"; "required": false; }; "loadingMessages": { "alias": "loadingMessages"; "required": false; }; "useInlineReplies": { "alias": "useInlineReplies"; "required": false; }; "signInLabel": { "alias": "signInLabel"; "required": false; }; "sendLabel": { "alias": "sendLabel"; "required": false; }; "signingInLabel": { "alias": "signingInLabel"; "required": false; }; "replyLabel": { "alias": "replyLabel"; "required": false; }; "sendingLabel": { "alias": "sendingLabel"; "required": false; }; "permissionDeniedLabel": { "alias": "permissionDeniedLabel"; "required": false; }; "postCommentLabel": { "alias": "postCommentLabel"; "required": false; }; "postReplyLabel": { "alias": "postReplyLabel"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "fixedHeight": { "alias": "fixedHeight"; "required": false; }; "maxMessages": { "alias": "maxMessages"; "required": false; }; "maxVisibleMessages": { "alias": "maxVisibleMessages"; "required": false; }; "genericAvatarUrl": { "alias": "genericAvatarUrl"; "required": false; }; "shouldInterceptMessageSend": { "alias": "shouldInterceptMessageSend"; "required": false; }; "participants": { "alias": "participants"; "required": false; }; "source": { "alias": "source"; "required": false; }; "hashtags": { "alias": "hashtags"; "required": false; }; "topicID": { "alias": "topicID"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "filterMode": { "alias": "filterMode"; "required": false; }; "metadata": { "alias": "metadata"; "required": false; }; }, { "signInSelected": "signInSelected"; "editAvatarSelected": "editAvatarSelected"; "permissionDeniedError": "permissionDeniedError"; "upvoted": "upvoted"; "reported": "reported"; "selected": "selected"; "userSelected": "userSelected"; "usernameSelected": "usernameSelected"; "avatarSelected": "avatarSelected"; "shared": "shared"; }, ["sendReplyOptionsTemplate"], never, false, never>;
203
- }
1
+ import { ElementRef, NgZone, QueryList } from '@angular/core';
2
+ import { User, ChatMessage } from '@banta/common';
3
+ import { HashTag } from '../comment-field/comment-field.component';
4
+ import { Subject, Observable } from 'rxjs';
5
+ import { ActivatedRoute } from '@angular/router';
6
+ import { ChatBackendBase } from '../../chat-backend-base';
7
+ import { ChatSourceBase } from '../../chat-source-base';
8
+ import { MatSnackBar } from '@angular/material/snack-bar';
9
+ import { MessageMenuItem } from '../../message-menu-item';
10
+ import { CommentViewComponent } from '../comment-view/comment-view.component';
11
+ import { CommentComponent } from '../comment/comment.component';
12
+ import * as i0 from "@angular/core";
13
+ /**
14
+ * Comments component
15
+ */
16
+ export declare class BantaCommentsComponent {
17
+ private backend;
18
+ private elementRef;
19
+ private activatedRoute;
20
+ private matSnackBar;
21
+ private ngZone;
22
+ constructor(backend: ChatBackendBase, elementRef: ElementRef<HTMLElement>, activatedRoute: ActivatedRoute, matSnackBar: MatSnackBar, ngZone: NgZone);
23
+ get element(): HTMLElement;
24
+ private handleBackendExceptionAsAlert;
25
+ private handleBackendExceptionAsSnack;
26
+ private handleBackendException;
27
+ ngOnInit(): void;
28
+ private resizeObserver;
29
+ private width;
30
+ private height;
31
+ isMobileSized: boolean;
32
+ sendReplyOptionsTemplate: any;
33
+ markViewReady: () => void;
34
+ viewReady: Promise<void>;
35
+ ngAfterViewInit(): void;
36
+ ngOnDestroy(): void;
37
+ private setSourceFromTopicID;
38
+ loadingTitle: string;
39
+ private _loadingMessage;
40
+ loadingMessageVisible: boolean;
41
+ get loadingMessage(): string;
42
+ set loadingMessage(value: string);
43
+ loading: boolean;
44
+ showLoadingScreen: boolean;
45
+ loadingStartedAt: number;
46
+ messageChangedAt: number;
47
+ sharedCommentID: string;
48
+ lastSharedCommentID: string;
49
+ customMenuItems: MessageMenuItem[];
50
+ private startLoading;
51
+ private _loadingTimer;
52
+ private _loadingMessageIndex;
53
+ /**
54
+ * The canonical URL where this comment section can be found. If not specified, uses the current URL.
55
+ */
56
+ url: string;
57
+ maxCommentLength: number;
58
+ loadingMessages: string[];
59
+ useInlineReplies: boolean;
60
+ /**
61
+ * Access the CommentViewComponent for this BantaCommentsComponent.
62
+ * CommentViewComponent is responsible for interacting with the ChatSource
63
+ * object and rendering comments as CommentComponents. It is the source of
64
+ * truth for which CommentComponent corresponds to which ChatMessage.
65
+ *
66
+ * Note that this CommentViewComponent is only for the top level comments.
67
+ * Replies are handled by a separate CommentViewComponent which can be
68
+ * retrieved using the threadView property.
69
+ */
70
+ commentView: CommentViewComponent;
71
+ threadViewQuery: QueryList<CommentViewComponent>;
72
+ /**
73
+ * Attempts to find the CommentComponent that corresponds to the given ChatMessage.
74
+ * The ChatMessage could be a top-level message in this conversation, or a reply,
75
+ * but note that a CommentComponent will only exist for a reply if the user has
76
+ * the relevant reply thread open.
77
+ * @param message The message to look for
78
+ */
79
+ getCommentComponentForMessage(message: ChatMessage): CommentComponent;
80
+ /**
81
+ * Access the CommentViewComponent corresponding to the currently open reply thread.
82
+ * This is not the top level comments, but instead the reply thread that the user has
83
+ * opened (only one set of replies can be open at a time).
84
+ *
85
+ * For details about what CommentViewComponent affords you, see the commentView property.
86
+ */
87
+ get threadView(): CommentViewComponent;
88
+ waitForThreadView(): Promise<CommentViewComponent>;
89
+ markLoaded: () => void;
90
+ loaded: Promise<void>;
91
+ private updateLoading;
92
+ private _signInSelected;
93
+ private _permissionDeniedError;
94
+ private _editAvatarSelected;
95
+ private _upvoted;
96
+ private _reported;
97
+ private _selected;
98
+ private _userSelected;
99
+ private _shared;
100
+ private _usernameSelected;
101
+ private _avatarSelected;
102
+ private _source;
103
+ /**
104
+ * Track whether we created this source. If we did not (ie it was passed in from the caller),
105
+ * then we are not responsible for calling close(). If we do own it though, we will call close()
106
+ * when we are done with it.
107
+ */
108
+ private _sourceIsOwned;
109
+ private _subs;
110
+ private _topicID;
111
+ user: User;
112
+ selectedMessage: ChatMessage;
113
+ selectedMessageThread: ChatSourceBase;
114
+ selectedMessageVisible: boolean;
115
+ connectionState: string;
116
+ signInLabel: string;
117
+ sendLabel: string;
118
+ signingInLabel: string;
119
+ replyLabel: string;
120
+ sendingLabel: string;
121
+ permissionDeniedLabel: string;
122
+ postCommentLabel: string;
123
+ postReplyLabel: string;
124
+ allowAttachments: boolean;
125
+ fixedHeight: boolean;
126
+ maxMessages: number;
127
+ maxVisibleMessages: number;
128
+ genericAvatarUrl: string;
129
+ shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSourceBase) => boolean | Promise<boolean>;
130
+ participants: User[];
131
+ private _sourceSubscription;
132
+ get source(): ChatSourceBase;
133
+ set source(value: ChatSourceBase);
134
+ hashtags: HashTag[];
135
+ get topicID(): string;
136
+ set topicID(value: string);
137
+ get signInSelected(): Observable<void>;
138
+ get editAvatarSelected(): Subject<void>;
139
+ get permissionDeniedError(): Observable<string>;
140
+ get upvoted(): Observable<ChatMessage>;
141
+ get reported(): Observable<ChatMessage>;
142
+ get selected(): Observable<ChatMessage>;
143
+ get userSelected(): Observable<ChatMessage>;
144
+ get usernameSelected(): Observable<User>;
145
+ get avatarSelected(): Observable<User>;
146
+ get shared(): Observable<ChatMessage>;
147
+ private _reloadSourceTimeout;
148
+ private reloadSource;
149
+ private _sortOrder;
150
+ get sortOrder(): "newest" | "oldest" | "likes";
151
+ set sortOrder(value: "newest" | "oldest" | "likes");
152
+ private _filterMode;
153
+ get filterMode(): string;
154
+ set filterMode(value: string);
155
+ private _metadata;
156
+ /**
157
+ * Arbitrary metadata to send to the chat server. This can be used to provide context about the client to the server
158
+ * for things like validating authorization and other uses.
159
+ */
160
+ get metadata(): Record<string, any>;
161
+ set metadata(value: Record<string, any>);
162
+ get filterModes(): string[];
163
+ get filterModeLabels(): {
164
+ all: string;
165
+ mine: string;
166
+ threads: string;
167
+ "my-likes": string;
168
+ };
169
+ get sortOrders(): readonly ["newest", "oldest", "likes"];
170
+ get sortOrderLabels(): {
171
+ newest: string;
172
+ oldest: string;
173
+ likes: string;
174
+ };
175
+ sendMessage: (message: ChatMessage) => void;
176
+ sendReply: (message: ChatMessage) => void;
177
+ scrollToComment(commentId: ChatMessage['id']): Promise<void>;
178
+ loadingSharedComment: boolean;
179
+ sharedCommentMissing: boolean;
180
+ navigateToSharedComment(id: string): Promise<void>;
181
+ handlePermissionDenied(errorMessage: string): void;
182
+ sendPermissionDenied(message: string): void;
183
+ scrollToMessage(message: ChatMessage): void;
184
+ private addParticipant;
185
+ likeMessage(source: ChatSourceBase, message: ChatMessage): Promise<void>;
186
+ unlikeMessage(source: ChatSourceBase, message: ChatMessage): Promise<void>;
187
+ reportMessage(message: ChatMessage): Promise<void>;
188
+ unselectMessage(): Promise<void>;
189
+ toggleSelectedMessage(message: ChatMessage): Promise<void>;
190
+ selectMessage(message: ChatMessage): Promise<ChatSourceBase>;
191
+ showSignIn(): Promise<void>;
192
+ showEditAvatar(): Promise<void>;
193
+ selectMessageUser(message: ChatMessage): Promise<void>;
194
+ selectUsername(user: User): Promise<void>;
195
+ selectAvatar(user: User): Promise<void>;
196
+ shareMessage(message: ChatMessage): Promise<void>;
197
+ deleteMessage(message: ChatMessage): Promise<void>;
198
+ editMessage(source: ChatSourceBase, message: ChatMessage, newText: string): Promise<void>;
199
+ startEditing(message: ChatMessage): Promise<void>;
200
+ saveEdit(message: ChatMessage, text: string): Promise<void>;
201
+ static ɵfac: i0.ɵɵFactoryDeclaration<BantaCommentsComponent, never>;
202
+ static ɵcmp: i0.ɵɵComponentDeclaration<BantaCommentsComponent, "banta-comments", never, { "customMenuItems": "customMenuItems"; "url": "url"; "maxCommentLength": "maxCommentLength"; "loadingMessages": "loadingMessages"; "useInlineReplies": "useInlineReplies"; "signInLabel": "signInLabel"; "sendLabel": "sendLabel"; "signingInLabel": "signingInLabel"; "replyLabel": "replyLabel"; "sendingLabel": "sendingLabel"; "permissionDeniedLabel": "permissionDeniedLabel"; "postCommentLabel": "postCommentLabel"; "postReplyLabel": "postReplyLabel"; "allowAttachments": "allowAttachments"; "fixedHeight": "fixedHeight"; "maxMessages": "maxMessages"; "maxVisibleMessages": "maxVisibleMessages"; "genericAvatarUrl": "genericAvatarUrl"; "shouldInterceptMessageSend": "shouldInterceptMessageSend"; "participants": "participants"; "source": "source"; "hashtags": "hashtags"; "topicID": "topicID"; "sortOrder": "sortOrder"; "filterMode": "filterMode"; "metadata": "metadata"; }, { "signInSelected": "signInSelected"; "editAvatarSelected": "editAvatarSelected"; "permissionDeniedError": "permissionDeniedError"; "upvoted": "upvoted"; "reported": "reported"; "selected": "selected"; "userSelected": "userSelected"; "usernameSelected": "usernameSelected"; "avatarSelected": "avatarSelected"; "shared": "shared"; }, ["sendReplyOptionsTemplate"], never, false>;
203
+ }
@@ -1,72 +1,72 @@
1
- import { ElementRef } from "@angular/core";
2
- import { ChatMessage, ChatPermissions, User } from '@banta/common';
3
- import { MessageMenuItem } from "../../message-menu-item";
4
- import * as i0 from "@angular/core";
5
- export declare class CommentComponent {
6
- private elementRef;
7
- constructor(elementRef: ElementRef<HTMLElement>);
8
- ngOnInit(): void;
9
- get message(): ChatMessage;
10
- set message(value: ChatMessage);
11
- private _message;
12
- private isLoaded;
13
- editedMessage: string;
14
- customMenuItems: MessageMenuItem[];
15
- showReplyAction: boolean;
16
- maxLength: number;
17
- permissions: ChatPermissions;
18
- mine: boolean;
19
- editing: boolean;
20
- genericAvatarUrl: string;
21
- readonly: boolean;
22
- private _reported;
23
- private _selected;
24
- private _liked;
25
- private _unliked;
26
- private _shared;
27
- private _userSelected;
28
- private _avatarSelected;
29
- private _usernameSelected;
30
- private _editStarted;
31
- private _deleted;
32
- private _editEnded;
33
- private _edited;
34
- private _loaded;
35
- readonly liked: import("rxjs").Observable<void>;
36
- readonly unliked: import("rxjs").Observable<void>;
37
- readonly selected: import("rxjs").Observable<void>;
38
- readonly edited: import("rxjs").Observable<string>;
39
- readonly deleted: import("rxjs").Observable<void>;
40
- readonly editStarted: import("rxjs").Observable<void>;
41
- readonly editEnded: import("rxjs").Observable<void>;
42
- readonly shared: import("rxjs").Observable<ChatMessage>;
43
- readonly userSelected: import("rxjs").Observable<void>;
44
- readonly usernameSelected: import("rxjs").Observable<User>;
45
- readonly avatarSelected: import("rxjs").Observable<User>;
46
- readonly reported: import("rxjs").Observable<void>;
47
- readonly loaded: import("rxjs").Observable<void>;
48
- get commentId(): string;
49
- isNew: boolean;
50
- get isHighlighted(): any;
51
- visible: boolean;
52
- get replyCount(): number;
53
- get element(): HTMLElement;
54
- avatarForUser(user: User): string;
55
- waitForLoad(): Promise<void>;
56
- private setMessage;
57
- markAttachmentsLoaded(): void;
58
- saveEdit(): void;
59
- endEditing(): void;
60
- delete(): void;
61
- report(): void;
62
- like(): void;
63
- unlike(): void;
64
- share(): void;
65
- select(): void;
66
- selectUser(): void;
67
- startEdit(): void;
68
- selectUsername(user: User): void;
69
- selectAvatar(user: User): void;
70
- static ɵfac: i0.ɵɵFactoryDeclaration<CommentComponent, never>;
71
- static ɵcmp: i0.ɵɵComponentDeclaration<CommentComponent, "banta-comment", never, { "message": { "alias": "message"; "required": false; }; "customMenuItems": { "alias": "customMenuItems"; "required": false; }; "showReplyAction": { "alias": "showReplyAction"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "permissions": { "alias": "permissions"; "required": false; }; "mine": { "alias": "mine"; "required": false; }; "editing": { "alias": "editing"; "required": false; }; "genericAvatarUrl": { "alias": "genericAvatarUrl"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; }, { "liked": "liked"; "unliked": "unliked"; "selected": "selected"; "edited": "edited"; "deleted": "deleted"; "editStarted": "editStarted"; "editEnded": "editEnded"; "shared": "shared"; "userSelected": "userSelected"; "usernameSelected": "usernameSelected"; "avatarSelected": "avatarSelected"; "reported": "reported"; "loaded": "loaded"; }, never, never, false, never>;
72
- }
1
+ import { ElementRef } from "@angular/core";
2
+ import { ChatMessage, ChatPermissions, User } from '@banta/common';
3
+ import { MessageMenuItem } from "../../message-menu-item";
4
+ import * as i0 from "@angular/core";
5
+ export declare class CommentComponent {
6
+ private elementRef;
7
+ constructor(elementRef: ElementRef<HTMLElement>);
8
+ ngOnInit(): void;
9
+ get message(): ChatMessage;
10
+ set message(value: ChatMessage);
11
+ private _message;
12
+ private isLoaded;
13
+ editedMessage: string;
14
+ customMenuItems: MessageMenuItem[];
15
+ showReplyAction: boolean;
16
+ maxLength: number;
17
+ permissions: ChatPermissions;
18
+ mine: boolean;
19
+ editing: boolean;
20
+ genericAvatarUrl: string;
21
+ readonly: boolean;
22
+ private _reported;
23
+ private _selected;
24
+ private _liked;
25
+ private _unliked;
26
+ private _shared;
27
+ private _userSelected;
28
+ private _avatarSelected;
29
+ private _usernameSelected;
30
+ private _editStarted;
31
+ private _deleted;
32
+ private _editEnded;
33
+ private _edited;
34
+ private _loaded;
35
+ readonly liked: import("rxjs").Observable<void>;
36
+ readonly unliked: import("rxjs").Observable<void>;
37
+ readonly selected: import("rxjs").Observable<void>;
38
+ readonly edited: import("rxjs").Observable<string>;
39
+ readonly deleted: import("rxjs").Observable<void>;
40
+ readonly editStarted: import("rxjs").Observable<void>;
41
+ readonly editEnded: import("rxjs").Observable<void>;
42
+ readonly shared: import("rxjs").Observable<ChatMessage>;
43
+ readonly userSelected: import("rxjs").Observable<void>;
44
+ readonly usernameSelected: import("rxjs").Observable<User>;
45
+ readonly avatarSelected: import("rxjs").Observable<User>;
46
+ readonly reported: import("rxjs").Observable<void>;
47
+ readonly loaded: import("rxjs").Observable<void>;
48
+ get commentId(): string;
49
+ isNew: boolean;
50
+ get isHighlighted(): any;
51
+ visible: boolean;
52
+ get replyCount(): number;
53
+ get element(): HTMLElement;
54
+ avatarForUser(user: User): string;
55
+ waitForLoad(): Promise<void>;
56
+ private setMessage;
57
+ markAttachmentsLoaded(): void;
58
+ saveEdit(): void;
59
+ endEditing(): void;
60
+ delete(): void;
61
+ report(): void;
62
+ like(): void;
63
+ unlike(): void;
64
+ share(): void;
65
+ select(): void;
66
+ selectUser(): void;
67
+ startEdit(): void;
68
+ selectUsername(user: User): void;
69
+ selectAvatar(user: User): void;
70
+ static ɵfac: i0.ɵɵFactoryDeclaration<CommentComponent, never>;
71
+ static ɵcmp: i0.ɵɵComponentDeclaration<CommentComponent, "banta-comment", never, { "message": "message"; "customMenuItems": "customMenuItems"; "showReplyAction": "showReplyAction"; "maxLength": "maxLength"; "permissions": "permissions"; "mine": "mine"; "editing": "editing"; "genericAvatarUrl": "genericAvatarUrl"; "readonly": "readonly"; }, { "liked": "liked"; "unliked": "unliked"; "selected": "selected"; "edited": "edited"; "deleted": "deleted"; "editStarted": "editStarted"; "editEnded": "editEnded"; "shared": "shared"; "userSelected": "userSelected"; "usernameSelected": "usernameSelected"; "avatarSelected": "avatarSelected"; "reported": "reported"; "loaded": "loaded"; }, never, never, false>;
72
+ }