@banta/sdk 4.6.2 → 4.6.3
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 +107 -20
- 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/comments/banta-comments/banta-comments.component.js +21 -4
- package/esm2015/lib/comments/comment-view/comment-view.component.js +47 -1
- package/fesm2015/banta-sdk.js +66 -3
- package/fesm2015/banta-sdk.js.map +1 -1
- package/lib/comments/banta-comments/banta-comments.component.d.ts +5 -0
- package/lib/comments/comment-view/comment-view.component.d.ts +8 -0
- package/package.json +1 -1
package/bundles/banta-sdk.umd.js
CHANGED
|
@@ -8620,6 +8620,7 @@
|
|
|
8620
8620
|
|
|
8621
8621
|
var CommentViewComponent = /** @class */ (function () {
|
|
8622
8622
|
function CommentViewComponent(backend) {
|
|
8623
|
+
var _this = this;
|
|
8623
8624
|
this.backend = backend;
|
|
8624
8625
|
this._sourceSubs = new rxjs.Subscription();
|
|
8625
8626
|
this._selected = new rxjs.Subject();
|
|
@@ -8638,6 +8639,7 @@
|
|
|
8638
8639
|
this.menuMessage = null;
|
|
8639
8640
|
this.messages = [];
|
|
8640
8641
|
this.customSortEnabled = false;
|
|
8642
|
+
this.sourceLoaded = new Promise(function (r) { return _this.markSourceLoaded = r; });
|
|
8641
8643
|
this.maxMessages = 2000;
|
|
8642
8644
|
this.maxVisibleMessages = 200;
|
|
8643
8645
|
this.newestLast = false;
|
|
@@ -8655,6 +8657,61 @@
|
|
|
8655
8657
|
enumerable: false,
|
|
8656
8658
|
configurable: true
|
|
8657
8659
|
});
|
|
8660
|
+
/**
|
|
8661
|
+
* Returns true if this message can be found within one of the message buffers (older, current, newer)
|
|
8662
|
+
* @param message
|
|
8663
|
+
*/
|
|
8664
|
+
CommentViewComponent.prototype.isMessageLoadedInContext = function (message) {
|
|
8665
|
+
return this.olderMessages.find(function (x) { return x.id === message.id; })
|
|
8666
|
+
|| this.messages.find(function (x) { return x.id === message.id; })
|
|
8667
|
+
|| this.newMessages.find(function (x) { return x.id === message.id; });
|
|
8668
|
+
};
|
|
8669
|
+
CommentViewComponent.prototype.loadMessageInContext = function (message) {
|
|
8670
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
8671
|
+
var pageSize, items, index, startIndex;
|
|
8672
|
+
return __generator(this, function (_c) {
|
|
8673
|
+
switch (_c.label) {
|
|
8674
|
+
case 0: return [4 /*yield*/, this.sourceLoaded];
|
|
8675
|
+
case 1:
|
|
8676
|
+
_c.sent();
|
|
8677
|
+
console.log("Loading message " + message.id + " in context...");
|
|
8678
|
+
_c.label = 2;
|
|
8679
|
+
case 2:
|
|
8680
|
+
if (!(this.hasMore && !this.isMessageLoadedInContext(message))) return [3 /*break*/, 4];
|
|
8681
|
+
console.log("...Need to load more comments to find " + message.id);
|
|
8682
|
+
return [4 /*yield*/, this.showMore()];
|
|
8683
|
+
case 3:
|
|
8684
|
+
_c.sent();
|
|
8685
|
+
return [3 /*break*/, 2];
|
|
8686
|
+
case 4:
|
|
8687
|
+
console.log("Finished loading comments, hasMore=" + this.hasMore);
|
|
8688
|
+
if (!this.isMessageLoadedInContext(message)) {
|
|
8689
|
+
console.error("Error while loading message in context: Failed to find message " + message.id + ", maybe it was deleted!");
|
|
8690
|
+
return [2 /*return*/, false];
|
|
8691
|
+
}
|
|
8692
|
+
pageSize = this.maxVisibleMessages;
|
|
8693
|
+
items = [].concat(this.olderMessages, this.messages, this.newMessages);
|
|
8694
|
+
index = items.findIndex(function (x) { return x.id === message.id; });
|
|
8695
|
+
if (index < 0) {
|
|
8696
|
+
console.error("Error while loading message in context: Message was not present in message list!");
|
|
8697
|
+
return [2 /*return*/, false];
|
|
8698
|
+
}
|
|
8699
|
+
console.log("Total messages: " + items.length);
|
|
8700
|
+
console.log("Page size: " + pageSize);
|
|
8701
|
+
console.log("Message index: " + index);
|
|
8702
|
+
startIndex = Math.max(0, index - pageSize / 2);
|
|
8703
|
+
console.log("Start index: " + index);
|
|
8704
|
+
this.newMessages = items.splice(0, startIndex);
|
|
8705
|
+
this.messages = items.splice(0, pageSize);
|
|
8706
|
+
this.olderMessages = items;
|
|
8707
|
+
console.log(this.olderMessages.length + " older messages");
|
|
8708
|
+
console.log(this.messages.length + " current messages");
|
|
8709
|
+
console.log(this.newMessages.length + " newer messages");
|
|
8710
|
+
return [2 /*return*/];
|
|
8711
|
+
}
|
|
8712
|
+
});
|
|
8713
|
+
});
|
|
8714
|
+
};
|
|
8658
8715
|
/**
|
|
8659
8716
|
* Get the CommentComponent instantiated for the given ChatMessage,
|
|
8660
8717
|
* if it exists in the current view. Note that messages which are not
|
|
@@ -8796,6 +8853,8 @@
|
|
|
8796
8853
|
messages.forEach(function (m) { var _a; return (_a = m.transientState) !== null && _a !== void 0 ? _a : (m.transientState = {}); });
|
|
8797
8854
|
this.messages = this.newestLast ? messages.slice().reverse() : messages;
|
|
8798
8855
|
this.sortMessages();
|
|
8856
|
+
if (this.markSourceLoaded)
|
|
8857
|
+
this.markSourceLoaded();
|
|
8799
8858
|
return [2 /*return*/];
|
|
8800
8859
|
}
|
|
8801
8860
|
});
|
|
@@ -8821,6 +8880,7 @@
|
|
|
8821
8880
|
overflow = this.messages.splice(this.maxVisibleMessages, this.messages.length);
|
|
8822
8881
|
this.olderMessages = overflow.concat(this.olderMessages);
|
|
8823
8882
|
this.olderMessages.splice(this.maxMessages - this.maxVisibleMessages, this.olderMessages.length);
|
|
8883
|
+
this.hasMore = this.olderMessages.length > 0;
|
|
8824
8884
|
return [2 /*return*/];
|
|
8825
8885
|
});
|
|
8826
8886
|
});
|
|
@@ -9040,6 +9100,7 @@
|
|
|
9040
9100
|
this.activatedRoute = activatedRoute;
|
|
9041
9101
|
this.matSnackBar = matSnackBar;
|
|
9042
9102
|
this.ngZone = ngZone;
|
|
9103
|
+
this.viewReady = new Promise(function (r) { return _this.markViewReady = r; });
|
|
9043
9104
|
// Loading Screen
|
|
9044
9105
|
this._loadingMessage = '';
|
|
9045
9106
|
this.loadingMessageVisible = false;
|
|
@@ -9057,6 +9118,7 @@
|
|
|
9057
9118
|
"We'll keep trying, but it's not looking great. \n Commenting & chat services may be down. \n If you continue to experience issues, please contact support.\n "
|
|
9058
9119
|
];
|
|
9059
9120
|
this.useInlineReplies = true;
|
|
9121
|
+
this.loaded = new Promise(function (r) { return _this.markLoaded = r; });
|
|
9060
9122
|
// Properties
|
|
9061
9123
|
this._signInSelected = new rxjs.Subject();
|
|
9062
9124
|
this._permissionDeniedError = new rxjs.Subject();
|
|
@@ -9093,6 +9155,7 @@
|
|
|
9093
9155
|
{ hashtag: 'timeout', description: 'Cause a slow timeout error' },
|
|
9094
9156
|
{ hashtag: 'slow', description: 'Be slow when this message is posted' },
|
|
9095
9157
|
];
|
|
9158
|
+
this.loadingSharedComment = false;
|
|
9096
9159
|
this.sendMessage = function (message) { return __awaiter(_this, void 0, void 0, function () {
|
|
9097
9160
|
var _a, intercept, e_1;
|
|
9098
9161
|
return __generator(this, function (_e) {
|
|
@@ -9225,6 +9288,7 @@
|
|
|
9225
9288
|
}
|
|
9226
9289
|
callback();
|
|
9227
9290
|
}
|
|
9291
|
+
this.markViewReady();
|
|
9228
9292
|
};
|
|
9229
9293
|
BantaCommentsComponent.prototype.ngOnDestroy = function () {
|
|
9230
9294
|
this._subs.unsubscribe();
|
|
@@ -9344,6 +9408,7 @@
|
|
|
9344
9408
|
this.loadingMessage = "Here we go!";
|
|
9345
9409
|
setTimeout(function () {
|
|
9346
9410
|
_this.loading = false;
|
|
9411
|
+
_this.markLoaded();
|
|
9347
9412
|
}, 750);
|
|
9348
9413
|
return true;
|
|
9349
9414
|
}
|
|
@@ -9478,7 +9543,10 @@
|
|
|
9478
9543
|
var comment = document.querySelectorAll("[data-comment-id=\"" + commentId + "\"]");
|
|
9479
9544
|
if (comment.length > 0) {
|
|
9480
9545
|
// comment.item(0).scroll({behavior: 'smooth'});
|
|
9481
|
-
comment.item(0).scrollIntoView(
|
|
9546
|
+
comment.item(0).scrollIntoView({
|
|
9547
|
+
inline: 'center',
|
|
9548
|
+
block: 'center'
|
|
9549
|
+
});
|
|
9482
9550
|
}
|
|
9483
9551
|
}, 1000);
|
|
9484
9552
|
};
|
|
@@ -9489,55 +9557,74 @@
|
|
|
9489
9557
|
return __generator(this, function (_e) {
|
|
9490
9558
|
switch (_e.label) {
|
|
9491
9559
|
case 0:
|
|
9560
|
+
this.loadingSharedComment = true;
|
|
9492
9561
|
source = this.source;
|
|
9493
9562
|
return [4 /*yield*/, source.ready];
|
|
9494
9563
|
case 1:
|
|
9495
9564
|
_e.sent();
|
|
9496
|
-
|
|
9497
|
-
_e.label = 2;
|
|
9565
|
+
return [4 /*yield*/, this.viewReady];
|
|
9498
9566
|
case 2:
|
|
9499
|
-
_e.
|
|
9500
|
-
return [4 /*yield*/, this.
|
|
9567
|
+
_e.sent();
|
|
9568
|
+
return [4 /*yield*/, this.loaded];
|
|
9501
9569
|
case 3:
|
|
9502
|
-
|
|
9503
|
-
|
|
9570
|
+
_e.sent();
|
|
9571
|
+
console.log("Navigating to shared comment with ID '" + id + "'...");
|
|
9572
|
+
_e.label = 4;
|
|
9504
9573
|
case 4:
|
|
9574
|
+
_e.trys.push([4, 6, , 7]);
|
|
9575
|
+
return [4 /*yield*/, this.source.get(id)];
|
|
9576
|
+
case 5:
|
|
9577
|
+
message = _e.sent();
|
|
9578
|
+
return [3 /*break*/, 7];
|
|
9579
|
+
case 6:
|
|
9505
9580
|
e_3 = _e.sent();
|
|
9506
9581
|
console.error("Failed to find comment from URL: " + e_3.message);
|
|
9582
|
+
alert("Could not load desired comment. It may have been removed.");
|
|
9507
9583
|
return [2 /*return*/];
|
|
9508
|
-
case
|
|
9584
|
+
case 7:
|
|
9509
9585
|
(_a = message.transientState) !== null && _a !== void 0 ? _a : (message.transientState = {});
|
|
9510
|
-
if (!message.parentMessageId) return [3 /*break*/,
|
|
9586
|
+
if (!message.parentMessageId) return [3 /*break*/, 14];
|
|
9511
9587
|
return [4 /*yield*/, this.source.get(message.parentMessageId)];
|
|
9512
|
-
case
|
|
9588
|
+
case 8:
|
|
9513
9589
|
parentMessage = _e.sent();
|
|
9514
9590
|
(_b = parentMessage.transientState) !== null && _b !== void 0 ? _b : (parentMessage.transientState = {});
|
|
9591
|
+
// Make sure that this message is loaded and visible to the user
|
|
9592
|
+
return [4 /*yield*/, this.commentView.loadMessageInContext(parentMessage)];
|
|
9593
|
+
case 9:
|
|
9594
|
+
// Make sure that this message is loaded and visible to the user
|
|
9595
|
+
_e.sent();
|
|
9515
9596
|
return [4 /*yield*/, this.selectMessage(parentMessage)];
|
|
9516
|
-
case
|
|
9597
|
+
case 10:
|
|
9517
9598
|
thread = _e.sent();
|
|
9518
9599
|
// Need to re-retrieve the message within the new chat source to affect its
|
|
9519
9600
|
// transient state.
|
|
9520
9601
|
return [4 /*yield*/, thread.ready];
|
|
9521
|
-
case
|
|
9602
|
+
case 11:
|
|
9522
9603
|
// Need to re-retrieve the message within the new chat source to affect its
|
|
9523
9604
|
// transient state.
|
|
9524
9605
|
_e.sent();
|
|
9525
9606
|
return [4 /*yield*/, thread.get(message.id)];
|
|
9526
|
-
case
|
|
9607
|
+
case 12:
|
|
9527
9608
|
message = _e.sent();
|
|
9528
9609
|
(_c = message.transientState) !== null && _c !== void 0 ? _c : (message.transientState = {});
|
|
9529
9610
|
message.transientState.highlighted = true;
|
|
9530
9611
|
console.dir(message);
|
|
9531
9612
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 500); })];
|
|
9532
|
-
case
|
|
9613
|
+
case 13:
|
|
9614
|
+
_e.sent();
|
|
9615
|
+
return [3 /*break*/, 16];
|
|
9616
|
+
case 14:
|
|
9617
|
+
// Make sure that this message is loaded and visible to the user
|
|
9618
|
+
return [4 /*yield*/, this.commentView.loadMessageInContext(message)];
|
|
9619
|
+
case 15:
|
|
9620
|
+
// Make sure that this message is loaded and visible to the user
|
|
9533
9621
|
_e.sent();
|
|
9534
|
-
return [3 /*break*/, 12];
|
|
9535
|
-
case 11:
|
|
9536
9622
|
(_d = message.transientState) !== null && _d !== void 0 ? _d : (message.transientState = {});
|
|
9537
9623
|
message.transientState.highlighted = true;
|
|
9538
|
-
_e.label =
|
|
9539
|
-
case
|
|
9624
|
+
_e.label = 16;
|
|
9625
|
+
case 16:
|
|
9540
9626
|
this.scrollToComment(id);
|
|
9627
|
+
this.loadingSharedComment = false;
|
|
9541
9628
|
return [2 /*return*/];
|
|
9542
9629
|
}
|
|
9543
9630
|
});
|
|
@@ -9849,8 +9936,8 @@
|
|
|
9849
9936
|
BantaCommentsComponent.decorators = [
|
|
9850
9937
|
{ type: core.Component, args: [{
|
|
9851
9938
|
selector: 'banta-comments',
|
|
9852
|
-
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 <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",
|
|
9853
|
-
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%}"]
|
|
9939
|
+
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 desired comment...</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 <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",
|
|
9940
|
+
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}.loading-comment h1{font-weight:100;text-align:center}.loading-comment mat-spinner{margin:0 auto}"]
|
|
9854
9941
|
},] }
|
|
9855
9942
|
];
|
|
9856
9943
|
BantaCommentsComponent.ctorParameters = function () { return [
|