@banta/sdk 5.4.0 → 5.5.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.
- package/{esm2020 → esm2022}/banta-sdk.mjs +4 -4
- package/{esm2020 → esm2022}/lib/attachment-scraper.mjs +1 -1
- package/esm2022/lib/banta/banta.component.mjs +204 -0
- package/{esm2020 → esm2022}/lib/banta-logo.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/banta-sdk.module.mjs +135 -135
- package/esm2022/lib/chat/banta-chat/banta-chat.component.mjs +209 -0
- package/esm2022/lib/chat/chat-message/chat-message.component.mjs +62 -0
- package/esm2022/lib/chat/chat-view/chat-view.component.mjs +170 -0
- package/{esm2020 → esm2022}/lib/chat/chat.module.mjs +51 -51
- package/{esm2020 → esm2022}/lib/chat/index.mjs +5 -5
- package/esm2022/lib/chat/live-chat-message.component.mjs +80 -0
- package/{esm2020 → esm2022}/lib/chat-backend-base.mjs +30 -30
- package/esm2022/lib/chat-backend.mjs +194 -0
- package/{esm2020 → esm2022}/lib/chat-source-base.mjs +1 -1
- package/esm2022/lib/chat-source.mjs +233 -0
- package/esm2022/lib/comments/attachment-button/attachment-button.component.mjs +76 -0
- package/esm2022/lib/comments/attachment-scraper.directive.mjs +107 -0
- package/esm2022/lib/comments/banta-comments/banta-comments.component.mjs +748 -0
- package/esm2022/lib/comments/comment/comment.component.mjs +175 -0
- package/esm2022/lib/comments/comment-field/comment-field.component.mjs +401 -0
- package/esm2022/lib/comments/comment-sort/comment-sort.component.mjs +37 -0
- package/esm2022/lib/comments/comment-view/comment-view.component.mjs +470 -0
- package/{esm2020 → esm2022}/lib/comments/comments.module.mjs +111 -111
- package/{esm2020 → esm2022}/lib/comments/index.mjs +10 -10
- package/esm2022/lib/comments/live-comment.component.mjs +80 -0
- package/{esm2020 → esm2022}/lib/comments/reply-send-options.directive.mjs +13 -13
- package/esm2022/lib/common/attachment/attachment.component.mjs +128 -0
- package/{esm2020 → esm2022}/lib/common/attachments/attachments.component.mjs +75 -75
- package/{esm2020 → esm2022}/lib/common/common.module.mjs +68 -68
- package/{esm2020 → esm2022}/lib/common/index.mjs +10 -10
- package/{esm2020 → esm2022}/lib/common/lazy-connection.mjs +14 -14
- package/esm2022/lib/common/lightbox/lightbox.component.mjs +31 -0
- package/esm2022/lib/common/markdown-to-html.pipe.mjs +88 -0
- package/esm2022/lib/common/mention-linker.pipe.mjs +35 -0
- package/esm2022/lib/common/timer-pool.service.mjs +83 -0
- package/esm2022/lib/common/timestamp.component.mjs +123 -0
- package/{esm2020 → esm2022}/lib/common/trust-resource-url.pipe.mjs +22 -22
- package/esm2022/lib/emoji/emoji-selector-button.component.mjs +115 -0
- package/esm2022/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +98 -0
- package/{esm2020 → esm2022}/lib/emoji/emoji.module.mjs +55 -55
- package/{esm2020 → esm2022}/lib/emoji/emojis.mjs +6507 -6507
- package/{esm2020 → esm2022}/lib/emoji/index.mjs +4 -4
- package/esm2022/lib/giphy-attachments.mjs +16 -0
- package/{esm2020 → esm2022}/lib/index.mjs +19 -19
- package/{esm2020 → esm2022}/lib/live-message.component.mjs +61 -61
- package/{esm2020 → esm2022}/lib/message-menu-item.mjs +1 -1
- package/{esm2020 → esm2022}/lib/sdk-options.mjs +1 -1
- package/esm2022/lib/static-chat-source.mjs +71 -0
- package/esm2022/lib/tweet-attachments.mjs +13 -0
- package/esm2022/lib/url-attachments.mjs +42 -0
- package/esm2022/lib/youtube-attachments.mjs +29 -0
- package/{esm2020 → esm2022}/public-api.mjs +4 -4
- package/{fesm2020 → fesm2022}/banta-sdk.mjs +10822 -10823
- package/fesm2022/banta-sdk.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/attachment-scraper.d.ts +15 -15
- package/lib/banta/banta.component.d.ts +58 -58
- package/lib/banta-logo.component.d.ts +5 -5
- package/lib/banta-sdk.module.d.ts +31 -31
- package/lib/chat/banta-chat/banta-chat.component.d.ts +79 -79
- package/lib/chat/chat-message/chat-message.component.d.ts +21 -21
- package/lib/chat/chat-view/chat-view.component.d.ts +52 -52
- package/lib/chat/chat.module.d.ts +15 -15
- package/lib/chat/index.d.ts +5 -5
- package/lib/chat/live-chat-message.component.d.ts +23 -23
- package/lib/chat-backend-base.d.ts +72 -72
- package/lib/chat-backend.d.ts +67 -67
- package/lib/chat-source-base.d.ts +44 -44
- package/lib/chat-source.d.ts +65 -65
- package/lib/comments/attachment-button/attachment-button.component.d.ts +17 -17
- package/lib/comments/attachment-scraper.directive.d.ts +21 -21
- package/lib/comments/banta-comments/banta-comments.component.d.ts +203 -203
- package/lib/comments/comment/comment.component.d.ts +72 -72
- package/lib/comments/comment-field/comment-field.component.d.ts +89 -89
- package/lib/comments/comment-sort/comment-sort.component.d.ts +16 -16
- package/lib/comments/comment-view/comment-view.component.d.ts +121 -121
- package/lib/comments/comments.module.d.ts +30 -30
- package/lib/comments/index.d.ts +10 -10
- package/lib/comments/live-comment.component.d.ts +23 -23
- package/lib/comments/reply-send-options.directive.d.ts +5 -5
- package/lib/common/attachment/attachment.component.d.ts +34 -34
- package/lib/common/attachments/attachments.component.d.ts +26 -26
- package/lib/common/common.module.d.ts +19 -19
- package/lib/common/index.d.ts +10 -10
- package/lib/common/lazy-connection.d.ts +6 -6
- package/lib/common/lightbox/lightbox.component.d.ts +14 -14
- package/lib/common/markdown-to-html.pipe.d.ts +15 -15
- package/lib/common/mention-linker.pipe.d.ts +13 -13
- package/lib/common/timer-pool.service.d.ts +15 -15
- package/lib/common/timestamp.component.d.ts +19 -19
- package/lib/common/trust-resource-url.pipe.d.ts +10 -10
- package/lib/emoji/emoji-selector-button.component.d.ts +30 -30
- package/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.d.ts +26 -26
- package/lib/emoji/emoji.module.d.ts +16 -16
- package/lib/emoji/emojis.d.ts +6507 -6507
- package/lib/emoji/index.d.ts +4 -4
- package/lib/giphy-attachments.d.ts +5 -5
- package/lib/index.d.ts +19 -19
- package/lib/live-message.component.d.ts +22 -22
- package/lib/message-menu-item.d.ts +6 -6
- package/lib/sdk-options.d.ts +5 -5
- package/lib/static-chat-source.d.ts +42 -42
- package/lib/tweet-attachments.d.ts +5 -5
- package/lib/url-attachments.d.ts +14 -14
- package/lib/youtube-attachments.d.ts +5 -5
- package/package.json +5 -11
- package/public-api.d.ts +1 -1
- package/esm2020/lib/banta/banta.component.mjs +0 -204
- package/esm2020/lib/chat/banta-chat/banta-chat.component.mjs +0 -209
- package/esm2020/lib/chat/chat-message/chat-message.component.mjs +0 -62
- package/esm2020/lib/chat/chat-view/chat-view.component.mjs +0 -170
- package/esm2020/lib/chat/live-chat-message.component.mjs +0 -80
- package/esm2020/lib/chat-backend.mjs +0 -194
- package/esm2020/lib/chat-source.mjs +0 -233
- package/esm2020/lib/comments/attachment-button/attachment-button.component.mjs +0 -76
- package/esm2020/lib/comments/attachment-scraper.directive.mjs +0 -107
- package/esm2020/lib/comments/banta-comments/banta-comments.component.mjs +0 -749
- package/esm2020/lib/comments/comment/comment.component.mjs +0 -175
- package/esm2020/lib/comments/comment-field/comment-field.component.mjs +0 -401
- package/esm2020/lib/comments/comment-sort/comment-sort.component.mjs +0 -37
- package/esm2020/lib/comments/comment-view/comment-view.component.mjs +0 -470
- package/esm2020/lib/comments/live-comment.component.mjs +0 -80
- package/esm2020/lib/common/attachment/attachment.component.mjs +0 -128
- package/esm2020/lib/common/lightbox/lightbox.component.mjs +0 -31
- package/esm2020/lib/common/markdown-to-html.pipe.mjs +0 -88
- package/esm2020/lib/common/mention-linker.pipe.mjs +0 -35
- package/esm2020/lib/common/timer-pool.service.mjs +0 -83
- package/esm2020/lib/common/timestamp.component.mjs +0 -123
- package/esm2020/lib/emoji/emoji-selector-button.component.mjs +0 -116
- package/esm2020/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +0 -98
- package/esm2020/lib/giphy-attachments.mjs +0 -16
- package/esm2020/lib/static-chat-source.mjs +0 -71
- package/esm2020/lib/tweet-attachments.mjs +0 -13
- package/esm2020/lib/url-attachments.mjs +0 -42
- package/esm2020/lib/youtube-attachments.mjs +0 -29
- package/fesm2015/banta-sdk.mjs +0 -11258
- package/fesm2015/banta-sdk.mjs.map +0 -1
- package/fesm2020/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": "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
|
+
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,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": "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
|
-
}
|
|
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
|
+
}
|