@banta/sdk 5.2.5 → 5.4.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/{esm2022 → esm2020}/banta-sdk.mjs +4 -4
- package/{esm2022 → esm2020}/lib/attachment-scraper.mjs +1 -1
- package/esm2020/lib/banta/banta.component.mjs +204 -0
- package/{esm2022 → esm2020}/lib/banta-logo.component.mjs +11 -11
- package/{esm2022 → esm2020}/lib/banta-sdk.module.mjs +135 -135
- package/esm2020/lib/chat/banta-chat/banta-chat.component.mjs +209 -0
- package/esm2020/lib/chat/chat-message/chat-message.component.mjs +62 -0
- package/esm2020/lib/chat/chat-view/chat-view.component.mjs +170 -0
- package/{esm2022 → esm2020}/lib/chat/chat.module.mjs +51 -51
- package/{esm2022 → esm2020}/lib/chat/index.mjs +5 -5
- package/esm2020/lib/chat/live-chat-message.component.mjs +80 -0
- package/esm2020/lib/chat-backend-base.mjs +31 -0
- package/esm2020/lib/chat-backend.mjs +194 -0
- package/{esm2022 → esm2020}/lib/chat-source-base.mjs +1 -1
- package/esm2020/lib/chat-source.mjs +233 -0
- package/esm2020/lib/comments/attachment-button/attachment-button.component.mjs +76 -0
- package/esm2020/lib/comments/attachment-scraper.directive.mjs +107 -0
- package/esm2020/lib/comments/banta-comments/banta-comments.component.mjs +749 -0
- package/esm2020/lib/comments/comment/comment.component.mjs +175 -0
- package/esm2020/lib/comments/comment-field/comment-field.component.mjs +401 -0
- package/esm2020/lib/comments/comment-sort/comment-sort.component.mjs +37 -0
- package/esm2020/lib/comments/comment-view/comment-view.component.mjs +470 -0
- package/{esm2022 → esm2020}/lib/comments/comments.module.mjs +111 -111
- package/{esm2022 → esm2020}/lib/comments/index.mjs +10 -10
- package/esm2020/lib/comments/live-comment.component.mjs +80 -0
- package/{esm2022 → esm2020}/lib/comments/reply-send-options.directive.mjs +13 -13
- package/esm2020/lib/common/attachment/attachment.component.mjs +128 -0
- package/{esm2022 → esm2020}/lib/common/attachments/attachments.component.mjs +75 -75
- package/{esm2022 → esm2020}/lib/common/common.module.mjs +68 -68
- package/{esm2022 → esm2020}/lib/common/index.mjs +10 -10
- package/{esm2022 → esm2020}/lib/common/lazy-connection.mjs +14 -14
- package/esm2020/lib/common/lightbox/lightbox.component.mjs +31 -0
- package/esm2020/lib/common/markdown-to-html.pipe.mjs +88 -0
- package/esm2020/lib/common/mention-linker.pipe.mjs +35 -0
- package/esm2020/lib/common/timer-pool.service.mjs +83 -0
- package/esm2020/lib/common/timestamp.component.mjs +123 -0
- package/{esm2022 → esm2020}/lib/common/trust-resource-url.pipe.mjs +22 -22
- package/esm2020/lib/emoji/emoji-selector-button.component.mjs +116 -0
- package/esm2020/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +98 -0
- package/{esm2022 → esm2020}/lib/emoji/emoji.module.mjs +55 -55
- package/{esm2022 → esm2020}/lib/emoji/emojis.mjs +6507 -6507
- package/{esm2022 → esm2020}/lib/emoji/index.mjs +4 -4
- package/esm2020/lib/giphy-attachments.mjs +16 -0
- package/{esm2022 → esm2020}/lib/index.mjs +19 -19
- package/{esm2022 → esm2020}/lib/live-message.component.mjs +61 -61
- package/{esm2022 → esm2020}/lib/message-menu-item.mjs +1 -1
- package/{esm2022 → esm2020}/lib/sdk-options.mjs +1 -1
- package/esm2020/lib/static-chat-source.mjs +71 -0
- package/esm2020/lib/tweet-attachments.mjs +13 -0
- package/esm2020/lib/url-attachments.mjs +42 -0
- package/esm2020/lib/youtube-attachments.mjs +29 -0
- package/{esm2022 → esm2020}/public-api.mjs +4 -4
- package/fesm2015/banta-sdk.mjs +11258 -0
- package/fesm2015/banta-sdk.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/banta-sdk.mjs +10823 -10782
- package/fesm2020/banta-sdk.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/attachment-scraper.d.ts +15 -15
- package/lib/banta/banta.component.d.ts +58 -58
- package/lib/banta-logo.component.d.ts +5 -5
- package/lib/banta-sdk.module.d.ts +31 -31
- package/lib/chat/banta-chat/banta-chat.component.d.ts +79 -70
- package/lib/chat/chat-message/chat-message.component.d.ts +21 -21
- package/lib/chat/chat-view/chat-view.component.d.ts +52 -52
- package/lib/chat/chat.module.d.ts +15 -15
- package/lib/chat/index.d.ts +5 -5
- package/lib/chat/live-chat-message.component.d.ts +23 -23
- package/lib/chat-backend-base.d.ts +72 -71
- package/lib/chat-backend.d.ts +67 -67
- package/lib/chat-source-base.d.ts +44 -44
- package/lib/chat-source.d.ts +65 -65
- package/lib/comments/attachment-button/attachment-button.component.d.ts +17 -17
- package/lib/comments/attachment-scraper.directive.d.ts +21 -21
- package/lib/comments/banta-comments/banta-comments.component.d.ts +203 -196
- package/lib/comments/comment/comment.component.d.ts +72 -72
- package/lib/comments/comment-field/comment-field.component.d.ts +89 -89
- package/lib/comments/comment-sort/comment-sort.component.d.ts +16 -16
- package/lib/comments/comment-view/comment-view.component.d.ts +121 -121
- package/lib/comments/comments.module.d.ts +30 -30
- package/lib/comments/index.d.ts +10 -10
- package/lib/comments/live-comment.component.d.ts +23 -23
- package/lib/comments/reply-send-options.directive.d.ts +5 -5
- package/lib/common/attachment/attachment.component.d.ts +34 -34
- package/lib/common/attachments/attachments.component.d.ts +26 -26
- package/lib/common/common.module.d.ts +19 -19
- package/lib/common/index.d.ts +10 -10
- package/lib/common/lazy-connection.d.ts +6 -6
- package/lib/common/lightbox/lightbox.component.d.ts +14 -14
- package/lib/common/markdown-to-html.pipe.d.ts +15 -15
- package/lib/common/mention-linker.pipe.d.ts +13 -13
- package/lib/common/timer-pool.service.d.ts +15 -15
- package/lib/common/timestamp.component.d.ts +19 -19
- package/lib/common/trust-resource-url.pipe.d.ts +10 -10
- package/lib/emoji/emoji-selector-button.component.d.ts +30 -30
- package/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.d.ts +26 -26
- package/lib/emoji/emoji.module.d.ts +16 -16
- package/lib/emoji/emojis.d.ts +6507 -6507
- package/lib/emoji/index.d.ts +4 -4
- package/lib/giphy-attachments.d.ts +5 -5
- package/lib/index.d.ts +19 -19
- package/lib/live-message.component.d.ts +22 -22
- package/lib/message-menu-item.d.ts +6 -6
- package/lib/sdk-options.d.ts +5 -5
- package/lib/static-chat-source.d.ts +42 -42
- package/lib/tweet-attachments.d.ts +5 -5
- package/lib/url-attachments.d.ts +14 -14
- package/lib/youtube-attachments.d.ts +5 -5
- package/package.json +11 -5
- package/public-api.d.ts +1 -1
- package/esm2022/lib/banta/banta.component.mjs +0 -204
- package/esm2022/lib/chat/banta-chat/banta-chat.component.mjs +0 -187
- package/esm2022/lib/chat/chat-message/chat-message.component.mjs +0 -62
- package/esm2022/lib/chat/chat-view/chat-view.component.mjs +0 -170
- package/esm2022/lib/chat/live-chat-message.component.mjs +0 -80
- package/esm2022/lib/chat-backend-base.mjs +0 -31
- package/esm2022/lib/chat-backend.mjs +0 -194
- package/esm2022/lib/chat-source.mjs +0 -233
- package/esm2022/lib/comments/attachment-button/attachment-button.component.mjs +0 -76
- package/esm2022/lib/comments/attachment-scraper.directive.mjs +0 -107
- package/esm2022/lib/comments/banta-comments/banta-comments.component.mjs +0 -730
- package/esm2022/lib/comments/comment/comment.component.mjs +0 -175
- package/esm2022/lib/comments/comment-field/comment-field.component.mjs +0 -401
- package/esm2022/lib/comments/comment-sort/comment-sort.component.mjs +0 -37
- package/esm2022/lib/comments/comment-view/comment-view.component.mjs +0 -470
- package/esm2022/lib/comments/live-comment.component.mjs +0 -80
- package/esm2022/lib/common/attachment/attachment.component.mjs +0 -128
- package/esm2022/lib/common/lightbox/lightbox.component.mjs +0 -31
- package/esm2022/lib/common/markdown-to-html.pipe.mjs +0 -88
- package/esm2022/lib/common/mention-linker.pipe.mjs +0 -35
- package/esm2022/lib/common/timer-pool.service.mjs +0 -83
- package/esm2022/lib/common/timestamp.component.mjs +0 -123
- package/esm2022/lib/emoji/emoji-selector-button.component.mjs +0 -115
- package/esm2022/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +0 -98
- package/esm2022/lib/giphy-attachments.mjs +0 -16
- package/esm2022/lib/static-chat-source.mjs +0 -71
- package/esm2022/lib/tweet-attachments.mjs +0 -13
- package/esm2022/lib/url-attachments.mjs +0 -42
- package/esm2022/lib/youtube-attachments.mjs +0 -29
- package/fesm2022/banta-sdk.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './emoji-selector-panel/emoji-selector-panel.component';
|
|
2
|
-
export * from './emoji-selector-button.component';
|
|
3
|
-
export * from './emojis';
|
|
4
|
-
export * from './emoji.module';
|
|
1
|
+
export * from './emoji-selector-panel/emoji-selector-panel.component';
|
|
2
|
+
export * from './emoji-selector-button.component';
|
|
3
|
+
export * from './emojis';
|
|
4
|
+
export * from './emoji.module';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9lbW9qaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW1vamktc2VsZWN0b3ItcGFuZWwvZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9lbW9qaS1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2Vtb2ppcyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2Vtb2ppLm1vZHVsZSc7Il19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class GiphyAttachmentResolver {
|
|
2
|
+
async resolveFragment(message, fragment) {
|
|
3
|
+
if (fragment.type === 'url' && fragment.text.startsWith('https://giphy.com/gifs')) {
|
|
4
|
+
let gifId = /[^-\/]+$/.exec(fragment.text)?.toString();
|
|
5
|
+
if (!gifId)
|
|
6
|
+
return null;
|
|
7
|
+
return {
|
|
8
|
+
type: 'iframe',
|
|
9
|
+
url: `https://giphy.com/embed/${gifId}`,
|
|
10
|
+
style: 'inline'
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lwaHktYXR0YWNobWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9naXBoeS1hdHRhY2htZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBb0IsRUFBRSxRQUE0QjtRQUNwRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDL0UsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLEtBQUs7Z0JBQ04sT0FBTyxJQUFJLENBQUM7WUFFaEIsT0FBTztnQkFDSCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxHQUFHLEVBQUUsMkJBQTJCLEtBQUssRUFBRTtnQkFDdkMsS0FBSyxFQUFFLFFBQVE7YUFDbEIsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRNZXNzYWdlQXR0YWNobWVudCB9IGZyb20gXCJAYmFudGEvY29tbW9uXCI7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGcmFnbWVudCwgQXR0YWNobWVudFJlc29sdmVyIH0gZnJvbSBcIi4vYXR0YWNobWVudC1zY3JhcGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgR2lwaHlBdHRhY2htZW50UmVzb2x2ZXIgaW1wbGVtZW50cyBBdHRhY2htZW50UmVzb2x2ZXIge1xyXG4gICAgYXN5bmMgcmVzb2x2ZUZyYWdtZW50KG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBmcmFnbWVudDogQXR0YWNobWVudEZyYWdtZW50KTogUHJvbWlzZTxDaGF0TWVzc2FnZUF0dGFjaG1lbnQ+IHtcclxuICAgICAgICBpZiAoZnJhZ21lbnQudHlwZSA9PT0gJ3VybCcgJiYgZnJhZ21lbnQudGV4dC5zdGFydHNXaXRoKCdodHRwczovL2dpcGh5LmNvbS9naWZzJykpIHtcclxuICAgICAgICAgICAgbGV0IGdpZklkID0gL1teLVxcL10rJC8uZXhlYyhmcmFnbWVudC50ZXh0KT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgaWYgKCFnaWZJZClcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdpZnJhbWUnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9naXBoeS5jb20vZW1iZWQvJHtnaWZJZH1gLFxyXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdpbmxpbmUnXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export * from './common';
|
|
2
|
-
export * from './emoji';
|
|
3
|
-
export * from './banta/banta.component';
|
|
4
|
-
export * from './banta-logo.component';
|
|
5
|
-
export * from './chat';
|
|
6
|
-
export * from './live-message.component';
|
|
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';
|
|
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';
|
|
18
|
-
export * from './message-menu-item';
|
|
19
|
-
export * from './banta-sdk.module';
|
|
1
|
+
export * from './common';
|
|
2
|
+
export * from './emoji';
|
|
3
|
+
export * from './banta/banta.component';
|
|
4
|
+
export * from './banta-logo.component';
|
|
5
|
+
export * from './chat';
|
|
6
|
+
export * from './live-message.component';
|
|
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';
|
|
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';
|
|
18
|
+
export * from './message-menu-item';
|
|
19
|
+
export * from './banta-sdk.module';
|
|
20
20
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vtb2ppJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYW50YS9iYW50YS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2JhbnRhLWxvZ28uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGF0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saXZlLW1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhdC1iYWNrZW5kLWJhc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXQtc291cmNlLWJhc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXQtYmFja2VuZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhdC1zb3VyY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nkay1vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2htZW50LXNjcmFwZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3VybC1hdHRhY2htZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4veW91dHViZS1hdHRhY2htZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2lwaHktYXR0YWNobWVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3R3ZWV0LWF0dGFjaG1lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlLW1lbnUtaXRlbSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2JhbnRhLXNkay5tb2R1bGUnOyJdfQ==
|
|
@@ -1,49 +1,50 @@
|
|
|
1
|
-
import { Component, Input, Output } from "@angular/core";
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "./comments/live-comment.component";
|
|
6
|
-
import * as i3 from "./chat/live-chat-message.component";
|
|
7
|
-
export class LiveMessageComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
this._upvoted = new Subject();
|
|
10
|
-
this._reported = new Subject();
|
|
11
|
-
this._selected = new Subject();
|
|
12
|
-
}
|
|
13
|
-
get upvoted() {
|
|
14
|
-
return this._upvoted;
|
|
15
|
-
}
|
|
16
|
-
get reported() {
|
|
17
|
-
return this._reported;
|
|
18
|
-
}
|
|
19
|
-
get selected() {
|
|
20
|
-
return this._selected;
|
|
21
|
-
}
|
|
22
|
-
get message() {
|
|
23
|
-
return this._message;
|
|
24
|
-
}
|
|
25
|
-
set message(value) {
|
|
26
|
-
this._message = value;
|
|
27
|
-
this.viewType = this.getViewType(value);
|
|
28
|
-
}
|
|
29
|
-
getViewType(message) {
|
|
30
|
-
if (message.topicId.endsWith('_firehose'))
|
|
31
|
-
return 'chat';
|
|
32
|
-
else if (message.topicId.endsWith('_thepoint'))
|
|
33
|
-
return 'comment';
|
|
34
|
-
return 'comment';
|
|
35
|
-
}
|
|
36
|
-
upvote() {
|
|
37
|
-
this._upvoted.next();
|
|
38
|
-
}
|
|
39
|
-
report() {
|
|
40
|
-
this._reported.next();
|
|
41
|
-
}
|
|
42
|
-
select() {
|
|
43
|
-
this._selected.next();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
1
|
+
import { Component, Input, Output } from "@angular/core";
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "./comments/live-comment.component";
|
|
6
|
+
import * as i3 from "./chat/live-chat-message.component";
|
|
7
|
+
export class LiveMessageComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._upvoted = new Subject();
|
|
10
|
+
this._reported = new Subject();
|
|
11
|
+
this._selected = new Subject();
|
|
12
|
+
}
|
|
13
|
+
get upvoted() {
|
|
14
|
+
return this._upvoted;
|
|
15
|
+
}
|
|
16
|
+
get reported() {
|
|
17
|
+
return this._reported;
|
|
18
|
+
}
|
|
19
|
+
get selected() {
|
|
20
|
+
return this._selected;
|
|
21
|
+
}
|
|
22
|
+
get message() {
|
|
23
|
+
return this._message;
|
|
24
|
+
}
|
|
25
|
+
set message(value) {
|
|
26
|
+
this._message = value;
|
|
27
|
+
this.viewType = this.getViewType(value);
|
|
28
|
+
}
|
|
29
|
+
getViewType(message) {
|
|
30
|
+
if (message.topicId.endsWith('_firehose'))
|
|
31
|
+
return 'chat';
|
|
32
|
+
else if (message.topicId.endsWith('_thepoint'))
|
|
33
|
+
return 'comment';
|
|
34
|
+
return 'comment';
|
|
35
|
+
}
|
|
36
|
+
upvote() {
|
|
37
|
+
this._upvoted.next();
|
|
38
|
+
}
|
|
39
|
+
report() {
|
|
40
|
+
this._reported.next();
|
|
41
|
+
}
|
|
42
|
+
select() {
|
|
43
|
+
this._selected.next();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
LiveMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LiveMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
LiveMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: LiveMessageComponent, selector: "banta-live-message", inputs: { message: "message" }, outputs: { upvoted: "upvoted", reported: "reported", selected: "selected" }, ngImport: i0, template: `
|
|
47
48
|
<ng-container *ngIf="message">
|
|
48
49
|
<banta-live-chat-message
|
|
49
50
|
*ngIf="viewType === 'chat'"
|
|
@@ -61,10 +62,9 @@ export class LiveMessageComponent {
|
|
|
61
62
|
(selected)="select(message)">
|
|
62
63
|
</banta-live-comment>
|
|
63
64
|
</ng-container>
|
|
64
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LiveCommentComponent, selector: "banta-live-comment", inputs: ["message"], outputs: ["upvoted", "reported", "selected"] }, { kind: "component", type: i3.LiveChatMessageComponent, selector: "banta-live-chat-message", inputs: ["message"], outputs: ["upvoted", "reported", "selected"] }] });
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
type: Component,
|
|
65
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LiveCommentComponent, selector: "banta-live-comment", inputs: ["message"], outputs: ["upvoted", "reported", "selected"] }, { kind: "component", type: i3.LiveChatMessageComponent, selector: "banta-live-chat-message", inputs: ["message"], outputs: ["upvoted", "reported", "selected"] }] });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LiveMessageComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
68
|
args: [{ selector: 'banta-live-message', template: `
|
|
69
69
|
<ng-container *ngIf="message">
|
|
70
70
|
<banta-live-chat-message
|
|
@@ -83,14 +83,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
|
|
|
83
83
|
(selected)="select(message)">
|
|
84
84
|
</banta-live-comment>
|
|
85
85
|
</ng-container>
|
|
86
|
-
` }]
|
|
87
|
-
}], ctorParameters: ()
|
|
88
|
-
type: Output
|
|
89
|
-
}], reported: [{
|
|
90
|
-
type: Output
|
|
91
|
-
}], selected: [{
|
|
92
|
-
type: Output
|
|
93
|
-
}], message: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
` }]
|
|
87
|
+
}], ctorParameters: function () { return []; }, propDecorators: { upvoted: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}], reported: [{
|
|
90
|
+
type: Output
|
|
91
|
+
}], selected: [{
|
|
92
|
+
type: Output
|
|
93
|
+
}], message: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}] } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2xpdmUtbWVzc2FnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBeUIzQyxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCO1FBS1EsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFMeEMsQ0FBQztJQVNELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQXFCO1FBQ3JDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQ3JDLE9BQU8sTUFBTSxDQUFDO2FBQ2IsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDMUMsT0FBTyxTQUFTLENBQUM7UUFFckIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7a0hBeERRLG9CQUFvQjtzR0FBcEIsb0JBQW9CLHVLQXJCbkI7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQWtCVDs0RkFHUSxvQkFBb0I7a0JBdkJoQyxTQUFTOytCQUNJLG9CQUFvQixZQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUOzBFQWdCRyxPQUFPO3NCQURWLE1BQU07Z0JBTUgsUUFBUTtzQkFEWCxNQUFNO2dCQU1ILFFBQVE7c0JBRFgsTUFBTTtnQkFNSCxPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSB9IGZyb20gJ0BiYW50YS9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFudGEtbGl2ZS1tZXNzYWdlJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgPGJhbnRhLWxpdmUtY2hhdC1tZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInZpZXdUeXBlID09PSAnY2hhdCdcIlxyXG4gICAgICAgICAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICAodXB2b3RlZCk9XCJ1cHZvdGUobWVzc2FnZSlcIlxyXG4gICAgICAgICAgICAgICAgKHJlcG9ydGVkKT1cInJlcG9ydChtZXNzYWdlKVwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0KG1lc3NhZ2UpXCI+XHJcbiAgICAgICAgICAgIDwvYmFudGEtbGl2ZS1jaGF0LW1lc3NhZ2U+XHJcblxyXG4gICAgICAgICAgICA8YmFudGEtbGl2ZS1jb21tZW50IFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ2aWV3VHlwZSA9PT0gJ2NvbW1lbnQnXCJcclxuICAgICAgICAgICAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgKHVwdm90ZWQpPVwidXB2b3RlKG1lc3NhZ2UpXCJcclxuICAgICAgICAgICAgICAgIChyZXBvcnRlZCk9XCJyZXBvcnQobWVzc2FnZSlcIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cInNlbGVjdChtZXNzYWdlKVwiPlxyXG4gICAgICAgICAgICA8L2JhbnRhLWxpdmUtY29tbWVudD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpdmVNZXNzYWdlQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlIDogQ2hhdE1lc3NhZ2U7XHJcbiAgICBwcml2YXRlIF91cHZvdGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgX3JlcG9ydGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgX3NlbGVjdGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICB2aWV3VHlwZSA6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KCkgXHJcbiAgICBnZXQgdXB2b3RlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdXB2b3RlZDtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgXHJcbiAgICBnZXQgcmVwb3J0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcG9ydGVkO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAT3V0cHV0KCkgXHJcbiAgICBnZXQgc2VsZWN0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbWVzc2FnZSgpIDogQ2hhdE1lc3NhZ2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBtZXNzYWdlKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fbWVzc2FnZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmlld1R5cGUgPSB0aGlzLmdldFZpZXdUeXBlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFZpZXdUeXBlKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIGlmIChtZXNzYWdlLnRvcGljSWQuZW5kc1dpdGgoJ19maXJlaG9zZScpKVxyXG4gICAgICAgICAgICByZXR1cm4gJ2NoYXQnO1xyXG4gICAgICAgIGVsc2UgaWYgKG1lc3NhZ2UudG9waWNJZC5lbmRzV2l0aCgnX3RoZXBvaW50JykpXHJcbiAgICAgICAgICAgIHJldHVybiAnY29tbWVudCc7XHJcblxyXG4gICAgICAgIHJldHVybiAnY29tbWVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgdXB2b3RlKCkge1xyXG4gICAgICAgIHRoaXMuX3Vwdm90ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcG9ydCgpIHtcclxuICAgICAgICB0aGlzLl9yZXBvcnRlZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbn0iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1tZW51LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9tZXNzYWdlLW1lbnUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdE1lc3NhZ2UgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlTWVudUl0ZW0ge1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGFjdGlvbjogKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSA9PiB2b2lkO1xyXG59Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const BANTA_SDK_OPTIONS = 'BANTA_SDK_OPTIONS';
|
|
1
|
+
export const BANTA_SDK_OPTIONS = 'BANTA_SDK_OPTIONS';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9zZGstb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RrT3B0aW9ucyB7XHJcbiAgICBzZXJ2aWNlVXJsPzogc3RyaW5nO1xyXG4gICAgZW1vamlVcmw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBCQU5UQV9TREtfT1BUSU9OUyA9ICdCQU5UQV9TREtfT1BUSU9OUyc7Il19
|
|
@@ -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=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class TweetAttachmentResolver {
|
|
2
|
+
async resolveFragment(message, fragment) {
|
|
3
|
+
if (fragment.type === 'url' && (fragment.text.startsWith('https://twitter.com/') || fragment.text.startsWith('https://x.com/'))) {
|
|
4
|
+
return {
|
|
5
|
+
type: 'tweet',
|
|
6
|
+
url: fragment.text,
|
|
7
|
+
style: 'block'
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdlZXQtYXR0YWNobWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi90d2VldC1hdHRhY2htZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBb0IsRUFBRSxRQUE0QjtRQUNwRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUU7WUFDN0gsT0FBTztnQkFDSCxJQUFJLEVBQUUsT0FBTztnQkFDYixHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPO2FBQ2pCLENBQUM7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZUF0dGFjaG1lbnQgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RnJhZ21lbnQsIEF0dGFjaG1lbnRSZXNvbHZlciB9IGZyb20gXCIuL2F0dGFjaG1lbnQtc2NyYXBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFR3ZWV0QXR0YWNobWVudFJlc29sdmVyIGltcGxlbWVudHMgQXR0YWNobWVudFJlc29sdmVyIHtcclxuICAgIGFzeW5jIHJlc29sdmVGcmFnbWVudChtZXNzYWdlOiBDaGF0TWVzc2FnZSwgZnJhZ21lbnQ6IEF0dGFjaG1lbnRGcmFnbWVudCk6IFByb21pc2U8Q2hhdE1lc3NhZ2VBdHRhY2htZW50PiB7XHJcbiAgICAgICAgaWYgKGZyYWdtZW50LnR5cGUgPT09ICd1cmwnICYmIChmcmFnbWVudC50ZXh0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vdHdpdHRlci5jb20vJykgfHwgZnJhZ21lbnQudGV4dC5zdGFydHNXaXRoKCdodHRwczovL3guY29tLycpKSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3R3ZWV0JyxcclxuICAgICAgICAgICAgICAgIHVybDogZnJhZ21lbnQudGV4dCxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYmxvY2snXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./chat-backend-base";
|
|
4
|
+
const URL_REGEX = new RegExp('(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?', 'ig');
|
|
5
|
+
export class UrlAttachmentScraper {
|
|
6
|
+
findFragments(message) {
|
|
7
|
+
// If a message already has a URL attachment, don't add another one.
|
|
8
|
+
if (message.attachments && message.attachments.filter(x => x.type === 'url').length > 0)
|
|
9
|
+
return null;
|
|
10
|
+
return (Array.from(message.message.match(URL_REGEX) ?? []))
|
|
11
|
+
.reduce((a, item) => (a.includes(item) ? undefined : a.push(item), a), [])
|
|
12
|
+
.map(url => ({
|
|
13
|
+
text: url,
|
|
14
|
+
offset: message.message.indexOf(url),
|
|
15
|
+
type: 'url'
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class UrlAttachmentResolver {
|
|
20
|
+
constructor(backend) {
|
|
21
|
+
this.backend = backend;
|
|
22
|
+
}
|
|
23
|
+
async resolveFragment(message, fragment) {
|
|
24
|
+
if (fragment.type !== 'url')
|
|
25
|
+
return null;
|
|
26
|
+
let urlCard = await this.backend.getCardForUrl(fragment.text);
|
|
27
|
+
if (urlCard) {
|
|
28
|
+
return {
|
|
29
|
+
type: 'card',
|
|
30
|
+
url: fragment.text,
|
|
31
|
+
card: urlCard,
|
|
32
|
+
style: 'block'
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
UrlAttachmentResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UrlAttachmentResolver, deps: [{ token: i1.ChatBackendBase }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
UrlAttachmentResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UrlAttachmentResolver });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UrlAttachmentResolver, decorators: [{
|
|
40
|
+
type: Injectable
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.ChatBackendBase }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWF0dGFjaG1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvdXJsLWF0dGFjaG1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQyxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQywyWUFBMlksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVoYixNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLGFBQWEsQ0FBQyxPQUFvQjtRQUM5QixvRUFBb0U7UUFDcEUsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNuRixPQUFPLElBQUksQ0FBQztRQUVoQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUN0RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7YUFDekUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNULElBQUksRUFBRSxHQUFHO1lBQ1QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNwQyxJQUFJLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQyxDQUNOO0lBQ0wsQ0FBQztDQUNKO0FBR0QsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFvQixFQUFFLFFBQTRCO1FBQ3BFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxLQUFLO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1FBRWhCLElBQUksT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTztnQkFDSCxJQUFJLEVBQUUsTUFBTTtnQkFDWixHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ2xCLElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxPQUFPO2FBQ2pCLENBQUE7U0FDSjtJQUNMLENBQUM7O21IQWpCUSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZUF0dGFjaG1lbnQgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RnJhZ21lbnQsIEF0dGFjaG1lbnRSZXNvbHZlciwgQXR0YWNobWVudFNjcmFwZXIgfSBmcm9tIFwiLi9hdHRhY2htZW50LXNjcmFwZXJcIjtcclxuaW1wb3J0IHsgQ2hhdEJhY2tlbmRCYXNlIH0gZnJvbSBcIi4vY2hhdC1iYWNrZW5kLWJhc2VcIjtcclxuXHJcbmNvbnN0IFVSTF9SRUdFWCA9IG5ldyBSZWdFeHAoJyg/IW1haWx0bzopKD86KD86aHR0cHxodHRwc3xmdHApOi8vKSg/OlxcXFxTKyg/OjpcXFxcUyopP0ApPyg/Oig/Oig/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMDFdXFxcXGR8MjJbMC0zXSkoPzpcXFxcLig/OjE/XFxcXGR7MSwyfXwyWzAtNF1cXFxcZHwyNVswLTVdKSl7Mn0oPzpcXFxcLig/OlswLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMC00XVxcXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLT8pKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLT8pKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKig/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmZdezIsfSkpKXxsb2NhbGhvc3QpKD86OlxcXFxkezIsNX0pPyg/OigvfFxcXFw/fCMpW15cXFxcc10qKT8nLCAnaWcnKTtcclxuXHJcbmV4cG9ydCBjbGFzcyBVcmxBdHRhY2htZW50U2NyYXBlciBpbXBsZW1lbnRzIEF0dGFjaG1lbnRTY3JhcGVyIHtcclxuICAgIGZpbmRGcmFnbWVudHMobWVzc2FnZTogQ2hhdE1lc3NhZ2UpOiBBdHRhY2htZW50RnJhZ21lbnRbXSB7XHJcbiAgICAgICAgLy8gSWYgYSBtZXNzYWdlIGFscmVhZHkgaGFzIGEgVVJMIGF0dGFjaG1lbnQsIGRvbid0IGFkZCBhbm90aGVyIG9uZS5cclxuICAgICAgICBpZiAobWVzc2FnZS5hdHRhY2htZW50cyAmJiBtZXNzYWdlLmF0dGFjaG1lbnRzLmZpbHRlcih4ID0+IHgudHlwZSA9PT0gJ3VybCcpLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gKEFycmF5LmZyb20obWVzc2FnZS5tZXNzYWdlLm1hdGNoKFVSTF9SRUdFWCkgPz8gW10pKVxyXG4gICAgICAgICAgICAucmVkdWNlKChhLCBpdGVtKSA9PiAoYS5pbmNsdWRlcyhpdGVtKSA/IHVuZGVmaW5lZCA6IGEucHVzaChpdGVtKSwgYSksIFtdKVxyXG4gICAgICAgICAgICAubWFwKHVybCA9PiAoe1xyXG4gICAgICAgICAgICAgICAgdGV4dDogdXJsLCBcclxuICAgICAgICAgICAgICAgIG9mZnNldDogbWVzc2FnZS5tZXNzYWdlLmluZGV4T2YodXJsKSxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICd1cmwnXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIDtcclxuICAgIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXJsQXR0YWNobWVudFJlc29sdmVyIGltcGxlbWVudHMgQXR0YWNobWVudFJlc29sdmVyIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQ2hhdEJhY2tlbmRCYXNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcmVzb2x2ZUZyYWdtZW50KG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBmcmFnbWVudDogQXR0YWNobWVudEZyYWdtZW50KTogUHJvbWlzZTxDaGF0TWVzc2FnZUF0dGFjaG1lbnQ+IHtcclxuICAgICAgICBpZiAoZnJhZ21lbnQudHlwZSAhPT0gJ3VybCcpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBsZXQgdXJsQ2FyZCA9IGF3YWl0IHRoaXMuYmFja2VuZC5nZXRDYXJkRm9yVXJsKGZyYWdtZW50LnRleHQpO1xyXG4gICAgICAgIGlmICh1cmxDYXJkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnY2FyZCcsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGZyYWdtZW50LnRleHQsXHJcbiAgICAgICAgICAgICAgICBjYXJkOiB1cmxDYXJkLFxyXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdibG9jaydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class YouTubeAttachmentResolver {
|
|
2
|
+
async resolveFragment(message, fragment) {
|
|
3
|
+
if (fragment.type !== 'url')
|
|
4
|
+
return null;
|
|
5
|
+
let videoId;
|
|
6
|
+
// https://youtu.be/jXzJ7FlqX6M
|
|
7
|
+
if (fragment.text.match(/^https:\/\/youtu\.be\//)) {
|
|
8
|
+
let match = /^https:\/\/youtu\.be\/([^\/]+)/.exec(fragment.text);
|
|
9
|
+
if (match) {
|
|
10
|
+
videoId = match[1];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (!videoId && fragment.text.match(/^https?:\/\/(www\.|m\.)?youtube.com\/watch\?v=/)) {
|
|
14
|
+
let match = /watch\?v=([^&]+)/.exec(fragment.text);
|
|
15
|
+
if (match) {
|
|
16
|
+
videoId = match[1];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (videoId) {
|
|
20
|
+
return {
|
|
21
|
+
type: 'iframe',
|
|
22
|
+
url: `https://www.youtube.com/embed/${videoId}`,
|
|
23
|
+
style: 'block'
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW91dHViZS1hdHRhY2htZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL3lvdXR1YmUtYXR0YWNobWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQW9CLEVBQUUsUUFBNEI7UUFDcEUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLEtBQUs7WUFDdkIsT0FBTyxJQUFJLENBQUM7UUFFaEIsSUFBSSxPQUFlLENBQUM7UUFFcEIsK0JBQStCO1FBRS9CLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUMvQyxJQUFJLEtBQUssR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pFLElBQUksS0FBSyxFQUFFO2dCQUNQLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEI7U0FDSjtRQUVELElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0RBQWdELENBQUMsRUFBRTtZQUNuRixJQUFJLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksS0FBSyxFQUFFO2dCQUNQLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEI7U0FDSjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTztnQkFDSCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxHQUFHLEVBQUUsaUNBQWlDLE9BQU8sRUFBRTtnQkFDL0MsS0FBSyxFQUFFLE9BQU87YUFDakIsQ0FBQztTQUNMO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRNZXNzYWdlQXR0YWNobWVudCB9IGZyb20gXCJAYmFudGEvY29tbW9uXCI7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGcmFnbWVudCwgQXR0YWNobWVudFJlc29sdmVyIH0gZnJvbSBcIi4vYXR0YWNobWVudC1zY3JhcGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgWW91VHViZUF0dGFjaG1lbnRSZXNvbHZlciBpbXBsZW1lbnRzIEF0dGFjaG1lbnRSZXNvbHZlciB7XHJcbiAgICBhc3luYyByZXNvbHZlRnJhZ21lbnQobWVzc2FnZTogQ2hhdE1lc3NhZ2UsIGZyYWdtZW50OiBBdHRhY2htZW50RnJhZ21lbnQpOiBQcm9taXNlPENoYXRNZXNzYWdlQXR0YWNobWVudD4ge1xyXG4gICAgICAgIGlmIChmcmFnbWVudC50eXBlICE9PSAndXJsJylcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGxldCB2aWRlb0lkOiBzdHJpbmc7XHJcblxyXG4gICAgICAgIC8vIGh0dHBzOi8veW91dHUuYmUvalh6SjdGbHFYNk1cclxuXHJcbiAgICAgICAgaWYgKGZyYWdtZW50LnRleHQubWF0Y2goL15odHRwczpcXC9cXC95b3V0dVxcLmJlXFwvLykpIHtcclxuICAgICAgICAgICAgbGV0IG1hdGNoID0gL15odHRwczpcXC9cXC95b3V0dVxcLmJlXFwvKFteXFwvXSspLy5leGVjKGZyYWdtZW50LnRleHQpO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgICAgICAgICAgIHZpZGVvSWQgPSBtYXRjaFsxXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF2aWRlb0lkICYmIGZyYWdtZW50LnRleHQubWF0Y2goL15odHRwcz86XFwvXFwvKHd3d1xcLnxtXFwuKT95b3V0dWJlLmNvbVxcL3dhdGNoXFw/dj0vKSkge1xyXG4gICAgICAgICAgICBsZXQgbWF0Y2ggPSAvd2F0Y2hcXD92PShbXiZdKykvLmV4ZWMoZnJhZ21lbnQudGV4dCk7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaCkge1xyXG4gICAgICAgICAgICAgICAgdmlkZW9JZCA9IG1hdGNoWzFdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmlkZW9JZCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ2lmcmFtZScsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke3ZpZGVvSWR9YCxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYmxvY2snXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of sdk
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib';
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of sdk
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzZGtcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYic7XG4iXX0=
|