@banta/sdk 4.8.1 → 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.
Files changed (31) hide show
  1. package/esm2020/lib/banta/banta.component.mjs +3 -3
  2. package/esm2020/lib/chat/banta-chat/banta-chat.component.mjs +5 -3
  3. package/esm2020/lib/chat-backend-base.mjs +1 -1
  4. package/esm2020/lib/chat-backend.mjs +80 -12
  5. package/esm2020/lib/chat-source-base.mjs +1 -1
  6. package/esm2020/lib/chat-source.mjs +7 -2
  7. package/esm2020/lib/comments/attachment-button/attachment-button.component.mjs +17 -10
  8. package/esm2020/lib/comments/banta-comments/banta-comments.component.mjs +7 -5
  9. package/esm2020/lib/comments/comment/comment.component.mjs +88 -130
  10. package/esm2020/lib/comments/comment-field/comment-field.component.mjs +124 -144
  11. package/esm2020/lib/comments/comment-view/comment-view.component.mjs +72 -70
  12. package/esm2020/lib/comments/live-comment.component.mjs +1 -1
  13. package/esm2020/lib/emoji/emoji-selector-button.component.mjs +7 -4
  14. package/esm2020/lib/static-chat-source.mjs +71 -0
  15. package/fesm2015/banta-sdk.mjs +500 -382
  16. package/fesm2015/banta-sdk.mjs.map +1 -1
  17. package/fesm2020/banta-sdk.mjs +469 -375
  18. package/fesm2020/banta-sdk.mjs.map +1 -1
  19. package/lib/chat/banta-chat/banta-chat.component.d.ts +2 -1
  20. package/lib/chat-backend-base.d.ts +4 -0
  21. package/lib/chat-backend.d.ts +29 -4
  22. package/lib/chat-source-base.d.ts +8 -0
  23. package/lib/chat-source.d.ts +2 -0
  24. package/lib/comments/attachment-button/attachment-button.component.d.ts +3 -2
  25. package/lib/comments/banta-comments/banta-comments.component.d.ts +5 -1
  26. package/lib/comments/comment/comment.component.d.ts +41 -39
  27. package/lib/comments/comment-field/comment-field.component.d.ts +38 -40
  28. package/lib/comments/comment-view/comment-view.component.d.ts +43 -41
  29. package/lib/emoji/emoji-selector-button.component.d.ts +2 -1
  30. package/lib/static-chat-source.d.ts +42 -0
  31. 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=