@banta/sdk 4.0.1 → 4.0.4
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 -35
- 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/chat/banta-chat/banta-chat.component.js +3 -3
- package/esm2015/lib/chat-source.js +3 -2
- package/esm2015/lib/comments/banta-comments/banta-comments.component.js +48 -22
- package/esm2015/lib/comments/comment-field/comment-field.component.js +4 -4
- package/fesm2015/banta-sdk.js +54 -27
- package/fesm2015/banta-sdk.js.map +1 -1
- package/lib/chat/banta-chat/banta-chat.component.d.ts +2 -2
- package/lib/comments/banta-comments/banta-comments.component.d.ts +5 -2
- package/lib/comments/comment-field/comment-field.component.d.ts +2 -2
- package/package.json +1 -1
package/bundles/banta-sdk.umd.js
CHANGED
|
@@ -7863,8 +7863,8 @@
|
|
|
7863
7863
|
BantaChatComponent.prototype.showSignIn = function () {
|
|
7864
7864
|
this._signInSelected.next();
|
|
7865
7865
|
};
|
|
7866
|
-
BantaChatComponent.prototype.sendPermissionError = function () {
|
|
7867
|
-
this._permissionDeniedError.next();
|
|
7866
|
+
BantaChatComponent.prototype.sendPermissionError = function (message) {
|
|
7867
|
+
this._permissionDeniedError.next(message);
|
|
7868
7868
|
};
|
|
7869
7869
|
BantaChatComponent.prototype.insertEmoji = function (emoji) {
|
|
7870
7870
|
var message = this.newMessage.message || '';
|
|
@@ -8684,9 +8684,8 @@
|
|
|
8684
8684
|
return [2 /*return*/, true];
|
|
8685
8685
|
case 4:
|
|
8686
8686
|
e_1 = _d.sent();
|
|
8687
|
-
|
|
8688
|
-
|
|
8689
|
-
throw new Error("Could not send: " + e_1.message);
|
|
8687
|
+
this.handleBackendException(e_1, 'Could not send: ');
|
|
8688
|
+
return [3 /*break*/, 5];
|
|
8690
8689
|
case 5: return [2 /*return*/];
|
|
8691
8690
|
}
|
|
8692
8691
|
});
|
|
@@ -8708,20 +8707,41 @@
|
|
|
8708
8707
|
case 3: return [2 /*return*/, true];
|
|
8709
8708
|
case 4:
|
|
8710
8709
|
e_2 = _d.sent();
|
|
8711
|
-
|
|
8712
|
-
|
|
8713
|
-
throw new Error("Could not send reply: " + e_2.message);
|
|
8710
|
+
this.handleBackendException(e_2, 'Could not send reply: ');
|
|
8711
|
+
return [3 /*break*/, 5];
|
|
8714
8712
|
case 5: return [2 /*return*/];
|
|
8715
8713
|
}
|
|
8716
8714
|
});
|
|
8717
8715
|
}); };
|
|
8718
8716
|
}
|
|
8717
|
+
BantaCommentsComponent.prototype.handleBackendExceptionAsAlert = function (e, prefix) {
|
|
8718
|
+
if (prefix === void 0) { prefix = ''; }
|
|
8719
|
+
try {
|
|
8720
|
+
this.handleBackendException(e, prefix);
|
|
8721
|
+
}
|
|
8722
|
+
catch (e) {
|
|
8723
|
+
alert(e.message);
|
|
8724
|
+
}
|
|
8725
|
+
};
|
|
8726
|
+
BantaCommentsComponent.prototype.handleBackendException = function (e, prefix) {
|
|
8727
|
+
if (prefix === void 0) { prefix = ''; }
|
|
8728
|
+
var errorMessage = e.message;
|
|
8729
|
+
if (errorMessage.startsWith('permission-denied|')) {
|
|
8730
|
+
errorMessage = errorMessage.replace(/^permission-denied\|/, '');
|
|
8731
|
+
if (errorMessage.startsWith("app-handle|")) {
|
|
8732
|
+
// If this is an error during authorizeAction on the backend, pass control to the user-provided
|
|
8733
|
+
// permission-denied handler.
|
|
8734
|
+
this.sendPermissionDenied(errorMessage.replace(/^app-handle\|/, ''));
|
|
8735
|
+
return;
|
|
8736
|
+
}
|
|
8737
|
+
}
|
|
8738
|
+
throw new Error("" + prefix + errorMessage);
|
|
8739
|
+
};
|
|
8719
8740
|
// Lifecycle Events / Initialization
|
|
8720
8741
|
BantaCommentsComponent.prototype.ngOnInit = function () {
|
|
8721
8742
|
var _this = this;
|
|
8722
8743
|
this._subs.add(this.backend.userChanged.subscribe(function (user) { return _this.user = user; }));
|
|
8723
8744
|
this.startLoading();
|
|
8724
|
-
console.log("Checking...");
|
|
8725
8745
|
if (typeof window !== 'undefined') {
|
|
8726
8746
|
var queryString = window.location.search.substring(1);
|
|
8727
8747
|
var query = queryString.split('&')
|
|
@@ -8730,8 +8750,6 @@
|
|
|
8730
8750
|
var _e = __read(_d, 2), k = _e[0], v = _e[1];
|
|
8731
8751
|
return (o[k] = v, o);
|
|
8732
8752
|
}, {});
|
|
8733
|
-
console.log('here:');
|
|
8734
|
-
console.dir(query);
|
|
8735
8753
|
var commentID = query['comment'];
|
|
8736
8754
|
if (commentID) {
|
|
8737
8755
|
this.sharedCommentID = commentID;
|
|
@@ -8828,7 +8846,7 @@
|
|
|
8828
8846
|
};
|
|
8829
8847
|
BantaCommentsComponent.prototype.updateLoading = function () {
|
|
8830
8848
|
var _this = this;
|
|
8831
|
-
var _a, _b
|
|
8849
|
+
var _a, _b;
|
|
8832
8850
|
if (((_a = this.source) === null || _a === void 0 ? void 0 : _a.state) && ((_b = this.source) === null || _b === void 0 ? void 0 : _b.state) !== 'connecting') {
|
|
8833
8851
|
clearInterval(this._loadingTimer);
|
|
8834
8852
|
this.loadingMessage = "Here we go!";
|
|
@@ -8837,7 +8855,6 @@
|
|
|
8837
8855
|
}, 750);
|
|
8838
8856
|
return true;
|
|
8839
8857
|
}
|
|
8840
|
-
console.log("[Banta] Status check: " + (((_c = this.source) === null || _c === void 0 ? void 0 : _c.state) || 'connecting'));
|
|
8841
8858
|
var messageSwitchTime = 5 * 1000;
|
|
8842
8859
|
if (this.messageChangedAt + messageSwitchTime < Date.now()) {
|
|
8843
8860
|
if (this.loadingMessages[this._loadingMessageIndex]) {
|
|
@@ -8940,7 +8957,6 @@
|
|
|
8940
8957
|
BantaCommentsComponent.prototype.scrollToComment = function (commentId) {
|
|
8941
8958
|
setTimeout(function () {
|
|
8942
8959
|
var comment = document.querySelectorAll("[data-comment-id=\"" + commentId + "\"]");
|
|
8943
|
-
console.dir(comment);
|
|
8944
8960
|
if (comment.length > 0) {
|
|
8945
8961
|
// comment.item(0).scroll({behavior: 'smooth'});
|
|
8946
8962
|
comment.item(0).scrollIntoView();
|
|
@@ -9007,8 +9023,18 @@
|
|
|
9007
9023
|
});
|
|
9008
9024
|
});
|
|
9009
9025
|
};
|
|
9010
|
-
BantaCommentsComponent.prototype.
|
|
9011
|
-
|
|
9026
|
+
BantaCommentsComponent.prototype.handlePermissionDenied = function (errorMessage) {
|
|
9027
|
+
// This is what other components call when handling permission errors
|
|
9028
|
+
if (errorMessage.startsWith("app-handle|")) {
|
|
9029
|
+
// If this is an error during authorizeAction on the backend, pass control to the user-provided
|
|
9030
|
+
// permission-denied handler.
|
|
9031
|
+
this.sendPermissionDenied(errorMessage.replace(/^app-handle\|/, ''));
|
|
9032
|
+
return;
|
|
9033
|
+
}
|
|
9034
|
+
alert(errorMessage);
|
|
9035
|
+
};
|
|
9036
|
+
BantaCommentsComponent.prototype.sendPermissionDenied = function (message) {
|
|
9037
|
+
this._permissionDeniedError.next(message);
|
|
9012
9038
|
};
|
|
9013
9039
|
BantaCommentsComponent.prototype.scrollToMessage = function (message) {
|
|
9014
9040
|
var el = this.elementRef.nativeElement.querySelector("[data-comment-id=\"" + message.id + "\"]");
|
|
@@ -9045,8 +9071,8 @@
|
|
|
9045
9071
|
return [3 /*break*/, 4];
|
|
9046
9072
|
case 3:
|
|
9047
9073
|
e_4 = _d.sent();
|
|
9048
|
-
|
|
9049
|
-
return [
|
|
9074
|
+
this.handleBackendExceptionAsAlert(e_4, 'Could not like this message: ');
|
|
9075
|
+
return [3 /*break*/, 4];
|
|
9050
9076
|
case 4: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 250); })];
|
|
9051
9077
|
case 5:
|
|
9052
9078
|
_d.sent();
|
|
@@ -9076,7 +9102,7 @@
|
|
|
9076
9102
|
return [3 /*break*/, 4];
|
|
9077
9103
|
case 3:
|
|
9078
9104
|
e_5 = _d.sent();
|
|
9079
|
-
|
|
9105
|
+
this.handleBackendExceptionAsAlert(e_5, 'Failed to unlike this message: ');
|
|
9080
9106
|
return [3 /*break*/, 4];
|
|
9081
9107
|
case 4: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 250); })];
|
|
9082
9108
|
case 5:
|
|
@@ -9188,17 +9214,31 @@
|
|
|
9188
9214
|
};
|
|
9189
9215
|
BantaCommentsComponent.prototype.deleteMessage = function (message) {
|
|
9190
9216
|
return __awaiter(this, void 0, void 0, function () {
|
|
9217
|
+
var e_6;
|
|
9191
9218
|
return __generator(this, function (_d) {
|
|
9192
|
-
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9219
|
+
switch (_d.label) {
|
|
9220
|
+
case 0:
|
|
9221
|
+
if (!confirm("Are you sure you want to delete this comment? You cannot undo this action."))
|
|
9222
|
+
return [2 /*return*/];
|
|
9223
|
+
_d.label = 1;
|
|
9224
|
+
case 1:
|
|
9225
|
+
_d.trys.push([1, 3, , 4]);
|
|
9226
|
+
return [4 /*yield*/, this.source.deleteMessage(message.id)];
|
|
9227
|
+
case 2:
|
|
9228
|
+
_d.sent();
|
|
9229
|
+
return [3 /*break*/, 4];
|
|
9230
|
+
case 3:
|
|
9231
|
+
e_6 = _d.sent();
|
|
9232
|
+
this.handleBackendExceptionAsAlert(e_6, "Could not delete message: ");
|
|
9233
|
+
return [3 /*break*/, 4];
|
|
9234
|
+
case 4: return [2 /*return*/];
|
|
9235
|
+
}
|
|
9196
9236
|
});
|
|
9197
9237
|
});
|
|
9198
9238
|
};
|
|
9199
9239
|
BantaCommentsComponent.prototype.editMessage = function (source, message, newText) {
|
|
9200
9240
|
return __awaiter(this, void 0, void 0, function () {
|
|
9201
|
-
var
|
|
9241
|
+
var e_7;
|
|
9202
9242
|
return __generator(this, function (_d) {
|
|
9203
9243
|
switch (_d.label) {
|
|
9204
9244
|
case 0:
|
|
@@ -9208,8 +9248,8 @@
|
|
|
9208
9248
|
_d.sent();
|
|
9209
9249
|
return [3 /*break*/, 3];
|
|
9210
9250
|
case 2:
|
|
9211
|
-
|
|
9212
|
-
|
|
9251
|
+
e_7 = _d.sent();
|
|
9252
|
+
this.handleBackendExceptionAsAlert(e_7, 'Could not edit this message: ');
|
|
9213
9253
|
return [2 /*return*/];
|
|
9214
9254
|
case 3:
|
|
9215
9255
|
message.message = newText;
|
|
@@ -9230,7 +9270,7 @@
|
|
|
9230
9270
|
};
|
|
9231
9271
|
BantaCommentsComponent.prototype.saveEdit = function (message, text) {
|
|
9232
9272
|
return __awaiter(this, void 0, void 0, function () {
|
|
9233
|
-
var
|
|
9273
|
+
var e_8;
|
|
9234
9274
|
return __generator(this, function (_d) {
|
|
9235
9275
|
switch (_d.label) {
|
|
9236
9276
|
case 0:
|
|
@@ -9241,8 +9281,8 @@
|
|
|
9241
9281
|
message.transientState.editing = false;
|
|
9242
9282
|
return [3 /*break*/, 3];
|
|
9243
9283
|
case 2:
|
|
9244
|
-
|
|
9245
|
-
|
|
9284
|
+
e_8 = _d.sent();
|
|
9285
|
+
this.handleBackendExceptionAsAlert(e_8, "Could not edit message: ");
|
|
9246
9286
|
return [3 /*break*/, 3];
|
|
9247
9287
|
case 3: return [2 /*return*/];
|
|
9248
9288
|
}
|
|
@@ -9254,7 +9294,7 @@
|
|
|
9254
9294
|
BantaCommentsComponent.decorators = [
|
|
9255
9295
|
{ type: core.Component, args: [{
|
|
9256
9296
|
selector: 'banta-comments',
|
|
9257
|
-
template: "<ng-container *ngIf=\"loading\">\r\n <div class=\"loading-screen\" [class.visible]=\"showLoadingScreen\">\r\n <h1>Loading Comments</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\">\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 (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 [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\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 (editAvatarSelected)=\"showEditAvatar()\"\r\n [source]=\"selectedMessageThread\"\r\n [canComment]=\"source?.permissions?.canPost\"\r\n [signInLabel]=\"signInLabel\"\r\n [permissionDeniedLabel]=\"permissionDeniedLabel\"\r\n (permissionDeniedError)=\"
|
|
9297
|
+
template: "<ng-container *ngIf=\"loading\">\r\n <div class=\"loading-screen\" [class.visible]=\"showLoadingScreen\">\r\n <h1>Loading Comments</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\">\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 (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 [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\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 (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 >\r\n <ng-content select=\".reply-send-options\"></ng-content>\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\">\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 (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 >\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 [class.faded]=\"selectedMessage\"\r\n [source]=\"source\"\r\n [fixedHeight]=\"fixedHeight\"\r\n [maxMessages]=\"maxMessages\"\r\n [maxVisibleMessages]=\"maxVisibleMessages\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\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 (deleted)=\"deleteMessage($event)\"\r\n ></banta-comment-view>\r\n </div>\r\n</ng-container>",
|
|
9258
9298
|
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:4em}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}@media (max-width:500px){.focused .replies{margin-left:0}}.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}"]
|
|
9259
9299
|
},] }
|
|
9260
9300
|
];
|
|
@@ -9403,8 +9443,8 @@
|
|
|
9403
9443
|
var root = document.body.querySelector('[ng-version]') || document.body;
|
|
9404
9444
|
root.appendChild(this.autocompleteEl.nativeElement);
|
|
9405
9445
|
};
|
|
9406
|
-
CommentFieldComponent.prototype.
|
|
9407
|
-
this._permissionDeniedError.next();
|
|
9446
|
+
CommentFieldComponent.prototype.sendPermissionDenied = function (message) {
|
|
9447
|
+
this._permissionDeniedError.next(message);
|
|
9408
9448
|
};
|
|
9409
9449
|
CommentFieldComponent.prototype.showAutoComplete = function (options) {
|
|
9410
9450
|
this.autoCompleteSelected = 0;
|
|
@@ -9630,7 +9670,7 @@
|
|
|
9630
9670
|
CommentFieldComponent.decorators = [
|
|
9631
9671
|
{ type: core.Component, args: [{
|
|
9632
9672
|
selector: 'banta-comment-field',
|
|
9633
|
-
template: "<form class=\"new-message\" (submit)=\"sendMessage()\">\r\n <div class=\"avatar-container\">\r\n <a href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"showEditAvatar()\"\r\n [style.background-image]=\"'url(' + user?.avatarUrl + ')'\"\r\n ></a>\r\n </div>\r\n <div class=\"text-container\">\r\n <div class=\"field-container\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\">\r\n <mat-label>{{label}}</mat-label>\r\n <textarea\r\n #textarea\r\n name=\"message\"\r\n [placeholder]=\"placeholder\"\r\n matInput\r\n cdkTextareaAutosize\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onBlur()\"\r\n [disabled]=\"sending\"\r\n [(ngModel)]=\"text\"></textarea>\r\n </mat-form-field>\r\n <ng-content></ng-content>\r\n <div #autocompleteContainer class=\"autocomplete-container\">\r\n <div #autocomplete class=\"autocomplete\" [class.visible]=\"autocompleteVisible\">\r\n\r\n <div>\r\n <strong>{{completionPrefix}}</strong>...\r\n </div>\r\n\r\n <a\r\n mat-button\r\n *ngFor=\"let option of autocompleteOptions; index as index\"\r\n (click)=\"activateAutoComplete(option)\"\r\n [class.active]=\"autoCompleteSelected === index\"\r\n >\r\n {{option.label}}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-spinner *ngIf=\"sending\" class=\"icon loading\" diameter=\"18\" strokeWidth=\"2\"></mat-spinner>\r\n <div *ngIf=\"sendError\" class=\"error-message\" [class.expanded]=\"expandError\">\r\n <mat-icon *ngIf=\"sendError\">error</mat-icon>\r\n {{sendError.message}}\r\n </div>\r\n <emoji-selector-button\r\n class=\"top-right\"\r\n (selected)=\"insertEmoji($event)\"\r\n ></emoji-selector-button>\r\n </div>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!user\">\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n type=\"button\"\r\n (click)=\"showSignIn()\"\r\n >{{signInLabel}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"user\">\r\n <button\r\n
|
|
9673
|
+
template: "<form class=\"new-message\" (submit)=\"sendMessage()\">\r\n <div class=\"avatar-container\">\r\n <a href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"showEditAvatar()\"\r\n [style.background-image]=\"'url(' + user?.avatarUrl + ')'\"\r\n ></a>\r\n </div>\r\n <div class=\"text-container\">\r\n <div class=\"field-container\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\">\r\n <mat-label>{{label}}</mat-label>\r\n <textarea\r\n #textarea\r\n name=\"message\"\r\n [placeholder]=\"placeholder\"\r\n matInput\r\n cdkTextareaAutosize\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onBlur()\"\r\n [disabled]=\"sending\"\r\n [(ngModel)]=\"text\"></textarea>\r\n </mat-form-field>\r\n <ng-content></ng-content>\r\n <div #autocompleteContainer class=\"autocomplete-container\">\r\n <div #autocomplete class=\"autocomplete\" [class.visible]=\"autocompleteVisible\">\r\n\r\n <div>\r\n <strong>{{completionPrefix}}</strong>...\r\n </div>\r\n\r\n <a\r\n mat-button\r\n *ngFor=\"let option of autocompleteOptions; index as index\"\r\n (click)=\"activateAutoComplete(option)\"\r\n [class.active]=\"autoCompleteSelected === index\"\r\n >\r\n {{option.label}}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-spinner *ngIf=\"sending\" class=\"icon loading\" diameter=\"18\" strokeWidth=\"2\"></mat-spinner>\r\n <div *ngIf=\"sendError\" class=\"error-message\" [class.expanded]=\"expandError\">\r\n <mat-icon *ngIf=\"sendError\">error</mat-icon>\r\n {{sendError.message}}\r\n </div>\r\n <emoji-selector-button\r\n class=\"top-right\"\r\n (selected)=\"insertEmoji($event)\"\r\n ></emoji-selector-button>\r\n </div>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!user\">\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n type=\"button\"\r\n (click)=\"showSignIn()\"\r\n >{{signInLabel}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"user\">\r\n <button\r\n mat-raised-button\r\n class=\"send\"\r\n color=\"primary\"\r\n [disabled]=\"canComment && (!text || sending)\"\r\n >\r\n <ng-container *ngIf=\"canComment\">\r\n <mat-icon *ngIf=\"!sending\">chevron_right</mat-icon>\r\n <mat-spinner *ngIf=\"sending\" class=\"icon\" diameter=\"18\" strokeWidth=\"2\"></mat-spinner>\r\n </ng-container>\r\n\r\n <span class=\"label\">\r\n <ng-container *ngIf=\"!canComment\">\r\n {{permissionDeniedLabel}}\r\n </ng-container>\r\n <ng-container *ngIf=\"canComment\">\r\n <ng-container *ngIf=\"!sending\">\r\n {{sendLabel}}\r\n </ng-container>\r\n <ng-container *ngIf=\"sending\">\r\n {{sendingLabel}}\r\n </ng-container>\r\n </ng-container>\r\n </span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n</form>\r\n",
|
|
9634
9674
|
styles: ["@-webkit-keyframes comment-field-appear{0%{transform:translateY(128px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes comment-field-appear{0%{transform:translateY(128px);opacity:0}to{transform:translate(0);opacity:1}}:host{margin:0 2em 0 0;display:block;-webkit-animation-name:comment-field-appear;animation-name:comment-field-appear;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-delay:.4s;animation-delay:.4s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.avatar-container{width:calc(48px + 1.75em);display:flex;justify-content:flex-end}.avatar-container .avatar{width:48px;height:48px;background:pink;border-radius:100%;background-size:cover;background-repeat:no-repeat;background-position:50%;margin-top:.75em;margin-right:.75em}form{display:flex;padding:.5em;align-items:center}form .text-container{position:relative;display:flex;flex-grow:1}form .text-container textarea{font-size:14pt;width:100%}form .text-container textarea[disabled]{opacity:.5}form .text-container mat-form-field{margin-bottom:1em}form .text-container emoji-selector-button{bottom:0;right:0;position:absolute}form .text-container .error-message,form .text-container mat-spinner.loading{position:absolute;left:.5em;bottom:.5em}form .text-container .error-message{color:#683333;overflow-x:hidden;max-width:1.5em;white-space:nowrap;transition:max-width 2s ease-in-out}form .text-container .error-message.expanded,form .text-container .error-message:hover{max-width:100%}form .text-container .error-message mat-icon{vertical-align:middle}form input[type=text]{background:#000;color:#fff;border:1px solid #333;width:100%;height:1em}form .actions{margin-left:1em}form button{display:block;margin:0 0 0 auto}form.new-message{display:flex;align-items:flex-start}form.new-message .field-container{flex-grow:1;display:flex;flex-direction:column}form.new-message mat-form-field{width:100%}form.new-message button{margin:1.25em 0 0}button.send{min-width:9em}textarea{max-height:7em}.autocomplete-container{width:calc(100% - 2em);position:relative;pointer-events:none;top:-2em}.autocomplete{visibility:hidden;pointer-events:none;position:absolute;background:#333;padding:.5em;display:flex;flex-direction:column;z-index:100}.autocomplete.visible{visibility:visible;pointer-events:auto}.autocomplete a{width:100%;text-align:left}.autocomplete a.active{background:#555}@media (max-width:500px){:host{margin:0}.avatar-container{width:auto}.avatar-container .avatar{width:32px;height:32px;margin-top:1.5em}button.send{min-width:auto;margin-top:1.5em}button.send .label{display:none}}"]
|
|
9635
9675
|
},] }
|
|
9636
9676
|
];
|
|
@@ -9847,10 +9887,13 @@
|
|
|
9847
9887
|
return __awaiter(this, void 0, void 0, function () {
|
|
9848
9888
|
return __generator(this, function (_b) {
|
|
9849
9889
|
switch (_b.label) {
|
|
9850
|
-
case 0:
|
|
9890
|
+
case 0:
|
|
9891
|
+
if (!this.backend.user) return [3 /*break*/, 2];
|
|
9892
|
+
return [4 /*yield*/, this.peer.authenticate((_a = this.backend.user) === null || _a === void 0 ? void 0 : _a.token)];
|
|
9851
9893
|
case 1:
|
|
9852
9894
|
_b.sent();
|
|
9853
|
-
|
|
9895
|
+
_b.label = 2;
|
|
9896
|
+
case 2: return [2 /*return*/];
|
|
9854
9897
|
}
|
|
9855
9898
|
});
|
|
9856
9899
|
});
|