@banta/sdk 4.3.2 → 4.4.1

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 (32) hide show
  1. package/bundles/banta-sdk.umd.js +574 -117
  2. package/bundles/banta-sdk.umd.js.map +1 -1
  3. package/bundles/banta-sdk.umd.min.js +1 -1
  4. package/bundles/banta-sdk.umd.min.js.map +1 -1
  5. package/esm2015/lib/attachment-scraper.js +87 -0
  6. package/esm2015/lib/banta-sdk.module.js +6 -2
  7. package/esm2015/lib/chat-backend-base.js +20 -1
  8. package/esm2015/lib/chat-backend.js +19 -1
  9. package/esm2015/lib/comments/banta-comments/banta-comments.component.js +1 -1
  10. package/esm2015/lib/comments/comment/comment.component.js +9 -12
  11. package/esm2015/lib/comments/comment-field/comment-field.component.js +89 -7
  12. package/esm2015/lib/comments/comments.module.js +6 -2
  13. package/esm2015/lib/common/attachment/attachment.component.js +55 -0
  14. package/esm2015/lib/common/attachments/attachments.component.js +47 -0
  15. package/esm2015/lib/common/common.module.js +13 -3
  16. package/esm2015/lib/common/index.js +4 -1
  17. package/esm2015/lib/common/trust-resource-url.pipe.js +21 -0
  18. package/esm2015/lib/emoji/emoji-selector-button.component.js +56 -105
  19. package/esm2015/lib/emoji/emoji.module.js +6 -2
  20. package/fesm2015/banta-sdk.js +404 -127
  21. package/fesm2015/banta-sdk.js.map +1 -1
  22. package/lib/attachment-scraper.d.ts +30 -0
  23. package/lib/chat-backend-base.d.ts +9 -0
  24. package/lib/chat-backend.d.ts +2 -1
  25. package/lib/comments/comment/comment.component.d.ts +2 -4
  26. package/lib/comments/comment-field/comment-field.component.d.ts +11 -2
  27. package/lib/common/attachment/attachment.component.d.ts +18 -0
  28. package/lib/common/attachments/attachments.component.d.ts +15 -0
  29. package/lib/common/index.d.ts +3 -0
  30. package/lib/common/trust-resource-url.pipe.d.ts +7 -0
  31. package/lib/emoji/emoji-selector-button.component.d.ts +13 -14
  32. package/package.json +1 -1
@@ -0,0 +1,30 @@
1
+ import { ChatMessage, ChatMessageAttachment } from '@banta/common';
2
+ import { ChatBackendBase } from './chat-backend-base';
3
+ export interface AttachmentFragment {
4
+ text: string;
5
+ offset: number;
6
+ type: string;
7
+ }
8
+ export interface AttachmentScraper {
9
+ findFragments(message: ChatMessage): AttachmentFragment[];
10
+ }
11
+ export interface AttachmentResolver {
12
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
13
+ }
14
+ export interface AttachmentRenderer {
15
+ attachment: ChatMessageAttachment;
16
+ }
17
+ export declare class UrlAttachmentScraper implements AttachmentScraper {
18
+ findFragments(message: ChatMessage): AttachmentFragment[];
19
+ }
20
+ export declare class GiphyAttachmentResolver implements AttachmentResolver {
21
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
22
+ }
23
+ export declare class YouTubeAttachmentResolver implements AttachmentResolver {
24
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
25
+ }
26
+ export declare class UrlAttachmentResolver implements AttachmentResolver {
27
+ private backend;
28
+ constructor(backend: ChatBackendBase);
29
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
30
+ }
@@ -1,10 +1,12 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { ChatMessage, CommentsOrder, Notification, User } from '@banta/common';
3
3
  import { ChatSourceBase } from './chat-source-base';
4
+ import { AttachmentResolver, AttachmentScraper } from './attachment-scraper';
4
5
  export interface ChatSourceOptions {
5
6
  sortOrder: CommentsOrder;
6
7
  }
7
8
  export declare abstract class ChatBackendBase {
9
+ constructor();
8
10
  abstract getSourceForTopic(topicId: string, options?: ChatSourceOptions): Promise<ChatSourceBase>;
9
11
  abstract getSourceForThread(topicId: string, messageId: string, options?: ChatSourceOptions): Promise<ChatSourceBase>;
10
12
  abstract getSourceCountForTopic(topicId: string): Promise<number>;
@@ -12,6 +14,7 @@ export declare abstract class ChatBackendBase {
12
14
  abstract getMessage(topicId: string, messageId: string): Promise<ChatMessage>;
13
15
  abstract getSubMessage(topicId: string, parentMessageId: string, messageId: string): Promise<ChatMessage>;
14
16
  abstract watchMessage(message: ChatMessage, handler: (message: ChatMessage) => void): () => void;
17
+ abstract getCardForUrl(url: string): any;
15
18
  readonly notificationsChanged: Observable<Notification[]>;
16
19
  readonly newNotification: Observable<Notification>;
17
20
  private _userChanged;
@@ -19,4 +22,10 @@ export declare abstract class ChatBackendBase {
19
22
  get userChanged(): Observable<User>;
20
23
  set user(user: User);
21
24
  get user(): User;
25
+ private _attachmentScrapers;
26
+ private _attachmentResolvers;
27
+ registerAttachmentScraper(scraper: AttachmentScraper): void;
28
+ registerAttachmentResolver(resolver: AttachmentResolver): void;
29
+ get attachmentScrapers(): AttachmentScraper[];
30
+ get attachmentResolvers(): AttachmentResolver[];
22
31
  }
@@ -1,4 +1,4 @@
1
- import { ChatMessage, Notification } from "@banta/common";
1
+ import { ChatMessage, Notification, UrlCard } from "@banta/common";
2
2
  import { Observable } from "rxjs";
3
3
  import { ChatBackendBase, ChatSourceOptions } from "./chat-backend-base";
4
4
  import { ChatSource } from "./chat-source";
@@ -18,4 +18,5 @@ export declare class ChatBackend extends ChatBackendBase {
18
18
  watchMessage(message: ChatMessage, handler: (message: ChatMessage) => void): () => void;
19
19
  notificationsChanged: Observable<Notification[]>;
20
20
  newNotification: Observable<Notification>;
21
+ getCardForUrl(url: string): Promise<UrlCard>;
21
22
  }
@@ -1,5 +1,4 @@
1
- import { ChatMessage, ChatMessageAttachment, ChatPermissions, User } from '@banta/common';
2
- import { LightboxComponent } from "../../common/lightbox/lightbox.component";
1
+ import { ChatMessage, ChatPermissions, User } from '@banta/common';
3
2
  export declare class CommentComponent {
4
3
  private _reported;
5
4
  private _selected;
@@ -49,7 +48,6 @@ export declare class CommentComponent {
49
48
  selectUser(): void;
50
49
  selectUsername(user: User): void;
51
50
  selectAvatar(user: User): void;
52
- lightbox: LightboxComponent;
53
- showLightbox(image: ChatMessageAttachment): void;
54
51
  avatarForUser(user: User): string;
52
+ get replyCount(): number;
55
53
  }
@@ -1,6 +1,7 @@
1
1
  import { ElementRef } from "@angular/core";
2
2
  import { ChatMessage, ChatMessageAttachment, User } from "@banta/common";
3
3
  import { Observable, Subject } from "rxjs";
4
+ import { ChatBackendBase } from "../../chat-backend-base";
4
5
  import { ChatSourceBase } from "../../chat-source-base";
5
6
  export interface AutoCompleteOption {
6
7
  label: string;
@@ -11,6 +12,8 @@ export interface HashTag {
11
12
  description: string;
12
13
  }
13
14
  export declare class CommentFieldComponent {
15
+ private chatBackend;
16
+ constructor(chatBackend: ChatBackendBase);
14
17
  source: ChatSourceBase;
15
18
  user: User;
16
19
  canComment: boolean;
@@ -20,7 +23,13 @@ export declare class CommentFieldComponent {
20
23
  sending: boolean;
21
24
  sendError: Error;
22
25
  expandError: boolean;
23
- text: string;
26
+ private _text;
27
+ get text(): string;
28
+ set text(value: string);
29
+ private attachmentScrapeTimeout;
30
+ private attachmentScrapeDebounce;
31
+ private attachmentFragments;
32
+ private scrapeAttachments;
24
33
  sendLabel: string;
25
34
  sendingLabel: string;
26
35
  label: string;
@@ -67,6 +76,6 @@ export declare class CommentFieldComponent {
67
76
  chatMessageAttachments: ChatMessageAttachment[];
68
77
  addedAttachment(attachment: ChatMessageAttachment): void;
69
78
  attachmentError(attachment: ChatMessageAttachment): void;
70
- removeAttachment(index: number): void;
79
+ removeAttachment(attachment: ChatMessageAttachment): void;
71
80
  alertError(): void;
72
81
  }
@@ -0,0 +1,18 @@
1
+ import { ChatMessageAttachment } from "@banta/common";
2
+ import { Subject } from "rxjs";
3
+ export declare class BantaAttachmentComponent {
4
+ attachment: ChatMessageAttachment;
5
+ loading: boolean;
6
+ editing: boolean;
7
+ loadingMessage: string;
8
+ error: boolean;
9
+ errorMessage: string;
10
+ removed: Subject<void>;
11
+ activated: Subject<void>;
12
+ activate(): void;
13
+ remove(): void;
14
+ get isError(): any;
15
+ get theErrorMessage(): any;
16
+ get isLoading(): any;
17
+ get isImageAttachment(): boolean;
18
+ }
@@ -0,0 +1,15 @@
1
+ import { ChatMessageAttachment } from "@banta/common";
2
+ import { Subject } from "rxjs";
3
+ import { LightboxComponent } from "../lightbox/lightbox.component";
4
+ export declare class BantaAttachmentsComponent {
5
+ attachments: ChatMessageAttachment[];
6
+ editing: boolean;
7
+ lightbox: LightboxComponent;
8
+ remove: Subject<ChatMessageAttachment>;
9
+ removeAttachment(attachment: ChatMessageAttachment): void;
10
+ isImageAttachment(attachment: ChatMessageAttachment): boolean;
11
+ isCardAttachment(attachment: ChatMessageAttachment): boolean;
12
+ showLightbox(image: ChatMessageAttachment): void;
13
+ get inlineAttachments(): ChatMessageAttachment[];
14
+ get blockAttachments(): ChatMessageAttachment[];
15
+ }
@@ -2,4 +2,7 @@ export * from './lazy-connection';
2
2
  export * from './timestamp.component';
3
3
  export * from './lightbox/lightbox.component';
4
4
  export * from './markdown-to-html.pipe';
5
+ export * from './trust-resource-url.pipe';
6
+ export * from './attachment/attachment.component';
7
+ export * from './attachments/attachments.component';
5
8
  export * from './common.module';
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ export declare class BantaTrustResourceUrlPipe implements PipeTransform {
4
+ private sanitizer;
5
+ constructor(sanitizer: DomSanitizer);
6
+ transform(value: string): import("@angular/platform-browser").SafeResourceUrl;
7
+ }
@@ -1,23 +1,22 @@
1
+ import { Overlay, OverlayRef } from '@angular/cdk/overlay';
2
+ import { TemplatePortal } from '@angular/cdk/portal';
1
3
  import { ElementRef } from '@angular/core';
2
4
  import { Observable } from 'rxjs';
3
5
  export declare class EmojiSelectorButtonComponent {
4
6
  private elementRef;
5
- constructor(elementRef: ElementRef<HTMLElement>);
7
+ private overlay;
8
+ constructor(elementRef: ElementRef<HTMLElement>, overlay: Overlay);
9
+ selectorPanelTemplate: TemplatePortal<any>;
6
10
  private _selected;
7
- private clickListener;
8
- private resizeListener;
9
11
  showEmojiPanel: boolean;
10
12
  get selected(): Observable<string>;
11
- panelElement: ElementRef<HTMLElement>;
12
- buttonElement: ElementRef<HTMLElement>;
13
- ngOnDestroy(): void;
14
- private width;
15
- private height;
16
- get widthConstrained(): boolean;
17
- ngAfterViewInit(): void;
18
- private putPanelAtRoot;
19
- private removeListener;
20
- place(): void;
21
- show(): void;
13
+ private overlayRef;
14
+ get isOpen(): OverlayRef;
15
+ /**
16
+ * Insert the given emoji.
17
+ * @param str
18
+ */
22
19
  insert(str: any): void;
20
+ close(): void;
21
+ show(): void;
23
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@banta/sdk",
3
- "version": "4.3.2",
3
+ "version": "4.4.1",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"