@banta/sdk 4.8.2 → 4.9.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/lib/banta/banta.component.mjs +3 -3
- package/esm2020/lib/chat/banta-chat/banta-chat.component.mjs +1 -1
- package/esm2020/lib/chat-backend-base.mjs +1 -1
- package/esm2020/lib/chat-backend.mjs +80 -12
- package/esm2020/lib/chat-source-base.mjs +1 -1
- package/esm2020/lib/chat-source.mjs +7 -2
- package/esm2020/lib/comments/attachment-button/attachment-button.component.mjs +17 -10
- package/esm2020/lib/comments/banta-comments/banta-comments.component.mjs +5 -5
- package/esm2020/lib/comments/comment/comment.component.mjs +88 -130
- package/esm2020/lib/comments/comment-field/comment-field.component.mjs +122 -144
- package/esm2020/lib/comments/comment-view/comment-view.component.mjs +72 -70
- package/esm2020/lib/comments/live-comment.component.mjs +1 -1
- package/esm2020/lib/emoji/emoji-selector-button.component.mjs +7 -4
- package/esm2020/lib/static-chat-source.mjs +71 -0
- package/fesm2015/banta-sdk.mjs +490 -379
- package/fesm2015/banta-sdk.mjs.map +1 -1
- package/fesm2020/banta-sdk.mjs +462 -374
- package/fesm2020/banta-sdk.mjs.map +1 -1
- package/lib/chat-backend-base.d.ts +4 -0
- package/lib/chat-backend.d.ts +29 -4
- package/lib/chat-source-base.d.ts +8 -0
- package/lib/chat-source.d.ts +2 -0
- package/lib/comments/attachment-button/attachment-button.component.d.ts +3 -2
- package/lib/comments/comment/comment.component.d.ts +41 -39
- package/lib/comments/comment-field/comment-field.component.d.ts +37 -40
- package/lib/comments/comment-view/comment-view.component.d.ts +43 -41
- package/lib/emoji/emoji-selector-button.component.d.ts +2 -1
- package/lib/static-chat-source.d.ts +42 -0
- package/package.json +1 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { CommentsOrder, FilterMode } from "@banta/common";
|
|
2
|
+
import { Subject } from "rxjs";
|
|
3
|
+
/**
|
|
4
|
+
* A special ChatSource which uses the REST API to load a limited number of chat messages, and does not support
|
|
5
|
+
* sending/editing/deleting messages, liking/unliking, or loading more messages.
|
|
6
|
+
*
|
|
7
|
+
* This is used within Banta's SSR support.
|
|
8
|
+
*/
|
|
9
|
+
export class StaticChatSource {
|
|
10
|
+
constructor(backend, identifier, parentIdentifier, options) {
|
|
11
|
+
this.backend = backend;
|
|
12
|
+
this.identifier = identifier;
|
|
13
|
+
this.parentIdentifier = parentIdentifier;
|
|
14
|
+
this.ready = Promise.resolve(); // TODO: should we do more than this?
|
|
15
|
+
this.readonly = true;
|
|
16
|
+
this.canLoadMore = false;
|
|
17
|
+
this.messageReceived = new Subject();
|
|
18
|
+
this.messageObserved = new Subject();
|
|
19
|
+
this.messageUpdated = new Subject();
|
|
20
|
+
this.messageSent = new Subject();
|
|
21
|
+
this.messages = [];
|
|
22
|
+
this.connectionStateChanged = new Subject();
|
|
23
|
+
this.state = 'connected';
|
|
24
|
+
this.sortOrder = options?.sortOrder ?? CommentsOrder.NEWEST;
|
|
25
|
+
this.filterMode = options?.filterMode ?? FilterMode.ALL;
|
|
26
|
+
this.initialMessageCount = options?.initialMessageCount ?? 100;
|
|
27
|
+
}
|
|
28
|
+
async send(message) {
|
|
29
|
+
throw new Error(`Cannot send a message in this state.`);
|
|
30
|
+
}
|
|
31
|
+
close() {
|
|
32
|
+
// no op
|
|
33
|
+
}
|
|
34
|
+
async getCount() {
|
|
35
|
+
if (this.parentIdentifier) {
|
|
36
|
+
// TODO: We need a getReplyCount or something
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
this.backend.getSourceCountForTopic(this.identifier);
|
|
40
|
+
}
|
|
41
|
+
async getExistingMessages() {
|
|
42
|
+
if (this.parentIdentifier) {
|
|
43
|
+
return await this.backend.getReplies(this.parentIdentifier, this.sortOrder, this.filterMode, 0, this.initialMessageCount);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return await this.backend.getMessages(this.identifier, this.sortOrder, this.filterMode, 0, this.initialMessageCount);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async loadAfter(message, count) {
|
|
50
|
+
return []; // no op
|
|
51
|
+
}
|
|
52
|
+
async get(id) {
|
|
53
|
+
return await this.backend.getMessage(this.identifier, id);
|
|
54
|
+
}
|
|
55
|
+
async likeMessage(messageId) {
|
|
56
|
+
throw new Error(`Cannot perform this action in this state.`);
|
|
57
|
+
}
|
|
58
|
+
async unlikeMessage(messageId) {
|
|
59
|
+
throw new Error(`Cannot perform this action in this state.`);
|
|
60
|
+
}
|
|
61
|
+
async editMessage(messageId, text) {
|
|
62
|
+
throw new Error(`Cannot perform this action in this state.`);
|
|
63
|
+
}
|
|
64
|
+
async deleteMessage(messageId) {
|
|
65
|
+
throw new Error(`Cannot perform this action in this state.`);
|
|
66
|
+
}
|
|
67
|
+
get errorState() {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWNoYXQtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvc3RhdGljLWNoYXQtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTNDOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixZQUNZLE9BQW9CLEVBQ25CLFVBQWtCLEVBQ2xCLGdCQUF5QixFQUNsQyxPQUEyQjtRQUhuQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFTO1FBY3RDLFVBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxxQ0FBcUM7UUFDaEUsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDN0Msb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQzdDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFFekMsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFtRDdCLDJCQUFzQixHQUFHLElBQUksT0FBTyxFQUFvRCxDQUFDO1FBQ3pGLFVBQUssR0FBc0QsV0FBVyxDQUFDO1FBdkVuRSxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sRUFBRSxVQUFVLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEdBQUcsQ0FBQztJQUNuRSxDQUFDO0lBa0JELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBb0I7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLO1FBQ0QsUUFBUTtJQUNaLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLDZDQUE2QztZQUM3QyxPQUFPLENBQUMsQ0FBQztTQUNaO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUI7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzdIO2FBQU07WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3hIO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBb0IsRUFBRSxLQUFhO1FBQy9DLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUTtJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFVO1FBQ2hCLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQWlCO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFpQjtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBaUIsRUFBRSxJQUFZO1FBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFpQjtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUtELElBQUksVUFBVTtRQUNWLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0UGVybWlzc2lvbnMsIENvbW1lbnRzT3JkZXIsIEZpbHRlck1vZGUgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDaGF0U291cmNlQmFzZSB9IGZyb20gXCIuL2NoYXQtc291cmNlLWJhc2VcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kIH0gZnJvbSBcIi4vY2hhdC1iYWNrZW5kXCI7XHJcbmltcG9ydCB7IENoYXRTb3VyY2VPcHRpb25zIH0gZnJvbSBcIi4vY2hhdC1iYWNrZW5kLWJhc2VcIjtcclxuXHJcbi8qKlxyXG4gKiBBIHNwZWNpYWwgQ2hhdFNvdXJjZSB3aGljaCB1c2VzIHRoZSBSRVNUIEFQSSB0byBsb2FkIGEgbGltaXRlZCBudW1iZXIgb2YgY2hhdCBtZXNzYWdlcywgYW5kIGRvZXMgbm90IHN1cHBvcnQgXHJcbiAqIHNlbmRpbmcvZWRpdGluZy9kZWxldGluZyBtZXNzYWdlcywgbGlraW5nL3VubGlraW5nLCBvciBsb2FkaW5nIG1vcmUgbWVzc2FnZXMuXHJcbiAqIFxyXG4gKiBUaGlzIGlzIHVzZWQgd2l0aGluIEJhbnRhJ3MgU1NSIHN1cHBvcnQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU3RhdGljQ2hhdFNvdXJjZSBpbXBsZW1lbnRzIENoYXRTb3VyY2VCYXNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYmFja2VuZDogQ2hhdEJhY2tlbmQsIFxyXG4gICAgICAgIHJlYWRvbmx5IGlkZW50aWZpZXI6IHN0cmluZyxcclxuICAgICAgICByZWFkb25seSBwYXJlbnRJZGVudGlmaWVyPzogc3RyaW5nLFxyXG4gICAgICAgIG9wdGlvbnM/OiBDaGF0U291cmNlT3B0aW9uc1xyXG4gICAgKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5zb3J0T3JkZXIgPSBvcHRpb25zPy5zb3J0T3JkZXIgPz8gQ29tbWVudHNPcmRlci5ORVdFU1Q7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJNb2RlID0gb3B0aW9ucz8uZmlsdGVyTW9kZSA/PyBGaWx0ZXJNb2RlLkFMTDtcclxuICAgICAgICB0aGlzLmluaXRpYWxNZXNzYWdlQ291bnQgPSBvcHRpb25zPy5pbml0aWFsTWVzc2FnZUNvdW50ID8/IDEwMDtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsTWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBzb3J0T3JkZXI6IENvbW1lbnRzT3JkZXI7XHJcbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xyXG4gICAgcGVybWlzc2lvbnM6IENoYXRQZXJtaXNzaW9uczsgLy8gVE9ET1xyXG5cclxuICAgIHJlYWR5ID0gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIFRPRE86IHNob3VsZCB3ZSBkbyBtb3JlIHRoYW4gdGhpcz9cclxuICAgIHJlYWRvbmx5ID0gdHJ1ZTtcclxuICAgIGNhbkxvYWRNb3JlID0gZmFsc2U7XHJcblxyXG4gICAgbWVzc2FnZVJlY2VpdmVkID0gbmV3IFN1YmplY3Q8Q2hhdE1lc3NhZ2U+KCk7XHJcbiAgICBtZXNzYWdlT2JzZXJ2ZWQgPSBuZXcgU3ViamVjdDxDaGF0TWVzc2FnZT4oKTtcclxuICAgIG1lc3NhZ2VVcGRhdGVkID0gbmV3IFN1YmplY3Q8Q2hhdE1lc3NhZ2U+KCk7XHJcbiAgICBtZXNzYWdlU2VudCA9IG5ldyBTdWJqZWN0PENoYXRNZXNzYWdlPigpO1xyXG5cclxuICAgIG1lc3NhZ2VzOiBDaGF0TWVzc2FnZVtdID0gW107XHJcblxyXG4gICAgYXN5bmMgc2VuZChtZXNzYWdlOiBDaGF0TWVzc2FnZSk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+IHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZW5kIGEgbWVzc2FnZSBpbiB0aGlzIHN0YXRlLmApO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlKCkge1xyXG4gICAgICAgIC8vIG5vIG9wXHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0Q291bnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGFyZW50SWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICAvLyBUT0RPOiBXZSBuZWVkIGEgZ2V0UmVwbHlDb3VudCBvciBzb21ldGhpbmdcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmJhY2tlbmQuZ2V0U291cmNlQ291bnRGb3JUb3BpYyh0aGlzLmlkZW50aWZpZXIpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBhc3luYyBnZXRFeGlzdGluZ01lc3NhZ2VzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBhcmVudElkZW50aWZpZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFja2VuZC5nZXRSZXBsaWVzKHRoaXMucGFyZW50SWRlbnRpZmllciwgdGhpcy5zb3J0T3JkZXIsIHRoaXMuZmlsdGVyTW9kZSwgMCwgdGhpcy5pbml0aWFsTWVzc2FnZUNvdW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5iYWNrZW5kLmdldE1lc3NhZ2VzKHRoaXMuaWRlbnRpZmllciwgdGhpcy5zb3J0T3JkZXIsIHRoaXMuZmlsdGVyTW9kZSwgMCwgdGhpcy5pbml0aWFsTWVzc2FnZUNvdW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbG9hZEFmdGVyKG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBjb3VudDogbnVtYmVyKTogUHJvbWlzZTxDaGF0TWVzc2FnZVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIFtdOyAvLyBubyBvcFxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldChpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFja2VuZC5nZXRNZXNzYWdlKHRoaXMuaWRlbnRpZmllciwgaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGxpa2VNZXNzYWdlKG1lc3NhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcGVyZm9ybSB0aGlzIGFjdGlvbiBpbiB0aGlzIHN0YXRlLmApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHVubGlrZU1lc3NhZ2UobWVzc2FnZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBwZXJmb3JtIHRoaXMgYWN0aW9uIGluIHRoaXMgc3RhdGUuYCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZWRpdE1lc3NhZ2UobWVzc2FnZUlkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBlcmZvcm0gdGhpcyBhY3Rpb24gaW4gdGhpcyBzdGF0ZS5gKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkZWxldGVNZXNzYWdlKG1lc3NhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcGVyZm9ybSB0aGlzIGFjdGlvbiBpbiB0aGlzIHN0YXRlLmApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbm5lY3Rpb25TdGF0ZUNoYW5nZWQgPSBuZXcgU3ViamVjdDwnY29ubmVjdGVkJyB8ICdjb25uZWN0aW5nJyB8ICdsb3N0JyB8ICdyZXN0b3JlZCc+KCk7XHJcbiAgICBzdGF0ZSA6ICdjb25uZWN0aW5nJyB8ICdjb25uZWN0ZWQnIHwgJ2xvc3QnIHwgJ3Jlc3RvcmVkJyA9ICdjb25uZWN0ZWQnO1xyXG5cclxuICAgIGdldCBlcnJvclN0YXRlKCkge1xyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbn0iXX0=
|