@banta/sdk 4.3.2 → 4.3.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 +74 -98
- package/bundles/banta-sdk.umd.js.map +1 -1
- package/bundles/banta-sdk.umd.min.js +1 -1
- package/bundles/banta-sdk.umd.min.js.map +1 -1
- package/esm2015/lib/banta-sdk.module.js +6 -2
- package/esm2015/lib/comments/comment/comment.component.js +7 -3
- package/esm2015/lib/comments/comments.module.js +6 -2
- package/esm2015/lib/emoji/emoji-selector-button.component.js +56 -105
- package/esm2015/lib/emoji/emoji.module.js +6 -2
- package/fesm2015/banta-sdk.js +69 -108
- package/fesm2015/banta-sdk.js.map +1 -1
- package/lib/comments/comment/comment.component.d.ts +1 -0
- package/lib/emoji/emoji-selector-button.component.d.ts +13 -14
- package/package.json +1 -1
package/bundles/banta-sdk.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs'), require('rxjs/operators'), require('@angular/core'), require('marked'), require('dompurify'), require('@angular/platform-browser'), require('@angular/common'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/forms'), require('@angular/material/dialog'), require('@banta/common'), require('@angular/router'), require('@angular/material/snack-bar'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/cdk/text-field'), require('@angular/material/tooltip'), require('@angular/material/select')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@banta/sdk', ['exports', 'rxjs', 'rxjs/operators', '@angular/core', 'marked', 'dompurify', '@angular/platform-browser', '@angular/common', '@angular/material/icon', '@angular/material/button', '@angular/material/form-field', '@angular/material/input', '@angular/forms', '@angular/material/dialog', '@banta/common', '@angular/router', '@angular/material/snack-bar', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/cdk/text-field', '@angular/material/tooltip', '@angular/material/select'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.banta = global.banta || {}, global.banta.sdk = {}), global.rxjs, global.rxjs.operators, global.ng.core, global.marked, global.DOMPurify, global.ng.platformBrowser, global.ng.common, global.ng.material.icon, global.ng.material.button, global.ng.material.formField, global.ng.material.input, global.ng.forms, global.ng.material.dialog, global.common$1, global.ng.router, global.ng.material.snackBar, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.cdk.textField, global.ng.material.tooltip, global.ng.material.select));
|
|
5
|
-
}(this, (function (exports, rxjs, operators, core, marked, DOMPurify, platformBrowser, common, icon, button, formField, input, forms, dialog, common$1, router, snackBar, menu, progressSpinner, textField, tooltip, select) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs'), require('rxjs/operators'), require('@angular/core'), require('marked'), require('dompurify'), require('@angular/platform-browser'), require('@angular/common'), require('@angular/material/icon'), require('@angular/cdk/overlay'), require('@angular/material/button'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/forms'), require('@angular/cdk/portal'), require('@angular/material/dialog'), require('@banta/common'), require('@angular/router'), require('@angular/material/snack-bar'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/cdk/text-field'), require('@angular/material/tooltip'), require('@angular/material/select')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@banta/sdk', ['exports', 'rxjs', 'rxjs/operators', '@angular/core', 'marked', 'dompurify', '@angular/platform-browser', '@angular/common', '@angular/material/icon', '@angular/cdk/overlay', '@angular/material/button', '@angular/material/form-field', '@angular/material/input', '@angular/forms', '@angular/cdk/portal', '@angular/material/dialog', '@banta/common', '@angular/router', '@angular/material/snack-bar', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/cdk/text-field', '@angular/material/tooltip', '@angular/material/select'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.banta = global.banta || {}, global.banta.sdk = {}), global.rxjs, global.rxjs.operators, global.ng.core, global.marked, global.DOMPurify, global.ng.platformBrowser, global.ng.common, global.ng.material.icon, global.ng.cdk.overlay, global.ng.material.button, global.ng.material.formField, global.ng.material.input, global.ng.forms, global.ng.cdk.portal, global.ng.material.dialog, global.common$1, global.ng.router, global.ng.material.snackBar, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.cdk.textField, global.ng.material.tooltip, global.ng.material.select));
|
|
5
|
+
}(this, (function (exports, rxjs, operators, core, marked, DOMPurify, platformBrowser, common, icon, overlay, button, formField, input, forms, portal, dialog, common$1, router, snackBar, menu, progressSpinner, textField, tooltip, select) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function lazyConnection(options) {
|
|
8
8
|
var obs = new rxjs.Observable(function (observer) {
|
|
@@ -7166,8 +7166,9 @@
|
|
|
7166
7166
|
|
|
7167
7167
|
/// <reference types="@types/resize-observer-browser" />
|
|
7168
7168
|
var EmojiSelectorButtonComponent = /** @class */ (function () {
|
|
7169
|
-
function EmojiSelectorButtonComponent(elementRef) {
|
|
7169
|
+
function EmojiSelectorButtonComponent(elementRef, overlay) {
|
|
7170
7170
|
this.elementRef = elementRef;
|
|
7171
|
+
this.overlay = overlay;
|
|
7171
7172
|
this._selected = new rxjs.Subject();
|
|
7172
7173
|
this.showEmojiPanel = false;
|
|
7173
7174
|
}
|
|
@@ -7178,115 +7179,76 @@
|
|
|
7178
7179
|
enumerable: false,
|
|
7179
7180
|
configurable: true
|
|
7180
7181
|
});
|
|
7181
|
-
EmojiSelectorButtonComponent.prototype
|
|
7182
|
-
|
|
7183
|
-
|
|
7184
|
-
|
|
7185
|
-
Object.defineProperty(EmojiSelectorButtonComponent.prototype, "widthConstrained", {
|
|
7186
|
-
get: function () { return this.width < 700; },
|
|
7182
|
+
Object.defineProperty(EmojiSelectorButtonComponent.prototype, "isOpen", {
|
|
7183
|
+
get: function () {
|
|
7184
|
+
return this.overlayRef;
|
|
7185
|
+
},
|
|
7187
7186
|
enumerable: false,
|
|
7188
7187
|
configurable: true
|
|
7189
7188
|
});
|
|
7190
|
-
|
|
7191
|
-
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
|
|
7195
|
-
|
|
7196
|
-
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7202
|
-
};
|
|
7203
|
-
EmojiSelectorButtonComponent.prototype.place = function () {
|
|
7204
|
-
// Not currently used as it can't be easily done handling all
|
|
7205
|
-
// scrolling corner cases.
|
|
7206
|
-
this.putPanelAtRoot();
|
|
7207
|
-
var pos = this.buttonElement.nativeElement.getBoundingClientRect();
|
|
7208
|
-
var size = this.panelElement.nativeElement.getBoundingClientRect();
|
|
7209
|
-
var left = window.scrollX + pos.left + pos.width - size.width;
|
|
7210
|
-
if (left < 0)
|
|
7211
|
-
left = (window.scrollX + window.innerWidth) / 2 - size.width / 2;
|
|
7212
|
-
var scrollY = window.scrollY;
|
|
7213
|
-
if (document.fullscreenElement) {
|
|
7189
|
+
/**
|
|
7190
|
+
* Insert the given emoji.
|
|
7191
|
+
* @param str
|
|
7192
|
+
*/
|
|
7193
|
+
EmojiSelectorButtonComponent.prototype.insert = function (str) {
|
|
7194
|
+
this._selected.next(str);
|
|
7195
|
+
};
|
|
7196
|
+
EmojiSelectorButtonComponent.prototype.close = function () {
|
|
7197
|
+
if (this.overlayRef) {
|
|
7198
|
+
this.overlayRef.dispose();
|
|
7199
|
+
this.overlayRef = null;
|
|
7200
|
+
return;
|
|
7214
7201
|
}
|
|
7215
|
-
Object.assign(this.panelElement.nativeElement.style, {
|
|
7216
|
-
top: window.scrollY + pos.top + pos.height + "px",
|
|
7217
|
-
left: Math.max(0, left) + "px"
|
|
7218
|
-
});
|
|
7219
7202
|
};
|
|
7220
7203
|
EmojiSelectorButtonComponent.prototype.show = function () {
|
|
7221
7204
|
var _this = this;
|
|
7222
|
-
if (this.
|
|
7223
|
-
this.
|
|
7224
|
-
return;
|
|
7205
|
+
if (this.isOpen) {
|
|
7206
|
+
this.close();
|
|
7225
7207
|
}
|
|
7226
|
-
this.
|
|
7227
|
-
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
7231
|
-
|
|
7232
|
-
|
|
7233
|
-
|
|
7234
|
-
|
|
7235
|
-
var commentField = _this.elementRef.nativeElement.closest("banta-comment-field");
|
|
7236
|
-
if (commentField) {
|
|
7237
|
-
var size = commentField.getBoundingClientRect();
|
|
7238
|
-
_this.width = size.width;
|
|
7239
|
-
edgeOffset = window.innerWidth - size.right;
|
|
7240
|
-
}
|
|
7241
|
-
var buttonRect = _this.buttonElement.nativeElement.getBoundingClientRect();
|
|
7242
|
-
var buttonRight = window.innerWidth - buttonRect.right - edgeOffset - 10;
|
|
7243
|
-
if (_this.width < 700) {
|
|
7244
|
-
_this.panelElement.nativeElement.style.right = -buttonRight + "px";
|
|
7245
|
-
}
|
|
7246
|
-
else {
|
|
7247
|
-
_this.panelElement.nativeElement.style.right = '';
|
|
7248
|
-
}
|
|
7249
|
-
_this.panelElement.nativeElement.style.maxWidth = _this.width - 15 + "px";
|
|
7250
|
-
};
|
|
7251
|
-
_this.resizeListener = onResize;
|
|
7252
|
-
onResize();
|
|
7253
|
-
_this.clickListener = function (ev) {
|
|
7254
|
-
var parent = ev.target;
|
|
7255
|
-
var isInDialog = false;
|
|
7256
|
-
while (parent) {
|
|
7257
|
-
if (parent.matches('emoji-selector-panel'))
|
|
7258
|
-
isInDialog = true;
|
|
7259
|
-
parent = parent.parentElement;
|
|
7208
|
+
this.overlayRef = this.overlay.create({
|
|
7209
|
+
positionStrategy: this.overlay.position()
|
|
7210
|
+
.flexibleConnectedTo(this.elementRef)
|
|
7211
|
+
.withPositions([
|
|
7212
|
+
{
|
|
7213
|
+
originX: 'end',
|
|
7214
|
+
originY: 'bottom',
|
|
7215
|
+
overlayX: 'end',
|
|
7216
|
+
overlayY: 'top'
|
|
7260
7217
|
}
|
|
7261
|
-
|
|
7262
|
-
|
|
7263
|
-
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
|
|
7267
|
-
|
|
7218
|
+
])
|
|
7219
|
+
.withFlexibleDimensions(true),
|
|
7220
|
+
hasBackdrop: true,
|
|
7221
|
+
disposeOnNavigation: true,
|
|
7222
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition({
|
|
7223
|
+
autoClose: true
|
|
7224
|
+
})
|
|
7268
7225
|
});
|
|
7269
|
-
|
|
7270
|
-
|
|
7271
|
-
|
|
7226
|
+
this.overlayRef.backdropClick().subscribe(function () {
|
|
7227
|
+
_this.close();
|
|
7228
|
+
});
|
|
7229
|
+
this.overlayRef.keydownEvents().subscribe(function (event) {
|
|
7230
|
+
if (event.key === 'Escape') {
|
|
7231
|
+
_this.close();
|
|
7232
|
+
}
|
|
7233
|
+
});
|
|
7234
|
+
this.overlayRef.attach(this.selectorPanelTemplate);
|
|
7272
7235
|
};
|
|
7273
7236
|
return EmojiSelectorButtonComponent;
|
|
7274
7237
|
}());
|
|
7275
7238
|
EmojiSelectorButtonComponent.decorators = [
|
|
7276
7239
|
{ type: core.Component, args: [{
|
|
7277
7240
|
selector: 'emoji-selector-button',
|
|
7278
|
-
template: "\n <button #button type=\"button\" mat-icon-button (click)=\"show()\">\n <mat-icon>emoji_emotions</mat-icon>\n </button>\n <emoji-selector-panel \n
|
|
7279
|
-
styles: ["\n :host {\n display: block;\n position: relative;\n }\n\n
|
|
7241
|
+
template: "\n <button #button type=\"button\" mat-icon-button (click)=\"show()\">\n <mat-icon>emoji_emotions</mat-icon>\n </button>\n <ng-template cdkPortal #selectorPanelTemplate=\"cdkPortal\">\n <emoji-selector-panel \n #panel\n (selected)=\"insert($event)\"\n ></emoji-selector-panel>\n </ng-template>\n ",
|
|
7242
|
+
styles: ["\n :host {\n display: block;\n position: relative;\n }\n\n button {\n color: #666\n }\n "]
|
|
7280
7243
|
},] }
|
|
7281
7244
|
];
|
|
7282
7245
|
EmojiSelectorButtonComponent.ctorParameters = function () { return [
|
|
7283
|
-
{ type: core.ElementRef }
|
|
7246
|
+
{ type: core.ElementRef },
|
|
7247
|
+
{ type: overlay.Overlay }
|
|
7284
7248
|
]; };
|
|
7285
7249
|
EmojiSelectorButtonComponent.propDecorators = {
|
|
7286
|
-
|
|
7287
|
-
|
|
7288
|
-
buttonElement: [{ type: core.ViewChild, args: ['button', { read: core.ElementRef },] }],
|
|
7289
|
-
widthConstrained: [{ type: core.HostBinding, args: ['class.width-constrained',] }]
|
|
7250
|
+
selectorPanelTemplate: [{ type: core.ViewChild, args: ['selectorPanelTemplate',] }],
|
|
7251
|
+
selected: [{ type: core.Output }]
|
|
7290
7252
|
};
|
|
7291
7253
|
|
|
7292
7254
|
var COMPONENTS$1 = [
|
|
@@ -7307,7 +7269,9 @@
|
|
|
7307
7269
|
icon.MatIconModule,
|
|
7308
7270
|
button.MatButtonModule,
|
|
7309
7271
|
formField.MatFormFieldModule,
|
|
7310
|
-
input.MatInputModule
|
|
7272
|
+
input.MatInputModule,
|
|
7273
|
+
overlay.OverlayModule,
|
|
7274
|
+
portal.PortalModule
|
|
7311
7275
|
],
|
|
7312
7276
|
exports: COMPONENTS$1
|
|
7313
7277
|
},] }
|
|
@@ -8397,13 +8361,21 @@
|
|
|
8397
8361
|
}
|
|
8398
8362
|
return "url(" + url + ")";
|
|
8399
8363
|
};
|
|
8364
|
+
Object.defineProperty(CommentComponent.prototype, "replyCount", {
|
|
8365
|
+
get: function () {
|
|
8366
|
+
var _a;
|
|
8367
|
+
return ((_a = this.message.submessages) === null || _a === void 0 ? void 0 : _a.length) || this.message.submessageCount || 0;
|
|
8368
|
+
},
|
|
8369
|
+
enumerable: false,
|
|
8370
|
+
configurable: true
|
|
8371
|
+
});
|
|
8400
8372
|
return CommentComponent;
|
|
8401
8373
|
}());
|
|
8402
8374
|
CommentComponent.decorators = [
|
|
8403
8375
|
{ type: core.Component, args: [{
|
|
8404
8376
|
selector: 'banta-comment',
|
|
8405
|
-
template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button *ngIf=\"!mine\" mat-menu-item (click)=\"report()\">Report</button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canEdit\" mat-menu-item (click)=\"startEdit()\">Edit</button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canDelete\" mat-menu-item (click)=\"delete()\">Delete</button>\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n <span class=\"user-tag\" *ngIf=\"message.user.tag\">{{message.user.tag}}</span>\r\n <span class=\"spacer\"></span>\r\n </div>\r\n <div class=\"content\" *ngIf=\"!editing\">\r\n <span class=\"banta-message-content\" [innerHTML]=\"message.message | markdownToHtml\"></span>\r\n\r\n <ng-container *ngIf=\"message.attachments?.length > 0\">\r\n <banta-lightbox #lightbox></banta-lightbox>\r\n <div class=\"attachments-row\" [class.single]=\"message.attachments?.length === 1\" *ngIf=\"message.attachments && message.attachments?.length > 0\">\r\n <a \r\n href=\"javascript:;\" \r\n (click)=\"showLightbox(attachment)\"\r\n *ngFor=\"let attachment of message.attachments\" \r\n >\r\n <img [src]=\"attachment.url\" alt=\"\">\r\n </a>\r\n </div>\r\n </ng-container>\r\n\r\n <ul class=\"message-facts
|
|
8406
|
-
styles: ["@-webkit-keyframes comment-appear{0%{transform:translate(100vw)}to{transform:translate(0)}}@keyframes comment-appear{0%{transform:translate(100vw)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;position:relative;padding:.5em;visibility:hidden}:host.new{visibility:visible;-webkit-animation-name:comment-appear;animation-name:comment-appear;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-fill-mode:both;animation-fill-mode:both}:host.highlighted{background:#00223a;outline:2px solid #003277}:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host .message-content .attachments-row{margin-top:15px;display:flex;gap:10px}:host .message-content .attachments-row img{border-radius:10px;width:300px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}:host.abbreviated .message-content .content{text-overflow:ellipsis;overflow-y:hidden}:host .actions{display:flex;padding-right:10px;margin-left:60px;align-items:center}:host .actions button{color:#666;flex-shrink:0}
|
|
8377
|
+
template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"share()\">\r\n <mat-icon>share</mat-icon>\r\n Share\r\n </button>\r\n <button *ngIf=\"!mine\" mat-menu-item (click)=\"report()\">\r\n <mat-icon>warning</mat-icon>\r\n Report\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canEdit\" mat-menu-item (click)=\"startEdit()\">\r\n <mat-icon>edit</mat-icon>\r\n Edit\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canDelete\" mat-menu-item (click)=\"delete()\">\r\n <mat-icon>delete</mat-icon>\r\n Delete\r\n </button>\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n <span class=\"user-tag\" *ngIf=\"message.user.tag\">{{message.user.tag}}</span>\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <span class=\"spacer\"></span>\r\n </div>\r\n <div class=\"content\" *ngIf=\"!editing\">\r\n <span class=\"banta-message-content\" [innerHTML]=\"message.message | markdownToHtml\"></span>\r\n\r\n <ng-container *ngIf=\"message.attachments?.length > 0\">\r\n <banta-lightbox #lightbox></banta-lightbox>\r\n <div class=\"attachments-row\" [class.single]=\"message.attachments?.length === 1\" *ngIf=\"message.attachments && message.attachments?.length > 0\">\r\n <a \r\n href=\"javascript:;\" \r\n (click)=\"showLightbox(attachment)\"\r\n *ngFor=\"let attachment of message.attachments\" \r\n >\r\n <img [src]=\"attachment.url\" alt=\"\">\r\n </a>\r\n </div>\r\n </ng-container>\r\n\r\n <ul class=\"message-facts\">\r\n <li *ngIf=\"message.edits?.length > 0\">(Edited)</li>\r\n </ul>\r\n </div>\r\n <div class=\"content\" *ngIf=\"editing\" style=\"padding-bottom: 2em;\">\r\n <div>\r\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\r\n <mat-label>Edit Message</mat-label>\r\n <textarea matInput [(ngModel)]=\"editedMessage\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <button mat-raised-button (click)=\"saveEdit()\">Save</button> \r\n <button mat-button (click)=\"endEditing()\">Cancel</button>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <button mat-button [matTooltip]=\"replyCount > 0 ? 'Replies' : 'Reply'\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n <span class=\"count-indicator\">\r\n {{replyCount > 0 ? 'Replies' : 'Reply'}}\r\n {{replyCount > 0 ? '(' + replyCount + ')' : ''}}\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\" [class.active]=\"message.userState?.liked\">\r\n <button \r\n *ngIf=\"message.transientState?.liking\"\r\n mat-icon-button \r\n [disabled]=\"true\" \r\n [matTooltip]=\"upvoting ? 'Please wait...' : message.userState?.liked ? 'Unlike' : 'Like'\" \r\n matTooltipPosition=\"below\" \r\n >\r\n <mat-spinner [diameter]=\"15\" style=\"margin-left: 1em;\"></mat-spinner>\r\n </button>\r\n <button \r\n *ngIf=\"!message.transientState?.liking\"\r\n mat-button \r\n [disabled]=\"!permissions?.canLike\" \r\n [matTooltip]=\"upvoting ? 'Please wait...' : 'Like'\" \r\n matTooltipPosition=\"below\" \r\n (click)=\"message.userState?.liked ? unlike() : like()\" \r\n >\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n <span class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n {{message.likes}}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n",
|
|
8378
|
+
styles: ["@-webkit-keyframes comment-appear{0%{transform:translate(100vw)}to{transform:translate(0)}}@keyframes comment-appear{0%{transform:translate(100vw)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;position:relative;padding:.5em;visibility:hidden}:host.new{visibility:visible;-webkit-animation-name:comment-appear;animation-name:comment-appear;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-fill-mode:both;animation-fill-mode:both}:host.highlighted{background:#00223a;outline:2px solid #003277}:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host .message-content .attachments-row{margin-top:15px;display:flex;gap:10px}:host .message-content .attachments-row img{border-radius:10px;width:300px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}:host.abbreviated .message-content .content{text-overflow:ellipsis;overflow-y:hidden}:host .actions{display:flex;padding-right:10px;margin-left:60px;align-items:center}:host .actions button,banta-timestamp{color:#666;flex-shrink:0}banta-timestamp{font-size:10pt;margin-left:1em}.user{position:relative;margin:1em 0 0;display:flex;align-items:center}.user .display-name,.user .username{z-index:1;position:relative;padding:0 0 0 1em;font-size:10pt;color:#000;margin:0 auto 0 0;display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:1;flex-grow:0}.user .display-name.username.username.username,.user .username.username.username.username{color:#666}.avatar{height:48px;width:48px;background-position:50%;background-size:cover;background-color:#333;border-radius:100%;flex-shrink:0;flex-grow:0}.counted-action{display:flex;align-items:center}.counted-action.active .count-indicator,.counted-action.active button{color:#00a5ff}.counted-action button .count-indicator{margin-left:.5em}.count-indicator{font-size:9pt;padding:0 0 0 3px;color:#666}:host-context(.mat-dark-theme) .count-indicator{border-color:#333}:host-context(.mat-dark-theme):hover{background:#060606}.user-tag,:host-context(.mat-dark-theme) .user .display-name,:host-context(.mat-dark-theme) .user .username{color:#fff}.user-tag{text-transform:uppercase;font-size:12px;border:1px solid #b27373;background:#7a412b;padding:3px 5px;margin:0 .5em 0 1em;border-radius:3px}.spacer{flex-shrink:1;flex-grow:1}ul.message-facts{margin:0;padding:0;color:#666}ul.message-facts li{list-style-type:none;border-left:1px solid #666;font-size:10pt;padding-left:.5em;margin-left:.5em;margin-top:.5em}ul.message-facts li:first-child{border-left:1px solid transparent;margin-left:0;padding-left:0}@media (max-width:400px){.avatar{height:32px;width:32px}:host .actions{margin-left:0;margin-top:.5em}:host .message-content .content{margin-left:44px;margin-right:.5em}}:host-context(.banta-mobile) .avatar{height:32px;width:32px}:host-context(.banta-mobile) :host .actions{margin-left:0;margin-top:.5em}:host-context(.banta-mobile) :host .message-content .content{margin-left:44px;margin-right:.5em}"]
|
|
8407
8379
|
},] }
|
|
8408
8380
|
];
|
|
8409
8381
|
CommentComponent.propDecorators = {
|
|
@@ -10119,7 +10091,9 @@
|
|
|
10119
10091
|
BantaCommonModule,
|
|
10120
10092
|
EmojiModule,
|
|
10121
10093
|
tooltip.MatTooltipModule,
|
|
10122
|
-
select.MatSelectModule
|
|
10094
|
+
select.MatSelectModule,
|
|
10095
|
+
overlay.OverlayModule,
|
|
10096
|
+
portal.PortalModule
|
|
10123
10097
|
],
|
|
10124
10098
|
exports: COMPONENTS$3
|
|
10125
10099
|
},] }
|
|
@@ -10533,7 +10507,9 @@
|
|
|
10533
10507
|
formField.MatFormFieldModule,
|
|
10534
10508
|
input.MatInputModule,
|
|
10535
10509
|
progressSpinner.MatProgressSpinnerModule,
|
|
10536
|
-
snackBar.MatSnackBarModule
|
|
10510
|
+
snackBar.MatSnackBarModule,
|
|
10511
|
+
overlay.OverlayModule,
|
|
10512
|
+
portal.PortalModule
|
|
10537
10513
|
],
|
|
10538
10514
|
declarations: [
|
|
10539
10515
|
BantaComponent,
|