@banta/sdk 3.3.11 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/banta-sdk.metadata.json +1 -1
  2. package/bundles/banta-sdk.umd.js +1157 -413
  3. package/bundles/banta-sdk.umd.js.map +1 -1
  4. package/bundles/banta-sdk.umd.min.js +1 -1
  5. package/bundles/banta-sdk.umd.min.js.map +1 -1
  6. package/esm2015/lib/banta/banta.component.js +9 -15
  7. package/esm2015/lib/banta-sdk.module.js +10 -4
  8. package/esm2015/lib/chat/banta-chat/banta-chat.component.js +16 -19
  9. package/esm2015/lib/chat/chat-message/chat-message.component.js +2 -2
  10. package/esm2015/lib/chat/chat-view/chat-view.component.js +7 -6
  11. package/esm2015/lib/chat/live-chat-message.component.js +3 -3
  12. package/esm2015/lib/chat-backend-base.js +17 -0
  13. package/esm2015/lib/chat-backend.js +74 -0
  14. package/esm2015/lib/chat-source-base.js +2 -0
  15. package/esm2015/lib/chat-source.js +151 -0
  16. package/esm2015/lib/comments/banta-comments/banta-comments.component.js +344 -174
  17. package/esm2015/lib/comments/comment/comment.component.js +56 -20
  18. package/esm2015/lib/comments/comment-field/comment-field.component.js +19 -17
  19. package/esm2015/lib/comments/comment-view/comment-view.component.js +77 -39
  20. package/esm2015/lib/comments/live-comment.component.js +3 -3
  21. package/esm2015/lib/common/index.js +1 -3
  22. package/esm2015/lib/index.js +6 -1
  23. package/esm2015/lib/sdk-options.js +2 -0
  24. package/fesm2015/banta-sdk.js +761 -310
  25. package/fesm2015/banta-sdk.js.map +1 -1
  26. package/lib/banta/banta.component.d.ts +7 -8
  27. package/lib/banta-sdk.module.d.ts +2 -1
  28. package/lib/chat/banta-chat/banta-chat.component.d.ts +10 -12
  29. package/lib/chat/chat-view/chat-view.component.d.ts +7 -4
  30. package/lib/chat/live-chat-message.component.d.ts +2 -2
  31. package/lib/chat-backend-base.d.ts +22 -0
  32. package/lib/chat-backend.d.ts +21 -0
  33. package/lib/chat-source-base.d.ts +31 -0
  34. package/lib/chat-source.d.ts +38 -0
  35. package/lib/comments/banta-comments/banta-comments.component.d.ts +68 -61
  36. package/lib/comments/comment/comment.component.d.ts +25 -6
  37. package/lib/comments/comment-field/comment-field.component.d.ts +9 -5
  38. package/lib/comments/comment-view/comment-view.component.d.ts +26 -8
  39. package/lib/comments/live-comment.component.d.ts +2 -2
  40. package/lib/common/index.d.ts +0 -2
  41. package/lib/index.d.ts +5 -0
  42. package/lib/sdk-options.d.ts +4 -0
  43. package/package.json +1 -1
  44. package/esm2015/lib/common/banta.service.js +0 -21
  45. package/esm2015/lib/common/chat-backend.service.js +0 -7
  46. package/lib/common/banta.service.d.ts +0 -9
  47. package/lib/common/chat-backend.service.d.ts +0 -14
@@ -1,19 +1,18 @@
1
- import { NewMessageForm, ChatMessage, User, ChatSource, Notification } from '@banta/common';
1
+ import { NewMessageForm, ChatMessage, User, Notification } from '@banta/common';
2
2
  import { Observable } from 'rxjs';
3
3
  import { MatDialog } from '@angular/material/dialog';
4
4
  import { BantaChatComponent } from '../chat';
5
- import { BantaService } from '../common';
6
- import { ChatBackendService } from "../common";
5
+ import { ChatBackendBase } from "../chat-backend-base";
6
+ import { ChatSourceBase } from "../chat-source-base";
7
7
  /**
8
8
  * Unified chat and comments component
9
9
  */
10
10
  export declare class BantaComponent {
11
- private banta;
12
11
  private backend;
13
12
  private matDialog;
14
- constructor(banta: BantaService, backend: ChatBackendService, matDialog: MatDialog);
15
- firehoseSource: ChatSource;
16
- pointSource: ChatSource;
13
+ constructor(backend: ChatBackendBase, matDialog: MatDialog);
14
+ firehoseSource: ChatSourceBase;
15
+ pointSource: ChatSourceBase;
17
16
  private _topicID;
18
17
  private _subs;
19
18
  auxOpen: boolean;
@@ -41,7 +40,7 @@ export declare class BantaComponent {
41
40
  close(): void;
42
41
  get hasPoint(): boolean;
43
42
  pointOpen: ChatMessage;
44
- pointSubChat: ChatSource;
43
+ pointSubChat: ChatSourceBase;
45
44
  closeAux(): void;
46
45
  getViewType(message: ChatMessage): "chat" | "comment";
47
46
  upvoteMessage(message: ChatMessage): Promise<void>;
@@ -1,4 +1,5 @@
1
1
  import { ModuleWithProviders } from '@angular/core';
2
+ import { SdkOptions } from './sdk-options';
2
3
  export declare class BantaSdkModule {
3
- static forRoot(): ModuleWithProviders<BantaSdkModule>;
4
+ static configure(options?: SdkOptions): ModuleWithProviders<BantaSdkModule>;
4
5
  }
@@ -1,24 +1,22 @@
1
- import { ElementRef } from "@angular/core";
2
1
  import { Subject, Observable } from 'rxjs';
3
- import { ChatSource, ChatMessage, NewMessageForm, UserAccount } from '@banta/common';
2
+ import { User, ChatMessage, NewMessageForm } from '@banta/common';
4
3
  import { ChatViewComponent } from '../chat-view/chat-view.component';
5
- import { BantaService, ChatBackendService } from "../../common";
4
+ import { ChatBackendBase } from "../../chat-backend-base";
5
+ import { ChatSourceBase } from "../../chat-source-base";
6
6
  /**
7
7
  * Chat component
8
8
  */
9
9
  export declare class BantaChatComponent {
10
- private banta;
11
10
  private backend;
12
- private elementRef;
13
- constructor(banta: BantaService, backend: ChatBackendService, elementRef: ElementRef<HTMLElement>);
11
+ constructor(backend: ChatBackendBase);
14
12
  private _source;
15
13
  private _subs;
16
- user: UserAccount;
17
- shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSource) => boolean | Promise<boolean>;
14
+ user: User;
15
+ shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSourceBase) => boolean | Promise<boolean>;
18
16
  ngOnInit(): void;
19
17
  ngOnDestroy(): void;
20
- get source(): ChatSource;
21
- set source(value: ChatSource);
18
+ get source(): ChatSourceBase;
19
+ set source(value: ChatSourceBase);
22
20
  get topicID(): string;
23
21
  set topicID(value: string);
24
22
  private setSourceFromTopicID;
@@ -32,10 +30,10 @@ export declare class BantaChatComponent {
32
30
  private _signInSelected;
33
31
  private _permissionDeniedError;
34
32
  get signInSelected(): Observable<void>;
35
- get permissionDeniedError(): Observable<void>;
33
+ get permissionDeniedError(): Observable<string>;
36
34
  showEmojiPanel: boolean;
37
35
  showSignIn(): void;
38
- sendPermissionError(): void;
36
+ sendPermissionError(message: string): void;
39
37
  insertEmoji(emoji: any): void;
40
38
  onKeyDown(event: KeyboardEvent): void;
41
39
  chatView: ChatViewComponent;
@@ -1,12 +1,15 @@
1
1
  import { ElementRef } from "@angular/core";
2
- import { ChatSource, User, ChatMessage } from '@banta/common';
2
+ import { User, ChatMessage } from '@banta/common';
3
3
  import { Subject } from 'rxjs';
4
+ import { ChatBackendBase } from "../../chat-backend-base";
5
+ import { ChatSourceBase } from "../../chat-source-base";
4
6
  export declare class ChatViewComponent {
7
+ private backend;
5
8
  private elementRef;
6
- constructor(elementRef: ElementRef<HTMLElement>);
9
+ constructor(backend: ChatBackendBase, elementRef: ElementRef<HTMLElement>);
7
10
  private _sourceSubs;
8
11
  private _source;
9
- get source(): ChatSource;
12
+ get source(): ChatSourceBase;
10
13
  private _selected;
11
14
  private _reported;
12
15
  private _upvoted;
@@ -15,7 +18,7 @@ export declare class ChatViewComponent {
15
18
  get userSelected(): Subject<ChatMessage>;
16
19
  get reported(): Subject<ChatMessage>;
17
20
  get upvoted(): Subject<ChatMessage>;
18
- set source(value: ChatSource);
21
+ set source(value: ChatSourceBase);
19
22
  messages: ChatMessage[];
20
23
  currentUser: User;
21
24
  messageContainer: ElementRef<HTMLElement>;
@@ -1,9 +1,9 @@
1
1
  import { ChatMessage } from '@banta/common';
2
2
  import { Observable } from 'rxjs';
3
- import { ChatBackendService } from '../common';
3
+ import { ChatBackendBase } from '../chat-backend-base';
4
4
  export declare class LiveChatMessageComponent {
5
5
  private backend;
6
- constructor(backend: ChatBackendService);
6
+ constructor(backend: ChatBackendBase);
7
7
  private _message;
8
8
  private _upvoted;
9
9
  private _reported;
@@ -0,0 +1,22 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ChatMessage, CommentsOrder, Notification, User } from '@banta/common';
3
+ import { ChatSourceBase } from './chat-source-base';
4
+ export interface ChatSourceOptions {
5
+ sortOrder: CommentsOrder;
6
+ }
7
+ export declare abstract class ChatBackendBase {
8
+ abstract getSourceForTopic(topicId: string, options?: ChatSourceOptions): Promise<ChatSourceBase>;
9
+ abstract getSourceForThread(topicId: string, messageId: string, options?: ChatSourceOptions): Promise<ChatSourceBase>;
10
+ abstract getSourceCountForTopic(topicId: string): Promise<number>;
11
+ abstract refreshMessage(message: ChatMessage): Promise<ChatMessage>;
12
+ abstract getMessage(topicId: string, messageId: string): Promise<ChatMessage>;
13
+ abstract getSubMessage(topicId: string, parentMessageId: string, messageId: string): Promise<ChatMessage>;
14
+ abstract watchMessage(message: ChatMessage, handler: (message: ChatMessage) => void): () => void;
15
+ readonly notificationsChanged: Observable<Notification[]>;
16
+ readonly newNotification: Observable<Notification>;
17
+ private _userChanged;
18
+ private _user;
19
+ get userChanged(): Observable<User>;
20
+ set user(user: User);
21
+ get user(): User;
22
+ }
@@ -0,0 +1,21 @@
1
+ import { ChatMessage, Notification } from "@banta/common";
2
+ import { Observable } from "rxjs";
3
+ import { ChatBackendBase, ChatSourceOptions } from "./chat-backend-base";
4
+ import { ChatSource } from "./chat-source";
5
+ import { ChatSourceBase } from "./chat-source-base";
6
+ import { SdkOptions } from "./sdk-options";
7
+ export declare class ChatBackend extends ChatBackendBase {
8
+ private options;
9
+ constructor(options: SdkOptions);
10
+ get serviceUrl(): string;
11
+ private connectToService;
12
+ getSourceForTopic(topicId: string, options?: ChatSourceOptions): Promise<ChatSourceBase>;
13
+ getSourceForThread(topicId: string, messageId: string, options?: ChatSourceOptions): Promise<ChatSource>;
14
+ getSourceCountForTopic(topicId: string): Promise<number>;
15
+ refreshMessage(message: ChatMessage): Promise<ChatMessage>;
16
+ getMessage(topicId: string, messageId: string): Promise<ChatMessage>;
17
+ getSubMessage(topicId: string, parentMessageId: string, messageId: string): Promise<ChatMessage>;
18
+ watchMessage(message: ChatMessage, handler: (message: ChatMessage) => void): () => void;
19
+ notificationsChanged: Observable<Notification[]>;
20
+ newNotification: Observable<Notification>;
21
+ }
@@ -0,0 +1,31 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ChatMessage, CommentsOrder, ChatPermissions } from '@banta/common';
3
+ export interface ChatSourceBase {
4
+ /**
5
+ * The topic identifier for the current chat/comments
6
+ */
7
+ identifier: string;
8
+ permissions: ChatPermissions;
9
+ ready: Promise<void>;
10
+ /**
11
+ * The ID of the parent message that this thread chat source is for.
12
+ * When this is not set, the chat source is a top-level ("topic") source.
13
+ * When it is set, this chat source is a thread source (ie replies).
14
+ */
15
+ parentIdentifier?: string;
16
+ sortOrder?: CommentsOrder;
17
+ messageReceived: Observable<ChatMessage>;
18
+ messageSent: Observable<ChatMessage>;
19
+ messages: ChatMessage[];
20
+ send(message: ChatMessage): Promise<ChatMessage>;
21
+ close(): any;
22
+ getCount(): Promise<number>;
23
+ getExistingMessages(): Promise<ChatMessage[]>;
24
+ loadAfter(message: ChatMessage, count: number): Promise<ChatMessage[]>;
25
+ get(id: string): Promise<ChatMessage>;
26
+ likeMessage(messageId: string): Promise<void>;
27
+ unlikeMessage(messageId: string): Promise<void>;
28
+ editMessage(messageId: string, text: string): Promise<void>;
29
+ deleteMessage(messageId: string): Promise<void>;
30
+ state?: 'connecting' | 'connected' | 'lost' | 'restored';
31
+ }
@@ -0,0 +1,38 @@
1
+ import { ChatMessage, ChatPermissions, CommentsOrder } from "@banta/common";
2
+ import { Observable } from "rxjs";
3
+ import { SocketRPC } from "@banta/common";
4
+ import { ChatSourceBase } from "./chat-source-base";
5
+ import { ChatBackend } from "./chat-backend";
6
+ export declare class ChatSource extends SocketRPC implements ChatSourceBase {
7
+ readonly backend: ChatBackend;
8
+ readonly identifier: string;
9
+ readonly parentIdentifier: string;
10
+ readonly sortOrder: CommentsOrder;
11
+ constructor(backend: ChatBackend, identifier: string, parentIdentifier: string, sortOrder: CommentsOrder);
12
+ private subscription;
13
+ private markReady;
14
+ ready: Promise<void>;
15
+ permissions: ChatPermissions;
16
+ state: 'connected' | 'connecting' | 'lost' | 'restored';
17
+ bind(socket: WebSocket): Promise<this>;
18
+ getExistingMessages(): Promise<ChatMessage[]>;
19
+ editMessage(messageId: string, text: string): Promise<void>;
20
+ subscribeToTopic(): Promise<void>;
21
+ authenticate(): Promise<void>;
22
+ close(): void;
23
+ onPermissions(permissions: ChatPermissions): void;
24
+ onChatMessage(message: ChatMessage): void;
25
+ private messageMap;
26
+ private _messageReceived;
27
+ private _messageSent;
28
+ get messageReceived(): Observable<ChatMessage>;
29
+ get messageSent(): Observable<ChatMessage>;
30
+ messages: ChatMessage[];
31
+ send(message: ChatMessage): Promise<ChatMessage>;
32
+ loadAfter(message: ChatMessage, count: number): Promise<ChatMessage[]>;
33
+ get(id: string): Promise<ChatMessage>;
34
+ getCount(): Promise<number>;
35
+ likeMessage(messageId: string): Promise<void>;
36
+ unlikeMessage(messageId: string): Promise<void>;
37
+ deleteMessage(messageId: string): Promise<void>;
38
+ }
@@ -1,19 +1,40 @@
1
- import { AfterViewInit, ElementRef } from '@angular/core';
2
- import { User, ChatSource, ChatMessage, UserAccount, CommentsOrder } from '@banta/common';
1
+ import { ElementRef } from '@angular/core';
2
+ import { User, ChatMessage, CommentsOrder } from '@banta/common';
3
3
  import { HashTag } from '../comment-field/comment-field.component';
4
4
  import { Subject, Observable } from 'rxjs';
5
- import { ChatBackendService } from '../../common';
6
- import { BantaService } from '../../common';
7
5
  import { ActivatedRoute } from '@angular/router';
6
+ import { ChatBackendBase } from '../../chat-backend-base';
7
+ import { ChatSourceBase } from '../../chat-source-base';
8
8
  /**
9
9
  * Comments component
10
10
  */
11
- export declare class BantaCommentsComponent implements AfterViewInit {
12
- private banta;
11
+ export declare class BantaCommentsComponent {
13
12
  private backend;
14
13
  private elementRef;
15
14
  private activatedRoute;
16
- constructor(banta: BantaService, backend: ChatBackendService, elementRef: ElementRef<HTMLElement>, activatedRoute: ActivatedRoute);
15
+ constructor(backend: ChatBackendBase, elementRef: ElementRef<HTMLElement>, activatedRoute: ActivatedRoute);
16
+ private handleBackendExceptionAsAlert;
17
+ private handleBackendException;
18
+ ngOnInit(): void;
19
+ sharedCommentID: string;
20
+ ngOnDestroy(): void;
21
+ private setSourceFromTopicID;
22
+ private _loadingMessage;
23
+ loadingMessageVisible: boolean;
24
+ get loadingMessage(): string;
25
+ set loadingMessage(value: string);
26
+ loading: boolean;
27
+ showLoadingScreen: boolean;
28
+ loadingStartedAt: number;
29
+ messageChangedAt: number;
30
+ private startLoading;
31
+ private _loadingTimer;
32
+ private _loadingMessageIndex;
33
+ loadingMessages: string[];
34
+ private updateLoading;
35
+ private _signInSelected;
36
+ private _permissionDeniedError;
37
+ private _editAvatarSelected;
17
38
  private _upvoted;
18
39
  private _reported;
19
40
  private _selected;
@@ -23,34 +44,12 @@ export declare class BantaCommentsComponent implements AfterViewInit {
23
44
  private _avatarSelected;
24
45
  private _source;
25
46
  private _subs;
26
- _sortOrder: CommentsOrder;
27
- get sortOrder(): CommentsOrder;
28
- set sortOrder(value: CommentsOrder);
29
- hashtags: HashTag[];
30
- participants: User[];
31
- ngOnInit(): void;
32
- ngAfterViewInit(): void;
33
- scrollToComment(commentId: ChatMessage['id']): void;
34
- checkForSharedComment(): void;
35
- ngOnDestroy(): void;
36
- get source(): ChatSource;
37
- set source(value: ChatSource);
38
- fixedHeight: boolean;
39
- maxMessages: number;
40
- maxVisibleMessages: number;
41
- genericAvatarUrl: string;
42
- shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSource) => boolean | Promise<boolean>;
43
- get topicID(): string;
47
+ private _sortOrder;
44
48
  private _topicID;
45
- set topicID(value: string);
46
- private setSourceFromTopicID;
47
- private addParticipant;
48
- showSignIn(): void;
49
- showEditAvatar(): void;
50
- user: UserAccount;
51
- private _newMessageText;
52
- get newMessageText(): string;
53
- set newMessageText(value: string);
49
+ user: User;
50
+ selectedMessage: ChatMessage;
51
+ selectedMessageThread: ChatSourceBase;
52
+ selectedMessageVisible: boolean;
54
53
  signInLabel: string;
55
54
  sendLabel: string;
56
55
  replyLabel: string;
@@ -58,14 +57,20 @@ export declare class BantaCommentsComponent implements AfterViewInit {
58
57
  permissionDeniedLabel: string;
59
58
  postCommentLabel: string;
60
59
  postReplyLabel: string;
61
- private _signInSelected;
62
- private _permissionDeniedError;
63
- private _editAvatarSelected;
60
+ fixedHeight: boolean;
61
+ maxMessages: number;
62
+ maxVisibleMessages: number;
63
+ genericAvatarUrl: string;
64
+ shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSourceBase) => boolean | Promise<boolean>;
65
+ participants: User[];
66
+ get source(): ChatSourceBase;
67
+ set source(value: ChatSourceBase);
68
+ hashtags: HashTag[];
69
+ get topicID(): string;
70
+ set topicID(value: string);
64
71
  get signInSelected(): Observable<void>;
65
72
  get editAvatarSelected(): Subject<void>;
66
- get permissionDeniedError(): Observable<void>;
67
- showPermissionDenied(): void;
68
- get canComment(): boolean;
73
+ get permissionDeniedError(): Observable<string>;
69
74
  get upvoted(): Observable<ChatMessage>;
70
75
  get reported(): Observable<ChatMessage>;
71
76
  get selected(): Observable<ChatMessage>;
@@ -73,26 +78,28 @@ export declare class BantaCommentsComponent implements AfterViewInit {
73
78
  get usernameSelected(): Observable<User>;
74
79
  get avatarSelected(): Observable<User>;
75
80
  get shared(): Observable<ChatMessage>;
76
- onKeyDown(event: KeyboardEvent): void;
77
- insertEmoji(text: string): void;
78
- onReplyKeyDown(event: KeyboardEvent): void;
79
- insertReplyEmoji(text: string): void;
80
- sending: boolean;
81
- sendError: Error;
82
- expandError: boolean;
83
- indicateError(message: string): void;
84
- upvoteMessage(message: ChatMessage): Promise<void>;
85
- reportMessage(message: ChatMessage): void;
86
- selectedMessage: ChatMessage;
87
- selectedMessageThread: ChatSource;
88
- replyMessage: string;
89
- unselectMessage(): Promise<void>;
90
- selectedMessageVisible: boolean;
91
- selectMessage(message: ChatMessage): Promise<void>;
92
- selectMessageUser(message: ChatMessage): void;
93
- selectUsername(user: User): void;
94
- selectAvatar(user: User): void;
95
- shareMessage(message: ChatMessage): void;
96
- sendReply(): Promise<void>;
81
+ get sortOrder(): CommentsOrder;
82
+ set sortOrder(value: CommentsOrder);
83
+ sendMessage: (message: ChatMessage) => void;
84
+ sendReply: (message: ChatMessage) => void;
85
+ scrollToComment(commentId: ChatMessage['id']): void;
86
+ navigateToSharedComment(id: string): Promise<void>;
87
+ sendPermissionDenied(message: string): void;
97
88
  scrollToMessage(message: ChatMessage): void;
89
+ private addParticipant;
90
+ likeMessage(source: ChatSourceBase, message: ChatMessage): Promise<void>;
91
+ unlikeMessage(source: ChatSourceBase, message: ChatMessage): Promise<void>;
92
+ reportMessage(message: ChatMessage): Promise<void>;
93
+ unselectMessage(): Promise<void>;
94
+ selectMessage(message: ChatMessage): Promise<ChatSourceBase>;
95
+ showSignIn(): Promise<void>;
96
+ showEditAvatar(): Promise<void>;
97
+ selectMessageUser(message: ChatMessage): Promise<void>;
98
+ selectUsername(user: User): Promise<void>;
99
+ selectAvatar(user: User): Promise<void>;
100
+ shareMessage(message: ChatMessage): Promise<void>;
101
+ deleteMessage(message: ChatMessage): Promise<void>;
102
+ editMessage(source: ChatSourceBase, message: ChatMessage, newText: string): Promise<void>;
103
+ startEditing(message: ChatMessage): Promise<void>;
104
+ saveEdit(message: ChatMessage, text: string): Promise<void>;
98
105
  }
@@ -1,14 +1,16 @@
1
- import { ChatMessage, User } from '@banta/common';
1
+ import { ChatMessage, ChatPermissions, User } from '@banta/common';
2
2
  export declare class CommentComponent {
3
3
  private _reported;
4
4
  private _selected;
5
- private _upvoted;
5
+ private _liked;
6
+ private _unliked;
6
7
  private _shared;
7
8
  private _userSelected;
8
9
  private _avatarSelected;
9
10
  private _usernameSelected;
10
11
  ngOnInit(): void;
11
12
  isNew: boolean;
13
+ get isHighlighted(): any;
12
14
  visible: boolean;
13
15
  message: ChatMessage;
14
16
  showReplyAction: boolean;
@@ -16,13 +18,30 @@ export declare class CommentComponent {
16
18
  get usernameSelected(): import("rxjs").Observable<User>;
17
19
  get avatarSelected(): import("rxjs").Observable<User>;
18
20
  get reported(): import("rxjs").Observable<void>;
19
- upvoting: boolean;
20
- get upvoted(): import("rxjs").Observable<void>;
21
+ permissions: ChatPermissions;
22
+ mine: boolean;
23
+ editing: boolean;
24
+ editedMessage: string;
25
+ saveEdit(): void;
26
+ endEditing(): void;
27
+ startEdit(): void;
28
+ delete(): void;
29
+ get liked(): import("rxjs").Observable<void>;
30
+ get unliked(): import("rxjs").Observable<void>;
21
31
  get selected(): import("rxjs").Observable<void>;
22
- get commentId(): string;
32
+ private _editStarted;
33
+ private _deleted;
34
+ private _editEnded;
35
+ private _edited;
36
+ get edited(): import("rxjs").Observable<string>;
37
+ get deleted(): import("rxjs").Observable<void>;
38
+ get editStarted(): import("rxjs").Observable<void>;
39
+ get editEnded(): import("rxjs").Observable<void>;
23
40
  get shared(): import("rxjs").Observable<ChatMessage>;
41
+ get commentId(): string;
24
42
  report(): void;
25
- upvote(): void;
43
+ like(): void;
44
+ unlike(): void;
26
45
  share(): void;
27
46
  select(): void;
28
47
  selectUser(): void;
@@ -1,6 +1,7 @@
1
1
  import { ElementRef } from "@angular/core";
2
- import { ChatMessage, ChatSource, User } from "@banta/common";
2
+ import { ChatMessage, User } from "@banta/common";
3
3
  import { Observable, Subject } from "rxjs";
4
+ import { ChatSourceBase } from "../../chat-source-base";
4
5
  export interface AutoCompleteOption {
5
6
  label: string;
6
7
  action?: () => void;
@@ -10,7 +11,7 @@ export interface HashTag {
10
11
  description: string;
11
12
  }
12
13
  export declare class CommentFieldComponent {
13
- source: ChatSource;
14
+ source: ChatSourceBase;
14
15
  user: User;
15
16
  canComment: boolean;
16
17
  signInSelected: Subject<void>;
@@ -25,21 +26,23 @@ export declare class CommentFieldComponent {
25
26
  permissionDeniedLabel: string;
26
27
  signInLabel: string;
27
28
  placeholder: string;
28
- shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSource) => boolean | Promise<boolean>;
29
+ textChanged: Subject<void>;
30
+ shouldInterceptMessageSend?: (message: ChatMessage, source: ChatSourceBase) => boolean | Promise<boolean>;
29
31
  autocompleteEl: ElementRef<HTMLElement>;
30
32
  autocompleteContainerEl: ElementRef<HTMLElement>;
31
33
  textareaEl: ElementRef<HTMLTextAreaElement>;
32
34
  hashtags: HashTag[];
33
35
  participants: User[];
34
36
  private _permissionDeniedError;
35
- get permissionDeniedError(): Observable<void>;
37
+ get permissionDeniedError(): Observable<string>;
36
38
  ngAfterViewInit(): void;
37
- showPermissionDenied(): void;
39
+ sendPermissionDenied(message: string): void;
38
40
  showAutoComplete(options: AutoCompleteOption[]): void;
39
41
  autocompleteVisible: boolean;
40
42
  autocompleteOptions: AutoCompleteOption[];
41
43
  activateAutoComplete(option: AutoCompleteOption): void;
42
44
  dismissAutoComplete(): void;
45
+ private errorTimeout;
43
46
  indicateError(message: string): void;
44
47
  completionFunc: (str: string) => AutoCompleteOption[];
45
48
  completionPrefix: string;
@@ -52,5 +55,6 @@ export declare class CommentFieldComponent {
52
55
  insertEmoji(text: string): void;
53
56
  showSignIn(): void;
54
57
  showEditAvatar(): void;
58
+ submit: (message: ChatMessage) => boolean;
55
59
  sendMessage(): Promise<void>;
56
60
  }
@@ -1,41 +1,58 @@
1
1
  import { ElementRef } from "@angular/core";
2
- import { User, ChatMessage, ChatSource } from '@banta/common';
2
+ import { User, ChatMessage, CommentsOrder } from '@banta/common';
3
3
  import { Subject } from 'rxjs';
4
- import { ChatBackendService } from "../../common";
4
+ import { ChatBackendBase } from "../../chat-backend-base";
5
+ import { ChatSourceBase } from "../../chat-source-base";
6
+ export interface EditEvent {
7
+ message: ChatMessage;
8
+ newMessage: string;
9
+ }
5
10
  export declare class CommentViewComponent {
6
11
  private backend;
7
- constructor(backend: ChatBackendService);
12
+ constructor(backend: ChatBackendBase);
8
13
  private _sourceSubs;
9
14
  private _source;
10
15
  private _selected;
11
- private _upvoted;
16
+ private _liked;
17
+ private _unliked;
12
18
  private _reported;
13
19
  private _userSelected;
14
20
  private _usernameSelected;
15
21
  private _avatarSelected;
16
22
  private _shared;
23
+ private _deleted;
24
+ private _messageEdited;
17
25
  showEmptyState: boolean;
18
26
  allowReplies: boolean;
19
27
  fixedHeight: boolean;
20
28
  get selected(): Subject<ChatMessage>;
29
+ get messageEdited(): import("rxjs").Observable<EditEvent>;
30
+ saveEdit(message: ChatMessage, newMessage: string): void;
21
31
  get userSelected(): Subject<ChatMessage>;
22
32
  get reported(): Subject<ChatMessage>;
23
- get upvoted(): Subject<ChatMessage>;
33
+ get liked(): Subject<ChatMessage>;
34
+ get unliked(): Subject<ChatMessage>;
24
35
  get usernameSelected(): Subject<User>;
25
36
  get avatarSelected(): Subject<User>;
26
37
  get shared(): Subject<ChatMessage>;
38
+ get deleted(): Subject<ChatMessage>;
27
39
  menuMessage: ChatMessage;
28
40
  messages: ChatMessage[];
29
41
  currentUser: User;
30
- get source(): ChatSource;
31
- upvoteMessage(message: ChatMessage): void;
42
+ get source(): ChatSourceBase;
43
+ likeMessage(message: ChatMessage): void;
44
+ unlikeMessage(message: ChatMessage): void;
32
45
  reportMessage(message: ChatMessage): void;
33
46
  selectMessage(message: ChatMessage): void;
34
47
  selectMessageUser(message: ChatMessage): void;
35
48
  selectUsername(user: User): void;
36
49
  selectAvatar(user: User): void;
37
50
  sharedMessage(message: ChatMessage): void;
38
- set source(value: ChatSource);
51
+ startEditing(message: ChatMessage): void;
52
+ deleteMessage(message: ChatMessage): void;
53
+ customSortEnabled: boolean;
54
+ set source(value: ChatSourceBase);
55
+ private getInitialMessages;
39
56
  genericAvatarUrl: string;
40
57
  messageContainer: ElementRef<HTMLElement>;
41
58
  maxMessages: number;
@@ -47,6 +64,7 @@ export declare class CommentViewComponent {
47
64
  newMessages: ChatMessage[];
48
65
  olderMessages: ChatMessage[];
49
66
  messageIdentity(index: number, chatMessage: ChatMessage): string;
67
+ sortOrderChanged: Subject<CommentsOrder>;
50
68
  showNew(): Promise<void>;
51
69
  showMore(): Promise<void>;
52
70
  private addMessage;
@@ -1,9 +1,9 @@
1
1
  import { ChatMessage } from '@banta/common';
2
2
  import { Observable } from 'rxjs';
3
- import { ChatBackendService } from '../common';
3
+ import { ChatBackendBase } from '../chat-backend-base';
4
4
  export declare class LiveCommentComponent {
5
5
  private backend;
6
- constructor(backend: ChatBackendService);
6
+ constructor(backend: ChatBackendBase);
7
7
  private _message;
8
8
  private _upvoted;
9
9
  private _reported;
@@ -1,5 +1,3 @@
1
1
  export * from './lazy-connection';
2
- export * from './banta.service';
3
2
  export * from './timestamp.component';
4
- export * from './chat-backend.service';
5
3
  export * from './common.module';
package/lib/index.d.ts CHANGED
@@ -5,4 +5,9 @@ export * from './banta-logo.component';
5
5
  export * from './chat';
6
6
  export * from './live-message.component';
7
7
  export * from './comments';
8
+ export * from './chat-backend-base';
9
+ export * from './chat-source-base';
10
+ export * from './chat-backend';
11
+ export * from './chat-source';
12
+ export * from './sdk-options';
8
13
  export * from './banta-sdk.module';
@@ -0,0 +1,4 @@
1
+ export interface SdkOptions {
2
+ serviceUrl?: string;
3
+ }
4
+ export declare const BANTA_SDK_OPTIONS = "BANTA_SDK_OPTIONS";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@banta/sdk",
3
- "version": "3.3.11",
3
+ "version": "4.0.2",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"