@banta/sdk 4.9.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/{esm2020 → esm2022}/banta-sdk.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/attachment-scraper.mjs +1 -1
  3. package/esm2022/lib/banta/banta.component.mjs +204 -0
  4. package/{esm2020 → esm2022}/lib/banta-logo.component.mjs +11 -11
  5. package/esm2022/lib/banta-sdk.module.mjs +143 -0
  6. package/esm2022/lib/chat/banta-chat/banta-chat.component.mjs +187 -0
  7. package/esm2022/lib/chat/chat-message/chat-message.component.mjs +62 -0
  8. package/esm2022/lib/chat/chat-view/chat-view.component.mjs +170 -0
  9. package/{esm2020 → esm2022}/lib/chat/chat.module.mjs +51 -51
  10. package/{esm2020 → esm2022}/lib/chat/index.mjs +5 -5
  11. package/esm2022/lib/chat/live-chat-message.component.mjs +80 -0
  12. package/{esm2020 → esm2022}/lib/chat-backend-base.mjs +30 -30
  13. package/esm2022/lib/chat-backend.mjs +163 -0
  14. package/{esm2020 → esm2022}/lib/chat-source-base.mjs +1 -1
  15. package/esm2022/lib/chat-source.mjs +233 -0
  16. package/esm2022/lib/comments/attachment-button/attachment-button.component.mjs +76 -0
  17. package/esm2022/lib/comments/attachment-scraper.directive.mjs +107 -0
  18. package/esm2022/lib/comments/banta-comments/banta-comments.component.mjs +739 -0
  19. package/esm2022/lib/comments/comment/comment.component.mjs +175 -0
  20. package/esm2022/lib/comments/comment-field/comment-field.component.mjs +401 -0
  21. package/esm2022/lib/comments/comment-sort/comment-sort.component.mjs +37 -0
  22. package/esm2022/lib/comments/comment-view/comment-view.component.mjs +470 -0
  23. package/esm2022/lib/comments/comments.module.mjs +111 -0
  24. package/{esm2020 → esm2022}/lib/comments/index.mjs +10 -10
  25. package/esm2022/lib/comments/live-comment.component.mjs +80 -0
  26. package/{esm2020 → esm2022}/lib/comments/reply-send-options.directive.mjs +13 -13
  27. package/esm2022/lib/common/attachment/attachment.component.mjs +112 -0
  28. package/{esm2020 → esm2022}/lib/common/attachments/attachments.component.mjs +75 -75
  29. package/{esm2020 → esm2022}/lib/common/common.module.mjs +68 -68
  30. package/{esm2020 → esm2022}/lib/common/index.mjs +10 -10
  31. package/{esm2020 → esm2022}/lib/common/lazy-connection.mjs +14 -14
  32. package/esm2022/lib/common/lightbox/lightbox.component.mjs +31 -0
  33. package/esm2022/lib/common/markdown-to-html.pipe.mjs +89 -0
  34. package/esm2022/lib/common/mention-linker.pipe.mjs +35 -0
  35. package/esm2022/lib/common/timer-pool.service.mjs +83 -0
  36. package/esm2022/lib/common/timestamp.component.mjs +123 -0
  37. package/{esm2020 → esm2022}/lib/common/trust-resource-url.pipe.mjs +22 -22
  38. package/esm2022/lib/emoji/emoji-selector-button.component.mjs +115 -0
  39. package/esm2022/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +98 -0
  40. package/{esm2020 → esm2022}/lib/emoji/emoji.module.mjs +55 -55
  41. package/{esm2020 → esm2022}/lib/emoji/emojis.mjs +6507 -6507
  42. package/{esm2020 → esm2022}/lib/emoji/index.mjs +4 -4
  43. package/esm2022/lib/giphy-attachments.mjs +16 -0
  44. package/{esm2020 → esm2022}/lib/index.mjs +19 -19
  45. package/{esm2020 → esm2022}/lib/live-message.component.mjs +61 -61
  46. package/{esm2020 → esm2022}/lib/message-menu-item.mjs +1 -1
  47. package/{esm2020 → esm2022}/lib/sdk-options.mjs +1 -1
  48. package/esm2022/lib/static-chat-source.mjs +71 -0
  49. package/esm2022/lib/tweet-attachments.mjs +13 -0
  50. package/esm2022/lib/url-attachments.mjs +42 -0
  51. package/esm2022/lib/youtube-attachments.mjs +29 -0
  52. package/{esm2020 → esm2022}/public-api.mjs +4 -4
  53. package/{fesm2020 → fesm2022}/banta-sdk.mjs +10753 -10754
  54. package/fesm2022/banta-sdk.mjs.map +1 -0
  55. package/index.d.ts +5 -5
  56. package/lib/attachment-scraper.d.ts +15 -15
  57. package/lib/banta/banta.component.d.ts +58 -58
  58. package/lib/banta-logo.component.d.ts +5 -5
  59. package/lib/banta-sdk.module.d.ts +31 -31
  60. package/lib/chat/banta-chat/banta-chat.component.d.ts +70 -70
  61. package/lib/chat/chat-message/chat-message.component.d.ts +21 -21
  62. package/lib/chat/chat-view/chat-view.component.d.ts +52 -52
  63. package/lib/chat/chat.module.d.ts +15 -15
  64. package/lib/chat/index.d.ts +5 -5
  65. package/lib/chat/live-chat-message.component.d.ts +23 -23
  66. package/lib/chat-backend-base.d.ts +36 -36
  67. package/lib/chat-backend.d.ts +55 -55
  68. package/lib/chat-source-base.d.ts +44 -44
  69. package/lib/chat-source.d.ts +65 -65
  70. package/lib/comments/attachment-button/attachment-button.component.d.ts +17 -17
  71. package/lib/comments/attachment-scraper.directive.d.ts +21 -21
  72. package/lib/comments/banta-comments/banta-comments.component.d.ts +196 -196
  73. package/lib/comments/comment/comment.component.d.ts +72 -72
  74. package/lib/comments/comment-field/comment-field.component.d.ts +89 -89
  75. package/lib/comments/comment-sort/comment-sort.component.d.ts +12 -12
  76. package/lib/comments/comment-view/comment-view.component.d.ts +121 -121
  77. package/lib/comments/comments.module.d.ts +30 -30
  78. package/lib/comments/index.d.ts +10 -10
  79. package/lib/comments/live-comment.component.d.ts +23 -23
  80. package/lib/comments/reply-send-options.directive.d.ts +5 -5
  81. package/lib/common/attachment/attachment.component.d.ts +33 -33
  82. package/lib/common/attachments/attachments.component.d.ts +26 -26
  83. package/lib/common/common.module.d.ts +19 -19
  84. package/lib/common/index.d.ts +10 -10
  85. package/lib/common/lazy-connection.d.ts +6 -6
  86. package/lib/common/lightbox/lightbox.component.d.ts +14 -14
  87. package/lib/common/markdown-to-html.pipe.d.ts +15 -15
  88. package/lib/common/mention-linker.pipe.d.ts +13 -13
  89. package/lib/common/timer-pool.service.d.ts +15 -15
  90. package/lib/common/timestamp.component.d.ts +19 -19
  91. package/lib/common/trust-resource-url.pipe.d.ts +10 -10
  92. package/lib/emoji/emoji-selector-button.component.d.ts +30 -30
  93. package/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.d.ts +26 -26
  94. package/lib/emoji/emoji.module.d.ts +16 -16
  95. package/lib/emoji/emojis.d.ts +6507 -6507
  96. package/lib/emoji/index.d.ts +4 -4
  97. package/lib/giphy-attachments.d.ts +5 -5
  98. package/lib/index.d.ts +19 -19
  99. package/lib/live-message.component.d.ts +22 -22
  100. package/lib/message-menu-item.d.ts +6 -6
  101. package/lib/sdk-options.d.ts +5 -5
  102. package/lib/static-chat-source.d.ts +42 -42
  103. package/lib/tweet-attachments.d.ts +5 -5
  104. package/lib/url-attachments.d.ts +14 -14
  105. package/lib/youtube-attachments.d.ts +5 -5
  106. package/package.json +14 -20
  107. package/public-api.d.ts +1 -1
  108. package/esm2020/lib/banta/banta.component.mjs +0 -204
  109. package/esm2020/lib/banta-sdk.module.mjs +0 -143
  110. package/esm2020/lib/chat/banta-chat/banta-chat.component.mjs +0 -187
  111. package/esm2020/lib/chat/chat-message/chat-message.component.mjs +0 -62
  112. package/esm2020/lib/chat/chat-view/chat-view.component.mjs +0 -170
  113. package/esm2020/lib/chat/live-chat-message.component.mjs +0 -80
  114. package/esm2020/lib/chat-backend.mjs +0 -163
  115. package/esm2020/lib/chat-source.mjs +0 -233
  116. package/esm2020/lib/comments/attachment-button/attachment-button.component.mjs +0 -76
  117. package/esm2020/lib/comments/attachment-scraper.directive.mjs +0 -107
  118. package/esm2020/lib/comments/banta-comments/banta-comments.component.mjs +0 -740
  119. package/esm2020/lib/comments/comment/comment.component.mjs +0 -175
  120. package/esm2020/lib/comments/comment-field/comment-field.component.mjs +0 -401
  121. package/esm2020/lib/comments/comment-sort/comment-sort.component.mjs +0 -37
  122. package/esm2020/lib/comments/comment-view/comment-view.component.mjs +0 -470
  123. package/esm2020/lib/comments/comments.module.mjs +0 -111
  124. package/esm2020/lib/comments/live-comment.component.mjs +0 -80
  125. package/esm2020/lib/common/attachment/attachment.component.mjs +0 -112
  126. package/esm2020/lib/common/lightbox/lightbox.component.mjs +0 -31
  127. package/esm2020/lib/common/markdown-to-html.pipe.mjs +0 -89
  128. package/esm2020/lib/common/mention-linker.pipe.mjs +0 -35
  129. package/esm2020/lib/common/timer-pool.service.mjs +0 -83
  130. package/esm2020/lib/common/timestamp.component.mjs +0 -123
  131. package/esm2020/lib/emoji/emoji-selector-button.component.mjs +0 -116
  132. package/esm2020/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +0 -98
  133. package/esm2020/lib/giphy-attachments.mjs +0 -16
  134. package/esm2020/lib/static-chat-source.mjs +0 -71
  135. package/esm2020/lib/tweet-attachments.mjs +0 -13
  136. package/esm2020/lib/url-attachments.mjs +0 -42
  137. package/esm2020/lib/youtube-attachments.mjs +0 -29
  138. package/fesm2015/banta-sdk.mjs +0 -11181
  139. package/fesm2015/banta-sdk.mjs.map +0 -1
  140. package/fesm2020/banta-sdk.mjs.map +0 -1
@@ -0,0 +1,111 @@
1
+ import { OverlayModule } from '@angular/cdk/overlay';
2
+ import { PortalModule } from '@angular/cdk/portal';
3
+ import { TextFieldModule } from '@angular/cdk/text-field';
4
+ import { CommonModule } from '@angular/common';
5
+ import { NgModule } from '@angular/core';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { MatButtonModule } from '@angular/material/button';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
9
+ import { MatIconModule } from '@angular/material/icon';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import { MatMenuModule } from '@angular/material/menu';
12
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
13
+ import { MatSelectModule } from "@angular/material/select";
14
+ import { MatTooltipModule } from '@angular/material/tooltip';
15
+ import { BantaCommonModule } from '../common';
16
+ import { EmojiModule } from '../emoji';
17
+ import { AttachmentButtonComponent } from './attachment-button/attachment-button.component';
18
+ import { AttachmentScraperDirective } from './attachment-scraper.directive';
19
+ import { BantaCommentsComponent } from './banta-comments/banta-comments.component';
20
+ import { CommentFieldComponent } from './comment-field/comment-field.component';
21
+ import { CommentSortComponent } from "./comment-sort/comment-sort.component";
22
+ import { CommentViewComponent } from './comment-view/comment-view.component';
23
+ import { CommentComponent } from './comment/comment.component';
24
+ import { LiveCommentComponent } from './live-comment.component';
25
+ import { BantaReplySendOptionsDirective } from './reply-send-options.directive';
26
+ import * as i0 from "@angular/core";
27
+ const COMPONENTS = [
28
+ CommentComponent,
29
+ CommentViewComponent,
30
+ BantaCommentsComponent,
31
+ LiveCommentComponent,
32
+ CommentFieldComponent,
33
+ CommentSortComponent,
34
+ AttachmentButtonComponent,
35
+ BantaReplySendOptionsDirective,
36
+ AttachmentScraperDirective
37
+ ];
38
+ export class CommentsModule {
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CommentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
40
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: CommentsModule, declarations: [CommentComponent,
41
+ CommentViewComponent,
42
+ BantaCommentsComponent,
43
+ LiveCommentComponent,
44
+ CommentFieldComponent,
45
+ CommentSortComponent,
46
+ AttachmentButtonComponent,
47
+ BantaReplySendOptionsDirective,
48
+ AttachmentScraperDirective], imports: [CommonModule,
49
+ TextFieldModule,
50
+ FormsModule,
51
+ MatIconModule,
52
+ MatFormFieldModule,
53
+ MatInputModule,
54
+ MatButtonModule,
55
+ MatMenuModule,
56
+ MatProgressSpinnerModule,
57
+ BantaCommonModule,
58
+ EmojiModule,
59
+ MatTooltipModule,
60
+ MatSelectModule,
61
+ OverlayModule,
62
+ PortalModule], exports: [CommentComponent,
63
+ CommentViewComponent,
64
+ BantaCommentsComponent,
65
+ LiveCommentComponent,
66
+ CommentFieldComponent,
67
+ CommentSortComponent,
68
+ AttachmentButtonComponent,
69
+ BantaReplySendOptionsDirective,
70
+ AttachmentScraperDirective] }); }
71
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CommentsModule, imports: [CommonModule,
72
+ TextFieldModule,
73
+ FormsModule,
74
+ MatIconModule,
75
+ MatFormFieldModule,
76
+ MatInputModule,
77
+ MatButtonModule,
78
+ MatMenuModule,
79
+ MatProgressSpinnerModule,
80
+ BantaCommonModule,
81
+ EmojiModule,
82
+ MatTooltipModule,
83
+ MatSelectModule,
84
+ OverlayModule,
85
+ PortalModule] }); }
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CommentsModule, decorators: [{
88
+ type: NgModule,
89
+ args: [{
90
+ declarations: COMPONENTS,
91
+ imports: [
92
+ CommonModule,
93
+ TextFieldModule,
94
+ FormsModule,
95
+ MatIconModule,
96
+ MatFormFieldModule,
97
+ MatInputModule,
98
+ MatButtonModule,
99
+ MatMenuModule,
100
+ MatProgressSpinnerModule,
101
+ BantaCommonModule,
102
+ EmojiModule,
103
+ MatTooltipModule,
104
+ MatSelectModule,
105
+ OverlayModule,
106
+ PortalModule
107
+ ],
108
+ exports: COMPONENTS
109
+ }]
110
+ }] });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvY29tbWVudHMvY29tbWVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVoRixNQUFNLFVBQVUsR0FBRztJQUNmLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6Qiw4QkFBOEI7SUFDOUIsMEJBQTBCO0NBQzdCLENBQUM7QUF1QkYsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLGlCQWhDdkIsZ0JBQWdCO1lBQ2hCLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIseUJBQXlCO1lBQ3pCLDhCQUE4QjtZQUM5QiwwQkFBMEIsYUFNMUIsWUFBWTtZQUNaLGVBQWU7WUFDZixXQUFXO1lBQ1gsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGFBQWE7WUFDYix3QkFBd0I7WUFDeEIsaUJBQWlCO1lBQ2pCLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGFBQWE7WUFDYixZQUFZLGFBNUJaLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLG9CQUFvQjtZQUNwQixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLHlCQUF5QjtZQUN6Qiw4QkFBOEI7WUFDOUIsMEJBQTBCOytHQXdCakIsY0FBYyxZQWxCdkIsWUFBWTtZQUNaLGVBQWU7WUFDZixXQUFXO1lBQ1gsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGFBQWE7WUFDYix3QkFBd0I7WUFDeEIsaUJBQWlCO1lBQ2pCLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGFBQWE7WUFDYixZQUFZOzsyRkFJSCxjQUFjO2tCQXJCMUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsVUFBVTtvQkFDMUIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixZQUFZO3FCQUNiO29CQUNDLE9BQU8sRUFBRSxVQUFVO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IEJhbnRhQ29tbW9uTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uJztcclxuaW1wb3J0IHsgRW1vamlNb2R1bGUgfSBmcm9tICcuLi9lbW9qaSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQtYnV0dG9uL2F0dGFjaG1lbnQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRTY3JhcGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9hdHRhY2htZW50LXNjcmFwZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFudGFDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJy4vYmFudGEtY29tbWVudHMvYmFudGEtY29tbWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbWVudEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbWVudFNvcnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21tZW50LXNvcnQvY29tbWVudC1zb3J0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb21tZW50Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC12aWV3L2NvbW1lbnQtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGl2ZUNvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtY29tbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYW50YVJlcGx5U2VuZE9wdGlvbnNEaXJlY3RpdmUgfSBmcm9tICcuL3JlcGx5LXNlbmQtb3B0aW9ucy5kaXJlY3RpdmUnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICAgIENvbW1lbnRDb21wb25lbnQsXHJcbiAgICBDb21tZW50Vmlld0NvbXBvbmVudCxcclxuICAgIEJhbnRhQ29tbWVudHNDb21wb25lbnQsXHJcbiAgICBMaXZlQ29tbWVudENvbXBvbmVudCxcclxuICAgIENvbW1lbnRGaWVsZENvbXBvbmVudCxcclxuICAgIENvbW1lbnRTb3J0Q29tcG9uZW50LFxyXG4gICAgQXR0YWNobWVudEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEJhbnRhUmVwbHlTZW5kT3B0aW9uc0RpcmVjdGl2ZSxcclxuICAgIEF0dGFjaG1lbnRTY3JhcGVyRGlyZWN0aXZlXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBDT01QT05FTlRTLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRleHRGaWVsZE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIEJhbnRhQ29tbW9uTW9kdWxlLFxyXG4gICAgRW1vamlNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgT3ZlcmxheU1vZHVsZSxcclxuICAgIFBvcnRhbE1vZHVsZVxyXG4gIF0sXHJcbiAgICBleHBvcnRzOiBDT01QT05FTlRTXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tZW50c01vZHVsZSB7XHJcbn1cclxuIl19
@@ -1,11 +1,11 @@
1
- export * from './comment/comment.component';
2
- export * from './comment-view/comment-view.component';
3
- export * from './banta-comments/banta-comments.component';
4
- export * from './live-comment.component';
5
- export * from './comment-field/comment-field.component';
6
- export * from './comment-sort/comment-sort.component';
7
- export * from './attachment-button/attachment-button.component';
8
- export * from './reply-send-options.directive';
9
- export * from './attachment-scraper.directive';
10
- export * from './comments.module';
1
+ export * from './comment/comment.component';
2
+ export * from './comment-view/comment-view.component';
3
+ export * from './banta-comments/banta-comments.component';
4
+ export * from './live-comment.component';
5
+ export * from './comment-field/comment-field.component';
6
+ export * from './comment-sort/comment-sort.component';
7
+ export * from './attachment-button/attachment-button.component';
8
+ export * from './reply-send-options.directive';
9
+ export * from './attachment-scraper.directive';
10
+ export * from './comments.module';
11
11
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50LXZpZXcvY29tbWVudC12aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFudGEtY29tbWVudHMvYmFudGEtY29tbWVudHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saXZlLWNvbW1lbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50LXNvcnQvY29tbWVudC1zb3J0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXR0YWNobWVudC1idXR0b24vYXR0YWNobWVudC1idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBseS1zZW5kLW9wdGlvbnMuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdHRhY2htZW50LXNjcmFwZXIuZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudHMubW9kdWxlJzsiXX0=
@@ -0,0 +1,80 @@
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 "../chat-backend-base";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "./comment/comment.component";
7
+ export class LiveCommentComponent {
8
+ constructor(backend) {
9
+ this.backend = backend;
10
+ this._upvoted = new Subject();
11
+ this._reported = new Subject();
12
+ this._selected = new Subject();
13
+ }
14
+ get upvoted() {
15
+ return this._upvoted;
16
+ }
17
+ get reported() {
18
+ return this._reported;
19
+ }
20
+ get selected() {
21
+ return this._selected;
22
+ }
23
+ get message() {
24
+ return this._message;
25
+ }
26
+ set message(value) {
27
+ let originalId = null;
28
+ if (this._message)
29
+ originalId = this._message.id;
30
+ this._message = value;
31
+ if (value && originalId === value.id) {
32
+ return;
33
+ }
34
+ if (this.unsubscribe)
35
+ this.unsubscribe();
36
+ if (value) {
37
+ this.unsubscribe = this.backend.watchMessage(value, message => this.message = message);
38
+ }
39
+ }
40
+ report() {
41
+ this._reported.next();
42
+ }
43
+ upvote() {
44
+ this._upvoted.next();
45
+ }
46
+ select() {
47
+ this._selected.next();
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: LiveCommentComponent, deps: [{ token: i1.ChatBackendBase }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: LiveCommentComponent, selector: "banta-live-comment", inputs: { message: "message" }, outputs: { upvoted: "upvoted", reported: "reported", selected: "selected" }, ngImport: i0, template: `
51
+ <banta-comment
52
+ *ngIf="message"
53
+ [message]="message"
54
+ (upvoted)="upvote()"
55
+ (reported)="report()"
56
+ (selected)="select()"
57
+ ></banta-comment>
58
+ `, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CommentComponent, selector: "banta-comment", inputs: ["message", "customMenuItems", "showReplyAction", "maxLength", "permissions", "mine", "editing", "genericAvatarUrl", "readonly"], outputs: ["liked", "unliked", "selected", "edited", "deleted", "editStarted", "editEnded", "shared", "userSelected", "usernameSelected", "avatarSelected", "reported", "loaded"] }] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: LiveCommentComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'banta-live-comment', template: `
63
+ <banta-comment
64
+ *ngIf="message"
65
+ [message]="message"
66
+ (upvoted)="upvote()"
67
+ (reported)="report()"
68
+ (selected)="select()"
69
+ ></banta-comment>
70
+ ` }]
71
+ }], ctorParameters: () => [{ type: i1.ChatBackendBase }], propDecorators: { upvoted: [{
72
+ type: Output
73
+ }], reported: [{
74
+ type: Output
75
+ }], selected: [{
76
+ type: Output
77
+ }], message: [{
78
+ type: Input
79
+ }] } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1jb21tZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1lbnRzL2xpdmUtY29tbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBZ0IzQyxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQ1ksT0FBeUI7UUFBekIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFNN0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFMeEMsQ0FBQztJQU9ELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBSUQsSUFBSSxPQUFPLENBQUMsS0FBSztRQUNiLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ2IsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksS0FBSyxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV2QixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzNGLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQS9EUSxvQkFBb0I7a0dBQXBCLG9CQUFvQix1S0FYbkI7Ozs7Ozs7O0tBUVQ7OzJGQUdRLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDSSxvQkFBb0IsWUFDcEI7Ozs7Ozs7O0tBUVQ7b0ZBZ0JHLE9BQU87c0JBRFYsTUFBTTtnQkFNSCxRQUFRO3NCQURYLE1BQU07Z0JBTUgsUUFBUTtzQkFEWCxNQUFNO2dCQU1ILE9BQU87c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSB9IGZyb20gJ0BiYW50YS9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kQmFzZSB9IGZyb20gJy4uL2NoYXQtYmFja2VuZC1iYXNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYW50YS1saXZlLWNvbW1lbnQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8YmFudGEtY29tbWVudCBcclxuICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlXCJcclxuICAgICAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgICAgICAgICh1cHZvdGVkKT1cInVwdm90ZSgpXCJcclxuICAgICAgICAgICAgKHJlcG9ydGVkKT1cInJlcG9ydCgpXCJcclxuICAgICAgICAgICAgKHNlbGVjdGVkKT1cInNlbGVjdCgpXCJcclxuICAgICAgICAgICAgPjwvYmFudGEtY29tbWVudD5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpdmVDb21tZW50Q29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYmFja2VuZCA6IENoYXRCYWNrZW5kQmFzZVxyXG4gICAgKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX21lc3NhZ2UgOiBDaGF0TWVzc2FnZTtcclxuICAgIHByaXZhdGUgX3Vwdm90ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSBfcmVwb3J0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHVwdm90ZWQoKSA6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cHZvdGVkO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGdldCByZXBvcnRlZCgpIDogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcG9ydGVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHNlbGVjdGVkKCkgOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbWVzc2FnZSgpIDogQ2hhdE1lc3NhZ2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmUgOiBGdW5jdGlvbjtcclxuXHJcbiAgICBzZXQgbWVzc2FnZSh2YWx1ZSkge1xyXG4gICAgICAgIGxldCBvcmlnaW5hbElkID0gbnVsbDtcclxuICAgICAgICBpZiAodGhpcy5fbWVzc2FnZSlcclxuICAgICAgICAgICAgb3JpZ2luYWxJZCA9IHRoaXMuX21lc3NhZ2UuaWQ7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fbWVzc2FnZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUgJiYgb3JpZ2luYWxJZCA9PT0gdmFsdWUuaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy51bnN1YnNjcmliZSlcclxuICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlID0gdGhpcy5iYWNrZW5kLndhdGNoTWVzc2FnZSh2YWx1ZSwgbWVzc2FnZSA9PiB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVwb3J0KCkge1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydGVkLm5leHQoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdXB2b3RlKCkge1xyXG4gICAgICAgIHRoaXMuX3Vwdm90ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdCgpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZC5uZXh0KCk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,13 +1,13 @@
1
- import { Directive } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class BantaReplySendOptionsDirective {
4
- }
5
- BantaReplySendOptionsDirectivefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BantaReplySendOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
- BantaReplySendOptionsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: BantaReplySendOptionsDirective, selector: "[bantaReplySendOptions]", ngImport: i0 });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BantaReplySendOptionsDirective, decorators: [{
8
- type: Directive,
9
- args: [{
10
- selector: `[bantaReplySendOptions]`
11
- }]
12
- }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbHktc2VuZC1vcHRpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1lbnRzL3JlcGx5LXNlbmQtb3B0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLDhCQUE4Qjs7NEhBQTlCLDhCQUE4QjtnSEFBOUIsOEJBQThCOzRGQUE5Qiw4QkFBOEI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYFtiYW50YVJlcGx5U2VuZE9wdGlvbnNdYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFudGFSZXBseVNlbmRPcHRpb25zRGlyZWN0aXZlIHt9Il19
1
+ import { Directive } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class BantaReplySendOptionsDirective {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BantaReplySendOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
+ static { thisdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: BantaReplySendOptionsDirective, selector: "[bantaReplySendOptions]", ngImport: i0 }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BantaReplySendOptionsDirective, decorators: [{
8
+ type: Directive,
9
+ args: [{
10
+ selector: `[bantaReplySendOptions]`
11
+ }]
12
+ }] });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbHktc2VuZC1vcHRpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1lbnRzL3JlcGx5LXNlbmQtb3B0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLDhCQUE4Qjs4R0FBOUIsOEJBQThCO2tHQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYFtiYW50YVJlcGx5U2VuZE9wdGlvbnNdYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFudGFSZXBseVNlbmRPcHRpb25zRGlyZWN0aXZlIHt9Il19
@@ -0,0 +1,112 @@
1
+ import { Component, HostBinding, 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 "@angular/material/icon";
6
+ import * as i3 from "@angular/cdk/bidi";
7
+ import * as i4 from "@angular/material/progress-spinner";
8
+ import * as i5 from "@angular/material/button";
9
+ import * as i6 from "../trust-resource-url.pipe";
10
+ export class BantaAttachmentComponent {
11
+ constructor(elementRef) {
12
+ this.elementRef = elementRef;
13
+ this.loading = false;
14
+ this.editing = false;
15
+ this.loadingMessage = 'Please wait...';
16
+ this.error = false;
17
+ this.errorMessage = 'An error has occurred';
18
+ this.removed = new Subject();
19
+ this.activated = new Subject();
20
+ this.loaded = new Subject();
21
+ this._viewLoaded = false;
22
+ }
23
+ get attachment() { return this._attachment; }
24
+ set attachment(value) {
25
+ this._attachment = value;
26
+ this.checkLoad();
27
+ }
28
+ ngOnInit() {
29
+ if (typeof window !== 'undefined') {
30
+ setTimeout(() => {
31
+ if (!window['twttr'])
32
+ return;
33
+ window['twttr'].widgets.load();
34
+ }, 100);
35
+ }
36
+ }
37
+ ngAfterViewInit() {
38
+ this._viewLoaded = true;
39
+ this.checkLoad();
40
+ }
41
+ checkLoad() {
42
+ if (!this._attachment || !this._viewLoaded || !this.elementRef?.nativeElement)
43
+ return;
44
+ if (typeof window === 'undefined')
45
+ this.loaded.next();
46
+ else
47
+ setTimeout(() => this.loaded.next(), 250);
48
+ }
49
+ activate() {
50
+ this.activated.next();
51
+ }
52
+ remove() {
53
+ this.removed.next();
54
+ }
55
+ get isError() {
56
+ return this.error || this.attachment?.transientState?.error;
57
+ }
58
+ get theErrorMessage() {
59
+ return this.errorMessage || this.attachment?.transientState?.errorMessage;
60
+ }
61
+ get isLoading() {
62
+ return this.editing && (this.loading || !this.attachment || this.attachment.transientState?.loading
63
+ || !this.attachment.url);
64
+ }
65
+ get isImageAttachment() {
66
+ return this.attachment?.type?.startsWith('image/');
67
+ }
68
+ get hasFrame() {
69
+ if (!this.attachment)
70
+ return false;
71
+ return this.attachment.type === 'iframe' || (this.attachment.type === 'card'
72
+ && this.attachment.card?.player);
73
+ }
74
+ get frameUrl() {
75
+ if (!this.attachment)
76
+ return undefined;
77
+ if (this.attachment.type === 'iframe') {
78
+ return this.attachment.url;
79
+ }
80
+ else if (this.attachment.type === 'card') {
81
+ return this.attachment.card.player;
82
+ }
83
+ }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BantaAttachmentComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: BantaAttachmentComponent, selector: "banta-attachment", inputs: { attachment: "attachment", loading: "loading", editing: "editing", loadingMessage: "loadingMessage", error: "error", errorMessage: "errorMessage" }, outputs: { removed: "removed", activated: "activated", loaded: "loaded" }, host: { properties: { "class.loading": "this.isLoading" } }, ngImport: i0, template: "<button type=\"button\" (click)=\"remove()\" mat-mini-fab color=\"primary\" class=\"remove-button\" *ngIf=\"editing\">\r\n <mat-icon>close</mat-icon>\r\n</button>\r\n\r\n<ng-container *ngIf=\"isError\">\r\n <mat-icon class=\"error\">close</mat-icon>\r\n <em class=\"error\">{{theErrorMessage}}</em>\r\n</ng-container>\r\n<ng-container *ngIf=\"!isError\">\r\n <ng-container *ngIf=\"isLoading\">\r\n <mat-spinner></mat-spinner>\r\n <em>{{loadingMessage}}</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isLoading && attachment\">\r\n <iframe *ngIf=\"hasFrame\"\r\n sandbox=\"allow-scripts allow-popups allow-same-origin allow-presentation\" \r\n [src]=\"frameUrl | trustResourceUrl\"></iframe>\r\n <a *ngIf=\"attachment.type === 'card'\" class=\"card-attachment\" [href]=\"attachment.url\" target=\"_blank\" [class.has-image]=\"attachment.card.image\">\r\n <img \r\n *ngIf=\"attachment.card.image\"\r\n class=\"thumbnail\" \r\n [src]=\"attachment.card.image\"\r\n />\r\n <div class=\"description\">\r\n <h1>{{attachment.card.title}}</h1>\r\n <div class=\"summary\">\r\n {{attachment.card.description}}\r\n </div>\r\n <cite>{{attachment.card.url}}</cite>\r\n </div>\r\n </a>\r\n <a class=\"image-attachment\" *ngIf=\"isImageAttachment && attachment.url\" href=\"javascript:;\" (click)=\"activate()\">\r\n <img [src]=\"attachment.url\" alt=\"Image Attachment\">\r\n </a>\r\n <blockquote *ngIf=\"attachment.type === 'tweet'\" \r\n class=\"twitter-tweet\">\r\n <p lang=\"en\" dir=\"ltr\"></p>\r\n <a [href]=\"attachment.url\"></a>\r\n </blockquote>\r\n </ng-container>\r\n</ng-container>", styles: [":host{position:relative;display:block}:host.loading{outline:1px solid #333;padding:1em 0;width:300px;text-align:center}:host.loading mat-spinner{display:block;margin:0 auto .5em;width:fit-content}a.card-attachment{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919;margin:1em 0}a.card-attachment img{width:250px;aspect-ratio:16/9;object-fit:cover;border-radius:10px}a.card-attachment.has-image h1{font-size:22px}a.card-attachment h1{min-width:0;margin:0 0 .5em;font-size:26px}a.card-attachment cite{min-width:0;opacity:.75;margin-top:1em;display:block;font-size:80%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}a.card-attachment .description{min-width:0;width:100%}a.card-attachment .summary{overflow-x:hidden;text-overflow:ellipsis}.remove-button{position:absolute;right:10px;top:10px;margin:0;z-index:1}a.image-attachment{width:300px;position:relative;text-align:center}a.image-attachment.with-border{outline:1px solid #333;padding:1em 0}a.image-attachment mat-spinner{display:block;margin:0 auto .5em;width:fit-content}a.image-attachment mat-icon.error{display:block;font-size:48px;width:48px;height:48px;margin:0 auto .5em}a.image-attachment .error{color:#b76363}a.image-attachment img{width:300px;border-radius:10px;max-width:100%;max-height:20em;object-fit:cover}iframe{border:none;width:100%;aspect-ratio:16/9}@media (max-width: 700px){a.card-attachment{flex-direction:column}a.card-attachment img{width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i5.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "pipe", type: i6.BantaTrustResourceUrlPipe, name: "trustResourceUrl" }] }); }
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BantaAttachmentComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 'banta-attachment', template: "<button type=\"button\" (click)=\"remove()\" mat-mini-fab color=\"primary\" class=\"remove-button\" *ngIf=\"editing\">\r\n <mat-icon>close</mat-icon>\r\n</button>\r\n\r\n<ng-container *ngIf=\"isError\">\r\n <mat-icon class=\"error\">close</mat-icon>\r\n <em class=\"error\">{{theErrorMessage}}</em>\r\n</ng-container>\r\n<ng-container *ngIf=\"!isError\">\r\n <ng-container *ngIf=\"isLoading\">\r\n <mat-spinner></mat-spinner>\r\n <em>{{loadingMessage}}</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isLoading && attachment\">\r\n <iframe *ngIf=\"hasFrame\"\r\n sandbox=\"allow-scripts allow-popups allow-same-origin allow-presentation\" \r\n [src]=\"frameUrl | trustResourceUrl\"></iframe>\r\n <a *ngIf=\"attachment.type === 'card'\" class=\"card-attachment\" [href]=\"attachment.url\" target=\"_blank\" [class.has-image]=\"attachment.card.image\">\r\n <img \r\n *ngIf=\"attachment.card.image\"\r\n class=\"thumbnail\" \r\n [src]=\"attachment.card.image\"\r\n />\r\n <div class=\"description\">\r\n <h1>{{attachment.card.title}}</h1>\r\n <div class=\"summary\">\r\n {{attachment.card.description}}\r\n </div>\r\n <cite>{{attachment.card.url}}</cite>\r\n </div>\r\n </a>\r\n <a class=\"image-attachment\" *ngIf=\"isImageAttachment && attachment.url\" href=\"javascript:;\" (click)=\"activate()\">\r\n <img [src]=\"attachment.url\" alt=\"Image Attachment\">\r\n </a>\r\n <blockquote *ngIf=\"attachment.type === 'tweet'\" \r\n class=\"twitter-tweet\">\r\n <p lang=\"en\" dir=\"ltr\"></p>\r\n <a [href]=\"attachment.url\"></a>\r\n </blockquote>\r\n </ng-container>\r\n</ng-container>", styles: [":host{position:relative;display:block}:host.loading{outline:1px solid #333;padding:1em 0;width:300px;text-align:center}:host.loading mat-spinner{display:block;margin:0 auto .5em;width:fit-content}a.card-attachment{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919;margin:1em 0}a.card-attachment img{width:250px;aspect-ratio:16/9;object-fit:cover;border-radius:10px}a.card-attachment.has-image h1{font-size:22px}a.card-attachment h1{min-width:0;margin:0 0 .5em;font-size:26px}a.card-attachment cite{min-width:0;opacity:.75;margin-top:1em;display:block;font-size:80%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}a.card-attachment .description{min-width:0;width:100%}a.card-attachment .summary{overflow-x:hidden;text-overflow:ellipsis}.remove-button{position:absolute;right:10px;top:10px;margin:0;z-index:1}a.image-attachment{width:300px;position:relative;text-align:center}a.image-attachment.with-border{outline:1px solid #333;padding:1em 0}a.image-attachment mat-spinner{display:block;margin:0 auto .5em;width:fit-content}a.image-attachment mat-icon.error{display:block;font-size:48px;width:48px;height:48px;margin:0 auto .5em}a.image-attachment .error{color:#b76363}a.image-attachment img{width:300px;border-radius:10px;max-width:100%;max-height:20em;object-fit:cover}iframe{border:none;width:100%;aspect-ratio:16/9}@media (max-width: 700px){a.card-attachment{flex-direction:column}a.card-attachment img{width:100%}}\n"] }]
90
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { attachment: [{
91
+ type: Input
92
+ }], loading: [{
93
+ type: Input
94
+ }], editing: [{
95
+ type: Input
96
+ }], loadingMessage: [{
97
+ type: Input
98
+ }], error: [{
99
+ type: Input
100
+ }], errorMessage: [{
101
+ type: Input
102
+ }], removed: [{
103
+ type: Output
104
+ }], activated: [{
105
+ type: Output
106
+ }], loaded: [{
107
+ type: Output
108
+ }], isLoading: [{
109
+ type: HostBinding,
110
+ args: ['class.loading']
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tb24vYXR0YWNobWVudC9hdHRhY2htZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1vbi9hdHRhY2htZW50L2F0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU8vQixNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLFlBQ1ksVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFXdEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1CQUFjLEdBQVcsZ0JBQWdCLENBQUM7UUFDMUMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGlCQUFZLEdBQVcsdUJBQXVCLENBQUM7UUFDOUMsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDOUIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFZL0IsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUEzQjVCLENBQUM7SUFHRCxJQUFhLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxDQUFDLEtBQUs7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFVRCxRQUFRO1FBQ0osSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO29CQUNoQixPQUFPO2dCQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQztJQUNMLENBQUM7SUFHRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhO1lBQ3pFLE9BQU87UUFFWCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7WUFFbkIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQ25CLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLE9BQU87ZUFDeEUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDMUIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1FBRWpCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU07ZUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUNsQyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUNoQixPQUFPLFNBQVMsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDL0IsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7OEdBL0ZRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDhWQ1RyQyw2M0RBd0NlOzsyRkQvQkYsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLGtCQUFrQjsrRUFZZixVQUFVO3NCQUF0QixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQTZDSCxTQUFTO3NCQURaLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDaGF0TWVzc2FnZUF0dGFjaG1lbnQgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYW50YS1hdHRhY2htZW50JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFudGFBdHRhY2htZW50Q29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cclxuICAgICkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hdHRhY2htZW50OiBDaGF0TWVzc2FnZUF0dGFjaG1lbnQ7XHJcbiAgICBASW5wdXQoKSBnZXQgYXR0YWNobWVudCgpIHsgcmV0dXJuIHRoaXMuX2F0dGFjaG1lbnQ7IH1cclxuICAgIHNldCBhdHRhY2htZW50KHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fYXR0YWNobWVudCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tMb2FkKCk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBlZGl0aW5nID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBsb2FkaW5nTWVzc2FnZTogc3RyaW5nID0gJ1BsZWFzZSB3YWl0Li4uJztcclxuICAgIEBJbnB1dCgpIGVycm9yID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdBbiBlcnJvciBoYXMgb2NjdXJyZWQnO1xyXG4gICAgQE91dHB1dCgpIHJlbW92ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGFjdGl2YXRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgbG9hZGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXdpbmRvd1sndHd0dHInXSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB3aW5kb3dbJ3R3dHRyJ10ud2lkZ2V0cy5sb2FkKCk7XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ZpZXdMb2FkZWQgPSBmYWxzZTtcclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLl92aWV3TG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrTG9hZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tMb2FkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fYXR0YWNobWVudCB8fCAhdGhpcy5fdmlld0xvYWRlZCB8fCAhdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJylcclxuICAgICAgICAgICAgdGhpcy5sb2FkZWQubmV4dCgpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxvYWRlZC5uZXh0KCksIDI1MCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWN0aXZhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZSgpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0Vycm9yKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yIHx8IHRoaXMuYXR0YWNobWVudD8udHJhbnNpZW50U3RhdGU/LmVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0aGVFcnJvck1lc3NhZ2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlIHx8IHRoaXMuYXR0YWNobWVudD8udHJhbnNpZW50U3RhdGU/LmVycm9yTWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxvYWRpbmcnKVxyXG4gICAgZ2V0IGlzTG9hZGluZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0aW5nICYmIChcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nIHx8ICF0aGlzLmF0dGFjaG1lbnQgfHwgdGhpcy5hdHRhY2htZW50LnRyYW5zaWVudFN0YXRlPy5sb2FkaW5nIFxyXG4gICAgICAgICAgICB8fCAhdGhpcy5hdHRhY2htZW50LnVybFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzSW1hZ2VBdHRhY2htZW50KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmF0dGFjaG1lbnQ/LnR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlLycpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBoYXNGcmFtZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuYXR0YWNobWVudClcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5hdHRhY2htZW50LnR5cGUgPT09ICdpZnJhbWUnIHx8IChcclxuICAgICAgICAgICAgdGhpcy5hdHRhY2htZW50LnR5cGUgPT09ICdjYXJkJyBcclxuICAgICAgICAgICAgJiYgdGhpcy5hdHRhY2htZW50LmNhcmQ/LnBsYXllclxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZyYW1lVXJsKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5hdHRhY2htZW50KVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLmF0dGFjaG1lbnQudHlwZSA9PT0gJ2lmcmFtZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXR0YWNobWVudC51cmw7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF0dGFjaG1lbnQudHlwZSA9PT0gJ2NhcmQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF0dGFjaG1lbnQuY2FyZC5wbGF5ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZSgpXCIgbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwicmVtb3ZlLWJ1dHRvblwiICpuZ0lmPVwiZWRpdGluZ1wiPlxyXG4gICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNFcnJvclwiPlxyXG4gICAgPG1hdC1pY29uIGNsYXNzPVwiZXJyb3JcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICA8ZW0gY2xhc3M9XCJlcnJvclwiPnt7dGhlRXJyb3JNZXNzYWdlfX08L2VtPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Vycm9yXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgPGVtPnt7bG9hZGluZ01lc3NhZ2V9fTwvZW0+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nICYmIGF0dGFjaG1lbnRcIj5cclxuICAgICAgICA8aWZyYW1lICpuZ0lmPVwiaGFzRnJhbWVcIlxyXG4gICAgICAgICAgICBzYW5kYm94PVwiYWxsb3ctc2NyaXB0cyBhbGxvdy1wb3B1cHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctcHJlc2VudGF0aW9uXCIgXHJcbiAgICAgICAgICAgIFtzcmNdPVwiZnJhbWVVcmwgfCB0cnVzdFJlc291cmNlVXJsXCI+PC9pZnJhbWU+XHJcbiAgICAgICAgPGEgKm5nSWY9XCJhdHRhY2htZW50LnR5cGUgPT09ICdjYXJkJ1wiIGNsYXNzPVwiY2FyZC1hdHRhY2htZW50XCIgW2hyZWZdPVwiYXR0YWNobWVudC51cmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiBbY2xhc3MuaGFzLWltYWdlXT1cImF0dGFjaG1lbnQuY2FyZC5pbWFnZVwiPlxyXG4gICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhdHRhY2htZW50LmNhcmQuaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aHVtYm5haWxcIiBcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwiYXR0YWNobWVudC5jYXJkLmltYWdlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGgxPnt7YXR0YWNobWVudC5jYXJkLnRpdGxlfX08L2gxPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2F0dGFjaG1lbnQuY2FyZC5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxjaXRlPnt7YXR0YWNobWVudC5jYXJkLnVybH19PC9jaXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJpbWFnZS1hdHRhY2htZW50XCIgKm5nSWY9XCJpc0ltYWdlQXR0YWNobWVudCAmJiBhdHRhY2htZW50LnVybFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwiYWN0aXZhdGUoKVwiPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiYXR0YWNobWVudC51cmxcIiBhbHQ9XCJJbWFnZSBBdHRhY2htZW50XCI+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxibG9ja3F1b3RlICpuZ0lmPVwiYXR0YWNobWVudC50eXBlID09PSAndHdlZXQnXCIgXHJcbiAgICAgICAgICAgIGNsYXNzPVwidHdpdHRlci10d2VldFwiPlxyXG4gICAgICAgICAgICAgICAgPHAgbGFuZz1cImVuXCIgZGlyPVwibHRyXCI+PC9wPlxyXG4gICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYXR0YWNobWVudC51cmxcIj48L2E+XHJcbiAgICAgICAgPC9ibG9ja3F1b3RlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -1,75 +1,75 @@
1
- import { Component, Input, Output, ViewChild } 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 "../lightbox/lightbox.component";
6
- import * as i3 from "../attachment/attachment.component";
7
- export class BantaAttachmentsComponent {
8
- constructor() {
9
- this.editing = false;
10
- this.remove = new Subject();
11
- this.loaded = new Subject();
12
- this.loadedAttachments = new WeakMap();
13
- }
14
- ngAfterViewInit() {
15
- }
16
- markAttachmentLoaded(attachment) {
17
- this.loadedAttachments.set(attachment, true);
18
- if (this.allAttachmentsLoaded)
19
- this.loaded.next();
20
- }
21
- isAttachmentLoaded(attachment) {
22
- return this.loadedAttachments.has(attachment);
23
- }
24
- get allAttachmentsLoaded() {
25
- return this.attachments.every(x => this.isAttachmentLoaded(x));
26
- }
27
- removeAttachment(attachment) {
28
- this.remove.next(attachment);
29
- }
30
- isImageAttachment(attachment) {
31
- if (attachment.type.startsWith('image/'))
32
- return true;
33
- return false;
34
- }
35
- isCardAttachment(attachment) {
36
- if (['card'].includes(attachment.type))
37
- return true;
38
- return false;
39
- }
40
- showLightbox(image) {
41
- this.lightbox.open(image.url, this.attachments
42
- .filter(x => x.type === 'image/png')
43
- .map(x => x.url));
44
- }
45
- get validAttachments() {
46
- return this.attachments.filter(x => x.type);
47
- }
48
- get inlineAttachments() {
49
- return this.validAttachments.filter(x => x.type !== 'card' && (x.style === 'inline' || !x.style));
50
- }
51
- get blockAttachments() {
52
- return this.validAttachments.filter(x => x.style === 'block' || x.type === 'card');
53
- }
54
- attachmentId(index, attachment) {
55
- return attachment.url;
56
- }
57
- }
58
- BantaAttachmentsComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BantaAttachmentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
59
- BantaAttachmentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: BantaAttachmentsComponent, selector: "banta-attachments", inputs: { attachments: "attachments", editing: "editing" }, outputs: { remove: "remove", loaded: "loaded" }, viewQueries: [{ propertyName: "lightbox", first: true, predicate: ["lightbox"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"attachments?.length > 0\">\r\n <banta-lightbox #lightbox></banta-lightbox>\r\n <div class=\"block-attachments\">\r\n <ng-container *ngFor=\"let attachment of blockAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n\r\n <div \r\n class=\"inline-attachments\" \r\n [class.single]=\"attachments?.length === 1\" \r\n *ngIf=\"attachments && attachments?.length > 0\"\r\n >\r\n <ng-container *ngFor=\"let attachment of inlineAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [".block-attachments{display:flex;flex-direction:column}.block-attachments banta-attachment{width:100%}.inline-attachments{flex-direction:row;margin-top:15px;display:flex;gap:20px;flex-wrap:wrap}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LightboxComponent, selector: "banta-lightbox" }, { kind: "component", type: i3.BantaAttachmentComponent, selector: "banta-attachment", inputs: ["attachment", "loading", "editing", "loadingMessage", "error", "errorMessage"], outputs: ["removed", "activated", "loaded"] }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BantaAttachmentsComponent, decorators: [{
61
- type: Component,
62
- args: [{ selector: 'banta-attachments', template: "<ng-container *ngIf=\"attachments?.length > 0\">\r\n <banta-lightbox #lightbox></banta-lightbox>\r\n <div class=\"block-attachments\">\r\n <ng-container *ngFor=\"let attachment of blockAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n\r\n <div \r\n class=\"inline-attachments\" \r\n [class.single]=\"attachments?.length === 1\" \r\n *ngIf=\"attachments && attachments?.length > 0\"\r\n >\r\n <ng-container *ngFor=\"let attachment of inlineAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [".block-attachments{display:flex;flex-direction:column}.block-attachments banta-attachment{width:100%}.inline-attachments{flex-direction:row;margin-top:15px;display:flex;gap:20px;flex-wrap:wrap}\n"] }]
63
- }], propDecorators: { attachments: [{
64
- type: Input
65
- }], editing: [{
66
- type: Input
67
- }], lightbox: [{
68
- type: ViewChild,
69
- args: ['lightbox']
70
- }], remove: [{
71
- type: Output
72
- }], loaded: [{
73
- type: Output
74
- }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvY29tbW9uL2F0dGFjaG1lbnRzL2F0dGFjaG1lbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1vbi9hdHRhY2htZW50cy9hdHRhY2htZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUS9CLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFPYSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWYsV0FBTSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQzlDLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXZDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFrQyxDQUFDO0tBNkRyRTtJQTNERyxlQUFlO0lBRWYsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWlDO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdDLElBQUksSUFBSSxDQUFDLG9CQUFvQjtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFpQztRQUNoRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBaUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWlDO1FBQy9DLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFpQztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDaEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUE0QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDZCxLQUFLLENBQUMsR0FBRyxFQUNULElBQUksQ0FBQyxXQUFXO2FBQ1gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7YUFDbkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUN2QixDQUFBO0lBQ0wsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWEsRUFBRSxVQUFpQztRQUN6RCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQzs7dUhBbkVRLHlCQUF5QjsyR0FBekIseUJBQXlCLDRRQ1Z0Qyx3eUNBNkJlOzRGRG5CRix5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQUtwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNYLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZUF0dGFjaG1lbnQgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTGlnaHRib3hDb21wb25lbnQgfSBmcm9tIFwiLi4vbGlnaHRib3gvbGlnaHRib3guY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFudGEtYXR0YWNobWVudHMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnRzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbnRhQXR0YWNobWVudHNDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgYXR0YWNobWVudHM6IENoYXRNZXNzYWdlQXR0YWNobWVudFtdO1xyXG4gICAgQElucHV0KCkgZWRpdGluZyA9IGZhbHNlO1xyXG4gICAgQFZpZXdDaGlsZCgnbGlnaHRib3gnKSBsaWdodGJveDogTGlnaHRib3hDb21wb25lbnQ7XHJcbiAgICBAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IFN1YmplY3Q8Q2hhdE1lc3NhZ2VBdHRhY2htZW50PigpO1xyXG4gICAgQE91dHB1dCgpIGxvYWRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgbG9hZGVkQXR0YWNobWVudHMgPSBuZXcgV2Vha01hcDxDaGF0TWVzc2FnZUF0dGFjaG1lbnQsIGJvb2xlYW4+KCk7XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBtYXJrQXR0YWNobWVudExvYWRlZChhdHRhY2htZW50OiBDaGF0TWVzc2FnZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICB0aGlzLmxvYWRlZEF0dGFjaG1lbnRzLnNldChhdHRhY2htZW50LCB0cnVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYWxsQXR0YWNobWVudHNMb2FkZWQpXHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0F0dGFjaG1lbnRMb2FkZWQoYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVkQXR0YWNobWVudHMuaGFzKGF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbGxBdHRhY2htZW50c0xvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hdHRhY2htZW50cy5ldmVyeSh4ID0+IHRoaXMuaXNBdHRhY2htZW50TG9hZGVkKHgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQ6IENoYXRNZXNzYWdlQXR0YWNobWVudCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlLm5leHQoYXR0YWNobWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNJbWFnZUF0dGFjaG1lbnQoYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50KSB7XHJcbiAgICAgICAgaWYgKGF0dGFjaG1lbnQudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSlcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ2FyZEF0dGFjaG1lbnQoYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50KSB7XHJcbiAgICAgICAgaWYgKFsnY2FyZCddLmluY2x1ZGVzKGF0dGFjaG1lbnQudHlwZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93TGlnaHRib3goaW1hZ2U6IENoYXRNZXNzYWdlQXR0YWNobWVudCkge1xyXG4gICAgICAgIHRoaXMubGlnaHRib3gub3BlbihcclxuICAgICAgICAgICAgaW1hZ2UudXJsLFxyXG4gICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHggPT4geC50eXBlID09PSAnaW1hZ2UvcG5nJylcclxuICAgICAgICAgICAgICAgIC5tYXAoeCA9PiB4LnVybClcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhbGlkQXR0YWNobWVudHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR0YWNobWVudHMuZmlsdGVyKHggPT4geC50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaW5saW5lQXR0YWNobWVudHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRBdHRhY2htZW50cy5maWx0ZXIoeCA9PiB4LnR5cGUgIT09ICdjYXJkJyAmJiAoeC5zdHlsZSA9PT0gJ2lubGluZScgfHwgIXguc3R5bGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYmxvY2tBdHRhY2htZW50cygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZEF0dGFjaG1lbnRzLmZpbHRlcih4ID0+IHguc3R5bGUgPT09ICdibG9jaycgfHwgeC50eXBlID09PSAnY2FyZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGF0dGFjaG1lbnRJZChpbmRleDogbnVtYmVyLCBhdHRhY2htZW50OiBDaGF0TWVzc2FnZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICByZXR1cm4gYXR0YWNobWVudC51cmw7XHJcbiAgICB9XHJcbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIj5cclxuICAgIDxiYW50YS1saWdodGJveCAjbGlnaHRib3g+PC9iYW50YS1saWdodGJveD5cclxuICAgIDxkaXYgY2xhc3M9XCJibG9jay1hdHRhY2htZW50c1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGF0dGFjaG1lbnQgb2YgYmxvY2tBdHRhY2htZW50czsgdHJhY2tCeTogYXR0YWNobWVudElkXCI+XHJcbiAgICAgICAgICAgIDxiYW50YS1hdHRhY2htZW50IFxyXG4gICAgICAgICAgICAgICAgW2F0dGFjaG1lbnRdPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgICBbZWRpdGluZ109XCJlZGl0aW5nXCJcclxuICAgICAgICAgICAgICAgIChsb2FkZWQpPVwibWFya0F0dGFjaG1lbnRMb2FkZWQoYXR0YWNobWVudClcIlxyXG4gICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlQXR0YWNobWVudChhdHRhY2htZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aXZhdGVkKT1cInNob3dMaWdodGJveChhdHRhY2htZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9iYW50YS1hdHRhY2htZW50PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBcclxuICAgICAgICBjbGFzcz1cImlubGluZS1hdHRhY2htZW50c1wiIFxyXG4gICAgICAgIFtjbGFzcy5zaW5nbGVdPVwiYXR0YWNobWVudHM/Lmxlbmd0aCA9PT0gMVwiIFxyXG4gICAgICAgICpuZ0lmPVwiYXR0YWNobWVudHMgJiYgYXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdHRhY2htZW50IG9mIGlubGluZUF0dGFjaG1lbnRzOyB0cmFja0J5OiBhdHRhY2htZW50SWRcIj5cclxuICAgICAgICAgICAgPGJhbnRhLWF0dGFjaG1lbnQgXHJcbiAgICAgICAgICAgICAgICBbYXR0YWNobWVudF09XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgICAgIFtlZGl0aW5nXT1cImVkaXRpbmdcIlxyXG4gICAgICAgICAgICAgICAgKGxvYWRlZCk9XCJtYXJrQXR0YWNobWVudExvYWRlZChhdHRhY2htZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQpXCJcclxuICAgICAgICAgICAgICAgIChhY3RpdmF0ZWQpPVwic2hvd0xpZ2h0Ym94KGF0dGFjaG1lbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2JhbnRhLWF0dGFjaG1lbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+Il19
1
+ import { Component, Input, Output, ViewChild } 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 "../lightbox/lightbox.component";
6
+ import * as i3 from "../attachment/attachment.component";
7
+ export class BantaAttachmentsComponent {
8
+ constructor() {
9
+ this.editing = false;
10
+ this.remove = new Subject();
11
+ this.loaded = new Subject();
12
+ this.loadedAttachments = new WeakMap();
13
+ }
14
+ ngAfterViewInit() {
15
+ }
16
+ markAttachmentLoaded(attachment) {
17
+ this.loadedAttachments.set(attachment, true);
18
+ if (this.allAttachmentsLoaded)
19
+ this.loaded.next();
20
+ }
21
+ isAttachmentLoaded(attachment) {
22
+ return this.loadedAttachments.has(attachment);
23
+ }
24
+ get allAttachmentsLoaded() {
25
+ return this.attachments.every(x => this.isAttachmentLoaded(x));
26
+ }
27
+ removeAttachment(attachment) {
28
+ this.remove.next(attachment);
29
+ }
30
+ isImageAttachment(attachment) {
31
+ if (attachment.type.startsWith('image/'))
32
+ return true;
33
+ return false;
34
+ }
35
+ isCardAttachment(attachment) {
36
+ if (['card'].includes(attachment.type))
37
+ return true;
38
+ return false;
39
+ }
40
+ showLightbox(image) {
41
+ this.lightbox.open(image.url, this.attachments
42
+ .filter(x => x.type === 'image/png')
43
+ .map(x => x.url));
44
+ }
45
+ get validAttachments() {
46
+ return this.attachments.filter(x => x.type);
47
+ }
48
+ get inlineAttachments() {
49
+ return this.validAttachments.filter(x => x.type !== 'card' && (x.style === 'inline' || !x.style));
50
+ }
51
+ get blockAttachments() {
52
+ return this.validAttachments.filter(x => x.style === 'block' || x.type === 'card');
53
+ }
54
+ attachmentId(index, attachment) {
55
+ return attachment.url;
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BantaAttachmentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: BantaAttachmentsComponent, selector: "banta-attachments", inputs: { attachments: "attachments", editing: "editing" }, outputs: { remove: "remove", loaded: "loaded" }, viewQueries: [{ propertyName: "lightbox", first: true, predicate: ["lightbox"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"attachments?.length > 0\">\r\n <banta-lightbox #lightbox></banta-lightbox>\r\n <div class=\"block-attachments\">\r\n <ng-container *ngFor=\"let attachment of blockAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n\r\n <div \r\n class=\"inline-attachments\" \r\n [class.single]=\"attachments?.length === 1\" \r\n *ngIf=\"attachments && attachments?.length > 0\"\r\n >\r\n <ng-container *ngFor=\"let attachment of inlineAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [".block-attachments{display:flex;flex-direction:column}.block-attachments banta-attachment{width:100%}.inline-attachments{flex-direction:row;margin-top:15px;display:flex;gap:20px;flex-wrap:wrap}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LightboxComponent, selector: "banta-lightbox" }, { kind: "component", type: i3.BantaAttachmentComponent, selector: "banta-attachment", inputs: ["attachment", "loading", "editing", "loadingMessage", "error", "errorMessage"], outputs: ["removed", "activated", "loaded"] }] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BantaAttachmentsComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'banta-attachments', template: "<ng-container *ngIf=\"attachments?.length > 0\">\r\n <banta-lightbox #lightbox></banta-lightbox>\r\n <div class=\"block-attachments\">\r\n <ng-container *ngFor=\"let attachment of blockAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n\r\n <div \r\n class=\"inline-attachments\" \r\n [class.single]=\"attachments?.length === 1\" \r\n *ngIf=\"attachments && attachments?.length > 0\"\r\n >\r\n <ng-container *ngFor=\"let attachment of inlineAttachments; trackBy: attachmentId\">\r\n <banta-attachment \r\n [attachment]=\"attachment\"\r\n [editing]=\"editing\"\r\n (loaded)=\"markAttachmentLoaded(attachment)\"\r\n (removed)=\"removeAttachment(attachment)\"\r\n (activated)=\"showLightbox(attachment)\"\r\n ></banta-attachment>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [".block-attachments{display:flex;flex-direction:column}.block-attachments banta-attachment{width:100%}.inline-attachments{flex-direction:row;margin-top:15px;display:flex;gap:20px;flex-wrap:wrap}\n"] }]
63
+ }], propDecorators: { attachments: [{
64
+ type: Input
65
+ }], editing: [{
66
+ type: Input
67
+ }], lightbox: [{
68
+ type: ViewChild,
69
+ args: ['lightbox']
70
+ }], remove: [{
71
+ type: Output
72
+ }], loaded: [{
73
+ type: Output
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvY29tbW9uL2F0dGFjaG1lbnRzL2F0dGFjaG1lbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1vbi9hdHRhY2htZW50cy9hdHRhY2htZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUS9CLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFPYSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWYsV0FBTSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQzlDLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXZDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFrQyxDQUFDO0tBNkRyRTtJQTNERyxlQUFlO0lBRWYsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWlDO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdDLElBQUksSUFBSSxDQUFDLG9CQUFvQjtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFpQztRQUNoRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBaUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWlDO1FBQy9DLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFpQztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDaEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUE0QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDZCxLQUFLLENBQUMsR0FBRyxFQUNULElBQUksQ0FBQyxXQUFXO2FBQ1gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7YUFDbkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUN2QixDQUFBO0lBQ0wsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWEsRUFBRSxVQUFpQztRQUN6RCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQzs4R0FuRVEseUJBQXlCO2tHQUF6Qix5QkFBeUIsNFFDVnRDLHd5Q0E2QmU7OzJGRG5CRix5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQUtwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNYLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZUF0dGFjaG1lbnQgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTGlnaHRib3hDb21wb25lbnQgfSBmcm9tIFwiLi4vbGlnaHRib3gvbGlnaHRib3guY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFudGEtYXR0YWNobWVudHMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnRzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbnRhQXR0YWNobWVudHNDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgYXR0YWNobWVudHM6IENoYXRNZXNzYWdlQXR0YWNobWVudFtdO1xyXG4gICAgQElucHV0KCkgZWRpdGluZyA9IGZhbHNlO1xyXG4gICAgQFZpZXdDaGlsZCgnbGlnaHRib3gnKSBsaWdodGJveDogTGlnaHRib3hDb21wb25lbnQ7XHJcbiAgICBAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IFN1YmplY3Q8Q2hhdE1lc3NhZ2VBdHRhY2htZW50PigpO1xyXG4gICAgQE91dHB1dCgpIGxvYWRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgbG9hZGVkQXR0YWNobWVudHMgPSBuZXcgV2Vha01hcDxDaGF0TWVzc2FnZUF0dGFjaG1lbnQsIGJvb2xlYW4+KCk7XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBtYXJrQXR0YWNobWVudExvYWRlZChhdHRhY2htZW50OiBDaGF0TWVzc2FnZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICB0aGlzLmxvYWRlZEF0dGFjaG1lbnRzLnNldChhdHRhY2htZW50LCB0cnVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYWxsQXR0YWNobWVudHNMb2FkZWQpXHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0F0dGFjaG1lbnRMb2FkZWQoYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVkQXR0YWNobWVudHMuaGFzKGF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbGxBdHRhY2htZW50c0xvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hdHRhY2htZW50cy5ldmVyeSh4ID0+IHRoaXMuaXNBdHRhY2htZW50TG9hZGVkKHgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQ6IENoYXRNZXNzYWdlQXR0YWNobWVudCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlLm5leHQoYXR0YWNobWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNJbWFnZUF0dGFjaG1lbnQoYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50KSB7XHJcbiAgICAgICAgaWYgKGF0dGFjaG1lbnQudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSlcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ2FyZEF0dGFjaG1lbnQoYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50KSB7XHJcbiAgICAgICAgaWYgKFsnY2FyZCddLmluY2x1ZGVzKGF0dGFjaG1lbnQudHlwZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93TGlnaHRib3goaW1hZ2U6IENoYXRNZXNzYWdlQXR0YWNobWVudCkge1xyXG4gICAgICAgIHRoaXMubGlnaHRib3gub3BlbihcclxuICAgICAgICAgICAgaW1hZ2UudXJsLFxyXG4gICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHggPT4geC50eXBlID09PSAnaW1hZ2UvcG5nJylcclxuICAgICAgICAgICAgICAgIC5tYXAoeCA9PiB4LnVybClcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhbGlkQXR0YWNobWVudHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR0YWNobWVudHMuZmlsdGVyKHggPT4geC50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaW5saW5lQXR0YWNobWVudHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRBdHRhY2htZW50cy5maWx0ZXIoeCA9PiB4LnR5cGUgIT09ICdjYXJkJyAmJiAoeC5zdHlsZSA9PT0gJ2lubGluZScgfHwgIXguc3R5bGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYmxvY2tBdHRhY2htZW50cygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZEF0dGFjaG1lbnRzLmZpbHRlcih4ID0+IHguc3R5bGUgPT09ICdibG9jaycgfHwgeC50eXBlID09PSAnY2FyZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGF0dGFjaG1lbnRJZChpbmRleDogbnVtYmVyLCBhdHRhY2htZW50OiBDaGF0TWVzc2FnZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICByZXR1cm4gYXR0YWNobWVudC51cmw7XHJcbiAgICB9XHJcbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIj5cclxuICAgIDxiYW50YS1saWdodGJveCAjbGlnaHRib3g+PC9iYW50YS1saWdodGJveD5cclxuICAgIDxkaXYgY2xhc3M9XCJibG9jay1hdHRhY2htZW50c1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGF0dGFjaG1lbnQgb2YgYmxvY2tBdHRhY2htZW50czsgdHJhY2tCeTogYXR0YWNobWVudElkXCI+XHJcbiAgICAgICAgICAgIDxiYW50YS1hdHRhY2htZW50IFxyXG4gICAgICAgICAgICAgICAgW2F0dGFjaG1lbnRdPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgICBbZWRpdGluZ109XCJlZGl0aW5nXCJcclxuICAgICAgICAgICAgICAgIChsb2FkZWQpPVwibWFya0F0dGFjaG1lbnRMb2FkZWQoYXR0YWNobWVudClcIlxyXG4gICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlQXR0YWNobWVudChhdHRhY2htZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aXZhdGVkKT1cInNob3dMaWdodGJveChhdHRhY2htZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9iYW50YS1hdHRhY2htZW50PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBcclxuICAgICAgICBjbGFzcz1cImlubGluZS1hdHRhY2htZW50c1wiIFxyXG4gICAgICAgIFtjbGFzcy5zaW5nbGVdPVwiYXR0YWNobWVudHM/Lmxlbmd0aCA9PT0gMVwiIFxyXG4gICAgICAgICpuZ0lmPVwiYXR0YWNobWVudHMgJiYgYXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdHRhY2htZW50IG9mIGlubGluZUF0dGFjaG1lbnRzOyB0cmFja0J5OiBhdHRhY2htZW50SWRcIj5cclxuICAgICAgICAgICAgPGJhbnRhLWF0dGFjaG1lbnQgXHJcbiAgICAgICAgICAgICAgICBbYXR0YWNobWVudF09XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgICAgIFtlZGl0aW5nXT1cImVkaXRpbmdcIlxyXG4gICAgICAgICAgICAgICAgKGxvYWRlZCk9XCJtYXJrQXR0YWNobWVudExvYWRlZChhdHRhY2htZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQpXCJcclxuICAgICAgICAgICAgICAgIChhY3RpdmF0ZWQpPVwic2hvd0xpZ2h0Ym94KGF0dGFjaG1lbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2JhbnRhLWF0dGFjaG1lbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+Il19