@banta/sdk 4.3.0 → 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.
@@ -16,6 +16,7 @@ export class CommentFieldComponent {
16
16
  this.label = 'Post a comment';
17
17
  this.permissionDeniedLabel = 'Unavailable';
18
18
  this.signInLabel = 'Sign In';
19
+ this.maxLength = 1500;
19
20
  this.placeholder = '';
20
21
  this.textChanged = new Subject();
21
22
  this.participants = [];
@@ -264,7 +265,7 @@ export class CommentFieldComponent {
264
265
  CommentFieldComponent.decorators = [
265
266
  { type: Component, args: [{
266
267
  selector: 'banta-comment-field',
267
- 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(' + userAvatarUrl + ')'\"\r\n ></a>\r\n </div>\r\n <div class=\"text-container\">\r\n <div class=\"field-container\">\r\n <div class=\"field-row\">\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 <div class=\"options-line\">\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\" [matTooltip]=\"sendError.message\" (click)=\"alertError()\">\r\n <mat-icon *ngIf=\"sendError\">error</mat-icon>\r\n {{sendError.message}}\r\n </div>\r\n <div class=\"spacer\"></div>\r\n <div class=\"custom\">\r\n <ng-content></ng-content>\r\n </div>\r\n <banta-attachment-button \r\n *ngIf=\"allowAttachments\"\r\n (addedAttachment)=\"addedAttachment($event)\"\r\n (attachmentError)=\"attachmentError($event)\"\r\n ></banta-attachment-button>\r\n <emoji-selector-button (selected)=\"insertEmoji($event)\"></emoji-selector-button>\r\n </div>\r\n \r\n </div>\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 <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\r\n\r\n <div *ngIf=\"chatMessageAttachments && chatMessageAttachments.length\" class=\"message-attachments-container\">\r\n <div *ngFor=\"let attachment of chatMessageAttachments; index as attachmentIndex\"\r\n class=\"message-attachment\" [class.with-border]=\"!attachment.url\">\r\n <button (click)=\"removeAttachment(attachmentIndex)\" mat-mini-fab color=\"primary\" class=\"remove-img\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <ng-container *ngIf=\"attachment.transientState?.error\">\r\n <mat-icon class=\"error\">close</mat-icon>\r\n <em class=\"error\">{{attachment.transientState?.errorMessage || 'Error'}}</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!attachment.transientState?.error\">\r\n <ng-container *ngIf=\"attachment.transientState?.uploading\">\r\n <mat-spinner></mat-spinner>\r\n <em>Uploading...</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!attachment.transientState?.uploading\">\r\n <img [src]=\"attachment.url\" alt=\"Message Attachment\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!user\">\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n type=\"button\"\r\n (click)=\"showSignIn()\"\r\n >{{signInLabel}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"user\">\r\n <button\r\n mat-raised-button\r\n class=\"send\"\r\n color=\"primary\"\r\n [disabled]=\"!sendButtonEnabled\"\r\n >\r\n <ng-container *ngIf=\"canComment\">\r\n <mat-icon *ngIf=\"!sending\">chevron_right</mat-icon>\r\n <mat-spinner *ngIf=\"sending\" class=\"icon\" diameter=\"18\" strokeWidth=\"2\"></mat-spinner>\r\n </ng-container>\r\n <span class=\"label\">\r\n <ng-container *ngIf=\"!canComment\">\r\n {{permissionDeniedLabel}}\r\n </ng-container>\r\n <ng-container *ngIf=\"canComment\">\r\n <ng-container *ngIf=\"!sending\">\r\n {{sendLabel}}\r\n </ng-container>\r\n <ng-container *ngIf=\"sending\">\r\n {{sendingLabel}}\r\n </ng-container>\r\n </ng-container>\r\n </span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n</form>",
268
+ 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(' + userAvatarUrl + ')'\"\r\n ></a>\r\n </div>\r\n <div class=\"text-container\">\r\n <div class=\"field-container\">\r\n <div class=\"field-row\">\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 [maxlength]=\"maxLength\"\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 <div class=\"options-line\">\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\" [matTooltip]=\"sendError.message\" (click)=\"alertError()\">\r\n <mat-icon *ngIf=\"sendError\">error</mat-icon>\r\n {{sendError.message}}\r\n </div>\r\n <div class=\"spacer\"></div>\r\n <div class=\"custom\">\r\n <ng-content></ng-content>\r\n </div>\r\n <banta-attachment-button \r\n *ngIf=\"allowAttachments\"\r\n (addedAttachment)=\"addedAttachment($event)\"\r\n (attachmentError)=\"attachmentError($event)\"\r\n ></banta-attachment-button>\r\n <emoji-selector-button (selected)=\"insertEmoji($event)\"></emoji-selector-button>\r\n </div>\r\n \r\n </div>\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 <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\r\n\r\n <div *ngIf=\"chatMessageAttachments && chatMessageAttachments.length\" class=\"message-attachments-container\">\r\n <div *ngFor=\"let attachment of chatMessageAttachments; index as attachmentIndex\"\r\n class=\"message-attachment\" [class.with-border]=\"!attachment.url\">\r\n <button (click)=\"removeAttachment(attachmentIndex)\" mat-mini-fab color=\"primary\" class=\"remove-img\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <ng-container *ngIf=\"attachment.transientState?.error\">\r\n <mat-icon class=\"error\">close</mat-icon>\r\n <em class=\"error\">{{attachment.transientState?.errorMessage || 'Error'}}</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!attachment.transientState?.error\">\r\n <ng-container *ngIf=\"attachment.transientState?.uploading\">\r\n <mat-spinner></mat-spinner>\r\n <em>Uploading...</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!attachment.transientState?.uploading\">\r\n <img [src]=\"attachment.url\" alt=\"Message Attachment\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!user\">\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n type=\"button\"\r\n (click)=\"showSignIn()\"\r\n >{{signInLabel}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"user\">\r\n <button\r\n mat-raised-button\r\n class=\"send\"\r\n color=\"primary\"\r\n [disabled]=\"!sendButtonEnabled\"\r\n >\r\n <ng-container *ngIf=\"canComment\">\r\n <mat-icon *ngIf=\"!sending\">chevron_right</mat-icon>\r\n <mat-spinner *ngIf=\"sending\" class=\"icon\" diameter=\"18\" strokeWidth=\"2\"></mat-spinner>\r\n </ng-container>\r\n <span class=\"label\">\r\n <ng-container *ngIf=\"!canComment\">\r\n {{permissionDeniedLabel}}\r\n </ng-container>\r\n <ng-container *ngIf=\"canComment\">\r\n <ng-container *ngIf=\"!sending\">\r\n {{sendLabel}}\r\n </ng-container>\r\n <ng-container *ngIf=\"sending\">\r\n {{sendingLabel}}\r\n </ng-container>\r\n </ng-container>\r\n </span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n</form>",
268
269
  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;position:relative;z-index:20}.avatar-container{width:calc(48px + 1.75em);display:flex;justify-content:flex-end;flex-shrink:0}.avatar-container .avatar{width:48px;height:48px;background:#000;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;min-width:0}form .text-container textarea{font-size:14pt;width:100%}form .text-container textarea[disabled]{opacity:.5}form .text-container mat-spinner.loading{position:absolute;left:.5em;bottom:.5em}form .text-container .options-line{display:flex;align-items:center}form .text-container .options-line>*{flex-shrink:0}form .text-container .options-line .error-message{left:.5em;bottom:.5em;color:#683333;overflow-x:hidden;max-width:1.5em;white-space:nowrap;transition:max-width 2s ease-in-out;text-overflow:ellipsis;overflow:hidden;flex-shrink:1}form .text-container .options-line .error-message.expanded,form .text-container .options-line .error-message:hover{max-width:100%}form .text-container .options-line .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;flex-shrink:0}form button{display:block;margin:0 0 0 auto}form.new-message{display:flex;align-items:flex-start;min-width:0}form.new-message .field-container{flex-grow:1;display:flex;flex-direction:column;min-width:0}form.new-message mat-form-field{width:100%}form.new-message mat-form-field ::ng-deep .mat-form-field-wrapper{padding-bottom:0}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;flex-shrink:0}.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}}:host-context(.banta-mobile) :host{margin:0}:host-context(.banta-mobile) .avatar-container{width:auto;flex-shrink:0}:host-context(.banta-mobile) .avatar-container .avatar{width:32px;height:32px;margin-top:1.5em}:host-context(.banta-mobile) button.send{min-width:auto;margin-top:1.5em}:host-context(.banta-mobile) button.send .label{display:none}.message-attachments-container{display:flex;gap:20px}.message-attachments-container .message-attachment{width:300px;position:relative;text-align:center}.message-attachments-container .message-attachment.with-border{outline:1px solid #333;padding:1em 0}.message-attachments-container .message-attachment mat-spinner{display:block;margin:0 auto .5em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.message-attachments-container .message-attachment mat-icon.error{display:block;font-size:48px;width:48px;height:48px;margin:0 auto .5em}.message-attachments-container .message-attachment .error{color:#b76363}.message-attachments-container .message-attachment img{width:300px;border-radius:10px}.message-attachments-container .message-attachment .remove-img{position:absolute;right:10px;top:10px;margin:0}.field-row{position:relative}"]
269
270
  },] }
270
271
  ];
@@ -280,6 +281,7 @@ CommentFieldComponent.propDecorators = {
280
281
  label: [{ type: Input }],
281
282
  permissionDeniedLabel: [{ type: Input }],
282
283
  signInLabel: [{ type: Input }],
284
+ maxLength: [{ type: Input }],
283
285
  placeholder: [{ type: Input }],
284
286
  textChanged: [{ type: Output }],
285
287
  shouldInterceptMessageSend: [{ type: Input }],
@@ -292,4 +294,4 @@ CommentFieldComponent.propDecorators = {
292
294
  permissionDeniedError: [{ type: Output }],
293
295
  submit: [{ type: Input }]
294
296
  };
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tZW50cy9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBaUJyQyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBU2EsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFeEIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3JDLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbkQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ1YsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNuQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUN6QixVQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDekIsMEJBQXFCLEdBQUcsYUFBYSxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVFuQyxpQkFBWSxHQUFZLEVBQUUsQ0FBQztRQU01QiwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBNEJ2RCx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIs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UyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OztZQXpUSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsaTdMQUE2Qzs7YUFFaEQ7OztxQkFHSSxLQUFLO21CQUNMLEtBQUs7eUJBQ0wsS0FBSzsrQkFDTCxLQUFLOzZCQUVMLE1BQU07aUNBQ04sTUFBTTt3QkFPTixLQUFLOzJCQUNMLEtBQUs7b0JBQ0wsS0FBSztvQ0FDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxNQUFNO3lDQUNOLEtBQUs7NkJBRUwsU0FBUyxTQUFDLGNBQWM7c0NBQ3hCLFNBQVMsU0FBQyx1QkFBdUI7eUJBQ2pDLFNBQVMsU0FBQyxVQUFVO3VCQUVwQixLQUFLOzJCQUNMLEtBQUs7K0JBQ0wsS0FBSztvQ0FPTCxNQUFNO3FCQXNOTixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VBdHRhY2htZW50LCBVc2VyIH0gZnJvbSBcIkBiYW50YS9jb21tb25cIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IENoYXRTb3VyY2VCYXNlIH0gZnJvbSBcIi4uLy4uL2NoYXQtc291cmNlLWJhc2VcIjtcclxuaW1wb3J0IHsgRU1PSklTIH0gZnJvbSBcIi4uLy4uL2Vtb2ppXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9Db21wbGV0ZU9wdGlvbiB7XHJcbiAgICBsYWJlbCA6IHN0cmluZztcclxuICAgIGFjdGlvbj8gOiAoKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhhc2hUYWcge1xyXG4gICAgaGFzaHRhZyA6IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uIDogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFudGEtY29tbWVudC1maWVsZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC1maWVsZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tZW50LWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1lbnRGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gICAgQElucHV0KCkgc291cmNlIDogQ2hhdFNvdXJjZUJhc2U7XHJcbiAgICBASW5wdXQoKSB1c2VyIDogVXNlcjtcclxuICAgIEBJbnB1dCgpIGNhbkNvbW1lbnQgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgYWxsb3dBdHRhY2htZW50cyA9IGZhbHNlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBzaWduSW5TZWxlY3RlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdEF2YXRhclNlbGVjdGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBzZW5kaW5nID0gZmFsc2U7XHJcbiAgICBzZW5kRXJyb3IgOiBFcnJvcjtcclxuICAgIGV4cGFuZEVycm9yID0gZmFsc2U7XHJcblxyXG4gICAgdGV4dCA6IHN0cmluZyA9ICcnO1xyXG4gICAgQElucHV0KCkgc2VuZExhYmVsID0gJ1NlbmQnO1xyXG4gICAgQElucHV0KCkgc2VuZGluZ0xhYmVsID0gJ1NlbmRpbmcnO1xyXG4gICAgQElucHV0KCkgbGFiZWwgPSAnUG9zdCBhIGNvbW1lbnQnO1xyXG4gICAgQElucHV0KCkgcGVybWlzc2lvbkRlbmllZExhYmVsID0gJ1VuYXZhaWxhYmxlJztcclxuICAgIEBJbnB1dCgpIHNpZ25JbkxhYmVsID0gJ1NpZ24gSW4nO1xyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIEBPdXRwdXQoKSB0ZXh0Q2hhbmdlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBASW5wdXQoKSBzaG91bGRJbnRlcmNlcHRNZXNzYWdlU2VuZD86IChtZXNzYWdlOiBDaGF0TWVzc2FnZSwgc291cmNlOiBDaGF0U291cmNlQmFzZSkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlJykgYXV0b2NvbXBsZXRlRWwgOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZUNvbnRhaW5lcicpIGF1dG9jb21wbGV0ZUNvbnRhaW5lckVsIDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgICBAVmlld0NoaWxkKCd0ZXh0YXJlYScpIHRleHRhcmVhRWwgOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xyXG5cclxuICAgIEBJbnB1dCgpIGhhc2h0YWdzIDogSGFzaFRhZ1tdO1xyXG4gICAgQElucHV0KCkgcGFydGljaXBhbnRzIDogVXNlcltdID0gW107XHJcbiAgICBASW5wdXQoKSBnZW5lcmljQXZhdGFyVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgZ2V0IHVzZXJBdmF0YXJVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlcj8uYXZhdGFyVXJsIHx8IHRoaXMuZ2VuZXJpY0F2YXRhclVybDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3Blcm1pc3Npb25EZW5pZWRFcnJvciA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGdldCBwZXJtaXNzaW9uRGVuaWVkRXJyb3IoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvbkRlbmllZEVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICBsZXQgcm9vdCA9IGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcignW25nLXZlcnNpb25dJykgfHwgZG9jdW1lbnQuYm9keTtcclxuICAgICAgICByb290LmFwcGVuZENoaWxkKHRoaXMuYXV0b2NvbXBsZXRlRWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFBlcm1pc3Npb25EZW5pZWQobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fcGVybWlzc2lvbkRlbmllZEVycm9yLm5leHQobWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0F1dG9Db21wbGV0ZShvcHRpb25zIDogQXV0b0NvbXBsZXRlT3B0aW9uW10pIHtcclxuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZVNlbGVjdGVkID0gMDtcclxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICAgIGxldCBwb3MgPSB0aGlzLmF1dG9jb21wbGV0ZUNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbGV0IHNpemUgPSB0aGlzLmF1dG9jb21wbGV0ZUVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRWwubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7d2luZG93LnNjcm9sbFggKyBwb3MubGVmdH1weGA7XHJcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVFbC5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IGAke3dpbmRvdy5zY3JvbGxZICsgcG9zLnRvcH1weGA7XHJcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVFbC5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7cG9zLndpZHRofXB4YDtcclxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGF1dG9jb21wbGV0ZVZpc2libGUgPSBmYWxzZTtcclxuICAgIGF1dG9jb21wbGV0ZU9wdGlvbnMgOiBBdXRvQ29tcGxldGVPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIGFjdGl2YXRlQXV0b0NvbXBsZXRlKG9wdGlvbiA6IEF1dG9Db21wbGV0ZU9wdGlvbikge1xyXG4gICAgICAgIG9wdGlvbi5hY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmRpc21pc3NBdXRvQ29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNtaXNzQXV0b0NvbXBsZXRlKCkge1xyXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29tcGxldGlvbkZ1bmMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY29tcGxldGlvblByZWZpeCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZXJyb3JUaW1lb3V0O1xyXG4gICAgaW5kaWNhdGVFcnJvcihtZXNzYWdlIDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZW5kRXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5leHBhbmRFcnJvciA9IGZhbHNlO1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmVycm9yVGltZW91dCk7XHJcbiAgICAgICAgdGhpcy5lcnJvclRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5leHBhbmRFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZEVycm9yID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sIDUqMTAwMCk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuXHJcbiAgICAgICAgLy8gT24gbW9iaWxlLCBqdXN0IHNob3cgYW4gYWxlcnQgZGlhbG9nXHJcbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNDMwKVxyXG4gICAgICAgICAgICBhbGVydChtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wbGV0aW9uRnVuYyA6IChzdHIgOiBzdHJpbmcpID0+IEF1dG9Db21wbGV0ZU9wdGlvbltdO1xyXG5cclxuICAgIGNvbXBsZXRpb25QcmVmaXggOiBzdHJpbmc7XHJcbiAgICBhdXRvQ29tcGxldGVTZWxlY3RlZCA6IG51bWJlciA9IDA7XHJcblxyXG4gICAgZ2V0IGlzVmFsaWRNZXNzYWdlKCkge1xyXG4gICAgICAgIHJldHVybiAodGhpcy50ZXh0IHx8IHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cy5sZW5ndGggPiAwKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaGFzUGVuZGluZ0F0dGFjaG1lbnRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoYXRNZXNzYWdlQXR0YWNobWVudHMuc29tZSh4ID0+IHgudHJhbnNpZW50U3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZW5kQnV0dG9uRW5hYmxlZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2FuQ29tbWVudCkge1xyXG4gICAgICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHdhbnQgdG8gZW5hYmxlIHRoZSBidXR0b24gYmVjYXVzZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gXHJcbiAgICAgICAgICAgIC8vIHNlbmQgdGhlIHBlcm1pc3Npb25EZW5pZWQgbWVzc2FnZSB1cCB0byB0aGUgaG9zdC5cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkTWVzc2FnZVxyXG4gICAgICAgICAgICAmJiAhdGhpcy5oYXNQZW5kaW5nQXR0YWNobWVudHNcclxuICAgICAgICAgICAgJiYgIXRoaXMuc2VuZGluZ1xyXG4gICAgICAgIDtcclxuICAgIH1cclxuICAgIGFzeW5jIGF1dG9jb21wbGV0ZShyZXBsYWNlbWVudCA6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBlbCA9IHRoaXMudGV4dGFyZWFFbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMudGV4dCA9IHRoaXMudGV4dC5zbGljZSgwLCBlbC5zZWxlY3Rpb25TdGFydCAtIHRoaXMuY29tcGxldGlvblByZWZpeC5sZW5ndGgpICsgcmVwbGFjZW1lbnQgKyB0aGlzLnRleHQuc2xpY2UoZWwuc2VsZWN0aW9uU3RhcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluc2VydChzdHIgOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgZWwgPSB0aGlzLnRleHRhcmVhRWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLnRleHQgPSB0aGlzLnRleHQuc2xpY2UoMCwgZWwuc2VsZWN0aW9uU3RhcnQpICsgc3RyICsgdGhpcy50ZXh0LnNsaWNlKGVsLnNlbGVjdGlvblN0YXJ0KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbktleURvd24oZXZlbnQgOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlVmlzaWJsZSkge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNtaXNzQXV0b0NvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdTaGlmdCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZUF1dG9Db21wbGV0ZSh0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnNbdGhpcy5hdXRvQ29tcGxldGVTZWxlY3RlZF0pO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9Db21wbGV0ZVNlbGVjdGVkID09PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlU2VsZWN0ZWQgPSB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZVNlbGVjdGVkID0gdGhpcy5hdXRvQ29tcGxldGVTZWxlY3RlZCAtIDE7XHJcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVTZWxlY3RlZCA9ICh0aGlzLmF1dG9Db21wbGV0ZVNlbGVjdGVkICsgMSkgJSB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGV2ZW50LmN0cmxLZXkpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZW5kTWVzc2FnZSgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb21wbGV0aW9uRnVuYykge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0aW9uUHJlZml4ID0gdGhpcy5jb21wbGV0aW9uUHJlZml4LnNsaWNlKDAsIHRoaXMuY29tcGxldGlvblByZWZpeC5sZW5ndGggLSAxKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb21wbGV0aW9uUHJlZml4ID09PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzbWlzc0F1dG9Db21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICcgJyB8fCBldmVudC5rZXkubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNtaXNzQXV0b0NvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRpb25QcmVmaXggKz0gZXZlbnQua2V5O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNob3dBdXRvQ29tcGxldGUodGhpcy5jb21wbGV0aW9uRnVuYyh0aGlzLmNvbXBsZXRpb25QcmVmaXgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnOicpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvQ29tcGxldGUoZXZlbnQsIHByZWZpeCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnNsaWNlKDEpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBtYWtlcyA6LSksIDotKCBldGMgd29yayAoYXMgdGhleSBhcmUgXCI6KVwiIGV0YyBpbiB0aGUgZGIpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeC5zdGFydHNXaXRoKCctJykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IHByZWZpeC5zbGljZSgxKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKEVNT0pJUylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihrID0+IGsuaW5jbHVkZXMocHJlZml4KSB8fCBFTU9KSVNba10ua2V5d29yZHMuc29tZShrdyA9PiBrdy5pbmNsdWRlcyhwcmVmaXgpKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChrID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7RU1PSklTW2tdLmNoYXJ9ICR7a31gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmF1dG9jb21wbGV0ZShFTU9KSVNba10uY2hhcilcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCA1KVxyXG4gICAgICAgICAgICAgICAgICAgIDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0AnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b0NvbXBsZXRlKGV2ZW50LCBwcmVmaXggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IHByZWZpeC5zbGljZSgxKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJ0aWNpcGFudHMuZmlsdGVyKHggPT4geC51c2VybmFtZS5pbmNsdWRlcyhwcmVmaXgpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKHAgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgQCR7cC51c2VybmFtZX0gLS0gJHtwLmRpc3BsYXlOYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuYXV0b2NvbXBsZXRlKGBAJHtwLnVzZXJuYW1lfWApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICAgICAgICAgIDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJyMnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b0NvbXBsZXRlKGV2ZW50LCBwcmVmaXggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IHByZWZpeC5zbGljZSgxKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzaHRhZ3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihodCA9PiBodC5oYXNodGFnLmluY2x1ZGVzKHByZWZpeCkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoaHQgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgIyR7aHQuaGFzaHRhZ30ke2h0LmRlc2NyaXB0aW9uID8gYCAtLSAke2h0LmRlc2NyaXB0aW9ufWAgOiBgYH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmF1dG9jb21wbGV0ZShgIyR7aHQuaGFzaHRhZ31gKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDUpXHJcbiAgICAgICAgICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRBdXRvQ29tcGxldGUoZXZlbnQgOiBLZXlib2FyZEV2ZW50LCBjb21wbGV0aW9uRnVuYyA6IChzdHIgOiBzdHJpbmcpID0+IEF1dG9Db21wbGV0ZU9wdGlvbltdKSB7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0aW9uUHJlZml4ID0gZXZlbnQua2V5O1xyXG4gICAgICAgIHRoaXMuY29tcGxldGlvbkZ1bmMgPSBjb21wbGV0aW9uRnVuYztcclxuICAgICAgICB0aGlzLnNob3dBdXRvQ29tcGxldGUodGhpcy5jb21wbGV0aW9uRnVuYyh0aGlzLmNvbXBsZXRpb25QcmVmaXgpKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkJsdXIoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmRpc21pc3NBdXRvQ29tcGxldGUoKSwgMjUwKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnNlcnRFbW9qaSh0ZXh0IDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy50ZXh0ICs9IHRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd1NpZ25JbigpIHtcclxuICAgICAgICB0aGlzLnNpZ25JblNlbGVjdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93RWRpdEF2YXRhcigpIHtcclxuICAgICAgICB0aGlzLmVkaXRBdmF0YXJTZWxlY3RlZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHN1Ym1pdDogKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSA9PiBib29sZWFuO1xyXG5cclxuICAgIGFzeW5jIHNlbmRNZXNzYWdlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zb3VyY2UpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5zZW5kaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNlbmRFcnJvciA9IG51bGw7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHRleHQgPSAodGhpcy50ZXh0IHx8ICcnKS50cmltKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5jYW5Db21tZW50ICYmICF0aGlzLmlzVmFsaWRNZXNzYWdlKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSA9IHtcclxuICAgICAgICAgICAgICAgIHVzZXI6IHRoaXMudXNlcixcclxuICAgICAgICAgICAgICAgIHNlbnRBdDogRGF0ZS5ub3coKSxcclxuICAgICAgICAgICAgICAgIHVybDogbG9jYXRpb24uaHJlZixcclxuICAgICAgICAgICAgICAgIGxpa2VzOiAwLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGV4dCxcclxuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRzOiB0aGlzLmNoYXRNZXNzYWdlQXR0YWNobWVudHMuZmlsdGVyKHggPT4geC51cmwpXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zdWJtaXQobWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSAnJztcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cyA9IFtdO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgpLCAxMDAwKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZGljYXRlRXJyb3IoZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGF0TWVzc2FnZUF0dGFjaG1lbnRzOiBDaGF0TWVzc2FnZUF0dGFjaG1lbnRbXSA9IFtdO1xyXG5cclxuICAgIGFkZGVkQXR0YWNobWVudChhdHRhY2htZW50OiBDaGF0TWVzc2FnZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICB0aGlzLmNoYXRNZXNzYWdlQXR0YWNobWVudHMucHVzaChhdHRhY2htZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBhdHRhY2htZW50RXJyb3IoYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50KSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cyA9IHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cy5maWx0ZXIoeCA9PiB4ICE9PSBhdHRhY2htZW50KTtcclxuICAgICAgICB9LCAzMDAwKTtcclxuICAgIH1cclxuXHJcblx0cmVtb3ZlQXR0YWNobWVudChpbmRleDogbnVtYmVyKSB7XHJcblx0XHR0aGlzLmNoYXRNZXNzYWdlQXR0YWNobWVudHMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG4gICAgYWxlcnRFcnJvcigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VuZEVycm9yKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgYWxlcnQodGhpcy5zZW5kRXJyb3IubWVzc2FnZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tZW50cy9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBaUJyQyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBU2EsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFeEIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3JDLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbkQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ1YsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNuQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUN6QixVQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDekIsMEJBQXFCLEdBQUcsYUFBYSxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBUW5DLGlCQUFZLEdBQVksRUFBRSxDQUFDO1FBTTVCLDJCQUFzQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUE0QnZELHdC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Q1gsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7O1lBMVRKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixzK0xBQTZDOzthQUVoRDs7O3FCQUdJLEtBQUs7bUJBQ0wsS0FBSzt5QkFDTCxLQUFLOytCQUNMLEtBQUs7NkJBRUwsTUFBTTtpQ0FDTixNQUFNO3dCQU9OLEtBQUs7MkJBQ0wsS0FBSztvQkFDTCxLQUFLO29DQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsTUFBTTt5Q0FDTixLQUFLOzZCQUVMLFNBQVMsU0FBQyxjQUFjO3NDQUN4QixTQUFTLFNBQUMsdUJBQXVCO3lCQUNqQyxTQUFTLFNBQUMsVUFBVTt1QkFFcEIsS0FBSzsyQkFDTCxLQUFLOytCQUNMLEtBQUs7b0NBT0wsTUFBTTtxQkFzTk4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRNZXNzYWdlQXR0YWNobWVudCwgVXNlciB9IGZyb20gXCJAYmFudGEvY29tbW9uXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBDaGF0U291cmNlQmFzZSB9IGZyb20gXCIuLi8uLi9jaGF0LXNvdXJjZS1iYXNlXCI7XHJcbmltcG9ydCB7IEVNT0pJUyB9IGZyb20gXCIuLi8uLi9lbW9qaVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRvQ29tcGxldGVPcHRpb24ge1xyXG4gICAgbGFiZWwgOiBzdHJpbmc7XHJcbiAgICBhY3Rpb24/IDogKCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIYXNoVGFnIHtcclxuICAgIGhhc2h0YWcgOiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbiA6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JhbnRhLWNvbW1lbnQtZmllbGQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29tbWVudC1maWVsZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tZW50RmllbGRDb21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIHNvdXJjZSA6IENoYXRTb3VyY2VCYXNlO1xyXG4gICAgQElucHV0KCkgdXNlciA6IFVzZXI7XHJcbiAgICBASW5wdXQoKSBjYW5Db21tZW50ID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGFsbG93QXR0YWNobWVudHMgPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgc2lnbkluU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGVkaXRBdmF0YXJTZWxlY3RlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgc2VuZGluZyA9IGZhbHNlO1xyXG4gICAgc2VuZEVycm9yIDogRXJyb3I7XHJcbiAgICBleHBhbmRFcnJvciA9IGZhbHNlO1xyXG5cclxuICAgIHRleHQgOiBzdHJpbmcgPSAnJztcclxuICAgIEBJbnB1dCgpIHNlbmRMYWJlbCA9ICdTZW5kJztcclxuICAgIEBJbnB1dCgpIHNlbmRpbmdMYWJlbCA9ICdTZW5kaW5nJztcclxuICAgIEBJbnB1dCgpIGxhYmVsID0gJ1Bvc3QgYSBjb21tZW50JztcclxuICAgIEBJbnB1dCgpIHBlcm1pc3Npb25EZW5pZWRMYWJlbCA9ICdVbmF2YWlsYWJsZSc7XHJcbiAgICBASW5wdXQoKSBzaWduSW5MYWJlbCA9ICdTaWduIEluJztcclxuICAgIEBJbnB1dCgpIG1heExlbmd0aCA9IDE1MDA7XHJcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgQE91dHB1dCgpIHRleHRDaGFuZ2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIEBJbnB1dCgpIHNob3VsZEludGVyY2VwdE1lc3NhZ2VTZW5kPzogKG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBzb3VyY2U6IENoYXRTb3VyY2VCYXNlKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGUnKSBhdXRvY29tcGxldGVFbCA6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlQ29udGFpbmVyJykgYXV0b2NvbXBsZXRlQ29udGFpbmVyRWwgOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3RleHRhcmVhJykgdGV4dGFyZWFFbCA6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XHJcblxyXG4gICAgQElucHV0KCkgaGFzaHRhZ3MgOiBIYXNoVGFnW107XHJcbiAgICBASW5wdXQoKSBwYXJ0aWNpcGFudHMgOiBVc2VyW10gPSBbXTtcclxuICAgIEBJbnB1dCgpIGdlbmVyaWNBdmF0YXJVcmw6IHN0cmluZztcclxuXHJcbiAgICBnZXQgdXNlckF2YXRhclVybCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyPy5hdmF0YXJVcmwgfHwgdGhpcy5nZW5lcmljQXZhdGFyVXJsO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcGVybWlzc2lvbkRlbmllZEVycm9yID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHBlcm1pc3Npb25EZW5pZWRFcnJvcigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uRGVuaWVkRXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGxldCByb290ID0gZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yKCdbbmctdmVyc2lvbl0nKSB8fCBkb2N1bWVudC5ib2R5O1xyXG4gICAgICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5hdXRvY29tcGxldGVFbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kUGVybWlzc2lvbkRlbmllZChtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9wZXJtaXNzaW9uRGVuaWVkRXJyb3IubmV4dChtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93QXV0b0NvbXBsZXRlKG9wdGlvbnMgOiBBdXRvQ29tcGxldGVPcHRpb25bXSkge1xyXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlU2VsZWN0ZWQgPSAwO1xyXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgICAgbGV0IHBvcyA9IHRoaXMuYXV0b2NvbXBsZXRlQ29udGFpbmVyRWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBsZXQgc2l6ZSA9IHRoaXMuYXV0b2NvbXBsZXRlRWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVFbC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHt3aW5kb3cuc2Nyb2xsWCArIHBvcy5sZWZ0fXB4YDtcclxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gYCR7d2luZG93LnNjcm9sbFkgKyBwb3MudG9wfXB4YDtcclxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtwb3Mud2lkdGh9cHhgO1xyXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXV0b2NvbXBsZXRlVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgYXV0b2NvbXBsZXRlT3B0aW9ucyA6IEF1dG9Db21wbGV0ZU9wdGlvbltdID0gW107XHJcblxyXG4gICAgYWN0aXZhdGVBdXRvQ29tcGxldGUob3B0aW9uIDogQXV0b0NvbXBsZXRlT3B0aW9uKSB7XHJcbiAgICAgICAgb3B0aW9uLmFjdGlvbigpO1xyXG4gICAgICAgIHRoaXMuZGlzbWlzc0F1dG9Db21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc21pc3NBdXRvQ29tcGxldGUoKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0aW9uRnVuYyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0aW9uUHJlZml4ID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvclRpbWVvdXQ7XHJcbiAgICBpbmRpY2F0ZUVycm9yKG1lc3NhZ2UgOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbmRFcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICB0aGlzLmV4cGFuZEVycm9yID0gZmFsc2U7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZXJyb3JUaW1lb3V0KTtcclxuICAgICAgICB0aGlzLmVycm9yVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuZEVycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5lcnJvclRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kRXJyb3IgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSwgNSoxMDAwKTtcclxuICAgICAgICB9LCAxMDApO1xyXG5cclxuICAgICAgICAvLyBPbiBtb2JpbGUsIGp1c3Qgc2hvdyBhbiBhbGVydCBkaWFsb2dcclxuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA0MzApXHJcbiAgICAgICAgICAgIGFsZXJ0KG1lc3NhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBsZXRpb25GdW5jIDogKHN0ciA6IHN0cmluZykgPT4gQXV0b0NvbXBsZXRlT3B0aW9uW107XHJcblxyXG4gICAgY29tcGxldGlvblByZWZpeCA6IHN0cmluZztcclxuICAgIGF1dG9Db21wbGV0ZVNlbGVjdGVkIDogbnVtYmVyID0gMDtcclxuXHJcbiAgICBnZXQgaXNWYWxpZE1lc3NhZ2UoKSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLnRleHQgfHwgdGhpcy5jaGF0TWVzc2FnZUF0dGFjaG1lbnRzLmxlbmd0aCA+IDApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBoYXNQZW5kaW5nQXR0YWNobWVudHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cy5zb21lKHggPT4geC50cmFuc2llbnRTdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlbmRCdXR0b25FbmFibGVkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5jYW5Db21tZW50KSB7XHJcbiAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugd2FudCB0byBlbmFibGUgdGhlIGJ1dHRvbiBiZWNhdXNlIHdlIHdhbnQgdG8gYmUgYWJsZSB0byBcclxuICAgICAgICAgICAgLy8gc2VuZCB0aGUgcGVybWlzc2lvbkRlbmllZCBtZXNzYWdlIHVwIHRvIHRoZSBob3N0LlxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWRNZXNzYWdlXHJcbiAgICAgICAgICAgICYmICF0aGlzLmhhc1BlbmRpbmdBdHRhY2htZW50c1xyXG4gICAgICAgICAgICAmJiAhdGhpcy5zZW5kaW5nXHJcbiAgICAgICAgO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgYXV0b2NvbXBsZXRlKHJlcGxhY2VtZW50IDogc3RyaW5nKSB7XHJcbiAgICAgICAgbGV0IGVsID0gdGhpcy50ZXh0YXJlYUVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy50ZXh0ID0gdGhpcy50ZXh0LnNsaWNlKDAsIGVsLnNlbGVjdGlvblN0YXJ0IC0gdGhpcy5jb21wbGV0aW9uUHJlZml4Lmxlbmd0aCkgKyByZXBsYWNlbWVudCArIHRoaXMudGV4dC5zbGljZShlbC5zZWxlY3Rpb25TdGFydCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5zZXJ0KHN0ciA6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBlbCA9IHRoaXMudGV4dGFyZWFFbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMudGV4dCA9IHRoaXMudGV4dC5zbGljZSgwLCBlbC5zZWxlY3Rpb25TdGFydCkgKyBzdHIgKyB0aGlzLnRleHQuc2xpY2UoZWwuc2VsZWN0aW9uU3RhcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uS2V5RG93bihldmVudCA6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGVWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3NBdXRvQ29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1NoaWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlQXV0b0NvbXBsZXRlKHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9uc1t0aGlzLmF1dG9Db21wbGV0ZVNlbGVjdGVkXSk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlU2VsZWN0ZWQgPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVTZWxlY3RlZCA9IHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9ucy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlU2VsZWN0ZWQgPSB0aGlzLmF1dG9Db21wbGV0ZVNlbGVjdGVkIC0gMTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZVNlbGVjdGVkID0gKHRoaXMuYXV0b0NvbXBsZXRlU2VsZWN0ZWQgKyAxKSAlIHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgZXZlbnQuY3RybEtleSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNlbmRNZXNzYWdlKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbXBsZXRpb25GdW5jKSB7XHJcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRpb25QcmVmaXggPSB0aGlzLmNvbXBsZXRpb25QcmVmaXguc2xpY2UoMCwgdGhpcy5jb21wbGV0aW9uUHJlZml4Lmxlbmd0aCAtIDEpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBsZXRpb25QcmVmaXggPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNtaXNzQXV0b0NvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJyAnIHx8IGV2ZW50LmtleS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3NBdXRvQ29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGlvblByZWZpeCArPSBldmVudC5rZXk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0F1dG9Db21wbGV0ZSh0aGlzLmNvbXBsZXRpb25GdW5jKHRoaXMuY29tcGxldGlvblByZWZpeCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICc6Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydEF1dG9Db21wbGV0ZShldmVudCwgcHJlZml4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXguc2xpY2UoMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG1ha2VzIDotKSwgOi0oIGV0YyB3b3JrIChhcyB0aGV5IGFyZSBcIjopXCIgZXRjIGluIHRoZSBkYilcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4LnN0YXJ0c1dpdGgoJy0nKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnNsaWNlKDEpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRU1PSklTKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGsgPT4gay5pbmNsdWRlcyhwcmVmaXgpIHx8IEVNT0pJU1trXS5rZXl3b3Jkcy5zb21lKGt3ID0+IGt3LmluY2x1ZGVzKHByZWZpeCkpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGsgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtFTU9KSVNba10uY2hhcn0gJHtrfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuYXV0b2NvbXBsZXRlKEVNT0pJU1trXS5jaGFyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDUpXHJcbiAgICAgICAgICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvQ29tcGxldGUoZXZlbnQsIHByZWZpeCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnNsaWNlKDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnRpY2lwYW50cy5maWx0ZXIoeCA9PiB4LnVzZXJuYW1lLmluY2x1ZGVzKHByZWZpeCkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAocCA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGBAJHtwLnVzZXJuYW1lfSAtLSAke3AuZGlzcGxheU5hbWV9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5hdXRvY29tcGxldGUoYEAke3AudXNlcm5hbWV9YClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnIycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvQ29tcGxldGUoZXZlbnQsIHByZWZpeCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnNsaWNlKDEpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNodGFnc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGh0ID0+IGh0Lmhhc2h0YWcuaW5jbHVkZXMocHJlZml4KSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChodCA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAjJHtodC5oYXNodGFnfSR7aHQuZGVzY3JpcHRpb24gPyBgIC0tICR7aHQuZGVzY3JpcHRpb259YCA6IGBgfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuYXV0b2NvbXBsZXRlKGAjJHtodC5oYXNodGFnfWApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgNSlcclxuICAgICAgICAgICAgICAgICAgICA7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEF1dG9Db21wbGV0ZShldmVudCA6IEtleWJvYXJkRXZlbnQsIGNvbXBsZXRpb25GdW5jIDogKHN0ciA6IHN0cmluZykgPT4gQXV0b0NvbXBsZXRlT3B0aW9uW10pIHtcclxuICAgICAgICB0aGlzLmNvbXBsZXRpb25QcmVmaXggPSBldmVudC5rZXk7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0aW9uRnVuYyA9IGNvbXBsZXRpb25GdW5jO1xyXG4gICAgICAgIHRoaXMuc2hvd0F1dG9Db21wbGV0ZSh0aGlzLmNvbXBsZXRpb25GdW5jKHRoaXMuY29tcGxldGlvblByZWZpeCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQmx1cigpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGlzbWlzc0F1dG9Db21wbGV0ZSgpLCAyNTApO1xyXG4gICAgfVxyXG5cclxuICAgIGluc2VydEVtb2ppKHRleHQgOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnRleHQgKz0gdGV4dDtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2lnbkluKCkge1xyXG4gICAgICAgIHRoaXMuc2lnbkluU2VsZWN0ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dFZGl0QXZhdGFyKCkge1xyXG4gICAgICAgIHRoaXMuZWRpdEF2YXRhclNlbGVjdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc3VibWl0OiAobWVzc2FnZTogQ2hhdE1lc3NhZ2UpID0+IGJvb2xlYW47XHJcblxyXG4gICAgYXN5bmMgc2VuZE1lc3NhZ2UoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNvdXJjZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnNlbmRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VuZEVycm9yID0gbnVsbDtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgdGV4dCA9ICh0aGlzLnRleHQgfHwgJycpLnRyaW0oKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNhbkNvbW1lbnQgJiYgIXRoaXMuaXNWYWxpZE1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA6IENoYXRNZXNzYWdlID0ge1xyXG4gICAgICAgICAgICAgICAgdXNlcjogdGhpcy51c2VyLFxyXG4gICAgICAgICAgICAgICAgc2VudEF0OiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBsb2NhdGlvbi5ocmVmLFxyXG4gICAgICAgICAgICAgICAgbGlrZXM6IDAsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0ZXh0LFxyXG4gICAgICAgICAgICAgICAgYXR0YWNobWVudHM6IHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cy5maWx0ZXIoeCA9PiB4LnVybClcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnN1Ym1pdChtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGF0TWVzc2FnZUF0dGFjaG1lbnRzID0gW107XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4gc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKCksIDEwMDApKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5kaWNhdGVFcnJvcihlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoYXRNZXNzYWdlQXR0YWNobWVudHM6IENoYXRNZXNzYWdlQXR0YWNobWVudFtdID0gW107XHJcblxyXG4gICAgYWRkZWRBdHRhY2htZW50KGF0dGFjaG1lbnQ6IENoYXRNZXNzYWdlQXR0YWNobWVudCkge1xyXG4gICAgICAgIHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cy5wdXNoKGF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGF0dGFjaG1lbnRFcnJvcihhdHRhY2htZW50OiBDaGF0TWVzc2FnZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jaGF0TWVzc2FnZUF0dGFjaG1lbnRzID0gdGhpcy5jaGF0TWVzc2FnZUF0dGFjaG1lbnRzLmZpbHRlcih4ID0+IHggIT09IGF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgfVxyXG5cclxuXHRyZW1vdmVBdHRhY2htZW50KGluZGV4OiBudW1iZXIpIHtcclxuXHRcdHRoaXMuY2hhdE1lc3NhZ2VBdHRhY2htZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG5cdH1cclxuXHJcbiAgICBhbGVydEVycm9yKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zZW5kRXJyb3IpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBhbGVydCh0aGlzLnNlbmRFcnJvci5tZXNzYWdlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -19,7 +19,9 @@ import { MatTooltipModule } from '@angular/material/tooltip';
19
19
  import { CommentSortComponent } from "./comment-sort/comment-sort.component";
20
20
  import { MatSelectModule } from "@angular/material/select";
21
21
  import { AttachmentButtonComponent } from './attachment-button/attachment-button.component';
22
- import { BantaSendReplyOptionsDirective } from './send-reply-options.directive';
22
+ import { BantaReplySendOptionsDirective } from './reply-send-options.directive';
23
+ import { OverlayModule } from '@angular/cdk/overlay';
24
+ import { PortalModule } from '@angular/cdk/portal';
23
25
  const COMPONENTS = [
24
26
  CommentComponent,
25
27
  CommentViewComponent,
@@ -28,7 +30,7 @@ const COMPONENTS = [
28
30
  CommentFieldComponent,
29
31
  CommentSortComponent,
30
32
  AttachmentButtonComponent,
31
- BantaSendReplyOptionsDirective
33
+ BantaReplySendOptionsDirective
32
34
  ];
33
35
  export class CommentsModule {
34
36
  }
@@ -48,9 +50,11 @@ CommentsModule.decorators = [
48
50
  BantaCommonModule,
49
51
  EmojiModule,
50
52
  MatTooltipModule,
51
- MatSelectModule
53
+ MatSelectModule,
54
+ OverlayModule,
55
+ PortalModule
52
56
  ],
53
57
  exports: COMPONENTS
54
58
  },] }
55
59
  ];
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvY29tbWVudHMvY29tbWVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRixNQUFNLFVBQVUsR0FBRztJQUNmLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6Qiw4QkFBOEI7Q0FDakMsQ0FBQztBQXFCRixNQUFNLE9BQU8sY0FBYzs7O1lBbkIxQixRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLFVBQVU7Z0JBQzFCLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGVBQWU7b0JBQ2YsV0FBVztvQkFDWCxhQUFhO29CQUNiLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCxlQUFlO29CQUNmLGFBQWE7b0JBQ2Isd0JBQXdCO29CQUN4QixpQkFBaUI7b0JBQ2pCLFdBQVc7b0JBQ1gsZ0JBQWdCO29CQUNoQixlQUFlO2lCQUNoQjtnQkFDQyxPQUFPLEVBQUUsVUFBVTthQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tZW50Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC12aWV3L2NvbW1lbnQtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYW50YUNvbW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9iYW50YS1jb21tZW50cy9iYW50YS1jb21tZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmFudGFDb21tb25Nb2R1bGUgfSBmcm9tICcuLi9jb21tb24nO1xyXG5pbXBvcnQgeyBMaXZlQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4vbGl2ZS1jb21tZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVtb2ppTW9kdWxlIH0gZnJvbSAnLi4vZW1vamknO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xyXG5pbXBvcnQgeyBDb21tZW50RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtZmllbGQvY29tbWVudC1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQge0NvbW1lbnRTb3J0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21tZW50LXNvcnQvY29tbWVudC1zb3J0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge01hdFNlbGVjdE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9hdHRhY2htZW50LWJ1dHRvbi9hdHRhY2htZW50LWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYW50YVNlbmRSZXBseU9wdGlvbnNEaXJlY3RpdmUgfSBmcm9tICcuL3NlbmQtcmVwbHktb3B0aW9ucy5kaXJlY3RpdmUnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICAgIENvbW1lbnRDb21wb25lbnQsXHJcbiAgICBDb21tZW50Vmlld0NvbXBvbmVudCxcclxuICAgIEJhbnRhQ29tbWVudHNDb21wb25lbnQsXHJcbiAgICBMaXZlQ29tbWVudENvbXBvbmVudCxcclxuICAgIENvbW1lbnRGaWVsZENvbXBvbmVudCxcclxuICAgIENvbW1lbnRTb3J0Q29tcG9uZW50LFxyXG4gICAgQXR0YWNobWVudEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEJhbnRhU2VuZFJlcGx5T3B0aW9uc0RpcmVjdGl2ZVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUZXh0RmllbGRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBCYW50YUNvbW1vbk1vZHVsZSxcclxuICAgIEVtb2ppTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgICBleHBvcnRzOiBDT01QT05FTlRTXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tZW50c01vZHVsZSB7XHJcbn1cclxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvY29tbWVudHMvY29tbWVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxHQUFHO0lBQ2YsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIseUJBQXlCO0lBQ3pCLDhCQUE4QjtDQUNqQyxDQUFDO0FBdUJGLE1BQU0sT0FBTyxjQUFjOzs7WUFyQjFCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsVUFBVTtnQkFDMUIsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixXQUFXO29CQUNYLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYix3QkFBd0I7b0JBQ3hCLGlCQUFpQjtvQkFDakIsV0FBVztvQkFDWCxnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixZQUFZO2lCQUNiO2dCQUNDLE9BQU8sRUFBRSxVQUFVO2FBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC9jb21tZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1lbnRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LXZpZXcvY29tbWVudC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhbnRhQ29tbWVudHNDb21wb25lbnQgfSBmcm9tICcuL2JhbnRhLWNvbW1lbnRzL2JhbnRhLWNvbW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYW50YUNvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IExpdmVDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi9saXZlLWNvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW1vamlNb2R1bGUgfSBmcm9tICcuLi9lbW9qaSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XHJcbmltcG9ydCB7IENvbW1lbnRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC1maWVsZC9jb21tZW50LWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWF0VG9vbHRpcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7Q29tbWVudFNvcnRDb21wb25lbnR9IGZyb20gXCIuL2NvbW1lbnQtc29ydC9jb21tZW50LXNvcnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0U2VsZWN0TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQtYnV0dG9uL2F0dGFjaG1lbnQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhbnRhUmVwbHlTZW5kT3B0aW9uc0RpcmVjdGl2ZSB9IGZyb20gJy4vcmVwbHktc2VuZC1vcHRpb25zLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICAgIENvbW1lbnRDb21wb25lbnQsXHJcbiAgICBDb21tZW50Vmlld0NvbXBvbmVudCxcclxuICAgIEJhbnRhQ29tbWVudHNDb21wb25lbnQsXHJcbiAgICBMaXZlQ29tbWVudENvbXBvbmVudCxcclxuICAgIENvbW1lbnRGaWVsZENvbXBvbmVudCxcclxuICAgIENvbW1lbnRTb3J0Q29tcG9uZW50LFxyXG4gICAgQXR0YWNobWVudEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEJhbnRhUmVwbHlTZW5kT3B0aW9uc0RpcmVjdGl2ZVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUZXh0RmllbGRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBCYW50YUNvbW1vbk1vZHVsZSxcclxuICAgIEVtb2ppTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE92ZXJsYXlNb2R1bGUsXHJcbiAgICBQb3J0YWxNb2R1bGVcclxuICBdLFxyXG4gICAgZXhwb3J0czogQ09NUE9ORU5UU1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbWVudHNNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -5,6 +5,6 @@ export * from './live-comment.component';
5
5
  export * from './comment-field/comment-field.component';
6
6
  export * from './comment-sort/comment-sort.component';
7
7
  export * from './attachment-button/attachment-button.component';
8
- export * from './send-reply-options.directive';
8
+ export * from './reply-send-options.directive';
9
9
  export * from './comments.module';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbWVudC9jb21tZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudC12aWV3L2NvbW1lbnQtdmlldy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2JhbnRhLWNvbW1lbnRzL2JhbnRhLWNvbW1lbnRzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGl2ZS1jb21tZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudC1maWVsZC9jb21tZW50LWZpZWxkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudC1zb3J0L2NvbW1lbnQtc29ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F0dGFjaG1lbnQtYnV0dG9uL2F0dGFjaG1lbnQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VuZC1yZXBseS1vcHRpb25zLmRpcmVjdGl2ZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NvbW1lbnRzLm1vZHVsZSc7Il19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbWVudC9jb21tZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudC12aWV3L2NvbW1lbnQtdmlldy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2JhbnRhLWNvbW1lbnRzL2JhbnRhLWNvbW1lbnRzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGl2ZS1jb21tZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudC1maWVsZC9jb21tZW50LWZpZWxkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudC1zb3J0L2NvbW1lbnQtc29ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F0dGFjaG1lbnQtYnV0dG9uL2F0dGFjaG1lbnQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVwbHktc2VuZC1vcHRpb25zLmRpcmVjdGl2ZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NvbW1lbnRzLm1vZHVsZSc7Il19
@@ -1,9 +1,9 @@
1
1
  import { Directive } from "@angular/core";
2
- export class BantaSendReplyOptionsDirective {
2
+ export class BantaReplySendOptionsDirective {
3
3
  }
4
- BantaSendReplyOptionsDirective.decorators = [
4
+ BantaReplySendOptionsDirective.decorators = [
5
5
  { type: Directive, args: [{
6
- selector: `[replySendOptions]`
6
+ selector: `[bantaReplySendOptions]`
7
7
  },] }
8
8
  ];
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1yZXBseS1vcHRpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1lbnRzL3NlbmQtcmVwbHktb3B0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsxQyxNQUFNLE9BQU8sOEJBQThCOzs7WUFIMUMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxvQkFBb0I7YUFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYFtyZXBseVNlbmRPcHRpb25zXWBcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbnRhU2VuZFJlcGx5T3B0aW9uc0RpcmVjdGl2ZSB7fSJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbHktc2VuZC1vcHRpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2NvbW1lbnRzL3JlcGx5LXNlbmQtb3B0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsxQyxNQUFNLE9BQU8sOEJBQThCOzs7WUFIMUMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx5QkFBeUI7YUFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYFtiYW50YVJlcGx5U2VuZE9wdGlvbnNdYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFudGFSZXBseVNlbmRPcHRpb25zRGlyZWN0aXZlIHt9Il19
@@ -1,101 +1,66 @@
1
1
  /// <reference types="@types/resize-observer-browser" />
2
- import { Component, ElementRef, HostBinding, Output, ViewChild } from '@angular/core';
2
+ import { Overlay } from '@angular/cdk/overlay';
3
+ import { TemplatePortal } from '@angular/cdk/portal';
4
+ import { Component, ElementRef, Output, ViewChild } from '@angular/core';
3
5
  import { Subject, Observable } from 'rxjs';
4
6
  export class EmojiSelectorButtonComponent {
5
- constructor(elementRef) {
7
+ constructor(elementRef, overlay) {
6
8
  this.elementRef = elementRef;
9
+ this.overlay = overlay;
7
10
  this._selected = new Subject();
8
11
  this.showEmojiPanel = false;
9
12
  }
10
13
  get selected() {
11
14
  return this._selected;
12
15
  }
13
- ngOnDestroy() {
14
- this.removeListener();
15
- this.panelElement.nativeElement.remove();
16
+ get isOpen() {
17
+ return this.overlayRef;
16
18
  }
17
- get widthConstrained() { return this.width < 700; }
18
- ngAfterViewInit() {
19
- }
20
- putPanelAtRoot() {
21
- // If we are in full-screen, placing the panel outside of the full-screen element will result in it
22
- // always being behind said full-screen element, so we need to ensure we never place it further up the
23
- // stack.
24
- let root = document.fullscreenElement || document.body.querySelector('[ng-version]') || document.body;
25
- root.appendChild(this.panelElement.nativeElement);
26
- }
27
- removeListener() {
28
- document.removeEventListener('click', this.clickListener);
29
- window.removeEventListener('resize', this.resizeListener);
19
+ /**
20
+ * Insert the given emoji.
21
+ * @param str
22
+ */
23
+ insert(str) {
24
+ this._selected.next(str);
30
25
  }
31
- place() {
32
- // Not currently used as it can't be easily done handling all
33
- // scrolling corner cases.
34
- this.putPanelAtRoot();
35
- let pos = this.buttonElement.nativeElement.getBoundingClientRect();
36
- let size = this.panelElement.nativeElement.getBoundingClientRect();
37
- let left = window.scrollX + pos.left + pos.width - size.width;
38
- if (left < 0)
39
- left = (window.scrollX + window.innerWidth) / 2 - size.width / 2;
40
- let scrollY = window.scrollY;
41
- if (document.fullscreenElement) {
26
+ close() {
27
+ if (this.overlayRef) {
28
+ this.overlayRef.dispose();
29
+ this.overlayRef = null;
30
+ return;
42
31
  }
43
- Object.assign(this.panelElement.nativeElement.style, {
44
- top: `${window.scrollY + pos.top + pos.height}px`,
45
- left: `${Math.max(0, left)}px`
46
- });
47
32
  }
48
33
  show() {
49
- if (this.showEmojiPanel) {
50
- this.showEmojiPanel = false;
51
- return;
34
+ if (this.isOpen) {
35
+ this.close();
52
36
  }
53
- this.showEmojiPanel = true;
54
- //this.place();
55
- setTimeout(() => {
56
- let onResize = () => {
57
- if (!this.showEmojiPanel)
58
- return;
59
- this.width = window.innerWidth;
60
- this.height = window.innerHeight;
61
- let edgeOffset = 0;
62
- let commentField = this.elementRef.nativeElement.closest(`banta-comment-field`);
63
- if (commentField) {
64
- let size = commentField.getBoundingClientRect();
65
- this.width = size.width;
66
- edgeOffset = window.innerWidth - size.right;
67
- }
68
- let buttonRect = this.buttonElement.nativeElement.getBoundingClientRect();
69
- let buttonRight = window.innerWidth - buttonRect.right - edgeOffset - 10;
70
- if (this.width < 700) {
71
- this.panelElement.nativeElement.style.right = `${-buttonRight}px`;
72
- }
73
- else {
74
- this.panelElement.nativeElement.style.right = '';
75
- }
76
- this.panelElement.nativeElement.style.maxWidth = `${this.width - 15}px`;
77
- };
78
- this.resizeListener = onResize;
79
- onResize();
80
- this.clickListener = (ev) => {
81
- let parent = ev.target;
82
- let isInDialog = false;
83
- while (parent) {
84
- if (parent.matches('emoji-selector-panel'))
85
- isInDialog = true;
86
- parent = parent.parentElement;
37
+ this.overlayRef = this.overlay.create({
38
+ positionStrategy: this.overlay.position()
39
+ .flexibleConnectedTo(this.elementRef)
40
+ .withPositions([
41
+ {
42
+ originX: 'end',
43
+ originY: 'bottom',
44
+ overlayX: 'end',
45
+ overlayY: 'top'
87
46
  }
88
- if (isInDialog)
89
- return;
90
- this.showEmojiPanel = false;
91
- this.removeListener();
92
- };
93
- document.addEventListener('click', this.clickListener);
94
- window.addEventListener('resize', this.resizeListener);
47
+ ])
48
+ .withFlexibleDimensions(true),
49
+ hasBackdrop: true,
50
+ disposeOnNavigation: true,
51
+ scrollStrategy: this.overlay.scrollStrategies.reposition({
52
+ autoClose: true
53
+ })
95
54
  });
96
- }
97
- insert(str) {
98
- this._selected.next(str);
55
+ this.overlayRef.backdropClick().subscribe(() => {
56
+ this.close();
57
+ });
58
+ this.overlayRef.keydownEvents().subscribe(event => {
59
+ if (event.key === 'Escape') {
60
+ this.close();
61
+ }
62
+ });
63
+ this.overlayRef.attach(this.selectorPanelTemplate);
99
64
  }
100
65
  }
101
66
  EmojiSelectorButtonComponent.decorators = [
@@ -105,11 +70,12 @@ EmojiSelectorButtonComponent.decorators = [
105
70
  <button #button type="button" mat-icon-button (click)="show()">
106
71
  <mat-icon>emoji_emotions</mat-icon>
107
72
  </button>
108
- <emoji-selector-panel
109
- #panel
110
- (selected)="insert($event)"
111
- [class.visible]="showEmojiPanel"
112
- ></emoji-selector-panel>
73
+ <ng-template cdkPortal #selectorPanelTemplate="cdkPortal">
74
+ <emoji-selector-panel
75
+ #panel
76
+ (selected)="insert($event)"
77
+ ></emoji-selector-panel>
78
+ </ng-template>
113
79
  `,
114
80
  styles: [`
115
81
  :host {
@@ -117,20 +83,6 @@ EmojiSelectorButtonComponent.decorators = [
117
83
  position: relative;
118
84
  }
119
85
 
120
- emoji-selector-panel {
121
- position: absolute;
122
- top: 2.5em;
123
- right: 0;
124
- opacity: 0;
125
- pointer-events: none;
126
- z-index: 10;
127
- }
128
-
129
- emoji-selector-panel.visible {
130
- pointer-events: initial;
131
- opacity: 1;
132
- }
133
-
134
86
  button {
135
87
  color: #666
136
88
  }
@@ -138,12 +90,11 @@ EmojiSelectorButtonComponent.decorators = [
138
90
  },] }
139
91
  ];
140
92
  EmojiSelectorButtonComponent.ctorParameters = () => [
141
- { type: ElementRef }
93
+ { type: ElementRef },
94
+ { type: Overlay }
142
95
  ];
143
96
  EmojiSelectorButtonComponent.propDecorators = {
144
- selected: [{ type: Output }],
145
- panelElement: [{ type: ViewChild, args: ['panel', { read: ElementRef },] }],
146
- buttonElement: [{ type: ViewChild, args: ['button', { read: ElementRef },] }],
147
- widthConstrained: [{ type: HostBinding, args: ['class.width-constrained',] }]
97
+ selectorPanelTemplate: [{ type: ViewChild, args: ['selectorPanelTemplate',] }],
98
+ selected: [{ type: Output }]
148
99
  };
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktc2VsZWN0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2Vtb2ppL2Vtb2ppLXNlbGVjdG9yLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBdUMzQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBSS9DLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRzFDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBTHZCLENBQUM7SUFPRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQVFELFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUtELElBQ0ksZ0JBQWdCLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFbkQsZUFBZTtJQUNmLENBQUM7SUFFTyxjQUFjO1FBQ2xCLG9HQUFvRztRQUNwRyx1R0FBdUc7UUFDdkcsU0FBUztRQUVULElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3RHLElBQUksQ0FBQyxXQUFXLENBQUMs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O1lBL0tKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7OztLQVNUO3lCQUNROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXVCUjthQUNKOzs7WUF2Q21CLFVBQVU7Ozt1QkFrRHpCLE1BQU07MkJBS04sU0FBUyxTQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7NEJBR3ZDLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOytCQVd4QyxXQUFXLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJAdHlwZXMvcmVzaXplLW9ic2VydmVyLWJyb3dzZXJcIiAvPlxyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2Vtb2ppLXNlbGVjdG9yLWJ1dHRvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxidXR0b24gI2J1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzaG93KClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmVtb2ppX2Vtb3Rpb25zPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZW1vamktc2VsZWN0b3ItcGFuZWwgXHJcbiAgICAgICAgICAgICNwYW5lbFxyXG4gICAgICAgICAgICAoc2VsZWN0ZWQpPVwiaW5zZXJ0KCRldmVudClcIlxyXG4gICAgICAgICAgICBbY2xhc3MudmlzaWJsZV09XCJzaG93RW1vamlQYW5lbFwiXHJcbiAgICAgICAgICAgID48L2Vtb2ppLXNlbGVjdG9yLXBhbmVsPlxyXG4gICAgYCxcclxuICAgIHN0eWxlczogW2BcclxuICAgICAgICA6aG9zdCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbW9qaS1zZWxlY3Rvci1wYW5lbCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAyLjVlbTtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVtb2ppLXNlbGVjdG9yLXBhbmVsLnZpc2libGUge1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNjY2XHJcbiAgICAgICAgfVxyXG4gICAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVtb2ppU2VsZWN0b3JCdXR0b25Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZWxlY3RlZCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICAgIHByaXZhdGUgY2xpY2tMaXN0ZW5lciA6IGFueTtcclxuICAgIHByaXZhdGUgcmVzaXplTGlzdGVuZXIgOiBhbnk7XHJcbiAgICBzaG93RW1vamlQYW5lbCA9IGZhbHNlO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHNlbGVjdGVkKCkgOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICBAVmlld0NoaWxkKCdwYW5lbCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxyXG4gICAgcGFuZWxFbGVtZW50IDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXHJcbiAgICBidXR0b25FbGVtZW50IDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcigpO1xyXG4gICAgICAgIHRoaXMucGFuZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB3aWR0aDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBoZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLndpZHRoLWNvbnN0cmFpbmVkJylcclxuICAgIGdldCB3aWR0aENvbnN0cmFpbmVkKCkgeyByZXR1cm4gdGhpcy53aWR0aCA8IDcwMDsgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHB1dFBhbmVsQXRSb290KCkge1xyXG4gICAgICAgIC8vIElmIHdlIGFyZSBpbiBmdWxsLXNjcmVlbiwgcGxhY2luZyB0aGUgcGFuZWwgb3V0c2lkZSBvZiB0aGUgZnVsbC1zY3JlZW4gZWxlbWVudCB3aWxsIHJlc3VsdCBpbiBpdCBcclxuICAgICAgICAvLyBhbHdheXMgYmVpbmcgYmVoaW5kIHNhaWQgZnVsbC1zY3JlZW4gZWxlbWVudCwgc28gd2UgbmVlZCB0byBlbnN1cmUgd2UgbmV2ZXIgcGxhY2UgaXQgZnVydGhlciB1cCB0aGUgXHJcbiAgICAgICAgLy8gc3RhY2suXHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IHJvb3QgPSBkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCB8fCBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3IoJ1tuZy12ZXJzaW9uXScpIHx8IGRvY3VtZW50LmJvZHk7XHJcbiAgICAgICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLnBhbmVsRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbW92ZUxpc3RlbmVyKCkge1xyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja0xpc3RlbmVyKTtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVMaXN0ZW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgcGxhY2UoKSB7XHJcbiAgICAgICAgLy8gTm90IGN1cnJlbnRseSB1c2VkIGFzIGl0IGNhbid0IGJlIGVhc2lseSBkb25lIGhhbmRsaW5nIGFsbCBcclxuICAgICAgICAvLyBzY3JvbGxpbmcgY29ybmVyIGNhc2VzLlxyXG5cclxuICAgICAgICB0aGlzLnB1dFBhbmVsQXRSb290KCk7XHJcbiAgICAgICAgbGV0IHBvcyA9IHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGxldCBzaXplID0gdGhpcy5wYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBsZXQgbGVmdCA9IHdpbmRvdy5zY3JvbGxYICsgcG9zLmxlZnQgKyBwb3Mud2lkdGggLSBzaXplLndpZHRoO1xyXG4gICAgICAgIGlmIChsZWZ0IDwgMClcclxuICAgICAgICAgICAgbGVmdCA9ICh3aW5kb3cuc2Nyb2xsWCArIHdpbmRvdy5pbm5lcldpZHRoKSAvIDIgLSBzaXplLndpZHRoIC8gMjtcclxuICAgICAgICBsZXQgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZO1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCkge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICAgIHRoaXMucGFuZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRvcDogYCR7d2luZG93LnNjcm9sbFkgKyBwb3MudG9wICsgcG9zLmhlaWdodH1weGAsXHJcbiAgICAgICAgICAgICAgICBsZWZ0OiBgJHtNYXRoLm1heCgwLCBsZWZ0KX1weGBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvdygpIHtcclxuICAgICAgICBpZiAodGhpcy5zaG93RW1vamlQYW5lbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFbW9qaVBhbmVsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0Vtb2ppUGFuZWwgPSB0cnVlO1xyXG4gICAgICAgIC8vdGhpcy5wbGFjZSgpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgbGV0IG9uUmVzaXplID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dFbW9qaVBhbmVsKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIHRoaXMud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBlZGdlT2Zmc2V0ID0gMDtcclxuICAgICAgICAgICAgICAgIGxldCBjb21tZW50RmllbGQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KGBiYW50YS1jb21tZW50LWZpZWxkYCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29tbWVudEZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNpemUgPSBjb21tZW50RmllbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53aWR0aCA9IHNpemUud2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgZWRnZU9mZnNldCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gc2l6ZS5yaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgYnV0dG9uUmVjdCA9IHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGJ1dHRvblJpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSBidXR0b25SZWN0LnJpZ2h0IC0gZWRnZU9mZnNldCAtIDEwO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLndpZHRoIDwgNzAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5yaWdodCA9IGAkey1idXR0b25SaWdodH1weGA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnJztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLm1heFdpZHRoID0gYCR7dGhpcy53aWR0aCAtIDE1fXB4YDtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSBvblJlc2l6ZTtcclxuICAgICAgICAgICAgb25SZXNpemUoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2xpY2tMaXN0ZW5lciA9IChldiA6IE1vdXNlRXZlbnQpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcGFyZW50ID0gPEhUTUxFbGVtZW50PiBldi50YXJnZXQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgaXNJbkRpYWxvZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB3aGlsZSAocGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudC5tYXRjaGVzKCdlbW9qaS1zZWxlY3Rvci1wYW5lbCcpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0luRGlhbG9nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGlzSW5EaWFsb2cpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Vtb2ppUGFuZWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgIFxyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tMaXN0ZW5lcik7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUxpc3RlbmVyKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbnNlcnQoc3RyKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQubmV4dChzdHIpO1xyXG4gICAgfVxyXG59Il19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktc2VsZWN0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2Vtb2ppL2Vtb2ppLXNlbGVjdG9yLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBRXhELE9BQU8sRUFBcUMsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFtQixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBMkIzQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFlBQ1ksVUFBbUMsRUFDbkMsT0FBZ0I7UUFEaEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQU1wQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUMxQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUx2QixDQUFDO0lBT0QsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFJRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxHQUFHO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDbEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7aUJBQ3BDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQ3BDLGFBQWEsQ0FBQztnQkFDWDtvQkFDSSxPQUFPLEVBQUUsS0FBSztvQkFDZCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLEtBQUs7aUJBQ2xCO2FBQ0osQ0FBQztpQkFDRCxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7WUFDakMsV0FBVyxFQUFFLElBQUk7WUFDakIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7Z0JBQ3JELFNBQVMsRUFBRSxJQUFJO2FBQ2xCLENBQUM7U0FDTCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2hCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7WUFqR0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLFFBQVEsRUFBRTs7Ozs7Ozs7OztLQVVUO3lCQUNROzs7Ozs7Ozs7S0FTUjthQUNKOzs7WUEzQm1CLFVBQVU7WUFGYyxPQUFPOzs7b0NBcUM5QyxTQUFTLFNBQUMsdUJBQXVCO3VCQUtqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJAdHlwZXMvcmVzaXplLW9ic2VydmVyLWJyb3dzZXJcIiAvPlxyXG5cclxuaW1wb3J0IHsgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW1vamlTZWxlY3RvclBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9lbW9qaS1zZWxlY3Rvci1wYW5lbC9lbW9qaS1zZWxlY3Rvci1wYW5lbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2Vtb2ppLXNlbGVjdG9yLWJ1dHRvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxidXR0b24gI2J1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzaG93KClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmVtb2ppX2Vtb3Rpb25zPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsICNzZWxlY3RvclBhbmVsVGVtcGxhdGU9XCJjZGtQb3J0YWxcIj5cclxuICAgICAgICAgICAgPGVtb2ppLXNlbGVjdG9yLXBhbmVsIFxyXG4gICAgICAgICAgICAgICAgI3BhbmVsXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwiaW5zZXJ0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvZW1vamktc2VsZWN0b3ItcGFuZWw+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgICAgOmhvc3Qge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgY29sb3I6ICM2NjZcclxuICAgICAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW1vamlTZWxlY3RvckJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnc2VsZWN0b3JQYW5lbFRlbXBsYXRlJykgc2VsZWN0b3JQYW5lbFRlbXBsYXRlOiBUZW1wbGF0ZVBvcnRhbDxhbnk+O1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gICAgc2hvd0Vtb2ppUGFuZWwgPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGdldCBzZWxlY3RlZCgpIDogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xyXG5cclxuICAgIGdldCBpc09wZW4oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc2VydCB0aGUgZ2l2ZW4gZW1vamkuXHJcbiAgICAgKiBAcGFyYW0gc3RyIFxyXG4gICAgICovXHJcbiAgICBpbnNlcnQoc3RyKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQubmV4dChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcclxuICAgICAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcclxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcclxuICAgICAgICAgICAgICAgICAgICB7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnZW5kJywgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKSxcclxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXHJcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHtcclxuICAgICAgICAgICAgICAgIGF1dG9DbG9zZTogdHJ1ZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMuc2VsZWN0b3JQYW5lbFRlbXBsYXRlKTtcclxuICAgIH1cclxufSJdfQ==
@@ -7,6 +7,8 @@ import { MatButtonModule } from '@angular/material/button';
7
7
  import { MatFormFieldModule } from '@angular/material/form-field';
8
8
  import { MatInputModule } from '@angular/material/input';
9
9
  import { FormsModule } from '@angular/forms';
10
+ import { OverlayModule } from '@angular/cdk/overlay';
11
+ import { PortalModule } from '@angular/cdk/portal';
10
12
  const COMPONENTS = [
11
13
  EmojiSelectorPanelComponent,
12
14
  EmojiSelectorButtonComponent
@@ -22,9 +24,11 @@ EmojiModule.decorators = [
22
24
  MatIconModule,
23
25
  MatButtonModule,
24
26
  MatFormFieldModule,
25
- MatInputModule
27
+ MatInputModule,
28
+ OverlayModule,
29
+ PortalModule
26
30
  ],
27
31
  exports: COMPONENTS
28
32
  },] }
29
33
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvZW1vamkvZW1vamkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxNQUFNLFVBQVUsR0FBRztJQUNmLDJCQUEyQjtJQUMzQiw0QkFBNEI7Q0FDL0IsQ0FBQztBQWNGLE1BQU0sT0FBTyxXQUFXOzs7WUFadkIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUN4QixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixrQkFBa0I7b0JBQ2xCLGNBQWM7aUJBQ2pCO2dCQUNELE9BQU8sRUFBRSxVQUFVO2FBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW1vamlTZWxlY3RvclBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9lbW9qaS1zZWxlY3Rvci1wYW5lbC9lbW9qaS1zZWxlY3Rvci1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFbW9qaVNlbGVjdG9yQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9lbW9qaS1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICAgIEVtb2ppU2VsZWN0b3JQYW5lbENvbXBvbmVudCxcclxuICAgIEVtb2ppU2VsZWN0b3JCdXR0b25Db21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IENPTVBPTkVOVFMsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgICAgICBNYXRJbnB1dE1vZHVsZVxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IENPTVBPTkVOVFNcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtb2ppTW9kdWxlIHtcclxuXHJcbn0iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvZW1vamkvZW1vamkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxHQUFHO0lBQ2YsMkJBQTJCO0lBQzNCLDRCQUE0QjtDQUMvQixDQUFDO0FBZ0JGLE1BQU0sT0FBTyxXQUFXOzs7WUFkdkIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUN4QixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixrQkFBa0I7b0JBQ2xCLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixZQUFZO2lCQUNmO2dCQUNELE9BQU8sRUFBRSxVQUFVO2FBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW1vamlTZWxlY3RvclBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9lbW9qaS1zZWxlY3Rvci1wYW5lbC9lbW9qaS1zZWxlY3Rvci1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFbW9qaVNlbGVjdG9yQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9lbW9qaS1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgICBFbW9qaVNlbGVjdG9yUGFuZWxDb21wb25lbnQsXHJcbiAgICBFbW9qaVNlbGVjdG9yQnV0dG9uQ29tcG9uZW50XHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBDT01QT05FTlRTLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICAgICAgT3ZlcmxheU1vZHVsZSxcclxuICAgICAgICBQb3J0YWxNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBDT01QT05FTlRTXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbW9qaU1vZHVsZSB7XHJcblxyXG59Il19