@banta/sdk 4.3.3 → 4.4.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 (40) hide show
  1. package/banta-sdk.metadata.json +1 -1
  2. package/bundles/banta-sdk.umd.js +581 -27
  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/attachment-scraper.js +2 -0
  7. package/esm2015/lib/banta-sdk.module.js +23 -1
  8. package/esm2015/lib/chat-backend-base.js +15 -1
  9. package/esm2015/lib/chat-backend.js +19 -1
  10. package/esm2015/lib/comments/banta-comments/banta-comments.component.js +1 -1
  11. package/esm2015/lib/comments/comment/comment.component.js +5 -12
  12. package/esm2015/lib/comments/comment-field/comment-field.component.js +89 -7
  13. package/esm2015/lib/common/attachment/attachment.component.js +81 -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/giphy-attachments.js +20 -0
  19. package/esm2015/lib/index.js +6 -1
  20. package/esm2015/lib/tweet-attachments.js +16 -0
  21. package/esm2015/lib/url-attachments.js +46 -0
  22. package/esm2015/lib/youtube-attachments.js +25 -0
  23. package/fesm2015/banta-sdk.js +395 -22
  24. package/fesm2015/banta-sdk.js.map +1 -1
  25. package/lib/attachment-scraper.d.ts +15 -0
  26. package/lib/banta-sdk.module.d.ts +2 -0
  27. package/lib/chat-backend-base.d.ts +10 -1
  28. package/lib/chat-backend.d.ts +2 -1
  29. package/lib/comments/comment/comment.component.d.ts +1 -4
  30. package/lib/comments/comment-field/comment-field.component.d.ts +11 -2
  31. package/lib/common/attachment/attachment.component.d.ts +22 -0
  32. package/lib/common/attachments/attachments.component.d.ts +15 -0
  33. package/lib/common/index.d.ts +3 -0
  34. package/lib/common/trust-resource-url.pipe.d.ts +7 -0
  35. package/lib/giphy-attachments.d.ts +5 -0
  36. package/lib/index.d.ts +5 -0
  37. package/lib/tweet-attachments.d.ts +5 -0
  38. package/lib/url-attachments.d.ts +11 -0
  39. package/lib/youtube-attachments.d.ts +5 -0
  40. package/package.json +1 -1
@@ -0,0 +1,15 @@
1
+ import { ChatMessage, ChatMessageAttachment } from '@banta/common';
2
+ export interface AttachmentFragment {
3
+ text: string;
4
+ offset: number;
5
+ type: string;
6
+ }
7
+ export interface AttachmentScraper {
8
+ findFragments(message: ChatMessage): AttachmentFragment[];
9
+ }
10
+ export interface AttachmentResolver {
11
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
12
+ }
13
+ export interface AttachmentRenderer {
14
+ attachment: ChatMessageAttachment;
15
+ }
@@ -1,5 +1,7 @@
1
1
  import { ModuleWithProviders } from '@angular/core';
2
2
  import { SdkOptions } from './sdk-options';
3
+ import { ChatBackendBase } from './chat-backend-base';
3
4
  export declare class BantaSdkModule {
5
+ constructor(chatBackend: ChatBackendBase);
4
6
  static configure(options?: SdkOptions): ModuleWithProviders<BantaSdkModule>;
5
7
  }
@@ -1,10 +1,12 @@
1
1
  import { Observable } from 'rxjs';
2
- import { ChatMessage, CommentsOrder, Notification, User } from '@banta/common';
2
+ import { ChatMessage, CommentsOrder, Notification, User, UrlCard } 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): Promise<UrlCard>;
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,8 +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;
55
52
  get replyCount(): number;
56
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,22 @@
1
+ import { ChatMessageAttachment } from "@banta/common";
2
+ import { Subject } from "rxjs";
3
+ export declare class BantaAttachmentComponent {
4
+ constructor();
5
+ attachment: ChatMessageAttachment;
6
+ loading: boolean;
7
+ editing: boolean;
8
+ loadingMessage: string;
9
+ error: boolean;
10
+ errorMessage: string;
11
+ removed: Subject<void>;
12
+ activated: Subject<void>;
13
+ ngOnInit(): void;
14
+ activate(): void;
15
+ remove(): void;
16
+ get isError(): any;
17
+ get theErrorMessage(): any;
18
+ get isLoading(): any;
19
+ get isImageAttachment(): boolean;
20
+ get hasFrame(): string | boolean;
21
+ get frameUrl(): string;
22
+ }
@@ -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
+ }
@@ -0,0 +1,5 @@
1
+ import { ChatMessage, ChatMessageAttachment } from "@banta/common";
2
+ import { AttachmentFragment, AttachmentResolver } from "./attachment-scraper";
3
+ export declare class GiphyAttachmentResolver implements AttachmentResolver {
4
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
5
+ }
package/lib/index.d.ts CHANGED
@@ -10,4 +10,9 @@ export * from './chat-source-base';
10
10
  export * from './chat-backend';
11
11
  export * from './chat-source';
12
12
  export * from './sdk-options';
13
+ export * from './attachment-scraper';
14
+ export * from './url-attachments';
15
+ export * from './youtube-attachments';
16
+ export * from './giphy-attachments';
17
+ export * from './tweet-attachments';
13
18
  export * from './banta-sdk.module';
@@ -0,0 +1,5 @@
1
+ import { ChatMessage, ChatMessageAttachment } from "@banta/common";
2
+ import { AttachmentFragment, AttachmentResolver } from "./attachment-scraper";
3
+ export declare class TweetAttachmentResolver implements AttachmentResolver {
4
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
5
+ }
@@ -0,0 +1,11 @@
1
+ import { ChatMessage, ChatMessageAttachment } from "@banta/common";
2
+ import { AttachmentFragment, AttachmentResolver, AttachmentScraper } from "./attachment-scraper";
3
+ import { ChatBackendBase } from "./chat-backend-base";
4
+ export declare class UrlAttachmentScraper implements AttachmentScraper {
5
+ findFragments(message: ChatMessage): AttachmentFragment[];
6
+ }
7
+ export declare class UrlAttachmentResolver implements AttachmentResolver {
8
+ private backend;
9
+ constructor(backend: ChatBackendBase);
10
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
11
+ }
@@ -0,0 +1,5 @@
1
+ import { ChatMessage, ChatMessageAttachment } from "@banta/common";
2
+ import { AttachmentFragment, AttachmentResolver } from "./attachment-scraper";
3
+ export declare class YouTubeAttachmentResolver implements AttachmentResolver {
4
+ resolveFragment(message: ChatMessage, fragment: AttachmentFragment): Promise<ChatMessageAttachment>;
5
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@banta/sdk",
3
- "version": "4.3.3",
3
+ "version": "4.4.2",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"