@banta/sdk 4.7.6 → 4.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/comments/comment/comment.component.mjs +2 -2
- package/esm2020/lib/common/markdown-to-html.pipe.mjs +20 -7
- package/esm2020/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.mjs +16 -6
- package/esm2020/lib/sdk-options.mjs +1 -1
- package/fesm2015/banta-sdk.mjs +41 -14
- package/fesm2015/banta-sdk.mjs.map +1 -1
- package/fesm2020/banta-sdk.mjs +35 -14
- package/fesm2020/banta-sdk.mjs.map +1 -1
- package/lib/common/markdown-to-html.pipe.d.ts +5 -2
- package/lib/emoji/emoji-selector-panel/emoji-selector-panel.component.d.ts +5 -2
- package/lib/sdk-options.d.ts +1 -0
- package/package.json +1 -1
|
@@ -155,10 +155,10 @@ export class CommentComponent {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
CommentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CommentComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
158
|
-
CommentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CommentComponent, selector: "banta-comment", inputs: { maxLength: "maxLength", message: "message", customMenuItems: "customMenuItems", showReplyAction: "showReplyAction", permissions: "permissions", mine: "mine", editing: "editing", genericAvatarUrl: "genericAvatarUrl" }, outputs: { loaded: "loaded", userSelected: "userSelected", usernameSelected: "usernameSelected", avatarSelected: "avatarSelected", reported: "reported", liked: "liked", unliked: "unliked", selected: "selected", edited: "edited", deleted: "deleted", editStarted: "editStarted", editEnded: "editEnded", shared: "shared" }, host: { properties: { "class.new": "this.isNew", "class.highlighted": "this.isHighlighted", "class.visible": "this.visible", "attr.data-comment-id": "this.commentId" } }, ngImport: i0, template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"share()\">\r\n <mat-icon>share</mat-icon>\r\n Share\r\n </button>\r\n <button *ngIf=\"!mine\" mat-menu-item (click)=\"report()\">\r\n <mat-icon>warning</mat-icon>\r\n Report\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canEdit\" mat-menu-item (click)=\"startEdit()\">\r\n <mat-icon>edit</mat-icon>\r\n Edit\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canDelete\" mat-menu-item (click)=\"delete()\">\r\n <mat-icon>delete</mat-icon>\r\n Delete\r\n </button>\r\n\r\n <button *ngFor=\"let menuItem of customMenuItems\" mat-menu-item (click)=\"menuItem.action(message)\">\r\n <mat-icon>{{menuItem.icon}}</mat-icon>\r\n {{menuItem.label}}\r\n </button>\r\n\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <div class=\"user-1\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <div class=\"user-identity\">\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n </div>\r\n </div>\r\n <div class=\"user-2\">\r\n <span class=\"user-tag\" *ngIf=\"message.user.tag\">{{message.user.tag}}</span>\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <span class=\"spacer\"></span>\r\n </div>\r\n </div>\r\n <div class=\"content\" *ngIf=\"!editing\">\r\n <span class=\"banta-message-content\" [innerHTML]=\"message.message | mentionLinker: message.mentionLinks | markdownToHtml\"></span>\r\n <banta-attachments \r\n [attachments]=\"message.attachments\"\r\n (loaded)=\"markAttachmentsLoaded()\"\r\n ></banta-attachments>\r\n <ul class=\"message-facts\">\r\n <li *ngIf=\"message.edits?.length > 0\">(Edited)</li>\r\n </ul>\r\n </div>\r\n <div class=\"content\" *ngIf=\"editing\" style=\"padding-bottom: 2em;\">\r\n <div>\r\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\r\n <mat-label>Edit Message</mat-label>\r\n <textarea matInput [(ngModel)]=\"editedMessage\" [maxlength]=\"maxLength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <button mat-raised-button (click)=\"saveEdit()\">Save</button> \r\n <button mat-button (click)=\"endEditing()\">Cancel</button>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <button mat-button [matTooltip]=\"replyCount > 0 ? 'Replies' : 'Reply'\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n <span class=\"count-indicator\">\r\n {{replyCount > 0 ? 'Replies' : 'Reply'}}\r\n {{replyCount > 0 ? '(' + replyCount + ')' : ''}}\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\" [class.active]=\"message.userState?.liked\">\r\n <button \r\n *ngIf=\"message.transientState?.liking\"\r\n mat-icon-button \r\n [disabled]=\"true\" \r\n [matTooltip]=\"upvoting ? 'Please wait...' : message.userState?.liked ? 'Unlike' : 'Like'\" \r\n matTooltipPosition=\"below\" \r\n >\r\n <mat-spinner [diameter]=\"15\" style=\"margin-left: 1em;\"></mat-spinner>\r\n </button>\r\n <button \r\n *ngIf=\"!message.transientState?.liking\"\r\n mat-button \r\n [matTooltip]=\"permissions?.canLike ? upvoting ? 'Please wait...' : 'Like' : permissions?.canLikeErrorMessage\" \r\n matTooltipPosition=\"below\" \r\n (click)=\"message.userState?.liked ? unlike() : like()\" \r\n >\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n <span class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n {{message.likes}}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@keyframes comment-appear{0%{transform:translate(6em)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;position:relative;padding:.5em;visibility:hidden}:host.new{visibility:visible;animation-name:comment-appear;animation-duration:.25s;animation-fill-mode:both}:host.highlighted{background:#00223a;outline:2px solid #003277}:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host .message-content .attachments-row{margin-top:15px;display:flex;gap:10px}:host .message-content .attachments-row img{border-radius:10px;width:300px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}:host.abbreviated .message-content .content{text-overflow:ellipsis;overflow-y:hidden}:host .actions{display:flex;padding-right:10px;margin-left:60px;align-items:center}:host .actions button{color:#666;flex-shrink:0}banta-timestamp{color:#666;font-size:10pt;flex-shrink:0;margin-left:1em;text-align:right}.user{position:relative;margin:1em 0 0;display:flex;align-items:center;flex-wrap:wrap}.user .user-1,.user .user-2{display:flex;flex-wrap:nowrap;align-items:center;min-width:0}.user .user-2{margin:1em 0}.user .user-identity{display:flex;flex-direction:column;min-width:0}.user .display-name,.user .username{z-index:1;position:relative;padding:0 0 0 1em;font-size:10pt;color:#000;margin:0 auto 0 0;display:block;width:-moz-fit-content;width:fit-content;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:1;flex-grow:0;min-width:0}.user .display-name.username.username.username,.user .username.username.username.username{color:#666}.avatar{height:48px;width:48px;background-position:center;background-size:cover;background-color:#333;border-radius:100%;flex-shrink:0;flex-grow:0}.counted-action{display:flex;align-items:center}.counted-action.active button,.counted-action.active .count-indicator{color:#00a5ff}.counted-action button .count-indicator{margin-left:.5em}.count-indicator{font-size:9pt;padding:0 0 0 3px;color:#666}:host-context(.mat-dark-theme) .count-indicator{border-color:#333}:host-context(.mat-dark-theme):hover{background:#060606}:host-context(.mat-dark-theme) .user .display-name,:host-context(.mat-dark-theme) .user .username{color:#fff}.user-tag{text-transform:uppercase;font-size:12px;border:1px solid #b27373;background:#7a412b;color:#fff;padding:3px 5px;margin:0 .5em 0 1em;border-radius:3px}.spacer{flex-shrink:1;flex-grow:1}ul.message-facts{margin:0;padding:0;color:#666}ul.message-facts li{list-style-type:none;border-left:1px solid #666;font-size:10pt;padding-left:.5em;margin-left:.5em}ul.message-facts li{margin-top:.5em}ul.message-facts li:first-child{border-left:1px solid transparent;margin-left:0;padding-left:0}@media (max-width: 400px){.avatar{height:32px;width:32px}:host .actions{margin-left:0;margin-top:.5em}:host .message-content .content{margin-left:44px;margin-right:.5em}}:host-context(.banta-mobile) .avatar{height:32px;width:32px}:host-context(.banta-mobile) :host .actions{margin-left:0;margin-top:.5em}:host-context(.banta-mobile) :host .message-content .content{margin-left:44px;margin-right:.5em}.card-attachment a{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919}.card-attachment a img{width:300px;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border-radius:10px}.card-attachment a h1{margin:0;font-size:30px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.TimestampComponent, selector: "banta-timestamp", inputs: ["value"] }, { kind: "component", type: i10.BantaAttachmentsComponent, selector: "banta-attachments", inputs: ["attachments", "editing"], outputs: ["remove", "loaded"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i12.BantaMarkdownToHtmlPipe, name: "markdownToHtml" }, { kind: "pipe", type: i13.BantaMentionLinkerPipe, name: "mentionLinker" }] });
|
|
158
|
+
CommentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CommentComponent, selector: "banta-comment", inputs: { maxLength: "maxLength", message: "message", customMenuItems: "customMenuItems", showReplyAction: "showReplyAction", permissions: "permissions", mine: "mine", editing: "editing", genericAvatarUrl: "genericAvatarUrl" }, outputs: { loaded: "loaded", userSelected: "userSelected", usernameSelected: "usernameSelected", avatarSelected: "avatarSelected", reported: "reported", liked: "liked", unliked: "unliked", selected: "selected", edited: "edited", deleted: "deleted", editStarted: "editStarted", editEnded: "editEnded", shared: "shared" }, host: { properties: { "class.new": "this.isNew", "class.highlighted": "this.isHighlighted", "class.visible": "this.visible", "attr.data-comment-id": "this.commentId" } }, ngImport: i0, template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"share()\">\r\n <mat-icon>share</mat-icon>\r\n Share\r\n </button>\r\n <button *ngIf=\"!mine\" mat-menu-item (click)=\"report()\">\r\n <mat-icon>warning</mat-icon>\r\n Report\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canEdit\" mat-menu-item (click)=\"startEdit()\">\r\n <mat-icon>edit</mat-icon>\r\n Edit\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canDelete\" mat-menu-item (click)=\"delete()\">\r\n <mat-icon>delete</mat-icon>\r\n Delete\r\n </button>\r\n\r\n <button *ngFor=\"let menuItem of customMenuItems\" mat-menu-item (click)=\"menuItem.action(message)\">\r\n <mat-icon>{{menuItem.icon}}</mat-icon>\r\n {{menuItem.label}}\r\n </button>\r\n\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <div class=\"user-1\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <div class=\"user-identity\">\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n </div>\r\n </div>\r\n <div class=\"user-2\">\r\n <span class=\"user-tag\" *ngIf=\"message.user.tag\">{{message.user.tag}}</span>\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <span class=\"spacer\"></span>\r\n </div>\r\n </div>\r\n <div class=\"content\" *ngIf=\"!editing\">\r\n <span class=\"banta-message-content\" [innerHTML]=\"message.message | mentionLinker: message.mentionLinks | markdownToHtml\"></span>\r\n <banta-attachments \r\n [attachments]=\"message.attachments\"\r\n (loaded)=\"markAttachmentsLoaded()\"\r\n ></banta-attachments>\r\n <ul class=\"message-facts\">\r\n <li *ngIf=\"message.edits?.length > 0\">(Edited)</li>\r\n </ul>\r\n </div>\r\n <div class=\"content\" *ngIf=\"editing\" style=\"padding-bottom: 2em;\">\r\n <div>\r\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\r\n <mat-label>Edit Message</mat-label>\r\n <textarea matInput [(ngModel)]=\"editedMessage\" [maxlength]=\"maxLength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <button mat-raised-button (click)=\"saveEdit()\">Save</button> \r\n <button mat-button (click)=\"endEditing()\">Cancel</button>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <button mat-button [matTooltip]=\"replyCount > 0 ? 'Replies' : 'Reply'\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n <span class=\"count-indicator\">\r\n {{replyCount > 0 ? 'Replies' : 'Reply'}}\r\n {{replyCount > 0 ? '(' + replyCount + ')' : ''}}\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\" [class.active]=\"message.userState?.liked\">\r\n <button \r\n *ngIf=\"message.transientState?.liking\"\r\n mat-icon-button \r\n [disabled]=\"true\" \r\n [matTooltip]=\"upvoting ? 'Please wait...' : message.userState?.liked ? 'Unlike' : 'Like'\" \r\n matTooltipPosition=\"below\" \r\n >\r\n <mat-spinner [diameter]=\"15\" style=\"margin-left: 1em;\"></mat-spinner>\r\n </button>\r\n <button \r\n *ngIf=\"!message.transientState?.liking\"\r\n mat-button \r\n [matTooltip]=\"permissions?.canLike ? upvoting ? 'Please wait...' : 'Like' : permissions?.canLikeErrorMessage\" \r\n matTooltipPosition=\"below\" \r\n (click)=\"message.userState?.liked ? unlike() : like()\" \r\n >\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n <span class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n {{message.likes}}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@keyframes comment-appear{0%{transform:translate(6em)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;position:relative;padding:.5em;visibility:hidden}:host.new{visibility:visible;animation-name:comment-appear;animation-duration:.25s;animation-fill-mode:both}:host.highlighted{background:#00223a;outline:2px solid #003277}:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host .message-content .attachments-row{margin-top:15px;display:flex;gap:10px}:host .message-content .attachments-row img{border-radius:10px;width:300px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}:host.abbreviated .message-content .content{text-overflow:ellipsis;overflow-y:hidden}:host .actions{display:flex;padding-right:10px;margin-left:60px;align-items:center}:host .actions button{color:#666;flex-shrink:0}banta-timestamp{color:#666;font-size:10pt;flex-shrink:0;margin-left:1em;text-align:right}.user{position:relative;margin:1em 0 0;display:flex;align-items:center;flex-wrap:wrap}.user .user-1,.user .user-2{display:flex;flex-wrap:nowrap;align-items:center;min-width:0}.user .user-2{margin:1em 0}.user .user-identity{display:flex;flex-direction:column;min-width:0}.user .display-name,.user .username{z-index:1;position:relative;padding:0 0 0 1em;font-size:10pt;color:#000;margin:0 auto 0 0;display:block;width:-moz-fit-content;width:fit-content;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:1;flex-grow:0;min-width:0}.user .display-name.username.username.username,.user .username.username.username.username{color:#666}.avatar{height:48px;width:48px;background-position:center;background-size:cover;background-color:#333;border-radius:100%;flex-shrink:0;flex-grow:0}.counted-action{display:flex;align-items:center}.counted-action.active button,.counted-action.active .count-indicator{color:#00a5ff}.counted-action button .count-indicator{margin-left:.5em}.count-indicator{font-size:9pt;padding:0 0 0 3px;color:#666}:host-context(.mat-dark-theme) .count-indicator{border-color:#333}:host-context(.mat-dark-theme):hover{background:#060606}:host-context(.mat-dark-theme) .user .display-name,:host-context(.mat-dark-theme) .user .username{color:#fff}.user-tag{text-transform:uppercase;font-size:12px;border:1px solid #b27373;background:#7a412b;color:#fff;padding:3px 5px;margin:0 .5em 0 1em;border-radius:3px}.spacer{flex-shrink:1;flex-grow:1}ul.message-facts{margin:0;padding:0;color:#666}ul.message-facts li{list-style-type:none;border-left:1px solid #666;font-size:10pt;padding-left:.5em;margin-left:.5em}ul.message-facts li{margin-top:.5em}ul.message-facts li:first-child{border-left:1px solid transparent;margin-left:0;padding-left:0}@media (max-width: 400px){.avatar{height:32px;width:32px}:host .actions{margin-left:0;margin-top:.5em}:host .message-content .content{margin-left:44px;margin-right:.5em}}:host-context(.banta-mobile) .avatar{height:32px;width:32px}:host-context(.banta-mobile) :host .actions{margin-left:0;margin-top:.5em}:host-context(.banta-mobile) :host .message-content .content{margin-left:44px;margin-right:.5em}.card-attachment a{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919}.card-attachment a img{width:300px;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border-radius:10px}.card-attachment a h1{margin:0;font-size:30px}::ng-deep .banta-message-content img.emoji{height:1.5em;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.TimestampComponent, selector: "banta-timestamp", inputs: ["value"] }, { kind: "component", type: i10.BantaAttachmentsComponent, selector: "banta-attachments", inputs: ["attachments", "editing"], outputs: ["remove", "loaded"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i12.BantaMarkdownToHtmlPipe, name: "markdownToHtml" }, { kind: "pipe", type: i13.BantaMentionLinkerPipe, name: "mentionLinker" }] });
|
|
159
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CommentComponent, decorators: [{
|
|
160
160
|
type: Component,
|
|
161
|
-
args: [{ selector: 'banta-comment', template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"share()\">\r\n <mat-icon>share</mat-icon>\r\n Share\r\n </button>\r\n <button *ngIf=\"!mine\" mat-menu-item (click)=\"report()\">\r\n <mat-icon>warning</mat-icon>\r\n Report\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canEdit\" mat-menu-item (click)=\"startEdit()\">\r\n <mat-icon>edit</mat-icon>\r\n Edit\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canDelete\" mat-menu-item (click)=\"delete()\">\r\n <mat-icon>delete</mat-icon>\r\n Delete\r\n </button>\r\n\r\n <button *ngFor=\"let menuItem of customMenuItems\" mat-menu-item (click)=\"menuItem.action(message)\">\r\n <mat-icon>{{menuItem.icon}}</mat-icon>\r\n {{menuItem.label}}\r\n </button>\r\n\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <div class=\"user-1\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <div class=\"user-identity\">\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n </div>\r\n </div>\r\n <div class=\"user-2\">\r\n <span class=\"user-tag\" *ngIf=\"message.user.tag\">{{message.user.tag}}</span>\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <span class=\"spacer\"></span>\r\n </div>\r\n </div>\r\n <div class=\"content\" *ngIf=\"!editing\">\r\n <span class=\"banta-message-content\" [innerHTML]=\"message.message | mentionLinker: message.mentionLinks | markdownToHtml\"></span>\r\n <banta-attachments \r\n [attachments]=\"message.attachments\"\r\n (loaded)=\"markAttachmentsLoaded()\"\r\n ></banta-attachments>\r\n <ul class=\"message-facts\">\r\n <li *ngIf=\"message.edits?.length > 0\">(Edited)</li>\r\n </ul>\r\n </div>\r\n <div class=\"content\" *ngIf=\"editing\" style=\"padding-bottom: 2em;\">\r\n <div>\r\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\r\n <mat-label>Edit Message</mat-label>\r\n <textarea matInput [(ngModel)]=\"editedMessage\" [maxlength]=\"maxLength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <button mat-raised-button (click)=\"saveEdit()\">Save</button> \r\n <button mat-button (click)=\"endEditing()\">Cancel</button>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <button mat-button [matTooltip]=\"replyCount > 0 ? 'Replies' : 'Reply'\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n <span class=\"count-indicator\">\r\n {{replyCount > 0 ? 'Replies' : 'Reply'}}\r\n {{replyCount > 0 ? '(' + replyCount + ')' : ''}}\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\" [class.active]=\"message.userState?.liked\">\r\n <button \r\n *ngIf=\"message.transientState?.liking\"\r\n mat-icon-button \r\n [disabled]=\"true\" \r\n [matTooltip]=\"upvoting ? 'Please wait...' : message.userState?.liked ? 'Unlike' : 'Like'\" \r\n matTooltipPosition=\"below\" \r\n >\r\n <mat-spinner [diameter]=\"15\" style=\"margin-left: 1em;\"></mat-spinner>\r\n </button>\r\n <button \r\n *ngIf=\"!message.transientState?.liking\"\r\n mat-button \r\n [matTooltip]=\"permissions?.canLike ? upvoting ? 'Please wait...' : 'Like' : permissions?.canLikeErrorMessage\" \r\n matTooltipPosition=\"below\" \r\n (click)=\"message.userState?.liked ? unlike() : like()\" \r\n >\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n <span class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n {{message.likes}}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@keyframes comment-appear{0%{transform:translate(6em)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;position:relative;padding:.5em;visibility:hidden}:host.new{visibility:visible;animation-name:comment-appear;animation-duration:.25s;animation-fill-mode:both}:host.highlighted{background:#00223a;outline:2px solid #003277}:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host .message-content .attachments-row{margin-top:15px;display:flex;gap:10px}:host .message-content .attachments-row img{border-radius:10px;width:300px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}:host.abbreviated .message-content .content{text-overflow:ellipsis;overflow-y:hidden}:host .actions{display:flex;padding-right:10px;margin-left:60px;align-items:center}:host .actions button{color:#666;flex-shrink:0}banta-timestamp{color:#666;font-size:10pt;flex-shrink:0;margin-left:1em;text-align:right}.user{position:relative;margin:1em 0 0;display:flex;align-items:center;flex-wrap:wrap}.user .user-1,.user .user-2{display:flex;flex-wrap:nowrap;align-items:center;min-width:0}.user .user-2{margin:1em 0}.user .user-identity{display:flex;flex-direction:column;min-width:0}.user .display-name,.user .username{z-index:1;position:relative;padding:0 0 0 1em;font-size:10pt;color:#000;margin:0 auto 0 0;display:block;width:-moz-fit-content;width:fit-content;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:1;flex-grow:0;min-width:0}.user .display-name.username.username.username,.user .username.username.username.username{color:#666}.avatar{height:48px;width:48px;background-position:center;background-size:cover;background-color:#333;border-radius:100%;flex-shrink:0;flex-grow:0}.counted-action{display:flex;align-items:center}.counted-action.active button,.counted-action.active .count-indicator{color:#00a5ff}.counted-action button .count-indicator{margin-left:.5em}.count-indicator{font-size:9pt;padding:0 0 0 3px;color:#666}:host-context(.mat-dark-theme) .count-indicator{border-color:#333}:host-context(.mat-dark-theme):hover{background:#060606}:host-context(.mat-dark-theme) .user .display-name,:host-context(.mat-dark-theme) .user .username{color:#fff}.user-tag{text-transform:uppercase;font-size:12px;border:1px solid #b27373;background:#7a412b;color:#fff;padding:3px 5px;margin:0 .5em 0 1em;border-radius:3px}.spacer{flex-shrink:1;flex-grow:1}ul.message-facts{margin:0;padding:0;color:#666}ul.message-facts li{list-style-type:none;border-left:1px solid #666;font-size:10pt;padding-left:.5em;margin-left:.5em}ul.message-facts li{margin-top:.5em}ul.message-facts li:first-child{border-left:1px solid transparent;margin-left:0;padding-left:0}@media (max-width: 400px){.avatar{height:32px;width:32px}:host .actions{margin-left:0;margin-top:.5em}:host .message-content .content{margin-left:44px;margin-right:.5em}}:host-context(.banta-mobile) .avatar{height:32px;width:32px}:host-context(.banta-mobile) :host .actions{margin-left:0;margin-top:.5em}:host-context(.banta-mobile) :host .message-content .content{margin-left:44px;margin-right:.5em}.card-attachment a{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919}.card-attachment a img{width:300px;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border-radius:10px}.card-attachment a h1{margin:0;font-size:30px}\n"] }]
|
|
161
|
+
args: [{ selector: 'banta-comment', template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"share()\">\r\n <mat-icon>share</mat-icon>\r\n Share\r\n </button>\r\n <button *ngIf=\"!mine\" mat-menu-item (click)=\"report()\">\r\n <mat-icon>warning</mat-icon>\r\n Report\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canEdit\" mat-menu-item (click)=\"startEdit()\">\r\n <mat-icon>edit</mat-icon>\r\n Edit\r\n </button>\r\n <button *ngIf=\"mine\" [disabled]=\"!permissions?.canDelete\" mat-menu-item (click)=\"delete()\">\r\n <mat-icon>delete</mat-icon>\r\n Delete\r\n </button>\r\n\r\n <button *ngFor=\"let menuItem of customMenuItems\" mat-menu-item (click)=\"menuItem.action(message)\">\r\n <mat-icon>{{menuItem.icon}}</mat-icon>\r\n {{menuItem.label}}\r\n </button>\r\n\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <div class=\"user-1\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <div class=\"user-identity\">\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n </div>\r\n </div>\r\n <div class=\"user-2\">\r\n <span class=\"user-tag\" *ngIf=\"message.user.tag\">{{message.user.tag}}</span>\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <span class=\"spacer\"></span>\r\n </div>\r\n </div>\r\n <div class=\"content\" *ngIf=\"!editing\">\r\n <span class=\"banta-message-content\" [innerHTML]=\"message.message | mentionLinker: message.mentionLinks | markdownToHtml\"></span>\r\n <banta-attachments \r\n [attachments]=\"message.attachments\"\r\n (loaded)=\"markAttachmentsLoaded()\"\r\n ></banta-attachments>\r\n <ul class=\"message-facts\">\r\n <li *ngIf=\"message.edits?.length > 0\">(Edited)</li>\r\n </ul>\r\n </div>\r\n <div class=\"content\" *ngIf=\"editing\" style=\"padding-bottom: 2em;\">\r\n <div>\r\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\r\n <mat-label>Edit Message</mat-label>\r\n <textarea matInput [(ngModel)]=\"editedMessage\" [maxlength]=\"maxLength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <button mat-raised-button (click)=\"saveEdit()\">Save</button> \r\n <button mat-button (click)=\"endEditing()\">Cancel</button>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <button mat-button [matTooltip]=\"replyCount > 0 ? 'Replies' : 'Reply'\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n <span class=\"count-indicator\">\r\n {{replyCount > 0 ? 'Replies' : 'Reply'}}\r\n {{replyCount > 0 ? '(' + replyCount + ')' : ''}}\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\" [class.active]=\"message.userState?.liked\">\r\n <button \r\n *ngIf=\"message.transientState?.liking\"\r\n mat-icon-button \r\n [disabled]=\"true\" \r\n [matTooltip]=\"upvoting ? 'Please wait...' : message.userState?.liked ? 'Unlike' : 'Like'\" \r\n matTooltipPosition=\"below\" \r\n >\r\n <mat-spinner [diameter]=\"15\" style=\"margin-left: 1em;\"></mat-spinner>\r\n </button>\r\n <button \r\n *ngIf=\"!message.transientState?.liking\"\r\n mat-button \r\n [matTooltip]=\"permissions?.canLike ? upvoting ? 'Please wait...' : 'Like' : permissions?.canLikeErrorMessage\" \r\n matTooltipPosition=\"below\" \r\n (click)=\"message.userState?.liked ? unlike() : like()\" \r\n >\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n <span class=\"count-indicator\" *ngIf=\"message.likes > 0\">\r\n {{message.likes}}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@keyframes comment-appear{0%{transform:translate(6em)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;position:relative;padding:.5em;visibility:hidden}:host.new{visibility:visible;animation-name:comment-appear;animation-duration:.25s;animation-fill-mode:both}:host.highlighted{background:#00223a;outline:2px solid #003277}:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host .message-content .attachments-row{margin-top:15px;display:flex;gap:10px}:host .message-content .attachments-row img{border-radius:10px;width:300px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}:host.abbreviated .message-content .content{text-overflow:ellipsis;overflow-y:hidden}:host .actions{display:flex;padding-right:10px;margin-left:60px;align-items:center}:host .actions button{color:#666;flex-shrink:0}banta-timestamp{color:#666;font-size:10pt;flex-shrink:0;margin-left:1em;text-align:right}.user{position:relative;margin:1em 0 0;display:flex;align-items:center;flex-wrap:wrap}.user .user-1,.user .user-2{display:flex;flex-wrap:nowrap;align-items:center;min-width:0}.user .user-2{margin:1em 0}.user .user-identity{display:flex;flex-direction:column;min-width:0}.user .display-name,.user .username{z-index:1;position:relative;padding:0 0 0 1em;font-size:10pt;color:#000;margin:0 auto 0 0;display:block;width:-moz-fit-content;width:fit-content;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:1;flex-grow:0;min-width:0}.user .display-name.username.username.username,.user .username.username.username.username{color:#666}.avatar{height:48px;width:48px;background-position:center;background-size:cover;background-color:#333;border-radius:100%;flex-shrink:0;flex-grow:0}.counted-action{display:flex;align-items:center}.counted-action.active button,.counted-action.active .count-indicator{color:#00a5ff}.counted-action button .count-indicator{margin-left:.5em}.count-indicator{font-size:9pt;padding:0 0 0 3px;color:#666}:host-context(.mat-dark-theme) .count-indicator{border-color:#333}:host-context(.mat-dark-theme):hover{background:#060606}:host-context(.mat-dark-theme) .user .display-name,:host-context(.mat-dark-theme) .user .username{color:#fff}.user-tag{text-transform:uppercase;font-size:12px;border:1px solid #b27373;background:#7a412b;color:#fff;padding:3px 5px;margin:0 .5em 0 1em;border-radius:3px}.spacer{flex-shrink:1;flex-grow:1}ul.message-facts{margin:0;padding:0;color:#666}ul.message-facts li{list-style-type:none;border-left:1px solid #666;font-size:10pt;padding-left:.5em;margin-left:.5em}ul.message-facts li{margin-top:.5em}ul.message-facts li:first-child{border-left:1px solid transparent;margin-left:0;padding-left:0}@media (max-width: 400px){.avatar{height:32px;width:32px}:host .actions{margin-left:0;margin-top:.5em}:host .message-content .content{margin-left:44px;margin-right:.5em}}:host-context(.banta-mobile) .avatar{height:32px;width:32px}:host-context(.banta-mobile) :host .actions{margin-left:0;margin-top:.5em}:host-context(.banta-mobile) :host .message-content .content{margin-left:44px;margin-right:.5em}.card-attachment a{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919}.card-attachment a img{width:300px;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border-radius:10px}.card-attachment a h1{margin:0;font-size:30px}::ng-deep .banta-message-content img.emoji{height:1.5em;vertical-align:middle}\n"] }]
|
|
162
162
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { maxLength: [{
|
|
163
163
|
type: Input
|
|
164
164
|
}], isNew: [{
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
1
|
+
import { Pipe, Inject, Optional } from '@angular/core';
|
|
2
2
|
import * as marked from 'marked';
|
|
3
3
|
import createDOMPurify from 'dompurify';
|
|
4
|
+
import twemoji from 'twemoji';
|
|
5
|
+
import { BANTA_SDK_OPTIONS } from '../sdk-options';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
import * as i1 from "@angular/platform-browser";
|
|
6
8
|
const underline = {
|
|
@@ -26,8 +28,9 @@ marked.marked.use({
|
|
|
26
28
|
extensions: [underline]
|
|
27
29
|
});
|
|
28
30
|
export class BantaMarkdownToHtmlPipe {
|
|
29
|
-
constructor(sanitizer) {
|
|
31
|
+
constructor(sanitizer, sdkOptions) {
|
|
30
32
|
this.sanitizer = sanitizer;
|
|
33
|
+
this.sdkOptions = sdkOptions;
|
|
31
34
|
this.renderer = new marked.Renderer({
|
|
32
35
|
headerPrefix: ''
|
|
33
36
|
});
|
|
@@ -37,6 +40,9 @@ export class BantaMarkdownToHtmlPipe {
|
|
|
37
40
|
return html.replace(/^<a /, '<a target="_blank" rel="noopener noreferrer nofollow" ');
|
|
38
41
|
};
|
|
39
42
|
}
|
|
43
|
+
get emojiUrl() {
|
|
44
|
+
return this.sdkOptions?.emojiUrl ?? 'https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/';
|
|
45
|
+
}
|
|
40
46
|
transform(value) {
|
|
41
47
|
if (!value)
|
|
42
48
|
return '';
|
|
@@ -57,20 +63,27 @@ export class BantaMarkdownToHtmlPipe {
|
|
|
57
63
|
node.setAttribute('xlink:show', 'new');
|
|
58
64
|
}
|
|
59
65
|
});
|
|
60
|
-
|
|
66
|
+
value = marked.marked.parse(value, {
|
|
61
67
|
renderer: this.renderer
|
|
62
|
-
})
|
|
68
|
+
});
|
|
69
|
+
value = twemoji.parse(value, { base: this.emojiUrl });
|
|
70
|
+
return this.sanitizer.bypassSecurityTrustHtml(purifier.sanitize(value, {
|
|
63
71
|
FORBID_TAGS: ['h1', 'h2', 'h3', 'h4'],
|
|
64
72
|
KEEP_CONTENT: true
|
|
65
73
|
}));
|
|
66
74
|
}
|
|
67
75
|
}
|
|
68
|
-
BantaMarkdownToHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BantaMarkdownToHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
76
|
+
BantaMarkdownToHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BantaMarkdownToHtmlPipe, deps: [{ token: i1.DomSanitizer }, { token: BANTA_SDK_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
69
77
|
BantaMarkdownToHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: BantaMarkdownToHtmlPipe, name: "markdownToHtml" });
|
|
70
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BantaMarkdownToHtmlPipe, decorators: [{
|
|
71
79
|
type: Pipe,
|
|
72
80
|
args: [{
|
|
73
81
|
name: 'markdownToHtml'
|
|
74
82
|
}]
|
|
75
|
-
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }
|
|
76
|
-
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: undefined, decorators: [{
|
|
84
|
+
type: Inject,
|
|
85
|
+
args: [BANTA_SDK_OPTIONS]
|
|
86
|
+
}, {
|
|
87
|
+
type: Optional
|
|
88
|
+
}] }]; } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tdG8taHRtbC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvY29tbW9uL21hcmtkb3duLXRvLWh0bWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sZUFBZSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sZ0JBQWdCLENBQUM7OztBQUUvRCxNQUFNLFNBQVMsR0FBRztJQUNkLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDakIsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQywrQkFBK0I7UUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixJQUFJLEtBQUssRUFBRTtZQUNQLE9BQU87Z0JBQ0gsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNiLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSwrQkFBK0I7YUFDbEYsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsT0FBTyxNQUFN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MEJBS1EsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIG1hcmtlZCBmcm9tICdtYXJrZWQnO1xyXG5pbXBvcnQgY3JlYXRlRE9NUHVyaWZ5IGZyb20gJ2RvbXB1cmlmeSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgdHdlbW9qaSBmcm9tICd0d2Vtb2ppJztcclxuaW1wb3J0IHsgQkFOVEFfU0RLX09QVElPTlMsIFNka09wdGlvbnMgfSBmcm9tICcuLi9zZGstb3B0aW9ucyc7XHJcblxyXG5jb25zdCB1bmRlcmxpbmUgPSB7XHJcbiAgICBuYW1lOiAndW5kZXJsaW5lJyxcclxuICAgIGxldmVsOiAnaW5saW5lJywgLy8gSXMgdGhpcyBhIGJsb2NrLWxldmVsIG9yIGlubGluZS1sZXZlbCB0b2tlbml6ZXI/XHJcbiAgICBzdGFydChzcmMpIHsgcmV0dXJuIHNyYy5tYXRjaCgvXFwrXFwrLyk/LmluZGV4OyB9LCAvLyBIaW50IHRvIE1hcmtlZC5qcyB0byBzdG9wIGFuZCBjaGVjayBmb3IgYSBtYXRjaFxyXG4gICAgdG9rZW5pemVyKHNyYywgdG9rZW5zKSB7XHJcbiAgICAgICAgY29uc3QgcnVsZSA9IC9eXFwrXFwrKC4qPylcXCtcXCsvOyAvLyBSZWdleCBmb3IgdGhlIGNvbXBsZXRlIHRva2VuXHJcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBydWxlLmV4ZWMoc3JjKTtcclxuICAgICAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgLy8gVG9rZW4gdG8gZ2VuZXJhdGVcclxuICAgICAgICAgICAgICAgIHR5cGU6ICd1bmRlcmxpbmUnLCAvLyBTaG91bGQgbWF0Y2ggXCJuYW1lXCIgYWJvdmVcclxuICAgICAgICAgICAgICAgIHJhdzogbWF0Y2hbMF0sIC8vIFRleHQgdG8gY29uc3VtZSBmcm9tIHRoZSBzb3VyY2VcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKG1hdGNoWzFdLnRyaW0oKSksIC8vIEFkZGl0aW9uYWwgY3VzdG9tIHByb3BlcnRpZXNcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcmVuZGVyZXIodG9rZW4pIHtcclxuICAgICAgICByZXR1cm4gYDx1PiR7dGhpcy5wYXJzZXIucGFyc2VJbmxpbmUodG9rZW4udGV4dCl9PC91PmA7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tYXJrZWQubWFya2VkLnVzZSh7XHJcbiAgICBleHRlbnNpb25zOiBbdW5kZXJsaW5lXVxyXG59KTtcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdtYXJrZG93blRvSHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbnRhTWFya2Rvd25Ub0h0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG5cclxuICAgICAgICBASW5qZWN0KEJBTlRBX1NES19PUFRJT05TKSBAT3B0aW9uYWwoKVxyXG4gICAgICAgIHByaXZhdGUgc2RrT3B0aW9uczogU2RrT3B0aW9uc1xyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IG5ldyBtYXJrZWQuUmVuZGVyZXIoe1xyXG4gICAgICAgICAgICBoZWFkZXJQcmVmaXg6ICcnXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgbGlua1JlbmRlcmVyID0gdGhpcy5yZW5kZXJlci5saW5rO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIubGluayA9IChocmVmLCB0aXRsZSwgdGV4dCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBodG1sID0gbGlua1JlbmRlcmVyLmNhbGwodGhpcy5yZW5kZXJlciwgaHJlZiwgdGl0bGUsIHRleHQpO1xyXG4gICAgICAgICAgICByZXR1cm4gaHRtbC5yZXBsYWNlKC9ePGEgLywgJzxhIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIiAnKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuXHRwcml2YXRlIGdldCBlbW9qaVVybCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNka09wdGlvbnM/LmVtb2ppVXJsID8/ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvdHdpdHRlci90d2Vtb2ppQDE0LjAuMi9hc3NldHMvJztcclxuXHR9XHJcblxyXG4gICAgcmVuZGVyZXI6IG1hcmtlZC5SZW5kZXJlcjtcclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSlcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG5cclxuICAgICAgICBsZXQgcHVyaWZpZXIgPSBjcmVhdGVET01QdXJpZnkod2luZG93KTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vY3VyZTUzL0RPTVB1cmlmeS9ibG9iL2UxYzE5Y2Y2NDA3ZDc4MmI2NjZjYjFkMDJhNmFmMTkxZjljYmMwOWUvZGVtb3MvaG9va3MtdGFyZ2V0LWJsYW5rLWRlbW8uaHRtbFxyXG4gICAgICAgIC8vIEFkZCBhIGhvb2sgdG8gbWFrZSBhbGwgbGlua3Mgb3BlbiBhIG5ldyB3aW5kb3dcclxuICAgICAgICBwdXJpZmllci5hZGRIb29rKCdhZnRlclNhbml0aXplQXR0cmlidXRlcycsIGZ1bmN0aW9uKG5vZGU6IEhUTUxFbGVtZW50ICYgeyB0YXJnZXQ/OiBzdHJpbmcgfSkge1xyXG4gICAgICAgICAgICAvLyBzZXQgYWxsIGVsZW1lbnRzIG93bmluZyB0YXJnZXQgdG8gdGFyZ2V0PV9ibGFua1xyXG4gICAgICAgICAgICBpZiAoJ3RhcmdldCcgaW4gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsJ19ibGFuaycpO1xyXG4gICAgICAgICAgICAgICAgLy8gcHJldmVudCBodHRwczovL3d3dy5vd2FzcC5vcmcvaW5kZXgucGhwL1JldmVyc2VfVGFibmFiYmluZ1xyXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gc2V0IG5vbi1IVE1ML01hdGhNTCBsaW5rcyB0byB4bGluazpzaG93PW5ld1xyXG4gICAgICAgICAgICBpZiAoIW5vZGUuaGFzQXR0cmlidXRlKCd0YXJnZXQnKVxyXG4gICAgICAgICAgICAgICAgJiYgKG5vZGUuaGFzQXR0cmlidXRlKCd4bGluazpocmVmJylcclxuICAgICAgICAgICAgICAgICAgICB8fCBub2RlLmhhc0F0dHJpYnV0ZSgnaHJlZicpKSkge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3hsaW5rOnNob3cnLCAnbmV3Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdmFsdWUgPSBtYXJrZWQubWFya2VkLnBhcnNlKHZhbHVlLCB7XHJcbiAgICAgICAgICAgIHJlbmRlcmVyOiB0aGlzLnJlbmRlcmVyXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHZhbHVlID0gdHdlbW9qaS5wYXJzZSh2YWx1ZSwgeyBiYXNlOiB0aGlzLmVtb2ppVXJsIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoXHJcbiAgICAgICAgICAgIHB1cmlmaWVyLnNhbml0aXplKHZhbHVlLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIEZPUkJJRF9UQUdTOiBbJ2gxJywgJ2gyJywgJ2gzJywgJ2g0J10sXHJcbiAgICAgICAgICAgICAgICAgICAgS0VFUF9DT05URU5UOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Component, Output } from '@angular/core';
|
|
1
|
+
import { Component, Inject, Optional, Output } from '@angular/core';
|
|
2
|
+
import { BANTA_SDK_OPTIONS } from '../../sdk-options';
|
|
2
3
|
import { Subject } from 'rxjs';
|
|
3
4
|
import { EMOJIS } from '../emojis';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
@@ -10,8 +11,9 @@ import * as i5 from "@angular/material/button";
|
|
|
10
11
|
import * as i6 from "@angular/material/form-field";
|
|
11
12
|
import * as i7 from "@angular/material/input";
|
|
12
13
|
export class EmojiSelectorPanelComponent {
|
|
13
|
-
constructor(sanitizer) {
|
|
14
|
+
constructor(sanitizer, sdkOptions) {
|
|
14
15
|
this.sanitizer = sanitizer;
|
|
16
|
+
this.sdkOptions = sdkOptions;
|
|
15
17
|
this.activeCategory = 'people';
|
|
16
18
|
this.searchResults = [];
|
|
17
19
|
this.searchVisible = false;
|
|
@@ -49,6 +51,9 @@ export class EmojiSelectorPanelComponent {
|
|
|
49
51
|
this.searchVisible = true;
|
|
50
52
|
});
|
|
51
53
|
}
|
|
54
|
+
get emojiUrl() {
|
|
55
|
+
return this.sdkOptions?.emojiUrl ?? 'https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/';
|
|
56
|
+
}
|
|
52
57
|
ngOnInit() {
|
|
53
58
|
let cats = {};
|
|
54
59
|
let categoryIcons = {
|
|
@@ -71,18 +76,23 @@ export class EmojiSelectorPanelComponent {
|
|
|
71
76
|
emojis: []
|
|
72
77
|
};
|
|
73
78
|
}
|
|
74
|
-
emoji.html = this.sanitizer.bypassSecurityTrustHtml(twemoji.parse(emoji.char || '', { base:
|
|
79
|
+
emoji.html = this.sanitizer.bypassSecurityTrustHtml(twemoji.parse(emoji.char || '', { base: this.emojiUrl }));
|
|
75
80
|
cats[emoji.category].emojis.push(emoji);
|
|
76
81
|
}
|
|
77
82
|
this.categories = this.pairs(cats).map(pair => pair[1]);
|
|
78
83
|
}
|
|
79
84
|
}
|
|
80
|
-
EmojiSelectorPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EmojiSelectorPanelComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
+
EmojiSelectorPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EmojiSelectorPanelComponent, deps: [{ token: i1.DomSanitizer }, { token: BANTA_SDK_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
86
|
EmojiSelectorPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: EmojiSelectorPanelComponent, selector: "emoji-selector-panel", outputs: { selected: "selected" }, ngImport: i0, template: "<div class=\"search-box\" *ngIf=\"searchVisible\">\r\n\t<a mat-icon-button href=\"javascript:;\" (click)=\"hideSearch()\">\r\n\t\t<mat-icon>arrow_back</mat-icon>\r\n\t</a>\r\n\t<mat-form-field appearance=\"outline\" floatLabel=\"always\">\r\n\t\t<mat-label>Search for emoji</mat-label>\r\n\t\t<input name=\"search\" type=\"text\" matInput placeholder=\"Start typing\" [(ngModel)]=\"searchQuery\" />\r\n\t</mat-form-field>\r\n</div>\r\n\r\n<div class=\"selector\">\r\n\t<ng-container *ngIf=\"searchVisible\">\r\n\t\t<div class=\"emoji-list\">\r\n\t\t\t<a href=\"javascript:;\" (click)=\"select(emoji.char)\" \r\n\t\t\t\t*ngFor=\"let emoji of searchResults\" [innerHtml]=\"emoji.html || ''\">\r\n\t\t\t</a>\r\n\t\t</div>\r\n\t</ng-container>\r\n\t<ng-container *ngIf=\"!searchVisible\">\r\n\t\t<div class=\"categories\">\r\n\t\t\t<ng-container *ngIf=\"!searchVisible\">\r\n\t\t\t\t<a [title]=\"humanize(category.name)\" [class.active]=\"activeCategory === category.name\" mat-icon-button *ngFor=\"let category of categories\" (click)=\"activeCategory = category.name\">\r\n\t\t\t\t\t<mat-icon>{{category.icon}}</mat-icon>\r\n\t\t\t\t</a>\r\n\r\n\t\t\t\t<a title=\"Search\" [class.active] mat-icon-button (click)=\"showSearch()\">\r\n\t\t\t\t\t<mat-icon>search</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<ng-container *ngFor=\"let category of categories\">\r\n\t\t\t<div class=\"emoji-list\" *ngIf=\"activeCategory && activeCategory == category.name\">\r\n\t\t\t\t<a href=\"javascript:;\" (click)=\"select(emoji.char)\" \r\n\t\t\t\t\t*ngFor=\"let emoji of category.emojis\" [innerHtml]=\"emoji.html || ''\">\r\n\t\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</div>", styles: [":host{background:#111;color:#fff;border:1px solid #333;border-radius:5px;padding:.5em;width:calc(9*(32px + 1em));max-width:calc(100vw - 1.5em - 5px)}.selector{display:flex;flex-direction:column}.categories a{opacity:.25;transition:.4s opacity ease-in-out}.categories a:hover{opacity:.5}.categories a.active{opacity:1}.emoji-list{flex-grow:1;overflow-y:auto;height:20em}.emoji-list a{display:inline-block;padding:2px;margin:4px;background-color:#111}.emoji-list a ::ng-deep .emoji{width:32px;height:32px}.emoji-list a:hover{background-color:#333}.search-box{display:flex;align-items:baseline}.search-box mat-form-field{flex-grow:1}@media (max-width: 500px){.selector{flex-direction:row;height:27em}.emoji-list{height:auto}}:host-context(.banta-mobile) .selector{flex-direction:row;height:27em}:host-context(.banta-mobile) .emoji-list{height:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
|
|
82
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EmojiSelectorPanelComponent, decorators: [{
|
|
83
88
|
type: Component,
|
|
84
89
|
args: [{ selector: 'emoji-selector-panel', template: "<div class=\"search-box\" *ngIf=\"searchVisible\">\r\n\t<a mat-icon-button href=\"javascript:;\" (click)=\"hideSearch()\">\r\n\t\t<mat-icon>arrow_back</mat-icon>\r\n\t</a>\r\n\t<mat-form-field appearance=\"outline\" floatLabel=\"always\">\r\n\t\t<mat-label>Search for emoji</mat-label>\r\n\t\t<input name=\"search\" type=\"text\" matInput placeholder=\"Start typing\" [(ngModel)]=\"searchQuery\" />\r\n\t</mat-form-field>\r\n</div>\r\n\r\n<div class=\"selector\">\r\n\t<ng-container *ngIf=\"searchVisible\">\r\n\t\t<div class=\"emoji-list\">\r\n\t\t\t<a href=\"javascript:;\" (click)=\"select(emoji.char)\" \r\n\t\t\t\t*ngFor=\"let emoji of searchResults\" [innerHtml]=\"emoji.html || ''\">\r\n\t\t\t</a>\r\n\t\t</div>\r\n\t</ng-container>\r\n\t<ng-container *ngIf=\"!searchVisible\">\r\n\t\t<div class=\"categories\">\r\n\t\t\t<ng-container *ngIf=\"!searchVisible\">\r\n\t\t\t\t<a [title]=\"humanize(category.name)\" [class.active]=\"activeCategory === category.name\" mat-icon-button *ngFor=\"let category of categories\" (click)=\"activeCategory = category.name\">\r\n\t\t\t\t\t<mat-icon>{{category.icon}}</mat-icon>\r\n\t\t\t\t</a>\r\n\r\n\t\t\t\t<a title=\"Search\" [class.active] mat-icon-button (click)=\"showSearch()\">\r\n\t\t\t\t\t<mat-icon>search</mat-icon>\r\n\t\t\t\t</a>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<ng-container *ngFor=\"let category of categories\">\r\n\t\t\t<div class=\"emoji-list\" *ngIf=\"activeCategory && activeCategory == category.name\">\r\n\t\t\t\t<a href=\"javascript:;\" (click)=\"select(emoji.char)\" \r\n\t\t\t\t\t*ngFor=\"let emoji of category.emojis\" [innerHtml]=\"emoji.html || ''\">\r\n\t\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</div>", styles: [":host{background:#111;color:#fff;border:1px solid #333;border-radius:5px;padding:.5em;width:calc(9*(32px + 1em));max-width:calc(100vw - 1.5em - 5px)}.selector{display:flex;flex-direction:column}.categories a{opacity:.25;transition:.4s opacity ease-in-out}.categories a:hover{opacity:.5}.categories a.active{opacity:1}.emoji-list{flex-grow:1;overflow-y:auto;height:20em}.emoji-list a{display:inline-block;padding:2px;margin:4px;background-color:#111}.emoji-list a ::ng-deep .emoji{width:32px;height:32px}.emoji-list a:hover{background-color:#333}.search-box{display:flex;align-items:baseline}.search-box mat-form-field{flex-grow:1}@media (max-width: 500px){.selector{flex-direction:row;height:27em}.emoji-list{height:auto}}:host-context(.banta-mobile) .selector{flex-direction:row;height:27em}:host-context(.banta-mobile) .emoji-list{height:auto}\n"] }]
|
|
85
|
-
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: undefined, decorators: [{
|
|
91
|
+
type: Inject,
|
|
92
|
+
args: [BANTA_SDK_OPTIONS]
|
|
93
|
+
}, {
|
|
94
|
+
type: Optional
|
|
95
|
+
}] }]; }, propDecorators: { selected: [{
|
|
86
96
|
type: Output
|
|
87
97
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvZW1vamkvZW1vamktc2VsZWN0b3ItcGFuZWwvZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvZW1vamkvZW1vamktc2VsZWN0b3ItcGFuZWwvZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7QUFPbkMsTUFBTSxPQUFPLDJCQUEyQjtJQUV2QyxZQUNTLFNBQXdCO1FBQXhCLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFJakMsbUJBQWMsR0FBWSxRQUFRLENBQUM7UUFDbkMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHakIsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBUi9DLENBQUM7SUFZTCxJQUFJLFdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFD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QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7O3lIQXhGVywyQkFBMkI7NkdBQTNCLDJCQUEyQiwrRkN0QnhDLDByREFzQ007NEZEaEJPLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDQyxzQkFBc0I7bUdBZ0J4QixRQUFRO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIHZhciB0d2Vtb2ppOiB7XHJcbiAgICBwYXJzZShzdHI6IHN0cmluZywgb3B0aW9ucz86IHsgZm9sZGVyPzogc3RyaW5nLCBleHQ/OiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcgfSk6IHN0cmluZztcclxufVxyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmludGVyZmFjZSBFbW9qaSB7XHJcblx0a2V5d29yZHMgOiBzdHJpbmdbXTtcclxuXHRjaGFyIDogc3RyaW5nO1xyXG5cdGh0bWw/IDogU2FmZUh0bWw7XHJcblx0Y2F0ZWdvcnkgOiBzdHJpbmc7XHJcbn1cclxuXHJcbmltcG9ydCB7IEVNT0pJUyB9IGZyb20gJy4uL2Vtb2ppcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2Vtb2ppLXNlbGVjdG9yLXBhbmVsJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2Vtb2ppLXNlbGVjdG9yLXBhbmVsLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVtb2ppU2VsZWN0b3JQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBzYW5pdGl6ZXIgOiBEb21TYW5pdGl6ZXJcclxuXHQpIHsgfVxyXG5cclxuXHRjYXRlZ29yaWVzIDogYW55W107XHJcblx0YWN0aXZlQ2F0ZWdvcnkgOiBzdHJpbmcgPSAncGVvcGxlJztcclxuXHRzZWFyY2hSZXN1bHRzIDogYW55W10gPSBbXTtcclxuICAgIHNlYXJjaFZpc2libGUgPSBmYWxzZTtcclxuXHRcclxuXHRAT3V0cHV0KClcclxuXHRwcml2YXRlIHNlbGVjdGVkIDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcblx0cHJpdmF0ZSBfc2VhcmNoUXVlcnkgOiBzdHJpbmc7XHJcblxyXG5cdGdldCBzZWFyY2hRdWVyeSgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9zZWFyY2hRdWVyeTtcclxuXHR9XHJcblxyXG5cdHNldCBzZWFyY2hRdWVyeSh2YWx1ZSkge1xyXG5cdFx0dGhpcy5fc2VhcmNoUXVlcnkgPSB2YWx1ZTtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnNlYXJjaFJlc3VsdHMgPSBPYmplY3Qua2V5cyhFTU9KSVMpLmZpbHRlcihrID0+IGsuaW5jbHVkZXModmFsdWUpKS5tYXAoayA9PiBFTU9KSVNba10pO1xyXG5cdFx0XHR0aGlzLnNlYXJjaFJlc3VsdHMuc3BsaWNlKDUwLCB0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RoKTtcclxuXHRcdFx0Y29uc29sZS5sb2coYGxvb2tpbmcgZm9yICcke3ZhbHVlfScgPT4gJHt0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RofSByZXN1bHRzYCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGh1bWFuaXplKHN0ciA6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHN0ci5yZXBsYWNlKC8oXnwgKVthLXpdL2csIGsgPT4gay50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9fL2csICcgJyk7XHJcblx0fVxyXG5cclxuXHRzZWxlY3QoY2hhciA6IHN0cmluZykge1xyXG5cdFx0dGhpcy5zZWxlY3RlZC5uZXh0KGNoYXIpO1xyXG5cdH1cclxuXHJcblx0cGFpcnMob2JqZWN0KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5tYXAoa2V5ID0+IFtrZXksIG9iamVjdFtrZXldXSk7XHJcblx0fVxyXG5cclxuXHRoaWRlU2VhcmNoKCkge1xyXG5cdFx0Ly8gYmVjYXVzZSBvZiB0aGUgXCJvdXRzaWRlIGNsaWNrIGRldGVjdGlvblwiXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cdH1cclxuXHRcclxuICAgIHNob3dTZWFyY2goKSB7XHJcblx0XHQvLyBiZWNhdXNlIG9mIHRoZSBcIm91dHNpZGUgY2xpY2sgZGV0ZWN0aW9uXCJcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblxyXG5cdFx0bGV0IGNhdHMgPSB7fTtcclxuXHRcdGxldCBjYXRlZ29yeUljb25zID0ge1xyXG5cdFx0XHRzeW1ib2xzOiAnd2FybmluZycsXHJcblx0XHRcdHBlb3BsZTogJ3Blb3BsZScsXHJcblx0XHRcdGFuaW1hbHNfYW5kX25hdHVyZTogJ25hdHVyZScsXHJcblx0XHRcdHRyYXZlbF9hbmRfcGxhY2VzOiAnbG9jYXRpb25fb24nLFxyXG5cdFx0XHRhY3Rpdml0eTogJ2xvY2FsX2FjdGl2aXR5JyxcclxuXHRcdFx0Zm9vZF9hbmRfZHJpbms6ICdyZXN0YXVyYW50JyxcclxuXHRcdFx0b2JqZWN0czogJ2NvbXB1dGVyJyxcclxuXHRcdFx0ZmxhZ3M6ICdmbGFnJ1xyXG5cdFx0fTtcclxuXHRcdGZvciAobGV0IHBhaXIgb2YgdGhpcy5wYWlycyhFTU9KSVMpKSB7XHJcblx0XHRcdGxldCBuYW1lID0gcGFpclswXTtcclxuXHRcdFx0bGV0IGVtb2ppIDogRW1vamkgPSBwYWlyWzFdO1xyXG5cclxuXHRcdFx0aWYgKCFjYXRzW2Vtb2ppLmNhdGVnb3J5XSkge1xyXG5cdFx0XHRcdGNhdHNbZW1vamkuY2F0ZWdvcnldID0ge1xyXG5cdFx0XHRcdFx0bmFtZTogZW1vamkuY2F0ZWdvcnksXHJcblx0XHRcdFx0XHRpY29uOiBjYXRlZ29yeUljb25zW2Vtb2ppLmNhdGVnb3J5XSB8fCAnY29kZScsXHJcblx0XHRcdFx0XHRlbW9qaXM6IFtdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRlbW9qaS5odG1sID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoXHJcblx0XHRcdFx0dHdlbW9qaS5wYXJzZShlbW9qaS5jaGFyIHx8ICcnLCB7IGJhc2U6ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvdHdpdHRlci90d2Vtb2ppQDE0LjAuMi9hc3NldHMvJyB9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0Y2F0c1tlbW9qaS5jYXRlZ29yeV0uZW1vamlzLnB1c2goZW1vamkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuY2F0ZWdvcmllcyA9IHRoaXMucGFpcnMoY2F0cykubWFwKHBhaXIgPT4gcGFpclsxXSk7XHJcblx0fVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2VhcmNoLWJveFwiICpuZ0lmPVwic2VhcmNoVmlzaWJsZVwiPlxyXG5cdDxhIG1hdC1pY29uLWJ1dHRvbiBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cImhpZGVTZWFyY2goKVwiPlxyXG5cdFx0PG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG5cdDwvYT5cclxuXHQ8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XHJcblx0XHQ8bWF0LWxhYmVsPlNlYXJjaCBmb3IgZW1vamk8L21hdC1sYWJlbD5cclxuXHRcdDxpbnB1dCBuYW1lPVwic2VhcmNoXCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlN0YXJ0IHR5cGluZ1wiIFsobmdNb2RlbCldPVwic2VhcmNoUXVlcnlcIiAvPlxyXG5cdDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInNlbGVjdG9yXCI+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaFZpc2libGVcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJlbW9qaS1saXN0XCI+XHJcblx0XHRcdDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwic2VsZWN0KGVtb2ppLmNoYXIpXCIgXHJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGVtb2ppIG9mIHNlYXJjaFJlc3VsdHNcIiBbaW5uZXJIdG1sXT1cImVtb2ppLmh0bWwgfHwgJydcIj5cclxuXHRcdFx0PC9hPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWFyY2hWaXNpYmxlXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllc1wiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlYXJjaFZpc2libGVcIj5cclxuXHRcdFx0XHQ8YSBbdGl0bGVdPVwiaHVtYW5pemUoY2F0ZWdvcnkubmFtZSlcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5uYW1lXCIgbWF0LWljb24tYnV0dG9uICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCIgKGNsaWNrKT1cImFjdGl2ZUNhdGVnb3J5ID0gY2F0ZWdvcnkubmFtZVwiPlxyXG5cdFx0XHRcdFx0PG1hdC1pY29uPnt7Y2F0ZWdvcnkuaWNvbn19PC9tYXQtaWNvbj5cclxuXHRcdFx0XHQ8L2E+XHJcblxyXG5cdFx0XHRcdDxhIHRpdGxlPVwiU2VhcmNoXCIgW2NsYXNzLmFjdGl2ZV0gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzaG93U2VhcmNoKClcIj5cclxuXHRcdFx0XHRcdDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG5cdFx0XHRcdDwvYT5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXNcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImVtb2ppLWxpc3RcIiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICYmIGFjdGl2ZUNhdGVnb3J5ID09IGNhdGVnb3J5Lm5hbWVcIj5cclxuXHRcdFx0XHQ8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cInNlbGVjdChlbW9qaS5jaGFyKVwiIFxyXG5cdFx0XHRcdFx0Km5nRm9yPVwibGV0IGVtb2ppIG9mIGNhdGVnb3J5LmVtb2ppc1wiIFtpbm5lckh0bWxdPVwiZW1vamkuaHRtbCB8fCAnJ1wiPlxyXG5cdFx0XHRcdDwvYT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvZW1vamkvZW1vamktc2VsZWN0b3ItcGFuZWwvZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvZW1vamkvZW1vamktc2VsZWN0b3ItcGFuZWwvZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWlCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7QUFPbkMsTUFBTSxPQUFPLDJCQUEyQjtJQUV2QyxZQUNTLFNBQXdCLEVBRXhCLFVBQXNCO1FBRnRCLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFFeEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUkvQixtQkFBYyxHQUFZLFFBQVEsQ0FBQztRQUNuQyxrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUdqQixhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7SUFSL0MsQ0FBQztJQVlMLElBQUksV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2Ys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LEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ3hELENBQUM7WUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7eUhBOUZXLDJCQUEyQiw4Q0FJOUIsaUJBQWlCOzZHQUpkLDJCQUEyQiwrRkN2QnhDLDByREFzQ007NEZEZk8sMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNDLHNCQUFzQjs7MEJBUTlCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFBRyxRQUFROzRDQVU3QixRQUFRO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIHZhciB0d2Vtb2ppOiB7XHJcbiAgICBwYXJzZShzdHI6IHN0cmluZywgb3B0aW9ucz86IHsgZm9sZGVyPzogc3RyaW5nLCBleHQ/OiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcgfSk6IHN0cmluZztcclxufVxyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBCQU5UQV9TREtfT1BUSU9OUywgU2RrT3B0aW9ucyB9IGZyb20gJy4uLy4uL3Nkay1vcHRpb25zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIEVtb2ppIHtcclxuXHRrZXl3b3JkcyA6IHN0cmluZ1tdO1xyXG5cdGNoYXIgOiBzdHJpbmc7XHJcblx0aHRtbD8gOiBTYWZlSHRtbDtcclxuXHRjYXRlZ29yeSA6IHN0cmluZztcclxufVxyXG5cclxuaW1wb3J0IHsgRU1PSklTIH0gZnJvbSAnLi4vZW1vamlzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnZW1vamktc2VsZWN0b3ItcGFuZWwnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9lbW9qaS1zZWxlY3Rvci1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vZW1vamktc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW1vamlTZWxlY3RvclBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHNhbml0aXplciA6IERvbVNhbml0aXplcixcclxuXHRcdEBJbmplY3QoQkFOVEFfU0RLX09QVElPTlMpIEBPcHRpb25hbCgpXHJcblx0XHRwcml2YXRlIHNka09wdGlvbnM6IFNka09wdGlvbnNcclxuXHQpIHsgfVxyXG5cclxuXHRjYXRlZ29yaWVzIDogYW55W107XHJcblx0YWN0aXZlQ2F0ZWdvcnkgOiBzdHJpbmcgPSAncGVvcGxlJztcclxuXHRzZWFyY2hSZXN1bHRzIDogYW55W10gPSBbXTtcclxuICAgIHNlYXJjaFZpc2libGUgPSBmYWxzZTtcclxuXHRcclxuXHRAT3V0cHV0KClcclxuXHRwcml2YXRlIHNlbGVjdGVkIDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcblx0cHJpdmF0ZSBfc2VhcmNoUXVlcnkgOiBzdHJpbmc7XHJcblxyXG5cdGdldCBzZWFyY2hRdWVyeSgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9zZWFyY2hRdWVyeTtcclxuXHR9XHJcblxyXG5cdHNldCBzZWFyY2hRdWVyeSh2YWx1ZSkge1xyXG5cdFx0dGhpcy5fc2VhcmNoUXVlcnkgPSB2YWx1ZTtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnNlYXJjaFJlc3VsdHMgPSBPYmplY3Qua2V5cyhFTU9KSVMpLmZpbHRlcihrID0+IGsuaW5jbHVkZXModmFsdWUpKS5tYXAoayA9PiBFTU9KSVNba10pO1xyXG5cdFx0XHR0aGlzLnNlYXJjaFJlc3VsdHMuc3BsaWNlKDUwLCB0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RoKTtcclxuXHRcdFx0Y29uc29sZS5sb2coYGxvb2tpbmcgZm9yICcke3ZhbHVlfScgPT4gJHt0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RofSByZXN1bHRzYCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGh1bWFuaXplKHN0ciA6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHN0ci5yZXBsYWNlKC8oXnwgKVthLXpdL2csIGsgPT4gay50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9fL2csICcgJyk7XHJcblx0fVxyXG5cclxuXHRzZWxlY3QoY2hhciA6IHN0cmluZykge1xyXG5cdFx0dGhpcy5zZWxlY3RlZC5uZXh0KGNoYXIpO1xyXG5cdH1cclxuXHJcblx0cGFpcnMob2JqZWN0KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5tYXAoa2V5ID0+IFtrZXksIG9iamVjdFtrZXldXSk7XHJcblx0fVxyXG5cclxuXHRoaWRlU2VhcmNoKCkge1xyXG5cdFx0Ly8gYmVjYXVzZSBvZiB0aGUgXCJvdXRzaWRlIGNsaWNrIGRldGVjdGlvblwiXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cdH1cclxuXHRcclxuICAgIHNob3dTZWFyY2goKSB7XHJcblx0XHQvLyBiZWNhdXNlIG9mIHRoZSBcIm91dHNpZGUgY2xpY2sgZGV0ZWN0aW9uXCJcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblx0cHJpdmF0ZSBnZXQgZW1vamlVcmwoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZGtPcHRpb25zPy5lbW9qaVVybCA/PyAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3R3aXR0ZXIvdHdlbW9qaUAxNC4wLjIvYXNzZXRzLyc7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHJcblx0XHRsZXQgY2F0cyA9IHt9O1xyXG5cdFx0bGV0IGNhdGVnb3J5SWNvbnMgPSB7XHJcblx0XHRcdHN5bWJvbHM6ICd3YXJuaW5nJyxcclxuXHRcdFx0cGVvcGxlOiAncGVvcGxlJyxcclxuXHRcdFx0YW5pbWFsc19hbmRfbmF0dXJlOiAnbmF0dXJlJyxcclxuXHRcdFx0dHJhdmVsX2FuZF9wbGFjZXM6ICdsb2NhdGlvbl9vbicsXHJcblx0XHRcdGFjdGl2aXR5OiAnbG9jYWxfYWN0aXZpdHknLFxyXG5cdFx0XHRmb29kX2FuZF9kcmluazogJ3Jlc3RhdXJhbnQnLFxyXG5cdFx0XHRvYmplY3RzOiAnY29tcHV0ZXInLFxyXG5cdFx0XHRmbGFnczogJ2ZsYWcnXHJcblx0XHR9O1xyXG5cdFx0Zm9yIChsZXQgcGFpciBvZiB0aGlzLnBhaXJzKEVNT0pJUykpIHtcclxuXHRcdFx0bGV0IG5hbWUgPSBwYWlyWzBdO1xyXG5cdFx0XHRsZXQgZW1vamkgOiBFbW9qaSA9IHBhaXJbMV07XHJcblxyXG5cdFx0XHRpZiAoIWNhdHNbZW1vamkuY2F0ZWdvcnldKSB7XHJcblx0XHRcdFx0Y2F0c1tlbW9qaS5jYXRlZ29yeV0gPSB7XHJcblx0XHRcdFx0XHRuYW1lOiBlbW9qaS5jYXRlZ29yeSxcclxuXHRcdFx0XHRcdGljb246IGNhdGVnb3J5SWNvbnNbZW1vamkuY2F0ZWdvcnldIHx8ICdjb2RlJyxcclxuXHRcdFx0XHRcdGVtb2ppczogW11cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGVtb2ppLmh0bWwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChcclxuXHRcdFx0XHR0d2Vtb2ppLnBhcnNlKGVtb2ppLmNoYXIgfHwgJycsIHsgYmFzZTogdGhpcy5lbW9qaVVybCB9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0Y2F0c1tlbW9qaS5jYXRlZ29yeV0uZW1vamlzLnB1c2goZW1vamkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuY2F0ZWdvcmllcyA9IHRoaXMucGFpcnMoY2F0cykubWFwKHBhaXIgPT4gcGFpclsxXSk7XHJcblx0fVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2VhcmNoLWJveFwiICpuZ0lmPVwic2VhcmNoVmlzaWJsZVwiPlxyXG5cdDxhIG1hdC1pY29uLWJ1dHRvbiBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cImhpZGVTZWFyY2goKVwiPlxyXG5cdFx0PG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG5cdDwvYT5cclxuXHQ8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XHJcblx0XHQ8bWF0LWxhYmVsPlNlYXJjaCBmb3IgZW1vamk8L21hdC1sYWJlbD5cclxuXHRcdDxpbnB1dCBuYW1lPVwic2VhcmNoXCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlN0YXJ0IHR5cGluZ1wiIFsobmdNb2RlbCldPVwic2VhcmNoUXVlcnlcIiAvPlxyXG5cdDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInNlbGVjdG9yXCI+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaFZpc2libGVcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJlbW9qaS1saXN0XCI+XHJcblx0XHRcdDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwic2VsZWN0KGVtb2ppLmNoYXIpXCIgXHJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGVtb2ppIG9mIHNlYXJjaFJlc3VsdHNcIiBbaW5uZXJIdG1sXT1cImVtb2ppLmh0bWwgfHwgJydcIj5cclxuXHRcdFx0PC9hPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWFyY2hWaXNpYmxlXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllc1wiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlYXJjaFZpc2libGVcIj5cclxuXHRcdFx0XHQ8YSBbdGl0bGVdPVwiaHVtYW5pemUoY2F0ZWdvcnkubmFtZSlcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5uYW1lXCIgbWF0LWljb24tYnV0dG9uICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCIgKGNsaWNrKT1cImFjdGl2ZUNhdGVnb3J5ID0gY2F0ZWdvcnkubmFtZVwiPlxyXG5cdFx0XHRcdFx0PG1hdC1pY29uPnt7Y2F0ZWdvcnkuaWNvbn19PC9tYXQtaWNvbj5cclxuXHRcdFx0XHQ8L2E+XHJcblxyXG5cdFx0XHRcdDxhIHRpdGxlPVwiU2VhcmNoXCIgW2NsYXNzLmFjdGl2ZV0gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzaG93U2VhcmNoKClcIj5cclxuXHRcdFx0XHRcdDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG5cdFx0XHRcdDwvYT5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXNcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImVtb2ppLWxpc3RcIiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICYmIGFjdGl2ZUNhdGVnb3J5ID09IGNhdGVnb3J5Lm5hbWVcIj5cclxuXHRcdFx0XHQ8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cInNlbGVjdChlbW9qaS5jaGFyKVwiIFxyXG5cdFx0XHRcdFx0Km5nRm9yPVwibGV0IGVtb2ppIG9mIGNhdGVnb3J5LmVtb2ppc1wiIFtpbm5lckh0bWxdPVwiZW1vamkuaHRtbCB8fCAnJ1wiPlxyXG5cdFx0XHRcdDwvYT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const BANTA_SDK_OPTIONS = 'BANTA_SDK_OPTIONS';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9zZGstb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RrT3B0aW9ucyB7XHJcbiAgICBzZXJ2aWNlVXJsPzogc3RyaW5nO1xyXG4gICAgZW1vamlVcmw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBCQU5UQV9TREtfT1BUSU9OUyA9ICdCQU5UQV9TREtfT1BUSU9OUyc7Il19
|