@banta/sdk 4.6.27 → 4.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +2 -2
  2. package/{esm2015/banta-sdk.js → esm2020/banta-sdk.mjs} +0 -0
  3. package/{esm2015/lib/attachment-scraper.js → esm2020/lib/attachment-scraper.mjs} +0 -0
  4. package/esm2020/lib/banta/banta.component.mjs +204 -0
  5. package/esm2020/lib/banta-logo.component.mjs +11 -0
  6. package/esm2020/lib/banta-sdk.module.mjs +144 -0
  7. package/esm2020/lib/chat/banta-chat/banta-chat.component.mjs +185 -0
  8. package/esm2020/lib/chat/chat-message/chat-message.component.mjs +62 -0
  9. package/esm2020/lib/chat/chat-view/chat-view.component.mjs +170 -0
  10. package/esm2020/lib/chat/chat.module.mjs +51 -0
  11. package/{esm2015/lib/chat/index.js → esm2020/lib/chat/index.mjs} +0 -0
  12. package/esm2020/lib/chat/live-chat-message.component.mjs +80 -0
  13. package/{esm2015/lib/chat-backend-base.js → esm2020/lib/chat-backend-base.mjs} +0 -0
  14. package/esm2020/lib/chat-backend.mjs +83 -0
  15. package/{esm2015/lib/chat-source-base.js → esm2020/lib/chat-source-base.mjs} +0 -0
  16. package/esm2020/lib/chat-source.mjs +169 -0
  17. package/esm2020/lib/comments/attachment-button/attachment-button.component.mjs +69 -0
  18. package/esm2020/lib/comments/attachment-scraper.directive.mjs +107 -0
  19. package/esm2020/lib/comments/banta-comments/banta-comments.component.mjs +666 -0
  20. package/esm2020/lib/comments/comment/comment.component.mjs +217 -0
  21. package/esm2020/lib/comments/comment-field/comment-field.component.mjs +377 -0
  22. package/esm2020/lib/comments/comment-sort/comment-sort.component.mjs +37 -0
  23. package/esm2020/lib/comments/comment-view/comment-view.component.mjs +379 -0
  24. package/esm2020/lib/comments/comments.module.mjs +111 -0
  25. package/{esm2015/lib/comments/index.js → esm2020/lib/comments/index.mjs} +0 -0
  26. package/esm2020/lib/comments/live-comment.component.mjs +80 -0
  27. package/esm2020/lib/comments/reply-send-options.directive.mjs +13 -0
  28. package/esm2020/lib/common/attachment/attachment.component.mjs +113 -0
  29. package/esm2020/lib/common/attachments/attachments.component.mjs +72 -0
  30. package/esm2020/lib/common/common.module.mjs +59 -0
  31. package/{esm2015/lib/common/index.js → esm2020/lib/common/index.mjs} +0 -0
  32. package/{esm2015/lib/common/lazy-connection.js → esm2020/lib/common/lazy-connection.mjs} +0 -0
  33. package/esm2020/lib/common/lightbox/lightbox.component.mjs +31 -0
  34. package/esm2020/lib/common/markdown-to-html.pipe.mjs +76 -0
  35. package/esm2020/lib/common/mention-linker.pipe.mjs +35 -0
  36. package/esm2020/lib/common/timestamp.component.mjs +113 -0
  37. package/esm2020/lib/common/trust-resource-url.pipe.mjs +22 -0
  38. package/esm2020/lib/emoji/emoji-selector-button.component.mjs +113 -0
  39. package/esm2020/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +88 -0
  40. package/esm2020/lib/emoji/emoji.module.mjs +55 -0
  41. package/{esm2015/lib/emoji/emojis.js → esm2020/lib/emoji/emojis.mjs} +0 -0
  42. package/{esm2015/lib/emoji/index.js → esm2020/lib/emoji/index.mjs} +0 -0
  43. package/esm2020/lib/giphy-attachments.mjs +16 -0
  44. package/{esm2015/lib/index.js → esm2020/lib/index.mjs} +0 -0
  45. package/esm2020/lib/live-message.component.mjs +96 -0
  46. package/{esm2015/lib/message-menu-item.js → esm2020/lib/message-menu-item.mjs} +0 -0
  47. package/{esm2015/lib/sdk-options.js → esm2020/lib/sdk-options.mjs} +0 -0
  48. package/esm2020/lib/tweet-attachments.mjs +13 -0
  49. package/esm2020/lib/url-attachments.mjs +42 -0
  50. package/esm2020/lib/youtube-attachments.mjs +22 -0
  51. package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
  52. package/fesm2015/{banta-sdk.js → banta-sdk.mjs} +2560 -2240
  53. package/fesm2015/banta-sdk.mjs.map +1 -0
  54. package/fesm2020/banta-sdk.mjs +10490 -0
  55. package/fesm2020/banta-sdk.mjs.map +1 -0
  56. package/{banta-sdk.d.ts → index.d.ts} +1 -0
  57. package/lib/banta/banta.component.d.ts +3 -0
  58. package/lib/banta-logo.component.d.ts +3 -0
  59. package/lib/banta-sdk.module.d.ts +24 -0
  60. package/lib/chat/banta-chat/banta-chat.component.d.ts +3 -0
  61. package/lib/chat/chat-message/chat-message.component.d.ts +3 -0
  62. package/lib/chat/chat-view/chat-view.component.d.ts +3 -0
  63. package/lib/chat/chat.module.d.ts +13 -0
  64. package/lib/chat/live-chat-message.component.d.ts +3 -0
  65. package/lib/chat-backend.d.ts +3 -0
  66. package/lib/comments/attachment-button/attachment-button.component.d.ts +3 -0
  67. package/lib/comments/attachment-scraper.directive.d.ts +3 -0
  68. package/lib/comments/banta-comments/banta-comments.component.d.ts +3 -0
  69. package/lib/comments/comment/comment.component.d.ts +3 -0
  70. package/lib/comments/comment-field/comment-field.component.d.ts +3 -0
  71. package/lib/comments/comment-sort/comment-sort.component.d.ts +3 -0
  72. package/lib/comments/comment-view/comment-view.component.d.ts +3 -0
  73. package/lib/comments/comments.module.d.ts +28 -0
  74. package/lib/comments/live-comment.component.d.ts +3 -0
  75. package/lib/comments/reply-send-options.directive.d.ts +3 -0
  76. package/lib/common/attachment/attachment.component.d.ts +3 -0
  77. package/lib/common/attachments/attachments.component.d.ts +3 -0
  78. package/lib/common/common.module.d.ts +15 -0
  79. package/lib/common/lightbox/lightbox.component.d.ts +3 -0
  80. package/lib/common/markdown-to-html.pipe.d.ts +3 -0
  81. package/lib/common/mention-linker.pipe.d.ts +3 -0
  82. package/lib/common/timestamp.component.d.ts +3 -0
  83. package/lib/common/trust-resource-url.pipe.d.ts +3 -0
  84. package/lib/emoji/emoji-selector-button.component.d.ts +3 -0
  85. package/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.d.ts +3 -0
  86. package/lib/emoji/emoji.module.d.ts +14 -0
  87. package/lib/live-message.component.d.ts +3 -0
  88. package/lib/url-attachments.d.ts +3 -0
  89. package/package.json +22 -10
  90. package/banta-sdk.metadata.json +0 -1
  91. package/bundles/banta-sdk.umd.js +0 -11913
  92. package/bundles/banta-sdk.umd.js.map +0 -1
  93. package/esm2015/lib/banta/banta.component.js +0 -200
  94. package/esm2015/lib/banta-logo.component.js +0 -20
  95. package/esm2015/lib/banta-sdk.module.js +0 -98
  96. package/esm2015/lib/chat/banta-chat/banta-chat.component.js +0 -174
  97. package/esm2015/lib/chat/chat-message/chat-message.component.js +0 -56
  98. package/esm2015/lib/chat/chat-view/chat-view.component.js +0 -167
  99. package/esm2015/lib/chat/chat.module.js +0 -32
  100. package/esm2015/lib/chat/live-chat-message.component.js +0 -71
  101. package/esm2015/lib/chat-backend.js +0 -92
  102. package/esm2015/lib/chat-source.js +0 -199
  103. package/esm2015/lib/comments/attachment-button/attachment-button.component.js +0 -70
  104. package/esm2015/lib/comments/attachment-scraper.directive.js +0 -109
  105. package/esm2015/lib/comments/banta-comments/banta-comments.component.js +0 -678
  106. package/esm2015/lib/comments/comment/comment.component.js +0 -186
  107. package/esm2015/lib/comments/comment-field/comment-field.component.js +0 -350
  108. package/esm2015/lib/comments/comment-sort/comment-sort.component.js +0 -34
  109. package/esm2015/lib/comments/comment-view/comment-view.component.js +0 -364
  110. package/esm2015/lib/comments/comments.module.js +0 -62
  111. package/esm2015/lib/comments/live-comment.component.js +0 -71
  112. package/esm2015/lib/comments/reply-send-options.directive.js +0 -9
  113. package/esm2015/lib/common/attachment/attachment.component.js +0 -105
  114. package/esm2015/lib/common/attachments/attachments.component.js +0 -65
  115. package/esm2015/lib/common/common.module.js +0 -36
  116. package/esm2015/lib/common/lightbox/lightbox.component.js +0 -30
  117. package/esm2015/lib/common/markdown-to-html.pipe.js +0 -75
  118. package/esm2015/lib/common/mention-linker.pipe.js +0 -31
  119. package/esm2015/lib/common/timestamp.component.js +0 -106
  120. package/esm2015/lib/common/trust-resource-url.pipe.js +0 -21
  121. package/esm2015/lib/emoji/emoji-selector-button.component.js +0 -107
  122. package/esm2015/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.js +0 -86
  123. package/esm2015/lib/emoji/emoji.module.js +0 -34
  124. package/esm2015/lib/giphy-attachments.js +0 -20
  125. package/esm2015/lib/live-message.component.js +0 -74
  126. package/esm2015/lib/tweet-attachments.js +0 -16
  127. package/esm2015/lib/url-attachments.js +0 -46
  128. package/esm2015/lib/youtube-attachments.js +0 -25
  129. package/fesm2015/banta-sdk.js.map +0 -1
@@ -1,186 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, Output, Input, HostBinding, ElementRef } from "@angular/core";
3
- import { Subject } from 'rxjs';
4
- import { take } from 'rxjs/operators';
5
- export class CommentComponent {
6
- constructor(elementRef) {
7
- this.elementRef = elementRef;
8
- this._reported = new Subject();
9
- this._selected = new Subject();
10
- this._liked = new Subject();
11
- this._unliked = new Subject();
12
- this._shared = new Subject();
13
- this._userSelected = new Subject();
14
- this._avatarSelected = new Subject();
15
- this._usernameSelected = new Subject();
16
- this.maxLength = 1500;
17
- this.isNew = false;
18
- this.visible = false;
19
- this.showReplyAction = true;
20
- this.loaded = new Subject();
21
- this.isLoaded = false;
22
- this.mine = false;
23
- this.editing = false;
24
- this._editStarted = new Subject();
25
- this._deleted = new Subject();
26
- this._editEnded = new Subject();
27
- this._edited = new Subject();
28
- }
29
- get element() {
30
- return this.elementRef.nativeElement;
31
- }
32
- ngOnInit() {
33
- let maxTime = 100;
34
- let minTime = 0;
35
- let randomTime = minTime + Math.random() * (maxTime - minTime);
36
- setTimeout(() => {
37
- this.isNew = true;
38
- this.visible = true;
39
- setTimeout(() => this.isNew = false, 1000);
40
- }, randomTime);
41
- }
42
- markAttachmentsLoaded() {
43
- this.isLoaded = true;
44
- this.loaded.next();
45
- }
46
- get isHighlighted() {
47
- var _a, _b, _c;
48
- return (_c = (_b = (_a = this.message) === null || _a === void 0 ? void 0 : _a.transientState) === null || _b === void 0 ? void 0 : _b.highlighted) !== null && _c !== void 0 ? _c : false;
49
- }
50
- get message() {
51
- return this._message;
52
- }
53
- set message(value) {
54
- var _a;
55
- this._message = value;
56
- if (((_a = this._message.attachments) === null || _a === void 0 ? void 0 : _a.length) > 0) {
57
- this.isLoaded = false;
58
- }
59
- else {
60
- this.isLoaded = true;
61
- this.loaded.next();
62
- }
63
- }
64
- waitForLoad() {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- if (this.isLoaded)
67
- return true;
68
- yield this.loaded.pipe(take(1)).toPromise();
69
- });
70
- }
71
- get userSelected() {
72
- return this._userSelected.asObservable();
73
- }
74
- get usernameSelected() {
75
- return this._usernameSelected.asObservable();
76
- }
77
- get avatarSelected() {
78
- return this._avatarSelected.asObservable();
79
- }
80
- get reported() {
81
- return this._reported.asObservable();
82
- }
83
- saveEdit() {
84
- this._edited.next(this.editedMessage);
85
- }
86
- endEditing() {
87
- this._editEnded.next();
88
- }
89
- startEdit() {
90
- this._editStarted.next();
91
- this.editedMessage = this.message.message;
92
- }
93
- delete() {
94
- this._deleted.next();
95
- }
96
- get liked() {
97
- return this._liked.asObservable();
98
- }
99
- get unliked() {
100
- return this._unliked.asObservable();
101
- }
102
- get selected() {
103
- return this._selected.asObservable();
104
- }
105
- get edited() { return this._edited.asObservable(); }
106
- get deleted() { return this._deleted.asObservable(); }
107
- get editStarted() { return this._editStarted.asObservable(); }
108
- get editEnded() { return this._editEnded.asObservable(); }
109
- get shared() { return this._shared.asObservable(); }
110
- get commentId() { var _a; return (_a = this.message) === null || _a === void 0 ? void 0 : _a.id; }
111
- report() {
112
- this._reported.next();
113
- }
114
- like() {
115
- this._liked.next();
116
- }
117
- unlike() {
118
- this._unliked.next();
119
- }
120
- share() {
121
- this._shared.next(this.message);
122
- }
123
- select() {
124
- this._selected.next();
125
- }
126
- selectUser() {
127
- this._userSelected.next();
128
- }
129
- selectUsername(user) {
130
- this._usernameSelected.next(user);
131
- this.selectUser();
132
- }
133
- selectAvatar(user) {
134
- this._avatarSelected.next(user);
135
- this.selectUser();
136
- }
137
- avatarForUser(user) {
138
- let url = this.genericAvatarUrl;
139
- if (user && user.avatarUrl) {
140
- url = user.avatarUrl;
141
- }
142
- return `url(${url})`;
143
- }
144
- get replyCount() {
145
- var _a;
146
- return ((_a = this.message.submessages) === null || _a === void 0 ? void 0 : _a.length) || this.message.submessageCount || 0;
147
- }
148
- }
149
- CommentComponent.decorators = [
150
- { type: Component, args: [{
151
- selector: 'banta-comment',
152
- template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"share()\">\r\n <mat-icon>share</mat-icon>\r\n Share\r\n </button>\r\n <button *ngIf=\"!mine\" mat-menu-item (click)=\"report()\">\r\n <mat-icon>warning</mat-icon>\r\n Report\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canEdit\" mat-menu-item (click)=\"startEdit()\">\r\n <mat-icon>edit</mat-icon>\r\n Edit\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canDelete\" mat-menu-item (click)=\"delete()\">\r\n <mat-icon>delete</mat-icon>\r\n Delete\r\n </button>\r\n\r\n <button *ngFor=\"let menuItem of customMenuItems\" mat-menu-item (click)=\"menuItem.action(message)\">\r\n <mat-icon>{{menuItem.icon}}</mat-icon>\r\n {{menuItem.label}}\r\n </button>\r\n\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <div class=\"user-1\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <div class=\"user-identity\">\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n </div>\r\n </div>\r\n <div class=\"user-2\">\r\n <span class=\"user-tag\" *ngIf=\"message.user.tag\">{{message.user.tag}}</span>\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <span class=\"spacer\"></span>\r\n </div>\r\n </div>\r\n <div class=\"content\" *ngIf=\"!editing\">\r\n <span class=\"banta-message-content\" [innerHTML]=\"message.message | mentionLinker: message.mentionLinks | markdownToHtml\"></span>\r\n <banta-attachments \r\n [attachments]=\"message.attachments\"\r\n (loaded)=\"markAttachmentsLoaded()\"\r\n ></banta-attachments>\r\n <ul class=\"message-facts\">\r\n <li *ngIf=\"message.edits?.length > 0\">(Edited)</li>\r\n </ul>\r\n </div>\r\n <div class=\"content\" *ngIf=\"editing\" style=\"padding-bottom: 2em;\">\r\n <div>\r\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\r\n <mat-label>Edit Message</mat-label>\r\n <textarea matInput [(ngModel)]=\"editedMessage\" [maxlength]=\"maxLength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <button mat-raised-button (click)=\"saveEdit()\">Save</button> &nbsp;\r\n <button mat-button (click)=\"endEditing()\">Cancel</button>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <button mat-button [matTooltip]=\"replyCount > 0 ? 'Replies' : 'Reply'\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n <span class=\"count-indicator\">\r\n {{replyCount > 0 ? 'Replies' : 'Reply'}}\r\n {{replyCount > 0 ? '(' + replyCount + ')' : ''}}\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\" [class.active]=\"message.userState?.liked\">\r\n <button \r\n *ngIf=\"message.transientState?.liking\"\r\n mat-icon-button \r\n [disabled]=\"true\" \r\n [matTooltip]=\"upvoting ? 'Please wait...' : message.userState?.liked ? 'Unlike' : 'Like'\" \r\n matTooltipPosition=\"below\" \r\n >\r\n <mat-spinner [diameter]=\"15\" style=\"margin-left: 1em;\"></mat-spinner>\r\n </button>\r\n <button \r\n *ngIf=\"!message.transientState?.liking\"\r\n mat-button \r\n [matTooltip]=\"permissions?.canLike ? upvoting ? 'Please wait...' : 'Like' : permissions?.canLikeErrorMessage\" \r\n matTooltipPosition=\"below\" \r\n (click)=\"message.userState?.liked ? unlike() : like()\" \r\n >\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n <span class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n {{message.likes}}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n",
153
- styles: ["@keyframes comment-appear{0%{transform:translate(6em)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;position:relative;padding:.5em;visibility:hidden}:host.new{visibility:visible;animation-name:comment-appear;animation-duration:.25s;animation-fill-mode:both}:host.highlighted{background:#00223a;outline:2px solid #003277}:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host .message-content .attachments-row{margin-top:15px;display:flex;grid-gap:10px;gap:10px}:host .message-content .attachments-row img{border-radius:10px;width:300px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}:host.abbreviated .message-content .content{text-overflow:ellipsis;overflow-y:hidden}:host .actions{display:flex;padding-right:10px;margin-left:60px;align-items:center}:host .actions button{color:#666;flex-shrink:0}banta-timestamp{color:#666;font-size:10pt;flex-shrink:0;margin-left:1em;text-align:right}.user{position:relative;margin:1em 0 0;display:flex;align-items:center;flex-wrap:wrap}.user .user-1,.user .user-2{display:flex;flex-wrap:nowrap;align-items:center;min-width:0}.user .user-2{margin:1em 0}.user .user-identity{display:flex;flex-direction:column;min-width:0}.user .display-name,.user .username{z-index:1;position:relative;padding:0 0 0 1em;font-size:10pt;color:#000;margin:0 auto 0 0;display:block;width:-moz-fit-content;width:fit-content;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:1;flex-grow:0;min-width:0}.user .display-name.username.username.username,.user .username.username.username.username{color:#666}.avatar{height:48px;width:48px;background-position:center;background-size:cover;background-color:#333;border-radius:100%;flex-shrink:0;flex-grow:0}.counted-action{display:flex;align-items:center}.counted-action.active button,.counted-action.active .count-indicator{color:#00a5ff}.counted-action button .count-indicator{margin-left:.5em}.count-indicator{font-size:9pt;padding:0 0 0 3px;color:#666}:host-context(.mat-dark-theme) .count-indicator{border-color:#333}:host-context(.mat-dark-theme):hover{background:#060606}:host-context(.mat-dark-theme) .user .display-name,:host-context(.mat-dark-theme) .user .username{color:#fff}.user-tag{text-transform:uppercase;font-size:12px;border:1px solid #b27373;background:#7a412b;color:#fff;padding:3px 5px;margin:0 .5em 0 1em;border-radius:3px}.spacer{flex-shrink:1;flex-grow:1}ul.message-facts{margin:0;padding:0;color:#666}ul.message-facts li{list-style-type:none;border-left:1px solid #666;font-size:10pt;padding-left:.5em;margin-left:.5em}ul.message-facts li{margin-top:.5em}ul.message-facts li:first-child{border-left:1px solid transparent;margin-left:0;padding-left:0}@media (max-width: 400px){.avatar{height:32px;width:32px}:host .actions{margin-left:0;margin-top:.5em}:host .message-content .content{margin-left:44px;margin-right:.5em}}:host-context(.banta-mobile) .avatar{height:32px;width:32px}:host-context(.banta-mobile) :host .actions{margin-left:0;margin-top:.5em}:host-context(.banta-mobile) :host .message-content .content{margin-left:44px;margin-right:.5em}.card-attachment a{display:flex;align-items:flex-start;grid-gap:1em;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919}.card-attachment a img{width:300px;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border-radius:10px}.card-attachment a h1{margin:0;font-size:30px}\n"]
154
- },] }
155
- ];
156
- CommentComponent.ctorParameters = () => [
157
- { type: ElementRef }
158
- ];
159
- CommentComponent.propDecorators = {
160
- maxLength: [{ type: Input }],
161
- isNew: [{ type: HostBinding, args: ['class.new',] }],
162
- isHighlighted: [{ type: HostBinding, args: ['class.highlighted',] }],
163
- visible: [{ type: HostBinding, args: ['class.visible',] }],
164
- message: [{ type: Input }],
165
- customMenuItems: [{ type: Input }],
166
- showReplyAction: [{ type: Input }],
167
- loaded: [{ type: Output }],
168
- userSelected: [{ type: Output }],
169
- usernameSelected: [{ type: Output }],
170
- avatarSelected: [{ type: Output }],
171
- reported: [{ type: Output }],
172
- permissions: [{ type: Input }],
173
- mine: [{ type: Input }],
174
- editing: [{ type: Input }],
175
- liked: [{ type: Output }],
176
- unliked: [{ type: Output }],
177
- selected: [{ type: Output }],
178
- edited: [{ type: Output }],
179
- deleted: [{ type: Output }],
180
- editStarted: [{ type: Output }],
181
- editEnded: [{ type: Output }],
182
- shared: [{ type: Output }],
183
- genericAvatarUrl: [{ type: Input }],
184
- commentId: [{ type: HostBinding, args: ['attr.data-comment-id',] }]
185
- };
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tZW50cy9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU90QyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQ1ksVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFRdkMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDN0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFFeEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN0QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXBDLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFvQmxDLFVBQUssR0FBRyxLQUFLLENBQUM7UUFRZCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBc0JoQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUd2QixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBNkJoQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWIsWUFB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dkIsV0FBVyxTQUFDLG1CQUFtQjtzQkFLL0IsV0FBVyxTQUFDLGVBQWU7c0JBSTNCLEtBQUs7OEJBZUwsS0FBSzs4QkFHTCxLQUFLO3FCQUdMLE1BQU07MkJBV1QsTUFBTTsrQkFLSCxNQUFNOzZCQUtULE1BQU07dUJBS0gsTUFBTTswQkFLTixLQUFLO21CQUNMLEtBQUs7c0JBRUwsS0FBSztvQkFvQkwsTUFBTTtzQkFLTixNQUFNO3VCQUtOLE1BQU07cUJBV04sTUFBTTtzQkFDTixNQUFNOzBCQUNOLE1BQU07d0JBQ04sTUFBTTtxQkFDTixNQUFNOytCQUVOLEtBQUs7d0JBRUwsV0FBVyxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0UGVybWlzc2lvbnMsIFVzZXIgfSBmcm9tICdAYmFudGEvY29tbW9uJztcclxuaW1wb3J0IHsgTWVzc2FnZU1lbnVJdGVtIH0gZnJvbSBcIi4uLy4uL21lc3NhZ2UtbWVudS1pdGVtXCI7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFudGEtY29tbWVudCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tZW50LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1lbnRDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVsZW1lbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlcG9ydGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgX3NlbGVjdGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgX2xpa2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgX3VubGlrZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIHByaXZhdGUgX3NoYXJlZCA9IG5ldyBTdWJqZWN0PENoYXRNZXNzYWdlPigpO1xyXG5cclxuXHRwcml2YXRlIF91c2VyU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cdHByaXZhdGUgX2F2YXRhclNlbGVjdGVkID0gbmV3IFN1YmplY3Q8VXNlcj4oKTtcclxuXHRwcml2YXRlIF91c2VybmFtZVNlbGVjdGVkID0gbmV3IFN1YmplY3Q8VXNlcj4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciA9IDE1MDA7XHJcbiAgICBcclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGxldCBtYXhUaW1lID0gMTAwO1xyXG4gICAgICAgIGxldCBtaW5UaW1lID0gMDtcclxuICAgICAgICBsZXQgcmFuZG9tVGltZSA9IG1pblRpbWUgKyBNYXRoLnJhbmRvbSgpICogKG1heFRpbWUgLSBtaW5UaW1lKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaXNOZXcgPSBmYWxzZSwgMTAwMCk7XHJcbiAgICAgICAgfSwgcmFuZG9tVGltZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFya0F0dGFjaG1lbnRzTG9hZGVkKCkge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5ldycpXHJcbiAgICBpc05ldyA9IGZhbHNlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGlnaGxpZ2h0ZWQnKVxyXG4gICAgZ2V0IGlzSGlnaGxpZ2h0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZT8udHJhbnNpZW50U3RhdGU/LmhpZ2hsaWdodGVkID8/IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudmlzaWJsZScpXHJcbiAgICB2aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnZSA6IENoYXRNZXNzYWdlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBtZXNzYWdlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBtZXNzYWdlKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fbWVzc2FnZSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLl9tZXNzYWdlLmF0dGFjaG1lbnRzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkZWQubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY3VzdG9tTWVudUl0ZW1zOiBNZXNzYWdlTWVudUl0ZW1bXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2hvd1JlcGx5QWN0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGxvYWRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBpc0xvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIGFzeW5jIHdhaXRGb3JMb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGVkKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBhd2FpdCB0aGlzLmxvYWRlZC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuXHRAT3V0cHV0KClcclxuICAgIGdldCB1c2VyU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJTZWxlY3RlZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGdldCB1c2VybmFtZVNlbGVjdGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91c2VybmFtZVNlbGVjdGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuXHRAT3V0cHV0KClcclxuXHRnZXQgYXZhdGFyU2VsZWN0ZWQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fYXZhdGFyU2VsZWN0ZWQuYXNPYnNlcnZhYmxlKCk7XHJcblx0fVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHJlcG9ydGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXBvcnRlZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBwZXJtaXNzaW9uczogQ2hhdFBlcm1pc3Npb25zO1xyXG4gICAgQElucHV0KCkgbWluZSA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBASW5wdXQoKSBlZGl0aW5nID0gZmFsc2U7XHJcbiAgICBlZGl0ZWRNZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gICAgc2F2ZUVkaXQoKSB7XHJcbiAgICAgICAgdGhpcy5fZWRpdGVkLm5leHQodGhpcy5lZGl0ZWRNZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmRFZGl0aW5nKCkge1xyXG4gICAgICAgIHRoaXMuX2VkaXRFbmRlZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRFZGl0KCkge1xyXG4gICAgICAgIHRoaXMuX2VkaXRTdGFydGVkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmVkaXRlZE1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UubWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGUoKSB7XHJcbiAgICAgICAgdGhpcy5fZGVsZXRlZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBnZXQgbGlrZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xpa2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHVubGlrZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VubGlrZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBnZXQgc2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2VkaXRTdGFydGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgX2RlbGV0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSBfZWRpdEVuZGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgX2VkaXRlZCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICAgIFxyXG5cclxuICAgIEBPdXRwdXQoKSBnZXQgZWRpdGVkKCkgeyByZXR1cm4gdGhpcy5fZWRpdGVkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgICBAT3V0cHV0KCkgZ2V0IGRlbGV0ZWQoKSB7IHJldHVybiB0aGlzLl9kZWxldGVkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgICBAT3V0cHV0KCkgZ2V0IGVkaXRTdGFydGVkKCkgeyByZXR1cm4gdGhpcy5fZWRpdFN0YXJ0ZWQuYXNPYnNlcnZhYmxlKCk7IH1cclxuICAgIEBPdXRwdXQoKSBnZXQgZWRpdEVuZGVkKCkgeyByZXR1cm4gdGhpcy5fZWRpdEVuZGVkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgICBAT3V0cHV0KCkgZ2V0IHNoYXJlZCgpeyByZXR1cm4gdGhpcy5fc2hhcmVkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcblxyXG4gICAgQElucHV0KCkgZ2VuZXJpY0F2YXRhclVybDogc3RyaW5nO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWNvbW1lbnQtaWQnKSBnZXQgY29tbWVudElkKCkgeyByZXR1cm4gdGhpcy5tZXNzYWdlPy5pZDsgfVxyXG5cclxuICAgIHJlcG9ydCgpIHtcclxuICAgICAgICB0aGlzLl9yZXBvcnRlZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGlrZSgpIHtcclxuICAgICAgICB0aGlzLl9saWtlZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdW5saWtlKCkge1xyXG4gICAgICAgIHRoaXMuX3VubGlrZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNoYXJlKCkge1xyXG4gICAgICAgIHRoaXMuX3NoYXJlZC5uZXh0KHRoaXMubWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcblx0c2VsZWN0VXNlcigpIHtcclxuICAgICAgICB0aGlzLl91c2VyU2VsZWN0ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFVzZXJuYW1lKHVzZXI6IFVzZXIpIHtcclxuICAgICAgICB0aGlzLl91c2VybmFtZVNlbGVjdGVkLm5leHQodXNlcik7XHJcblx0XHR0aGlzLnNlbGVjdFVzZXIoKTtcclxuICAgIH1cclxuXHJcblx0c2VsZWN0QXZhdGFyKHVzZXI6IFVzZXIpIHtcclxuXHRcdHRoaXMuX2F2YXRhclNlbGVjdGVkLm5leHQodXNlcik7XHJcblx0XHR0aGlzLnNlbGVjdFVzZXIoKTtcclxuXHR9XHJcblxyXG4gICAgYXZhdGFyRm9yVXNlcih1c2VyIDogVXNlcikge1xyXG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmdlbmVyaWNBdmF0YXJVcmw7XHJcblxyXG4gICAgICAgIGlmICh1c2VyICYmIHVzZXIuYXZhdGFyVXJsKSB7XHJcbiAgICAgICAgICAgIHVybCA9IHVzZXIuYXZhdGFyVXJsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGB1cmwoJHt1cmx9KWA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJlcGx5Q291bnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZS5zdWJtZXNzYWdlcz8ubGVuZ3RoIHx8IHRoaXMubWVzc2FnZS5zdWJtZXNzYWdlQ291bnQgfHwgMDtcclxuICAgIH1cclxufVxyXG4iXX0=