@banta/sdk 4.0.0 → 4.0.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 +68 -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 +38 -22
- package/esm2015/lib/comments/comment-field/comment-field.component.js +4 -4
- package/fesm2015/banta-sdk.js +44 -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 +4 -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,8 @@
|
|
|
9007
9023
|
});
|
|
9008
9024
|
});
|
|
9009
9025
|
};
|
|
9010
|
-
BantaCommentsComponent.prototype.
|
|
9011
|
-
this._permissionDeniedError.next();
|
|
9026
|
+
BantaCommentsComponent.prototype.sendPermissionDenied = function (message) {
|
|
9027
|
+
this._permissionDeniedError.next(message);
|
|
9012
9028
|
};
|
|
9013
9029
|
BantaCommentsComponent.prototype.scrollToMessage = function (message) {
|
|
9014
9030
|
var el = this.elementRef.nativeElement.querySelector("[data-comment-id=\"" + message.id + "\"]");
|
|
@@ -9045,8 +9061,8 @@
|
|
|
9045
9061
|
return [3 /*break*/, 4];
|
|
9046
9062
|
case 3:
|
|
9047
9063
|
e_4 = _d.sent();
|
|
9048
|
-
|
|
9049
|
-
return [
|
|
9064
|
+
this.handleBackendExceptionAsAlert(e_4, 'Could not like this message: ');
|
|
9065
|
+
return [3 /*break*/, 4];
|
|
9050
9066
|
case 4: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 250); })];
|
|
9051
9067
|
case 5:
|
|
9052
9068
|
_d.sent();
|
|
@@ -9076,7 +9092,7 @@
|
|
|
9076
9092
|
return [3 /*break*/, 4];
|
|
9077
9093
|
case 3:
|
|
9078
9094
|
e_5 = _d.sent();
|
|
9079
|
-
|
|
9095
|
+
this.handleBackendExceptionAsAlert(e_5, 'Failed to unlike this message: ');
|
|
9080
9096
|
return [3 /*break*/, 4];
|
|
9081
9097
|
case 4: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 250); })];
|
|
9082
9098
|
case 5:
|
|
@@ -9188,17 +9204,31 @@
|
|
|
9188
9204
|
};
|
|
9189
9205
|
BantaCommentsComponent.prototype.deleteMessage = function (message) {
|
|
9190
9206
|
return __awaiter(this, void 0, void 0, function () {
|
|
9207
|
+
var e_6;
|
|
9191
9208
|
return __generator(this, function (_d) {
|
|
9192
|
-
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9209
|
+
switch (_d.label) {
|
|
9210
|
+
case 0:
|
|
9211
|
+
if (!confirm("Are you sure you want to delete this comment? You cannot undo this action."))
|
|
9212
|
+
return [2 /*return*/];
|
|
9213
|
+
_d.label = 1;
|
|
9214
|
+
case 1:
|
|
9215
|
+
_d.trys.push([1, 3, , 4]);
|
|
9216
|
+
return [4 /*yield*/, this.source.deleteMessage(message.id)];
|
|
9217
|
+
case 2:
|
|
9218
|
+
_d.sent();
|
|
9219
|
+
return [3 /*break*/, 4];
|
|
9220
|
+
case 3:
|
|
9221
|
+
e_6 = _d.sent();
|
|
9222
|
+
this.handleBackendExceptionAsAlert(e_6, "Could not delete message: ");
|
|
9223
|
+
return [3 /*break*/, 4];
|
|
9224
|
+
case 4: return [2 /*return*/];
|
|
9225
|
+
}
|
|
9196
9226
|
});
|
|
9197
9227
|
});
|
|
9198
9228
|
};
|
|
9199
9229
|
BantaCommentsComponent.prototype.editMessage = function (source, message, newText) {
|
|
9200
9230
|
return __awaiter(this, void 0, void 0, function () {
|
|
9201
|
-
var
|
|
9231
|
+
var e_7;
|
|
9202
9232
|
return __generator(this, function (_d) {
|
|
9203
9233
|
switch (_d.label) {
|
|
9204
9234
|
case 0:
|
|
@@ -9208,8 +9238,8 @@
|
|
|
9208
9238
|
_d.sent();
|
|
9209
9239
|
return [3 /*break*/, 3];
|
|
9210
9240
|
case 2:
|
|
9211
|
-
|
|
9212
|
-
|
|
9241
|
+
e_7 = _d.sent();
|
|
9242
|
+
this.handleBackendExceptionAsAlert(e_7, 'Could not edit this message: ');
|
|
9213
9243
|
return [2 /*return*/];
|
|
9214
9244
|
case 3:
|
|
9215
9245
|
message.message = newText;
|
|
@@ -9230,7 +9260,7 @@
|
|
|
9230
9260
|
};
|
|
9231
9261
|
BantaCommentsComponent.prototype.saveEdit = function (message, text) {
|
|
9232
9262
|
return __awaiter(this, void 0, void 0, function () {
|
|
9233
|
-
var
|
|
9263
|
+
var e_8;
|
|
9234
9264
|
return __generator(this, function (_d) {
|
|
9235
9265
|
switch (_d.label) {
|
|
9236
9266
|
case 0:
|
|
@@ -9241,8 +9271,8 @@
|
|
|
9241
9271
|
message.transientState.editing = false;
|
|
9242
9272
|
return [3 /*break*/, 3];
|
|
9243
9273
|
case 2:
|
|
9244
|
-
|
|
9245
|
-
|
|
9274
|
+
e_8 = _d.sent();
|
|
9275
|
+
this.handleBackendExceptionAsAlert(e_8, "Could not edit message: ");
|
|
9246
9276
|
return [3 /*break*/, 3];
|
|
9247
9277
|
case 3: return [2 /*return*/];
|
|
9248
9278
|
}
|
|
@@ -9254,7 +9284,7 @@
|
|
|
9254
9284
|
BantaCommentsComponent.decorators = [
|
|
9255
9285
|
{ type: core.Component, args: [{
|
|
9256
9286
|
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(selectedMessage)\"\r\n (unliked)=\"unlikeMessage(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)=\"
|
|
9287
|
+
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)=\"sendPermissionDenied($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]=\"permissionDeniedLabel\"\r\n (permissionDeniedError)=\"sendPermissionDenied($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
9288
|
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
9289
|
},] }
|
|
9260
9290
|
];
|
|
@@ -9403,8 +9433,8 @@
|
|
|
9403
9433
|
var root = document.body.querySelector('[ng-version]') || document.body;
|
|
9404
9434
|
root.appendChild(this.autocompleteEl.nativeElement);
|
|
9405
9435
|
};
|
|
9406
|
-
CommentFieldComponent.prototype.
|
|
9407
|
-
this._permissionDeniedError.next();
|
|
9436
|
+
CommentFieldComponent.prototype.sendPermissionDenied = function (message) {
|
|
9437
|
+
this._permissionDeniedError.next(message);
|
|
9408
9438
|
};
|
|
9409
9439
|
CommentFieldComponent.prototype.showAutoComplete = function (options) {
|
|
9410
9440
|
this.autoCompleteSelected = 0;
|
|
@@ -9630,7 +9660,7 @@
|
|
|
9630
9660
|
CommentFieldComponent.decorators = [
|
|
9631
9661
|
{ type: core.Component, args: [{
|
|
9632
9662
|
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 *ngIf=\"canComment\"\r\n mat-raised-button\r\n class=\"send\"\r\n color=\"primary\"\r\n [disabled]=\"!text || sending\"\r\n >\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 <span class=\"label\">\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 </span>\r\n\r\n </button>\r\n <button\r\n *ngIf=\"!canComment\"\r\n type=\"button\"\r\n (click)=\"
|
|
9663
|
+
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 *ngIf=\"canComment\"\r\n mat-raised-button\r\n class=\"send\"\r\n color=\"primary\"\r\n [disabled]=\"!text || sending\"\r\n >\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 <span class=\"label\">\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 </span>\r\n\r\n </button>\r\n <button\r\n *ngIf=\"!canComment\"\r\n type=\"button\"\r\n (click)=\"sendPermissionDenied('')\"\r\n mat-raised-button\r\n color=\"primary\"\r\n >{{permissionDeniedLabel}}</button>\r\n </ng-container>\r\n </div>\r\n</form>\r\n",
|
|
9634
9664
|
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
9665
|
},] }
|
|
9636
9666
|
];
|
|
@@ -9847,10 +9877,13 @@
|
|
|
9847
9877
|
return __awaiter(this, void 0, void 0, function () {
|
|
9848
9878
|
return __generator(this, function (_b) {
|
|
9849
9879
|
switch (_b.label) {
|
|
9850
|
-
case 0:
|
|
9880
|
+
case 0:
|
|
9881
|
+
if (!this.backend.user) return [3 /*break*/, 2];
|
|
9882
|
+
return [4 /*yield*/, this.peer.authenticate((_a = this.backend.user) === null || _a === void 0 ? void 0 : _a.token)];
|
|
9851
9883
|
case 1:
|
|
9852
9884
|
_b.sent();
|
|
9853
|
-
|
|
9885
|
+
_b.label = 2;
|
|
9886
|
+
case 2: return [2 /*return*/];
|
|
9854
9887
|
}
|
|
9855
9888
|
});
|
|
9856
9889
|
});
|