@banta/sdk 4.6.1 → 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 +195 -107
- 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 +25 -7
- package/esm2015/lib/comments/comment-view/comment-view.component.js +47 -1
- package/fesm2015/banta-sdk.js +70 -6
- 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,27 +9155,28 @@
|
|
|
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
|
-
return __generator(this, function (
|
|
9099
|
-
switch (
|
|
9161
|
+
return __generator(this, function (_e) {
|
|
9162
|
+
switch (_e.label) {
|
|
9100
9163
|
case 0:
|
|
9101
|
-
|
|
9164
|
+
_e.trys.push([0, 4, , 5]);
|
|
9102
9165
|
return [4 /*yield*/, ((_a = this.shouldInterceptMessageSend) === null || _a === void 0 ? void 0 : _a.call(this, message, this.source))];
|
|
9103
9166
|
case 1:
|
|
9104
|
-
intercept =
|
|
9167
|
+
intercept = _e.sent();
|
|
9105
9168
|
if (!!intercept) return [3 /*break*/, 3];
|
|
9106
9169
|
return [4 /*yield*/, this.source.send(message)];
|
|
9107
9170
|
case 2:
|
|
9108
|
-
|
|
9109
|
-
|
|
9171
|
+
_e.sent();
|
|
9172
|
+
_e.label = 3;
|
|
9110
9173
|
case 3:
|
|
9111
9174
|
if (this.source.sortOrder !== common$1.CommentsOrder.NEWEST) {
|
|
9112
9175
|
this.sortOrder = common$1.CommentsOrder.NEWEST;
|
|
9113
9176
|
}
|
|
9114
9177
|
return [2 /*return*/, true];
|
|
9115
9178
|
case 4:
|
|
9116
|
-
e_1 =
|
|
9179
|
+
e_1 = _e.sent();
|
|
9117
9180
|
this.handleBackendException(e_1, 'Could not send: ');
|
|
9118
9181
|
return [3 /*break*/, 5];
|
|
9119
9182
|
case 5: return [2 /*return*/];
|
|
@@ -9122,21 +9185,21 @@
|
|
|
9122
9185
|
}); };
|
|
9123
9186
|
this.sendReply = function (message) { return __awaiter(_this, void 0, void 0, function () {
|
|
9124
9187
|
var _b, intercept, e_2;
|
|
9125
|
-
return __generator(this, function (
|
|
9126
|
-
switch (
|
|
9188
|
+
return __generator(this, function (_e) {
|
|
9189
|
+
switch (_e.label) {
|
|
9127
9190
|
case 0:
|
|
9128
|
-
|
|
9191
|
+
_e.trys.push([0, 4, , 5]);
|
|
9129
9192
|
return [4 /*yield*/, ((_b = this.shouldInterceptMessageSend) === null || _b === void 0 ? void 0 : _b.call(this, message, this.selectedMessageThread))];
|
|
9130
9193
|
case 1:
|
|
9131
|
-
intercept =
|
|
9194
|
+
intercept = _e.sent();
|
|
9132
9195
|
if (!!intercept) return [3 /*break*/, 3];
|
|
9133
9196
|
return [4 /*yield*/, this.selectedMessageThread.send(message)];
|
|
9134
9197
|
case 2:
|
|
9135
|
-
|
|
9136
|
-
|
|
9198
|
+
_e.sent();
|
|
9199
|
+
_e.label = 3;
|
|
9137
9200
|
case 3: return [2 /*return*/, true];
|
|
9138
9201
|
case 4:
|
|
9139
|
-
e_2 =
|
|
9202
|
+
e_2 = _e.sent();
|
|
9140
9203
|
this.handleBackendException(e_2, 'Could not send reply: ');
|
|
9141
9204
|
return [3 /*break*/, 5];
|
|
9142
9205
|
case 5: return [2 /*return*/];
|
|
@@ -9183,9 +9246,9 @@
|
|
|
9183
9246
|
var queryString = window.location.search.substring(1);
|
|
9184
9247
|
var query = queryString.split('&')
|
|
9185
9248
|
.map(function (s) { return s.split('='); })
|
|
9186
|
-
.reduce(function (o,
|
|
9187
|
-
var
|
|
9188
|
-
return (o[k] = v, o);
|
|
9249
|
+
.reduce(function (o, _e) {
|
|
9250
|
+
var _f = __read(_e, 2), k = _f[0], v = _f[1];
|
|
9251
|
+
return (o[decodeURIComponent(k)] = decodeURIComponent(v), o);
|
|
9189
9252
|
}, {});
|
|
9190
9253
|
var commentID = query['comment'];
|
|
9191
9254
|
if (commentID) {
|
|
@@ -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();
|
|
@@ -9234,19 +9298,19 @@
|
|
|
9234
9298
|
BantaCommentsComponent.prototype.setSourceFromTopicID = function (topicID) {
|
|
9235
9299
|
return __awaiter(this, void 0, void 0, function () {
|
|
9236
9300
|
var _this = this;
|
|
9237
|
-
return __generator(this, function (
|
|
9301
|
+
return __generator(this, function (_e) {
|
|
9238
9302
|
if (typeof window === 'undefined')
|
|
9239
9303
|
return [2 /*return*/];
|
|
9240
9304
|
setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
9241
|
-
var
|
|
9242
|
-
return __generator(this, function (
|
|
9243
|
-
switch (
|
|
9305
|
+
var _e;
|
|
9306
|
+
return __generator(this, function (_f) {
|
|
9307
|
+
switch (_f.label) {
|
|
9244
9308
|
case 0:
|
|
9245
9309
|
console.log("[banta-comments] Subscribing to topic source '" + topicID + "'");
|
|
9246
|
-
|
|
9310
|
+
_e = this;
|
|
9247
9311
|
return [4 /*yield*/, this.backend.getSourceForTopic(topicID, { sortOrder: this.sortOrder })];
|
|
9248
9312
|
case 1:
|
|
9249
|
-
|
|
9313
|
+
_e.source = _f.sent();
|
|
9250
9314
|
this._sourceIsOwned = true;
|
|
9251
9315
|
return [2 /*return*/];
|
|
9252
9316
|
}
|
|
@@ -9277,25 +9341,25 @@
|
|
|
9277
9341
|
BantaCommentsComponent.prototype.startLoading = function () {
|
|
9278
9342
|
return __awaiter(this, void 0, void 0, function () {
|
|
9279
9343
|
var _this = this;
|
|
9280
|
-
return __generator(this, function (
|
|
9281
|
-
switch (
|
|
9344
|
+
return __generator(this, function (_e) {
|
|
9345
|
+
switch (_e.label) {
|
|
9282
9346
|
case 0:
|
|
9283
9347
|
this.loadingStartedAt = this.messageChangedAt = Date.now();
|
|
9284
9348
|
if (this.updateLoading())
|
|
9285
9349
|
return [2 /*return*/];
|
|
9286
9350
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 100); })];
|
|
9287
9351
|
case 1:
|
|
9288
|
-
|
|
9352
|
+
_e.sent();
|
|
9289
9353
|
if (this.updateLoading())
|
|
9290
9354
|
return [2 /*return*/];
|
|
9291
9355
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 250); })];
|
|
9292
9356
|
case 2:
|
|
9293
|
-
|
|
9357
|
+
_e.sent();
|
|
9294
9358
|
if (this.updateLoading())
|
|
9295
9359
|
return [2 /*return*/];
|
|
9296
9360
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 500); })];
|
|
9297
9361
|
case 3:
|
|
9298
|
-
|
|
9362
|
+
_e.sent();
|
|
9299
9363
|
if (this.updateLoading())
|
|
9300
9364
|
return [2 /*return*/];
|
|
9301
9365
|
console.log("[Banta] Loading is taking a long time! Showing loading screen.");
|
|
@@ -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,65 +9543,88 @@
|
|
|
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
|
};
|
|
9485
9553
|
BantaCommentsComponent.prototype.navigateToSharedComment = function (id) {
|
|
9486
|
-
var _a, _b, _c;
|
|
9554
|
+
var _a, _b, _c, _d;
|
|
9487
9555
|
return __awaiter(this, void 0, void 0, function () {
|
|
9488
9556
|
var source, message, e_3, parentMessage, thread;
|
|
9489
|
-
return __generator(this, function (
|
|
9490
|
-
switch (
|
|
9557
|
+
return __generator(this, function (_e) {
|
|
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
|
-
|
|
9496
|
-
|
|
9497
|
-
_d.label = 2;
|
|
9564
|
+
_e.sent();
|
|
9565
|
+
return [4 /*yield*/, this.viewReady];
|
|
9498
9566
|
case 2:
|
|
9499
|
-
|
|
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:
|
|
9505
|
-
|
|
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:
|
|
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
|
|
9513
|
-
parentMessage =
|
|
9588
|
+
case 8:
|
|
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
|
|
9517
|
-
thread =
|
|
9597
|
+
case 10:
|
|
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
|
|
9527
|
-
message =
|
|
9607
|
+
case 12:
|
|
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
|
|
9533
|
-
|
|
9534
|
-
return [3 /*break*/,
|
|
9535
|
-
case
|
|
9536
|
-
|
|
9537
|
-
|
|
9538
|
-
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
|
|
9621
|
+
_e.sent();
|
|
9622
|
+
(_d = message.transientState) !== null && _d !== void 0 ? _d : (message.transientState = {});
|
|
9623
|
+
message.transientState.highlighted = true;
|
|
9624
|
+
_e.label = 16;
|
|
9625
|
+
case 16:
|
|
9539
9626
|
this.scrollToComment(id);
|
|
9627
|
+
this.loadingSharedComment = false;
|
|
9540
9628
|
return [2 /*return*/];
|
|
9541
9629
|
}
|
|
9542
9630
|
});
|
|
@@ -9573,31 +9661,31 @@
|
|
|
9573
9661
|
BantaCommentsComponent.prototype.likeMessage = function (source, message) {
|
|
9574
9662
|
return __awaiter(this, void 0, void 0, function () {
|
|
9575
9663
|
var e_4;
|
|
9576
|
-
return __generator(this, function (
|
|
9577
|
-
switch (
|
|
9664
|
+
return __generator(this, function (_e) {
|
|
9665
|
+
switch (_e.label) {
|
|
9578
9666
|
case 0:
|
|
9579
9667
|
if (!!this.user) return [3 /*break*/, 2];
|
|
9580
9668
|
return [4 /*yield*/, this.showSignIn()];
|
|
9581
9669
|
case 1:
|
|
9582
|
-
|
|
9670
|
+
_e.sent();
|
|
9583
9671
|
return [2 /*return*/];
|
|
9584
9672
|
case 2:
|
|
9585
9673
|
this._upvoted.next(message);
|
|
9586
9674
|
message.transientState.liking = true;
|
|
9587
|
-
|
|
9675
|
+
_e.label = 3;
|
|
9588
9676
|
case 3:
|
|
9589
|
-
|
|
9677
|
+
_e.trys.push([3, 5, 6, 8]);
|
|
9590
9678
|
return [4 /*yield*/, source.likeMessage(message.id)];
|
|
9591
9679
|
case 4:
|
|
9592
|
-
|
|
9680
|
+
_e.sent();
|
|
9593
9681
|
return [3 /*break*/, 8];
|
|
9594
9682
|
case 5:
|
|
9595
|
-
e_4 =
|
|
9683
|
+
e_4 = _e.sent();
|
|
9596
9684
|
this.handleBackendExceptionAsAlert(e_4, 'Could not like this message: ');
|
|
9597
9685
|
return [3 /*break*/, 8];
|
|
9598
9686
|
case 6: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 250); })];
|
|
9599
9687
|
case 7:
|
|
9600
|
-
|
|
9688
|
+
_e.sent();
|
|
9601
9689
|
message.transientState.liking = false;
|
|
9602
9690
|
return [7 /*endfinally*/];
|
|
9603
9691
|
case 8: return [2 /*return*/];
|
|
@@ -9609,33 +9697,33 @@
|
|
|
9609
9697
|
var _a;
|
|
9610
9698
|
return __awaiter(this, void 0, void 0, function () {
|
|
9611
9699
|
var e_5;
|
|
9612
|
-
return __generator(this, function (
|
|
9613
|
-
switch (
|
|
9700
|
+
return __generator(this, function (_e) {
|
|
9701
|
+
switch (_e.label) {
|
|
9614
9702
|
case 0:
|
|
9615
9703
|
if (!!this.user) return [3 /*break*/, 2];
|
|
9616
9704
|
return [4 /*yield*/, this.showSignIn()];
|
|
9617
9705
|
case 1:
|
|
9618
|
-
|
|
9706
|
+
_e.sent();
|
|
9619
9707
|
return [2 /*return*/];
|
|
9620
9708
|
case 2:
|
|
9621
9709
|
this._upvoted.next(message);
|
|
9622
9710
|
message.transientState.liking = true;
|
|
9623
9711
|
if ((_a = message.userState) === null || _a === void 0 ? void 0 : _a.liked)
|
|
9624
9712
|
message.likes = (message.likes || 0) - 1;
|
|
9625
|
-
|
|
9713
|
+
_e.label = 3;
|
|
9626
9714
|
case 3:
|
|
9627
|
-
|
|
9715
|
+
_e.trys.push([3, 5, , 6]);
|
|
9628
9716
|
return [4 /*yield*/, source.unlikeMessage(message.id)];
|
|
9629
9717
|
case 4:
|
|
9630
|
-
|
|
9718
|
+
_e.sent();
|
|
9631
9719
|
return [3 /*break*/, 6];
|
|
9632
9720
|
case 5:
|
|
9633
|
-
e_5 =
|
|
9721
|
+
e_5 = _e.sent();
|
|
9634
9722
|
this.handleBackendExceptionAsAlert(e_5, 'Failed to unlike this message: ');
|
|
9635
9723
|
return [3 /*break*/, 6];
|
|
9636
9724
|
case 6: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(); }, 250); })];
|
|
9637
9725
|
case 7:
|
|
9638
|
-
|
|
9726
|
+
_e.sent();
|
|
9639
9727
|
message.transientState.liking = false;
|
|
9640
9728
|
return [2 /*return*/];
|
|
9641
9729
|
}
|
|
@@ -9644,7 +9732,7 @@
|
|
|
9644
9732
|
};
|
|
9645
9733
|
BantaCommentsComponent.prototype.reportMessage = function (message) {
|
|
9646
9734
|
return __awaiter(this, void 0, void 0, function () {
|
|
9647
|
-
return __generator(this, function (
|
|
9735
|
+
return __generator(this, function (_e) {
|
|
9648
9736
|
this._reported.next(message);
|
|
9649
9737
|
return [2 /*return*/];
|
|
9650
9738
|
});
|
|
@@ -9654,7 +9742,7 @@
|
|
|
9654
9742
|
return __awaiter(this, void 0, void 0, function () {
|
|
9655
9743
|
var message;
|
|
9656
9744
|
var _this = this;
|
|
9657
|
-
return __generator(this, function (
|
|
9745
|
+
return __generator(this, function (_e) {
|
|
9658
9746
|
message = this.selectedMessage;
|
|
9659
9747
|
this._selected.next(null);
|
|
9660
9748
|
this.selectedMessage = null;
|
|
@@ -9673,8 +9761,8 @@
|
|
|
9673
9761
|
return __awaiter(this, void 0, void 0, function () {
|
|
9674
9762
|
var selectedMessageThread;
|
|
9675
9763
|
var _this = this;
|
|
9676
|
-
return __generator(this, function (
|
|
9677
|
-
switch (
|
|
9764
|
+
return __generator(this, function (_e) {
|
|
9765
|
+
switch (_e.label) {
|
|
9678
9766
|
case 0:
|
|
9679
9767
|
if (this.selectedMessage === message) {
|
|
9680
9768
|
this.unselectMessage();
|
|
@@ -9684,10 +9772,10 @@
|
|
|
9684
9772
|
this.selectedMessage = message;
|
|
9685
9773
|
return [4 /*yield*/, this.backend.getSourceForThread(this.topicID, message.id)];
|
|
9686
9774
|
case 1:
|
|
9687
|
-
selectedMessageThread =
|
|
9775
|
+
selectedMessageThread = _e.sent();
|
|
9688
9776
|
setTimeout(function () { return _this.selectedMessageVisible = true; });
|
|
9689
9777
|
setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
9690
|
-
return __generator(this, function (
|
|
9778
|
+
return __generator(this, function (_e) {
|
|
9691
9779
|
this.selectedMessageThread = selectedMessageThread;
|
|
9692
9780
|
return [2 /*return*/];
|
|
9693
9781
|
});
|
|
@@ -9699,7 +9787,7 @@
|
|
|
9699
9787
|
};
|
|
9700
9788
|
BantaCommentsComponent.prototype.showSignIn = function () {
|
|
9701
9789
|
return __awaiter(this, void 0, void 0, function () {
|
|
9702
|
-
return __generator(this, function (
|
|
9790
|
+
return __generator(this, function (_e) {
|
|
9703
9791
|
this._signInSelected.next();
|
|
9704
9792
|
return [2 /*return*/];
|
|
9705
9793
|
});
|
|
@@ -9707,7 +9795,7 @@
|
|
|
9707
9795
|
};
|
|
9708
9796
|
BantaCommentsComponent.prototype.showEditAvatar = function () {
|
|
9709
9797
|
return __awaiter(this, void 0, void 0, function () {
|
|
9710
|
-
return __generator(this, function (
|
|
9798
|
+
return __generator(this, function (_e) {
|
|
9711
9799
|
this._editAvatarSelected.next();
|
|
9712
9800
|
return [2 /*return*/];
|
|
9713
9801
|
});
|
|
@@ -9715,7 +9803,7 @@
|
|
|
9715
9803
|
};
|
|
9716
9804
|
BantaCommentsComponent.prototype.selectMessageUser = function (message) {
|
|
9717
9805
|
return __awaiter(this, void 0, void 0, function () {
|
|
9718
|
-
return __generator(this, function (
|
|
9806
|
+
return __generator(this, function (_e) {
|
|
9719
9807
|
this._userSelected.next(message);
|
|
9720
9808
|
return [2 /*return*/];
|
|
9721
9809
|
});
|
|
@@ -9723,7 +9811,7 @@
|
|
|
9723
9811
|
};
|
|
9724
9812
|
BantaCommentsComponent.prototype.selectUsername = function (user) {
|
|
9725
9813
|
return __awaiter(this, void 0, void 0, function () {
|
|
9726
|
-
return __generator(this, function (
|
|
9814
|
+
return __generator(this, function (_e) {
|
|
9727
9815
|
this._usernameSelected.next(user);
|
|
9728
9816
|
return [2 /*return*/];
|
|
9729
9817
|
});
|
|
@@ -9731,7 +9819,7 @@
|
|
|
9731
9819
|
};
|
|
9732
9820
|
BantaCommentsComponent.prototype.selectAvatar = function (user) {
|
|
9733
9821
|
return __awaiter(this, void 0, void 0, function () {
|
|
9734
|
-
return __generator(this, function (
|
|
9822
|
+
return __generator(this, function (_e) {
|
|
9735
9823
|
this._avatarSelected.next(user);
|
|
9736
9824
|
return [2 /*return*/];
|
|
9737
9825
|
});
|
|
@@ -9739,7 +9827,7 @@
|
|
|
9739
9827
|
};
|
|
9740
9828
|
BantaCommentsComponent.prototype.shareMessage = function (message) {
|
|
9741
9829
|
return __awaiter(this, void 0, void 0, function () {
|
|
9742
|
-
return __generator(this, function (
|
|
9830
|
+
return __generator(this, function (_e) {
|
|
9743
9831
|
this._shared.next(message);
|
|
9744
9832
|
return [2 /*return*/];
|
|
9745
9833
|
});
|
|
@@ -9749,28 +9837,28 @@
|
|
|
9749
9837
|
var _a;
|
|
9750
9838
|
return __awaiter(this, void 0, void 0, function () {
|
|
9751
9839
|
var e_6;
|
|
9752
|
-
return __generator(this, function (
|
|
9753
|
-
switch (
|
|
9840
|
+
return __generator(this, function (_e) {
|
|
9841
|
+
switch (_e.label) {
|
|
9754
9842
|
case 0:
|
|
9755
9843
|
if (!!this.user) return [3 /*break*/, 2];
|
|
9756
9844
|
return [4 /*yield*/, this.showSignIn()];
|
|
9757
9845
|
case 1:
|
|
9758
|
-
|
|
9846
|
+
_e.sent();
|
|
9759
9847
|
return [2 /*return*/];
|
|
9760
9848
|
case 2:
|
|
9761
9849
|
if (!confirm("Are you sure you want to delete this comment? You cannot undo this action."))
|
|
9762
9850
|
return [2 /*return*/];
|
|
9763
|
-
|
|
9851
|
+
_e.label = 3;
|
|
9764
9852
|
case 3:
|
|
9765
|
-
|
|
9853
|
+
_e.trys.push([3, 5, , 6]);
|
|
9766
9854
|
return [4 /*yield*/, this.source.deleteMessage(message.id)];
|
|
9767
9855
|
case 4:
|
|
9768
|
-
|
|
9856
|
+
_e.sent();
|
|
9769
9857
|
if (((_a = this.selectedMessage) === null || _a === void 0 ? void 0 : _a.id) === message.id)
|
|
9770
9858
|
this.unselectMessage();
|
|
9771
9859
|
return [3 /*break*/, 6];
|
|
9772
9860
|
case 5:
|
|
9773
|
-
e_6 =
|
|
9861
|
+
e_6 = _e.sent();
|
|
9774
9862
|
this.handleBackendExceptionAsAlert(e_6, "Could not delete message: ");
|
|
9775
9863
|
return [3 /*break*/, 6];
|
|
9776
9864
|
case 6: return [2 /*return*/];
|
|
@@ -9781,22 +9869,22 @@
|
|
|
9781
9869
|
BantaCommentsComponent.prototype.editMessage = function (source, message, newText) {
|
|
9782
9870
|
return __awaiter(this, void 0, void 0, function () {
|
|
9783
9871
|
var e_7;
|
|
9784
|
-
return __generator(this, function (
|
|
9785
|
-
switch (
|
|
9872
|
+
return __generator(this, function (_e) {
|
|
9873
|
+
switch (_e.label) {
|
|
9786
9874
|
case 0:
|
|
9787
9875
|
if (!!this.user) return [3 /*break*/, 2];
|
|
9788
9876
|
return [4 /*yield*/, this.showSignIn()];
|
|
9789
9877
|
case 1:
|
|
9790
|
-
|
|
9878
|
+
_e.sent();
|
|
9791
9879
|
return [2 /*return*/];
|
|
9792
9880
|
case 2:
|
|
9793
|
-
|
|
9881
|
+
_e.trys.push([2, 4, , 5]);
|
|
9794
9882
|
return [4 /*yield*/, source.editMessage(message.id, newText)];
|
|
9795
9883
|
case 3:
|
|
9796
|
-
|
|
9884
|
+
_e.sent();
|
|
9797
9885
|
return [3 /*break*/, 5];
|
|
9798
9886
|
case 4:
|
|
9799
|
-
e_7 =
|
|
9887
|
+
e_7 = _e.sent();
|
|
9800
9888
|
this.handleBackendExceptionAsAlert(e_7, 'Could not edit this message: ');
|
|
9801
9889
|
return [2 /*return*/];
|
|
9802
9890
|
case 5:
|
|
@@ -9809,7 +9897,7 @@
|
|
|
9809
9897
|
};
|
|
9810
9898
|
BantaCommentsComponent.prototype.startEditing = function (message) {
|
|
9811
9899
|
return __awaiter(this, void 0, void 0, function () {
|
|
9812
|
-
return __generator(this, function (
|
|
9900
|
+
return __generator(this, function (_e) {
|
|
9813
9901
|
this.selectedMessage.transientState.editing = false;
|
|
9814
9902
|
message.transientState.editing = true;
|
|
9815
9903
|
return [2 /*return*/];
|
|
@@ -9819,23 +9907,23 @@
|
|
|
9819
9907
|
BantaCommentsComponent.prototype.saveEdit = function (message, text) {
|
|
9820
9908
|
return __awaiter(this, void 0, void 0, function () {
|
|
9821
9909
|
var e_8;
|
|
9822
|
-
return __generator(this, function (
|
|
9823
|
-
switch (
|
|
9910
|
+
return __generator(this, function (_e) {
|
|
9911
|
+
switch (_e.label) {
|
|
9824
9912
|
case 0:
|
|
9825
9913
|
if (!!this.user) return [3 /*break*/, 2];
|
|
9826
9914
|
return [4 /*yield*/, this.showSignIn()];
|
|
9827
9915
|
case 1:
|
|
9828
|
-
|
|
9916
|
+
_e.sent();
|
|
9829
9917
|
return [2 /*return*/];
|
|
9830
9918
|
case 2:
|
|
9831
|
-
|
|
9919
|
+
_e.trys.push([2, 4, , 5]);
|
|
9832
9920
|
return [4 /*yield*/, this.source.editMessage(message.id, text)];
|
|
9833
9921
|
case 3:
|
|
9834
|
-
|
|
9922
|
+
_e.sent();
|
|
9835
9923
|
message.transientState.editing = false;
|
|
9836
9924
|
return [3 /*break*/, 5];
|
|
9837
9925
|
case 4:
|
|
9838
|
-
e_8 =
|
|
9926
|
+
e_8 = _e.sent();
|
|
9839
9927
|
this.handleBackendExceptionAsAlert(e_8, "Could not edit message: ");
|
|
9840
9928
|
return [3 /*break*/, 5];
|
|
9841
9929
|
case 5: return [2 /*return*/];
|
|
@@ -9848,8 +9936,8 @@
|
|
|
9848
9936
|
BantaCommentsComponent.decorators = [
|
|
9849
9937
|
{ type: core.Component, args: [{
|
|
9850
9938
|
selector: 'banta-comments',
|
|
9851
|
-
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",
|
|
9852
|
-
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}"]
|
|
9853
9941
|
},] }
|
|
9854
9942
|
];
|
|
9855
9943
|
BantaCommentsComponent.ctorParameters = function () { return [
|