@banta/sdk 4.6.23 → 4.6.25

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.
@@ -7461,6 +7461,8 @@
7461
7461
  this.showEmojiPanel = false;
7462
7462
  this.overlayX = 'end';
7463
7463
  this.overlayY = 'top';
7464
+ this.originX = 'end';
7465
+ this.originY = 'bottom';
7464
7466
  }
7465
7467
  Object.defineProperty(EmojiSelectorButtonComponent.prototype, "selected", {
7466
7468
  get: function () {
@@ -7482,12 +7484,12 @@
7482
7484
  */
7483
7485
  EmojiSelectorButtonComponent.prototype.insert = function (str) {
7484
7486
  this._selected.next(str);
7487
+ this.close();
7485
7488
  };
7486
7489
  EmojiSelectorButtonComponent.prototype.close = function () {
7487
7490
  if (this.overlayRef) {
7488
7491
  this.overlayRef.dispose();
7489
7492
  this.overlayRef = null;
7490
- return;
7491
7493
  }
7492
7494
  };
7493
7495
  EmojiSelectorButtonComponent.prototype.show = function () {
@@ -7500,8 +7502,8 @@
7500
7502
  .flexibleConnectedTo(this.elementRef)
7501
7503
  .withPositions([
7502
7504
  {
7503
- originX: 'end',
7504
- originY: 'bottom',
7505
+ originX: this.originX,
7506
+ originY: this.originY,
7505
7507
  overlayX: this.overlayX,
7506
7508
  overlayY: this.overlayY
7507
7509
  }
@@ -7540,7 +7542,9 @@
7540
7542
  selectorPanelTemplate: [{ type: core.ViewChild, args: ['selectorPanelTemplate',] }],
7541
7543
  selected: [{ type: core.Output }],
7542
7544
  overlayX: [{ type: core.Input }],
7543
- overlayY: [{ type: core.Input }]
7545
+ overlayY: [{ type: core.Input }],
7546
+ originX: [{ type: core.Input }],
7547
+ originY: [{ type: core.Input }]
7544
7548
  };
7545
7549
 
7546
7550
  var COMPONENTS$1 = [
@@ -7943,7 +7947,7 @@
7943
7947
  ChatMessageComponent.decorators = [
7944
7948
  { type: core.Component, args: [{
7945
7949
  selector: 'banta-chat-message',
7946
- template: "<div class=\"message-content\">\r\n <div class=\"user\" (click)=\"selectUser()\">\r\n <div class=\"avatar\" [style.background-image]=\"avatarForUser(message.user)\"></div>\r\n <label>{{message.user.username}}</label>\r\n </div>\r\n <div class=\"content\">\r\n <div (click)=\"select()\">\r\n {{message.message}}\r\n </div>\r\n <div class=\"status\">\r\n <div class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n {{message.likes}} <mat-icon [inline]=\"true\">star</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"actions\">\r\n <button mat-icon-button matTooltip=\"Upvote\" matTooltipPosition=\"below\" (click)=\"upvote()\">\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n </button>\r\n <button mat-icon-button matTooltip=\"Report\" matTooltipPosition=\"below\" (click)=\"report()\">\r\n <mat-icon [inline]=\"true\">report</mat-icon>\r\n </button>\r\n</div>",
7950
+ template: "<div class=\"message-content\">\r\n <div class=\"user\" (click)=\"selectUser()\">\r\n <div class=\"avatar\" [style.background-image]=\"avatarForUser(message.user)\"></div>\r\n <label>{{message.user.username}}</label>\r\n </div>\r\n <div class=\"content\">\r\n <div (click)=\"select()\">\r\n {{message.message}}\r\n </div>\r\n <div class=\"status\">\r\n <div class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n <mat-icon [inline]=\"true\">star</mat-icon> {{message.likes}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"actions\">\r\n <button mat-icon-button matTooltip=\"Upvote\" matTooltipPosition=\"below\" (click)=\"upvote()\">\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n </button>\r\n <button mat-icon-button matTooltip=\"Report\" matTooltipPosition=\"below\" (click)=\"report()\">\r\n <mat-icon [inline]=\"true\">report</mat-icon>\r\n </button>\r\n</div>",
7947
7951
  styles: [":host{display:flex;flex-direction:row;align-items:center;padding:0 1em;background-color:#fff;color:#000;transition:background-color .4s ease-out}:host .message-content .content{color:#111}:host:hover{background-color:#ddd}:host.highlight{background:#00121b}:host.highlight:hover{background:#01324d}:host:nth-child(2n){background-color:#eee}:host:nth-child(2n):hover{background:#ddd}:host:nth-child(2n) .message-content .content{color:#222}:host:nth-child(2n).highlight{background:#001a2a}:host:nth-child(2n).highlight:hover{background:#002b44}:host .message-content{display:flex;flex-direction:row;flex-grow:1;align-items:center}:host .message-content .content{display:flex;flex-direction:row;padding:5px 0}:host .message-content .content .status{display:flex;flex-direction:row;align-items:center;margin-left:1em}:host .message-content .content .status mat-icon{margin-left:.5em}:host .user{color:#999;font-weight:400;text-align:right;margin-right:.25em;flex-shrink:0;display:flex;align-items:center}:host .user .avatar{background-position:50%;background-size:cover;background-color:#333;border-radius:100%;flex-shrink:0;flex-grow:0;margin-right:1em;width:2em;height:2em}:host .user:after{content:\":\";margin-right:1em}:host .content{flex-grow:1}:host .actions{flex-shrink:0;white-space:nowrap;opacity:0;transition:opacity .4s ease-out}:host:hover .actions{opacity:1}.count-indicator{white-space:nowrap}:host-context(.mat-dark-theme){background-color:#000;color:#fff}:host-context(.mat-dark-theme) .message-content .content{color:#ddd}:host-context(.mat-dark-theme):hover{background-color:#111}:host-context(.mat-dark-theme):nth-child(2n).highlight{background:#001a2a}:host-context(.mat-dark-theme):nth-child(2n).highlight:hover{background:#002b44}:host-context(.mat-dark-theme):nth-child(2n):hover{background-color:#111}:host-context(.mat-dark-theme):nth-child(2n){background-color:#080808}:host-context(.mat-dark-theme):nth-child(2n) .message-content .content{color:#eee}label{margin:0}"]
7948
7952
  },] }
7949
7953
  ];
@@ -8050,6 +8054,7 @@
8050
8054
  this._received$ = this._received.asObservable();
8051
8055
  this.messages = [];
8052
8056
  this.maxMessages = 200;
8057
+ this.emptyLabel = 'Be the first to chat';
8053
8058
  }
8054
8059
  Object.defineProperty(ChatViewComponent.prototype, "source", {
8055
8060
  get: function () {
@@ -8211,8 +8216,8 @@
8211
8216
  ChatViewComponent.decorators = [
8212
8217
  { type: core.Component, args: [{
8213
8218
  selector: 'banta-chat-view',
8214
- template: "<div class=\"message-container\" #messageContainer>\r\n <ng-content select=\"[data-before]\"></ng-content>\r\n <ng-container *ngFor=\"let message of messages\">\r\n <banta-chat-message\r\n *ngIf=\"!message.hidden\"\r\n [message]=\"message\"\r\n [class.highlight]=\"mentionsMe(message)\" \r\n [class.flash]=\"message.id === flashedMessageId\"\r\n (selected)=\"selectMessage(message)\"\r\n (upvoted)=\"upvoteMessage(message)\"\r\n (reported)=\"reportMessage(message)\"\r\n (userSelected)=\"selectMessageUser(message)\"\r\n [attr.data-id]=\"message.id\"\r\n >\r\n </banta-chat-message>\r\n </ng-container>\r\n <ng-content select=\":not([data-before])\"></ng-content>\r\n</div>",
8215
- styles: [":host{display:flex;flex-direction:column;flex-grow:1}.message-container{flex-grow:1;overflow-y:auto;overflow-x:hidden;height:10em;color:#000;background:#fff;padding:.5em 1em .5em .5em}.message-container.no-scroll{height:auto;overflow-y:visible}:host-context(.mat-dark-theme) .message-container{color:#fff;background:#000}banta-chat-message.flash{-webkit-animation:flash;animation:flash;-webkit-animation-duration:2.5s;animation-duration:2.5s;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes flash{0%{transform:scale(1);background:#425700}25%{transform:scale(1.05)}50%{transform:scale(1)}75%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes flash{0%{transform:scale(1);background:#425700}25%{transform:scale(1.05)}50%{transform:scale(1)}75%{transform:scale(1.05)}to{transform:scale(1)}}"]
8219
+ template: "<div class=\"message-container\" #messageContainer>\r\n <ng-content select=\"[data-before]\"></ng-content>\r\n \r\n <div class=\"empty\" *ngIf=\"messages.length === 0\">\r\n {{emptyLabel}}\r\n </div>\r\n \r\n <ng-container *ngFor=\"let message of messages\">\r\n <banta-chat-message\r\n *ngIf=\"!message.hidden\"\r\n [message]=\"message\"\r\n [class.highlight]=\"mentionsMe(message)\" \r\n [class.flash]=\"message.id === flashedMessageId\"\r\n (selected)=\"selectMessage(message)\"\r\n (upvoted)=\"upvoteMessage(message)\"\r\n (reported)=\"reportMessage(message)\"\r\n (userSelected)=\"selectMessageUser(message)\"\r\n [attr.data-id]=\"message.id\"\r\n >\r\n </banta-chat-message>\r\n </ng-container>\r\n <ng-content select=\":not([data-before])\"></ng-content>\r\n</div>",
8220
+ styles: [":host{display:flex;flex-direction:column;flex-grow:1}.message-container{flex-grow:1;overflow-y:auto;overflow-x:hidden;height:10em;color:#000;background:#fff;padding:.5em 1em .5em .5em}.message-container.no-scroll{height:auto;overflow-y:visible}:host-context(.mat-dark-theme) .message-container{color:#fff;background:#000}banta-chat-message.flash{-webkit-animation:flash;animation:flash;-webkit-animation-duration:2.5s;animation-duration:2.5s;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes flash{0%{transform:scale(1);background:#425700}25%{transform:scale(1.05)}50%{transform:scale(1)}75%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes flash{0%{transform:scale(1);background:#425700}25%{transform:scale(1.05)}50%{transform:scale(1)}75%{transform:scale(1.05)}to{transform:scale(1)}}.empty{text-align:center;margin:2em;color:#888;font-size:150%}"]
8216
8221
  },] }
8217
8222
  ];
8218
8223
  ChatViewComponent.ctorParameters = function () { return [
@@ -8227,7 +8232,8 @@
8227
8232
  upvoted: [{ type: core.Output }],
8228
8233
  received: [{ type: core.Output }],
8229
8234
  messageContainer: [{ type: core.ViewChild, args: ['messageContainer',] }],
8230
- maxMessages: [{ type: core.Input }]
8235
+ maxMessages: [{ type: core.Input }],
8236
+ emptyLabel: [{ type: core.Input }]
8231
8237
  };
8232
8238
 
8233
8239
  /**
@@ -8241,6 +8247,8 @@
8241
8247
  this.signInLabel = 'Sign In';
8242
8248
  this.sendLabel = 'Send';
8243
8249
  this.permissionDeniedLabel = 'Send';
8250
+ this.messageFieldPlaceholder = 'Chat';
8251
+ this.emptyLabel = 'Be the first to chat';
8244
8252
  this._selected = new rxjs.Subject();
8245
8253
  this._selected$ = this._selected.asObservable();
8246
8254
  this._reported = new rxjs.Subject();
@@ -8426,7 +8434,10 @@
8426
8434
  case 3:
8427
8435
  _b.sent();
8428
8436
  _b.label = 4;
8429
- case 4: return [3 /*break*/, 6];
8437
+ case 4:
8438
+ this.chatView.scrollToLatest();
8439
+ this.inputElementRef.nativeElement.focus();
8440
+ return [3 /*break*/, 6];
8430
8441
  case 5:
8431
8442
  e_1 = _b.sent();
8432
8443
  console.error("Failed to send message: ", message);
@@ -8442,7 +8453,7 @@
8442
8453
  BantaChatComponent.decorators = [
8443
8454
  { type: core.Component, args: [{
8444
8455
  selector: 'banta-chat',
8445
- template: "<banta-chat-view \r\n #chatView\r\n [source]=\"source\"\r\n (upvoted)=\"upvote($event)\"\r\n (reported)=\"report($event)\"\r\n (selected)=\"select($event)\"\r\n (received)=\"onReceived($event)\"\r\n (userSelected)=\"selectUser($event)\"\r\n ></banta-chat-view>\r\n\r\n<form class=\"new-message\" (submit)=\"sendMessage()\">\r\n \r\n <div class=\"entry-container\">\r\n <input\r\n type=\"text\"\r\n name=\"message\" \r\n autocomplete=\"off\"\r\n (keydown)=\"onKeyDown($event)\"\r\n [(ngModel)]=\"newMessage.message\" />\r\n \r\n <emoji-selector-button\r\n (selected)=\"insertEmoji($event)\"\r\n ></emoji-selector-button>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n\r\n <ng-container *ngIf=\"!user\">\r\n <button type=\"button\" (click)=\"showSignIn()\" mat-raised-button color=\"primary\">{{signInLabel}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"user\">\r\n <button *ngIf=\"canChat\" [disabled]=\"!newMessage.message\" mat-raised-button color=\"primary\">{{sendLabel}}</button>\r\n <button *ngIf=\"!canChat\" type=\"button\" (click)=\"sendPermissionError()\" mat-raised-button color=\"primary\">{{permissionDeniedLabel}}</button>\r\n </ng-container>\r\n </div>\r\n</form>",
8456
+ template: "<banta-chat-view \r\n #chatView\r\n [source]=\"source\"\r\n [emptyLabel]=\"emptyLabel\"\r\n (upvoted)=\"upvote($event)\"\r\n (reported)=\"report($event)\"\r\n (selected)=\"select($event)\"\r\n (received)=\"onReceived($event)\"\r\n (userSelected)=\"selectUser($event)\"\r\n ></banta-chat-view>\r\n\r\n<form class=\"new-message\" (submit)=\"sendMessage()\">\r\n \r\n <div class=\"entry-container\">\r\n <input\r\n #input\r\n type=\"text\"\r\n name=\"message\" \r\n autocomplete=\"off\"\r\n [placeholder]=\"messageFieldPlaceholder\"\r\n (keydown)=\"onKeyDown($event)\"\r\n [(ngModel)]=\"newMessage.message\" />\r\n \r\n <emoji-selector-button\r\n (selected)=\"insertEmoji($event)\"\r\n overlayY=\"bottom\"\r\n overlayX=\"end\"\r\n originY=\"top\"\r\n ></emoji-selector-button>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n\r\n <ng-container *ngIf=\"!user\">\r\n <button type=\"button\" (click)=\"showSignIn()\" mat-raised-button color=\"primary\">{{signInLabel}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"user\">\r\n <button *ngIf=\"canChat\" [disabled]=\"!newMessage.message\" mat-raised-button color=\"primary\">{{sendLabel}}</button>\r\n <button *ngIf=\"!canChat\" type=\"button\" (click)=\"sendPermissionError()\" mat-raised-button color=\"primary\">{{permissionDeniedLabel}}</button>\r\n </ng-container>\r\n </div>\r\n</form>",
8446
8457
  styles: [":host{flex-direction:column;border-radius:5px;padding:10px;font-size:10pt;min-height:1px}.entry-container,:host{display:flex;flex-grow:1}.entry-container{flex-direction:row;position:relative}.entry-container emoji-selector-button{position:absolute;right:0;top:.15em}.entry-container input{height:2.6em;font-size:12pt;padding-left:1em}.entry-container input:-webkit-autofill,.entry-container input:-webkit-autofill:focus,.entry-container input:-webkit-autofill:hover{outline:1px solid #9da302;-webkit-text-fill-color:#9da302;-webkit-box-shadow:0 0 0 1000px #211e07 inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s;caret-color:#9da302}.entry-container emoji-selector-panel{pointer-events:none;opacity:0;position:absolute;bottom:3.5em;right:0}.entry-container emoji-selector-panel.visible{opacity:1;pointer-events:auto}form{display:flex;padding:.5em 0;align-items:center}form textarea{font-size:14pt;background:#000;color:#fff;border:1px solid #333;min-height:6em;width:100%}form input[type=text]{background:#fff;color:#000;border:1px solid #ccc;width:100%;height:2.5em}form .actions{margin-left:1em}form button{display:block;margin:0 0 0 auto}:host-context(.mat-dark-theme) form input[type=text]{background:#000;color:#fff;border:1px solid #333}"]
8447
8458
  },] }
8448
8459
  ];
@@ -8456,6 +8467,8 @@
8456
8467
  signInLabel: [{ type: core.Input }],
8457
8468
  sendLabel: [{ type: core.Input }],
8458
8469
  permissionDeniedLabel: [{ type: core.Input }],
8470
+ messageFieldPlaceholder: [{ type: core.Input }],
8471
+ emptyLabel: [{ type: core.Input }],
8459
8472
  selected: [{ type: core.Output }],
8460
8473
  reported: [{ type: core.Output }],
8461
8474
  upvoted: [{ type: core.Output }],
@@ -8463,7 +8476,8 @@
8463
8476
  permissionDeniedError: [{ type: core.Output }],
8464
8477
  signInSelected: [{ type: core.Output }],
8465
8478
  received: [{ type: core.Output }],
8466
- chatView: [{ type: core.ViewChild, args: ['chatView', { static: true },] }]
8479
+ chatView: [{ type: core.ViewChild, args: ['chatView',] }],
8480
+ inputElementRef: [{ type: core.ViewChild, args: ['input',] }]
8467
8481
  };
8468
8482
 
8469
8483
  var COMPONENTS$2 = [