@banta/sdk 4.6.5 → 4.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/banta-sdk.umd.js +78 -16
- package/bundles/banta-sdk.umd.js.map +1 -1
- package/bundles/banta-sdk.umd.min.js +1 -1
- package/bundles/banta-sdk.umd.min.js.map +1 -1
- package/esm2015/lib/banta-sdk.module.js +3 -2
- package/esm2015/lib/chat-source.js +9 -2
- package/esm2015/lib/comments/banta-comments/banta-comments.component.js +33 -5
- package/esm2015/lib/comments/comment-field/comment-field.component.js +4 -1
- package/esm2015/lib/comments/comment-view/comment-view.component.js +3 -1
- package/fesm2015/banta-sdk.js +46 -6
- package/fesm2015/banta-sdk.js.map +1 -1
- package/lib/comments/banta-comments/banta-comments.component.d.ts +2 -0
- package/package.json +1 -1
package/bundles/banta-sdk.umd.js
CHANGED
|
@@ -8999,6 +8999,8 @@
|
|
|
8999
8999
|
return [4 /*yield*/, this.source.loadAfter(lastMessage, nextPageSize)];
|
|
9000
9000
|
case 1:
|
|
9001
9001
|
messages = _c.sent();
|
|
9002
|
+
if (this.newestLast)
|
|
9003
|
+
messages = messages.slice().reverse();
|
|
9002
9004
|
messages.forEach(function (m) { var _a; return (_a = m.transientState) !== null && _a !== void 0 ? _a : (m.transientState = {}); });
|
|
9003
9005
|
if (this.newestLast)
|
|
9004
9006
|
this.messages = messages.concat(this.messages);
|
|
@@ -9504,6 +9506,21 @@
|
|
|
9504
9506
|
enumerable: false,
|
|
9505
9507
|
configurable: true
|
|
9506
9508
|
});
|
|
9509
|
+
BantaCommentsComponent.prototype.waitForThreadView = function () {
|
|
9510
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
9511
|
+
return __generator(this, function (_e) {
|
|
9512
|
+
switch (_e.label) {
|
|
9513
|
+
case 0:
|
|
9514
|
+
if (this.threadView)
|
|
9515
|
+
return [2 /*return*/, this.threadView];
|
|
9516
|
+
return [4 /*yield*/, this.threadViewQuery.changes.pipe(operators.take(1)).toPromise()];
|
|
9517
|
+
case 1:
|
|
9518
|
+
_e.sent();
|
|
9519
|
+
return [2 /*return*/, this.threadView];
|
|
9520
|
+
}
|
|
9521
|
+
});
|
|
9522
|
+
});
|
|
9523
|
+
};
|
|
9507
9524
|
BantaCommentsComponent.prototype.updateLoading = function () {
|
|
9508
9525
|
var _this = this;
|
|
9509
9526
|
var _a, _b;
|
|
@@ -9713,7 +9730,7 @@
|
|
|
9713
9730
|
return [2 /*return*/];
|
|
9714
9731
|
case 8:
|
|
9715
9732
|
(_a = message.transientState) !== null && _a !== void 0 ? _a : (message.transientState = {});
|
|
9716
|
-
if (!message.parentMessageId) return [3 /*break*/,
|
|
9733
|
+
if (!message.parentMessageId) return [3 /*break*/, 17];
|
|
9717
9734
|
return [4 /*yield*/, this.source.get(message.parentMessageId)];
|
|
9718
9735
|
case 9:
|
|
9719
9736
|
parentMessage = _e.sent();
|
|
@@ -9733,29 +9750,37 @@
|
|
|
9733
9750
|
// Need to re-retrieve the message within the new chat source to affect its
|
|
9734
9751
|
// transient state.
|
|
9735
9752
|
_e.sent();
|
|
9736
|
-
|
|
9753
|
+
// Make sure that this message is loaded and visible to the user
|
|
9754
|
+
return [4 /*yield*/, this.waitForThreadView()];
|
|
9737
9755
|
case 13:
|
|
9756
|
+
// Make sure that this message is loaded and visible to the user
|
|
9757
|
+
_e.sent();
|
|
9758
|
+
return [4 /*yield*/, this.threadView.loadMessageInContext(message)];
|
|
9759
|
+
case 14:
|
|
9760
|
+
_e.sent();
|
|
9761
|
+
return [4 /*yield*/, thread.get(message.id)];
|
|
9762
|
+
case 15:
|
|
9738
9763
|
message = _e.sent();
|
|
9739
9764
|
(_c = message.transientState) !== null && _c !== void 0 ? _c : (message.transientState = {});
|
|
9740
9765
|
message.transientState.highlighted = true;
|
|
9741
9766
|
console.dir(message);
|
|
9742
9767
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 500); })];
|
|
9743
|
-
case
|
|
9768
|
+
case 16:
|
|
9744
9769
|
_e.sent();
|
|
9745
|
-
return [3 /*break*/,
|
|
9746
|
-
case
|
|
9770
|
+
return [3 /*break*/, 19];
|
|
9771
|
+
case 17:
|
|
9747
9772
|
// Make sure that this message is loaded and visible to the user
|
|
9748
9773
|
return [4 /*yield*/, this.commentView.loadMessageInContext(message)];
|
|
9749
|
-
case
|
|
9774
|
+
case 18:
|
|
9750
9775
|
// Make sure that this message is loaded and visible to the user
|
|
9751
9776
|
_e.sent();
|
|
9752
9777
|
(_d = message.transientState) !== null && _d !== void 0 ? _d : (message.transientState = {});
|
|
9753
9778
|
message.transientState.highlighted = true;
|
|
9754
|
-
_e.label =
|
|
9755
|
-
case
|
|
9779
|
+
_e.label = 19;
|
|
9780
|
+
case 19:
|
|
9756
9781
|
this.loadingSharedComment = false;
|
|
9757
9782
|
return [4 /*yield*/, this.scrollToComment(id)];
|
|
9758
|
-
case
|
|
9783
|
+
case 20:
|
|
9759
9784
|
_e.sent();
|
|
9760
9785
|
return [2 /*return*/];
|
|
9761
9786
|
}
|
|
@@ -9889,6 +9914,25 @@
|
|
|
9889
9914
|
});
|
|
9890
9915
|
});
|
|
9891
9916
|
};
|
|
9917
|
+
BantaCommentsComponent.prototype.toggleSelectedMessage = function (message) {
|
|
9918
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
9919
|
+
return __generator(this, function (_e) {
|
|
9920
|
+
switch (_e.label) {
|
|
9921
|
+
case 0:
|
|
9922
|
+
if (!(this.selectedMessage === message)) return [3 /*break*/, 2];
|
|
9923
|
+
return [4 /*yield*/, this.unselectMessage()];
|
|
9924
|
+
case 1:
|
|
9925
|
+
_e.sent();
|
|
9926
|
+
return [3 /*break*/, 4];
|
|
9927
|
+
case 2: return [4 /*yield*/, this.selectMessage(message)];
|
|
9928
|
+
case 3:
|
|
9929
|
+
_e.sent();
|
|
9930
|
+
_e.label = 4;
|
|
9931
|
+
case 4: return [2 /*return*/];
|
|
9932
|
+
}
|
|
9933
|
+
});
|
|
9934
|
+
});
|
|
9935
|
+
};
|
|
9892
9936
|
BantaCommentsComponent.prototype.selectMessage = function (message) {
|
|
9893
9937
|
return __awaiter(this, void 0, void 0, function () {
|
|
9894
9938
|
var selectedMessageThread;
|
|
@@ -9897,17 +9941,23 @@
|
|
|
9897
9941
|
switch (_e.label) {
|
|
9898
9942
|
case 0:
|
|
9899
9943
|
if (this.selectedMessage === message) {
|
|
9900
|
-
this.
|
|
9901
|
-
return [2 /*return
|
|
9944
|
+
console.log("[Banta] Thread " + this.topicID + "/" + message.id + " is already open.");
|
|
9945
|
+
return [2 /*return*/, this.selectedMessageThread];
|
|
9902
9946
|
}
|
|
9903
9947
|
this._selected.next(message);
|
|
9904
|
-
this.
|
|
9948
|
+
console.log("[Banta] Opening thread for " + this.topicID + "/" + message.id + "...");
|
|
9905
9949
|
return [4 /*yield*/, this.backend.getSourceForThread(this.topicID, message.id)];
|
|
9906
9950
|
case 1:
|
|
9907
9951
|
selectedMessageThread = _e.sent();
|
|
9952
|
+
if (!selectedMessageThread) {
|
|
9953
|
+
console.warn("Failed to locate thread for message " + this.topicID + "/" + message.id + "!");
|
|
9954
|
+
return [2 /*return*/, null];
|
|
9955
|
+
}
|
|
9956
|
+
console.log("[Banta] Thread opened for " + this.topicID + "/" + message.id + ".");
|
|
9908
9957
|
setTimeout(function () { return _this.selectedMessageVisible = true; });
|
|
9909
9958
|
setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
9910
9959
|
return __generator(this, function (_e) {
|
|
9960
|
+
this.selectedMessage = message;
|
|
9911
9961
|
this.selectedMessageThread = selectedMessageThread;
|
|
9912
9962
|
return [2 /*return*/];
|
|
9913
9963
|
});
|
|
@@ -10068,7 +10118,7 @@
|
|
|
10068
10118
|
BantaCommentsComponent.decorators = [
|
|
10069
10119
|
{ type: core.Component, args: [{
|
|
10070
10120
|
selector: 'banta-comments',
|
|
10071
|
-
template: "<ng-container *ngIf=\"loading\">\r\n <div class=\"loading-screen\" [class.visible]=\"showLoadingScreen\">\r\n <h1>Loading...</h1>\r\n <div>\r\n <mat-spinner [diameter]=\"300\" [strokeWidth]=\"2\"></mat-spinner>\r\n </div>\r\n\r\n <p class=\"loading-message\" [class.visible]=\"loadingMessageVisible\">{{loadingMessage}}</p>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"!loading\">\r\n <div class=\"focused\" [class.visible]=\"selectedMessageVisible\" *ngIf=\"selectedMessage && !useInlineReplies\">\r\n\r\n <div>\r\n <a mat-button href=\"javascript:;\" (click)=\"unselectMessage()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n Latest Comments\r\n </a>\r\n </div>\r\n\r\n <banta-comment\r\n [message]=\"selectedMessage\"\r\n [liking]=\"selectedMessage.transientState.liking\"\r\n [mine]=\"user?.id === selectedMessage.user?.id\"\r\n [permissions]=\"source?.permissions\"\r\n [showReplyAction]=\"false\"\r\n [editing]=\"selectedMessage.transientState.editing\"\r\n [maxLength]=\"maxCommentLength\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (editStarted)=\"startEditing(selectedMessage)\"\r\n (editEnded)=\"selectedMessage.transientState.editing = false\"\r\n (edited)=\"saveEdit(selectedMessage, $event)\"\r\n (userSelected)=\"selectMessageUser(selectedMessage)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (liked)=\"likeMessage(source, selectedMessage)\"\r\n (unliked)=\"unlikeMessage(source, selectedMessage)\"\r\n (reported)=\"reportMessage(selectedMessage)\"\r\n (selected)=\"selectMessage(selectedMessage)\"\r\n (shared)=\"shareMessage($event)\"\r\n (deleted)=\"deleteMessage(selectedMessage)\"\r\n ></banta-comment>\r\n\r\n <div class=\"replies\">\r\n\r\n <ng-container *ngIf=\"!selectedMessageThread\">\r\n <div class=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedMessageThread\">\r\n <banta-comment-view\r\n class=\"replies\"\r\n #threadView\r\n [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (liked)=\"likeMessage(selectedMessageThread, $event)\"\r\n (unliked)=\"unlikeMessage(selectedMessageThread, $event)\"\r\n (messageEdited)=\"editMessage(selectedMessageThread, $event.message, $event.newMessage)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (shared)=\"shareMessage($event)\"\r\n (deleted)=\"deleteMessage($event)\"\r\n [customMenuItems]=\"customMenuItems\"\r\n ></banta-comment-view>\r\n\r\n <banta-comment-field\r\n [sendLabel]=\"replyLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n (signInSelected)=\"showSignIn()\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n [source]=\"selectedMessageThread\"\r\n [maxLength]=\"maxCommentLength\"\r\n [canComment]=\"source?.permissions?.canPost\"\r\n [signInLabel]=\"signInLabel\"\r\n [permissionDeniedLabel]=\"source?.permissions?.canPostErrorMessage || permissionDeniedLabel\"\r\n (permissionDeniedError)=\"handlePermissionDenied($event)\"\r\n [shouldInterceptMessageSend]=\"shouldInterceptMessageSend\"\r\n [user]=\"user\"\r\n [label]=\"postReplyLabel\"\r\n [submit]=\"sendReply\"\r\n [allowAttachments]=\"allowAttachments\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"sendReplyOptionsTemplate\"></ng-container>\r\n </banta-comment-field>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main\" [class.hidden]=\"selectedMessage && !useInlineReplies\">\r\n <banta-comment-field\r\n [source]=\"source\"\r\n [user]=\"user\"\r\n [sendLabel]=\"sendLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [signInLabel]=\"signInLabel\"\r\n [canComment]=\"source?.permissions?.canPost\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n [label]=\"postCommentLabel\"\r\n [maxLength]=\"maxCommentLength\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n (signInSelected)=\"showSignIn()\"\r\n [permissionDeniedLabel]=\"source?.permissions?.canPostErrorMessage || permissionDeniedLabel\"\r\n (permissionDeniedError)=\"handlePermissionDenied($event)\"\r\n [shouldInterceptMessageSend]=\"shouldInterceptMessageSend\"\r\n [submit]=\"sendMessage\"\r\n [allowAttachments]=\"allowAttachments\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n >\r\n \r\n </banta-comment-field>\r\n\r\n <banta-comment-sort\r\n [(sort)]=\"sortOrder\"></banta-comment-sort>\r\n\r\n <div class=\"loading-comment\" *ngIf=\"loadingSharedComment\">\r\n <h1>Loading the comment you linked to...</h1>\r\n <mat-spinner [diameter]=\"300\" [strokeWidth]=\"2\"></mat-spinner>\r\n <p>\r\n If there are a lot of comments, this might take awhile!\r\n </p>\r\n </div>\r\n <div class=\"loading-comment\" *ngIf=\"!loadingSharedComment && lastSharedCommentID\">\r\n <ng-container *ngIf=\"sharedCommentMissing\">\r\n\r\n <a class=\"close\" mat-icon-button matTooltip=\"Close this notice\" href=\"javascript:;\" (click)=\"lastSharedCommentID = null\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n\r\n <h1>\r\n <mat-icon>error</mat-icon>\r\n Uh oh!\r\n </h1>\r\n\r\n <p>The comment you linked to can't be found! It may have been removed.</p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!sharedCommentMissing\">\r\n <a class=\"close\" mat-icon-button matTooltip=\"Close this notice\" href=\"javascript:;\" (click)=\"lastSharedCommentID = null\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n <button mat-button (click)=\"navigateToSharedComment(lastSharedCommentID)\">\r\n <mat-icon>move_down</mat-icon> Jump to shared comment\r\n </button>\r\n </ng-container>\r\n </div>\r\n\r\n <banta-comment-view\r\n #commentView\r\n [class.faded]=\"selectedMessage && !useInlineReplies\"\r\n [source]=\"source\"\r\n [fixedHeight]=\"fixedHeight\"\r\n [maxMessages]=\"maxMessages\"\r\n [maxVisibleMessages]=\"maxVisibleMessages\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n [customMenuItems]=\"customMenuItems\"\r\n (userSelected)=\"selectMessageUser($event)\"\r\n (sortOrderChanged)=\"sortOrder = $event\"\r\n (selected)=\"selectMessage($event)\"\r\n (liked)=\"likeMessage(source, $event)\"\r\n (unliked)=\"unlikeMessage(source, $event)\"\r\n (messageEdited)=\"editMessage(source, $event.message, $event.newMessage)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (shared)=\"shareMessage($event)\"\r\n [selectedMessage]=\"selectedMessage\"\r\n (deleted)=\"deleteMessage($event)\"\r\n >\r\n <div class=\"inline-replies\">\r\n <div class=\"focused\" [class.visible]=\"selectedMessageVisible\" *ngIf=\"selectedMessage\">\r\n <div class=\"replies\">\r\n \r\n <ng-container *ngIf=\"!selectedMessageThread\">\r\n <div class=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"selectedMessageThread\">\r\n <banta-comment-view\r\n [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (liked)=\"likeMessage(selectedMessageThread, $event)\"\r\n (unliked)=\"unlikeMessage(selectedMessageThread, $event)\"\r\n (messageEdited)=\"editMessage(selectedMessageThread, $event.message, $event.newMessage)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (shared)=\"shareMessage($event)\"\r\n (deleted)=\"deleteMessage($event)\"\r\n ></banta-comment-view>\r\n \r\n <banta-comment-field\r\n [sendLabel]=\"replyLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n (signInSelected)=\"showSignIn()\"\r\n [maxLength]=\"maxCommentLength\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n [source]=\"selectedMessageThread\"\r\n [canComment]=\"source?.permissions?.canPost\"\r\n [signInLabel]=\"signInLabel\"\r\n [permissionDeniedLabel]=\"source?.permissions?.canPostErrorMessage || permissionDeniedLabel\"\r\n (permissionDeniedError)=\"handlePermissionDenied($event)\"\r\n [shouldInterceptMessageSend]=\"shouldInterceptMessageSend\"\r\n [user]=\"user\"\r\n [label]=\"postReplyLabel\"\r\n [submit]=\"sendReply\"\r\n [allowAttachments]=\"allowAttachments\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"sendReplyOptionsTemplate\"></ng-container>\r\n </banta-comment-field>\r\n </ng-container>\r\n </div>\r\n </div> \r\n </div>\r\n </banta-comment-view>\r\n </div>\r\n</ng-container>\r\n",
|
|
10121
|
+
template: "<ng-container *ngIf=\"loading\">\r\n <div class=\"loading-screen\" [class.visible]=\"showLoadingScreen\">\r\n <h1>Loading...</h1>\r\n <div>\r\n <mat-spinner [diameter]=\"300\" [strokeWidth]=\"2\"></mat-spinner>\r\n </div>\r\n\r\n <p class=\"loading-message\" [class.visible]=\"loadingMessageVisible\">{{loadingMessage}}</p>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"!loading\">\r\n <div class=\"focused\" [class.visible]=\"selectedMessageVisible\" *ngIf=\"selectedMessage && !useInlineReplies\">\r\n\r\n <div>\r\n <a mat-button href=\"javascript:;\" (click)=\"unselectMessage()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n Latest Comments\r\n </a>\r\n </div>\r\n\r\n <banta-comment\r\n [message]=\"selectedMessage\"\r\n [liking]=\"selectedMessage.transientState.liking\"\r\n [mine]=\"user?.id === selectedMessage.user?.id\"\r\n [permissions]=\"source?.permissions\"\r\n [showReplyAction]=\"false\"\r\n [editing]=\"selectedMessage.transientState.editing\"\r\n [maxLength]=\"maxCommentLength\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (editStarted)=\"startEditing(selectedMessage)\"\r\n (editEnded)=\"selectedMessage.transientState.editing = false\"\r\n (edited)=\"saveEdit(selectedMessage, $event)\"\r\n (userSelected)=\"selectMessageUser(selectedMessage)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (liked)=\"likeMessage(source, selectedMessage)\"\r\n (unliked)=\"unlikeMessage(source, selectedMessage)\"\r\n (reported)=\"reportMessage(selectedMessage)\"\r\n (selected)=\"toggleSelectedMessage(selectedMessage)\"\r\n (shared)=\"shareMessage($event)\"\r\n (deleted)=\"deleteMessage(selectedMessage)\"\r\n ></banta-comment>\r\n\r\n <div class=\"replies\">\r\n\r\n <ng-container *ngIf=\"!selectedMessageThread\">\r\n <div class=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedMessageThread\">\r\n <banta-comment-view\r\n class=\"replies\"\r\n #threadView\r\n [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (liked)=\"likeMessage(selectedMessageThread, $event)\"\r\n (unliked)=\"unlikeMessage(selectedMessageThread, $event)\"\r\n (messageEdited)=\"editMessage(selectedMessageThread, $event.message, $event.newMessage)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (shared)=\"shareMessage($event)\"\r\n (deleted)=\"deleteMessage($event)\"\r\n [customMenuItems]=\"customMenuItems\"\r\n ></banta-comment-view>\r\n\r\n <banta-comment-field\r\n [sendLabel]=\"replyLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n (signInSelected)=\"showSignIn()\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n [source]=\"selectedMessageThread\"\r\n [maxLength]=\"maxCommentLength\"\r\n [canComment]=\"source?.permissions?.canPost\"\r\n [signInLabel]=\"signInLabel\"\r\n [permissionDeniedLabel]=\"source?.permissions?.canPostErrorMessage || permissionDeniedLabel\"\r\n (permissionDeniedError)=\"handlePermissionDenied($event)\"\r\n [shouldInterceptMessageSend]=\"shouldInterceptMessageSend\"\r\n [user]=\"user\"\r\n [label]=\"postReplyLabel\"\r\n [submit]=\"sendReply\"\r\n [allowAttachments]=\"allowAttachments\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"sendReplyOptionsTemplate\"></ng-container>\r\n </banta-comment-field>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main\" [class.hidden]=\"selectedMessage && !useInlineReplies\">\r\n <banta-comment-field\r\n [source]=\"source\"\r\n [user]=\"user\"\r\n [sendLabel]=\"sendLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [signInLabel]=\"signInLabel\"\r\n [canComment]=\"source?.permissions?.canPost\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n [label]=\"postCommentLabel\"\r\n [maxLength]=\"maxCommentLength\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n (signInSelected)=\"showSignIn()\"\r\n [permissionDeniedLabel]=\"source?.permissions?.canPostErrorMessage || permissionDeniedLabel\"\r\n (permissionDeniedError)=\"handlePermissionDenied($event)\"\r\n [shouldInterceptMessageSend]=\"shouldInterceptMessageSend\"\r\n [submit]=\"sendMessage\"\r\n [allowAttachments]=\"allowAttachments\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n >\r\n \r\n </banta-comment-field>\r\n\r\n <banta-comment-sort\r\n [(sort)]=\"sortOrder\"></banta-comment-sort>\r\n\r\n <div class=\"loading-comment\" *ngIf=\"loadingSharedComment\">\r\n <h1>Loading the comment you linked to...</h1>\r\n <mat-spinner [diameter]=\"300\" [strokeWidth]=\"2\"></mat-spinner>\r\n <p>\r\n If there are a lot of comments, this might take awhile!\r\n </p>\r\n </div>\r\n <div class=\"loading-comment\" *ngIf=\"!loadingSharedComment && lastSharedCommentID\">\r\n <ng-container *ngIf=\"sharedCommentMissing\">\r\n\r\n <a class=\"close\" mat-icon-button matTooltip=\"Close this notice\" href=\"javascript:;\" (click)=\"lastSharedCommentID = null\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n\r\n <h1>\r\n <mat-icon>error</mat-icon>\r\n Uh oh!\r\n </h1>\r\n\r\n <p>The comment you linked to can't be found! It may have been removed.</p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!sharedCommentMissing\">\r\n <a class=\"close\" mat-icon-button matTooltip=\"Close this notice\" href=\"javascript:;\" (click)=\"lastSharedCommentID = null\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n <button mat-button (click)=\"navigateToSharedComment(lastSharedCommentID)\">\r\n <mat-icon>move_down</mat-icon> Jump to shared comment\r\n </button>\r\n </ng-container>\r\n </div>\r\n\r\n <banta-comment-view\r\n #commentView\r\n [class.faded]=\"selectedMessage && !useInlineReplies\"\r\n [source]=\"source\"\r\n [fixedHeight]=\"fixedHeight\"\r\n [maxMessages]=\"maxMessages\"\r\n [maxVisibleMessages]=\"maxVisibleMessages\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n [customMenuItems]=\"customMenuItems\"\r\n (userSelected)=\"selectMessageUser($event)\"\r\n (sortOrderChanged)=\"sortOrder = $event\"\r\n (selected)=\"toggleSelectedMessage($event)\"\r\n (liked)=\"likeMessage(source, $event)\"\r\n (unliked)=\"unlikeMessage(source, $event)\"\r\n (messageEdited)=\"editMessage(source, $event.message, $event.newMessage)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (shared)=\"shareMessage($event)\"\r\n [selectedMessage]=\"selectedMessage\"\r\n (deleted)=\"deleteMessage($event)\"\r\n >\r\n <div class=\"inline-replies\">\r\n <div class=\"focused\" [class.visible]=\"selectedMessageVisible\" *ngIf=\"selectedMessage\">\r\n <div class=\"replies\">\r\n \r\n <ng-container *ngIf=\"!selectedMessageThread\">\r\n <div class=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"selectedMessageThread\">\r\n <banta-comment-view\r\n [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (liked)=\"likeMessage(selectedMessageThread, $event)\"\r\n (unliked)=\"unlikeMessage(selectedMessageThread, $event)\"\r\n (messageEdited)=\"editMessage(selectedMessageThread, $event.message, $event.newMessage)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (shared)=\"shareMessage($event)\"\r\n (deleted)=\"deleteMessage($event)\"\r\n ></banta-comment-view>\r\n \r\n <banta-comment-field\r\n [sendLabel]=\"replyLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n (signInSelected)=\"showSignIn()\"\r\n [maxLength]=\"maxCommentLength\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n [source]=\"selectedMessageThread\"\r\n [canComment]=\"source?.permissions?.canPost\"\r\n [signInLabel]=\"signInLabel\"\r\n [permissionDeniedLabel]=\"source?.permissions?.canPostErrorMessage || permissionDeniedLabel\"\r\n (permissionDeniedError)=\"handlePermissionDenied($event)\"\r\n [shouldInterceptMessageSend]=\"shouldInterceptMessageSend\"\r\n [user]=\"user\"\r\n [label]=\"postReplyLabel\"\r\n [submit]=\"sendReply\"\r\n [allowAttachments]=\"allowAttachments\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"sendReplyOptionsTemplate\"></ng-container>\r\n </banta-comment-field>\r\n </ng-container>\r\n </div>\r\n </div> \r\n </div>\r\n </banta-comment-view>\r\n </div>\r\n</ng-container>\r\n",
|
|
10072
10122
|
styles: [":host{display:flex;flex-direction:column}@-webkit-keyframes select-comment{0%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes select-comment{0%{transform:scale(1.15)}to{transform:scale(1)}}.focused{-webkit-animation-name:select-comment;animation-name:select-comment;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.focused .replies{margin-top:1em;margin-left:2em;border-left:2px solid #333;padding-left:2em}banta-comment-view{opacity:1;transition:opacity .4s ease-in-out}banta-comment-view.faded{opacity:.25}.loading{display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 auto;min-height:16em}.main.hidden{display:none}.loading-screen{text-align:center;opacity:0;transition:opacity .25s ease-in-out}.loading-screen.visible{opacity:1}.loading-screen h1{font-weight:100}.loading-screen mat-spinner{margin:5em auto}.loading-screen .loading-message{opacity:0;transition:opacity .25s ease-in-out;width:500px;max-width:100%;margin:0 auto}.loading-screen .loading-message.visible{opacity:1}banta-comment-sort{margin:0 0 0 auto;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;display:block}.inline-replies{margin-left:4em}@media (max-width:500px){.focused .replies{margin-left:0}.inline-replies{margin-left:1em}.focused .replies{padding-left:.5em}banta-comment-sort{margin:0;width:100%}}:host-context(.banta-mobile) .focused .replies{margin-left:0}:host-context(.banta-mobile) .inline-replies{margin-left:1em}:host-context(.banta-mobile) .focused .replies{padding-left:.5em}:host-context(.banta-mobile) banta-comment-sort{margin:0;width:100%}.loading-comment{z-index:100;border:1px solid #333;background:#000;color:#fff;padding:1em;border-radius:4px;text-align:center;position:relative}.loading-comment a.close{position:absolute;top:1em;right:1em}.loading-comment h1{font-weight:100;text-align:center}.loading-comment mat-spinner{margin:0 auto}"]
|
|
10073
10123
|
},] }
|
|
10074
10124
|
];
|
|
@@ -10656,6 +10706,7 @@
|
|
|
10656
10706
|
CommentFieldComponent.prototype.sendMessage = function () {
|
|
10657
10707
|
return __awaiter(this, void 0, void 0, function () {
|
|
10658
10708
|
var text, message, e_8;
|
|
10709
|
+
var _this = this;
|
|
10659
10710
|
return __generator(this, function (_b) {
|
|
10660
10711
|
switch (_b.label) {
|
|
10661
10712
|
case 0:
|
|
@@ -10696,6 +10747,9 @@
|
|
|
10696
10747
|
case 6: return [3 /*break*/, 8];
|
|
10697
10748
|
case 7:
|
|
10698
10749
|
this.sending = false;
|
|
10750
|
+
setTimeout(function () {
|
|
10751
|
+
_this.textareaEl.nativeElement.focus();
|
|
10752
|
+
}, 100);
|
|
10699
10753
|
return [7 /*endfinally*/];
|
|
10700
10754
|
case 8: return [2 /*return*/];
|
|
10701
10755
|
}
|
|
@@ -11182,7 +11236,7 @@
|
|
|
11182
11236
|
};
|
|
11183
11237
|
ChatSource.prototype.get = function (id) {
|
|
11184
11238
|
return __awaiter(this, void 0, void 0, function () {
|
|
11185
|
-
var message;
|
|
11239
|
+
var message, existingMessage;
|
|
11186
11240
|
return __generator(this, function (_b) {
|
|
11187
11241
|
switch (_b.label) {
|
|
11188
11242
|
case 0:
|
|
@@ -11194,7 +11248,14 @@
|
|
|
11194
11248
|
return [4 /*yield*/, this.peer.getMessage(id)];
|
|
11195
11249
|
case 2:
|
|
11196
11250
|
message = _b.sent();
|
|
11197
|
-
this.messageMap.
|
|
11251
|
+
if (this.messageMap.has(id)) {
|
|
11252
|
+
existingMessage = this.messageMap.get(id);
|
|
11253
|
+
Object.assign(existingMessage, message);
|
|
11254
|
+
message = existingMessage;
|
|
11255
|
+
}
|
|
11256
|
+
else {
|
|
11257
|
+
this.messageMap.set(id, message);
|
|
11258
|
+
}
|
|
11198
11259
|
return [2 /*return*/, message];
|
|
11199
11260
|
}
|
|
11200
11261
|
});
|
|
@@ -11596,7 +11657,8 @@
|
|
|
11596
11657
|
BantaLogoComponent,
|
|
11597
11658
|
LiveMessageComponent,
|
|
11598
11659
|
ChatModule,
|
|
11599
|
-
CommentsModule
|
|
11660
|
+
CommentsModule,
|
|
11661
|
+
EmojiModule
|
|
11600
11662
|
]
|
|
11601
11663
|
},] }
|
|
11602
11664
|
];
|