@datarailsshared/datarailsshared 1.5.343 → 1.5.344
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/datarailsshared-datarailsshared-1.5.344.tgz +0 -0
- package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +16 -13
- package/esm2022/lib/models/chat.mjs +1 -7
- package/fesm2022/datarailsshared-datarailsshared.mjs +16 -19
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +1 -1
- package/lib/models/chat.d.ts +0 -4
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.5.343.tgz +0 -0
|
Binary file
|
|
@@ -107,16 +107,19 @@ export class DrChatFormComponent {
|
|
|
107
107
|
this.fileOver = false;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
sendMessage() {
|
|
111
|
-
if (
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
this.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
110
|
+
sendMessage($event) {
|
|
111
|
+
if (!$event.shiftKey) {
|
|
112
|
+
$event.preventDefault();
|
|
113
|
+
if (this.waitForReply) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (this.droppedFiles.length || String(this.message).trim().length) {
|
|
117
|
+
this._textareaInitialHeight = true;
|
|
118
|
+
this.send.emit({ message: this.message, files: this.droppedFiles });
|
|
119
|
+
this.message = '';
|
|
120
|
+
this.droppedFiles = [];
|
|
121
|
+
this.cdr.markForCheck();
|
|
122
|
+
}
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
125
|
abortMessage() {
|
|
@@ -137,11 +140,11 @@ export class DrChatFormComponent {
|
|
|
137
140
|
return `height: ${height}px;`;
|
|
138
141
|
}
|
|
139
142
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrChatFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrChatFormComponent, selector: "dr-chat-form", inputs: { message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDisabledButtonInsteadOfDotFlashing: "showDisabledButtonInsteadOfDotFlashing" }, outputs: { send: "send", abort: "abort", inputChange: "inputChange" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" }, properties: { "class.file-over": "this.fileOver" } }, ngImport: i0, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (
|
|
143
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrChatFormComponent, selector: "dr-chat-form", inputs: { message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDisabledButtonInsteadOfDotFlashing: "showDisabledButtonInsteadOfDotFlashing" }, outputs: { send: "send", abort: "abort", inputChange: "inputChange" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" }, properties: { "class.file-over": "this.fileOver" } }, ngImport: i0, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keydown.enter)=\"sendMessage($event)\">\n </textarea>\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage()\" class=\"dr-icon-notify send-button\"></i>\n <i\n *ngIf=\"waitForReply && showDisabledButtonInsteadOfDotFlashing\"\n (click)=\"sendMessage()\"\n class=\"dr-icon-notify send-button-disabled\"></i>\n <dr-dot-flashing\n *ngIf=\"waitForReply && !showDisabledButtonInsteadOfDotFlashing\"\n class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:center;padding:0 16px;margin-top:12px}:host .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}:host .message-row__input{position:relative;display:flex;align-items:center;flex-grow:1;flex-direction:row;height:auto;overflow:visible;min-width:265px;border-radius:24px;background:#dfe0e3 border-box;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29}:host .message-row__input .send-button,:host .message-row__input .send-button-disabled{position:absolute;right:4px;top:2.5px;cursor:pointer;font-size:28px;width:68px;border-radius:100px;display:flex;align-items:center;justify-content:center;height:40px;background:#f0f1f4;color:#aeabac}:host .message-row__input--focused{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled .send-button{color:#fff;background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input textarea{font-size:14px;color:#333;line-height:19px;flex-grow:1;resize:none;padding:14px 76px 12px 23px;margin:auto;border:none;border-radius:22.5px}:host .message-row__input textarea:focus{border:none}:host .message-row__input textarea::placeholder{color:#9ea1aa}:host .message-row__input .wait-reply-dot-flashing{position:absolute;right:20px}:host .message-row__input .abort-button{position:absolute;right:0;top:-44px}:host .message-row__input .abort-button::ng-deep button{background:#f2f2ff!important;border-radius:4px}:host input{flex:1}:host input.with-button{border-bottom-right-radius:0;border-top-right-radius:0}:host .dropped-files{display:flex;flex-direction:row;margin-bottom:.5rem;flex-wrap:wrap}:host .dropped-files__item{display:flex;flex-direction:column;justify-content:center;margin:0 10px 10px 0;position:relative}:host .dropped-files__item__preview{background-size:cover;background-position:center;width:64px;height:64px;border-radius:8px;border:1px solid #ccc}:host .dropped-files__item__preview i{font-size:62px}:host .dropped-files__item__name{white-space:nowrap;font-size:12px;color:#8f929e;margin-top:4px;max-width:64px;overflow:hidden;text-overflow:ellipsis}:host .dropped-files__item__remove{position:absolute;right:-4px;top:-4px;cursor:pointer;background:#fff;border-radius:12px;color:#8f929e;border:1px solid #8f929e;font-size:14px}\n"], dependencies: [{ 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "component", type: i5.DrDotFlashingComponent, selector: "dr-dot-flashing" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
141
144
|
}
|
|
142
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrChatFormComponent, decorators: [{
|
|
143
146
|
type: Component,
|
|
144
|
-
args: [{ selector: 'dr-chat-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (
|
|
147
|
+
args: [{ selector: 'dr-chat-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keydown.enter)=\"sendMessage($event)\">\n </textarea>\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage()\" class=\"dr-icon-notify send-button\"></i>\n <i\n *ngIf=\"waitForReply && showDisabledButtonInsteadOfDotFlashing\"\n (click)=\"sendMessage()\"\n class=\"dr-icon-notify send-button-disabled\"></i>\n <dr-dot-flashing\n *ngIf=\"waitForReply && !showDisabledButtonInsteadOfDotFlashing\"\n class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:center;padding:0 16px;margin-top:12px}:host .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}:host .message-row__input{position:relative;display:flex;align-items:center;flex-grow:1;flex-direction:row;height:auto;overflow:visible;min-width:265px;border-radius:24px;background:#dfe0e3 border-box;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29}:host .message-row__input .send-button,:host .message-row__input .send-button-disabled{position:absolute;right:4px;top:2.5px;cursor:pointer;font-size:28px;width:68px;border-radius:100px;display:flex;align-items:center;justify-content:center;height:40px;background:#f0f1f4;color:#aeabac}:host .message-row__input--focused{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled .send-button{color:#fff;background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input textarea{font-size:14px;color:#333;line-height:19px;flex-grow:1;resize:none;padding:14px 76px 12px 23px;margin:auto;border:none;border-radius:22.5px}:host .message-row__input textarea:focus{border:none}:host .message-row__input textarea::placeholder{color:#9ea1aa}:host .message-row__input .wait-reply-dot-flashing{position:absolute;right:20px}:host .message-row__input .abort-button{position:absolute;right:0;top:-44px}:host .message-row__input .abort-button::ng-deep button{background:#f2f2ff!important;border-radius:4px}:host input{flex:1}:host input.with-button{border-bottom-right-radius:0;border-top-right-radius:0}:host .dropped-files{display:flex;flex-direction:row;margin-bottom:.5rem;flex-wrap:wrap}:host .dropped-files__item{display:flex;flex-direction:column;justify-content:center;margin:0 10px 10px 0;position:relative}:host .dropped-files__item__preview{background-size:cover;background-position:center;width:64px;height:64px;border-radius:8px;border:1px solid #ccc}:host .dropped-files__item__preview i{font-size:62px}:host .dropped-files__item__name{white-space:nowrap;font-size:12px;color:#8f929e;margin-top:4px;max-width:64px;overflow:hidden;text-overflow:ellipsis}:host .dropped-files__item__remove{position:absolute;right:-4px;top:-4px;cursor:pointer;background:#fff;border-radius:12px;color:#8f929e;border:1px solid #8f929e;font-size:14px}\n"] }]
|
|
145
148
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }]; }, propDecorators: { message: [{
|
|
146
149
|
type: Input
|
|
147
150
|
}], messagePlaceholder: [{
|
|
@@ -173,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
173
176
|
type: HostListener,
|
|
174
177
|
args: ['dragleave', ['$event']]
|
|
175
178
|
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItY2hhdC1mb3JtL2NoYXQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtZm9ybS9jaGF0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVFoRCxNQUFNLE9BQU8sbUJBQW1CO0lBa0U1QixZQUNjLEdBQXNCLEVBQ3RCLFlBQTBCO1FBRDFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBbkV4QywyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBRXpCOzs7O1dBSUc7UUFDTSxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXRCOzs7O1dBSUc7UUFDTSx1QkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUUvQzs7OztXQUlHO1FBQ00sY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUzQjs7OztXQUlHO1FBQ00sd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFFbkQ7Ozs7V0FJRztRQUNNLGlC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WTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUNoQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVwQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJTUFHRV9UWVBFUyB9IGZyb20gJy4uLy4uL21vZGVscy9jaGF0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1jaGF0LWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hhdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGF0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJDaGF0Rm9ybUNvbXBvbmVudCB7XG4gICAgX3RleHRhcmVhSW5pdGlhbEhlaWdodCA9IHRydWU7XG4gICAgaW5wdXRGb2N1cyA9IGZhbHNlO1xuICAgIGlucHV0SG92ZXIgPSBmYWxzZTtcblxuICAgIGRyb3BwZWRGaWxlczogYW55W10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFByZWRlZmluZWQgbWVzc2FnZSB0ZXh0XG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1lc3NhZ2UgcGxhY2Vob2xkZXIgdGV4dFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZXNzYWdlUGxhY2Vob2xkZXIgPSAnVHlwZSBhIG1lc3NhZ2UnO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBzZW5kIGJ1dHRvblxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcEZpbGVzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGaWxlIGRyb3AgcGxhY2Vob2xkZXIgdGV4dFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBASW5wdXQoKSBkcm9wRmlsZVBsYWNlaG9sZGVyID0gJ0Ryb3AgZmlsZSB0byBzZW5kJztcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlciB0byBjaGVjayBpcyBzZW5kIG1lc3NhZ2UgZnVuY3Rpb24gYXZhaWxhYmxlXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBASW5wdXQoKSB3YWl0Rm9yUmVwbHkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlciB0byBjaGVjayBpcyBzZW5kIG1lc3NhZ2UgZnVuY3Rpb24gYXZhaWxhYmxlXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG93RGlzYWJsZWRCdXR0b25JbnN0ZWFkT2ZEb3RGbGFzaGluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHsgbWVzc2FnZTogc3RyaW5nLCBmaWxlczogRmlsZVtdIH0+fVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBzZW5kID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1lc3NhZ2U6IHN0cmluZzsgZmlsZXM6IEZpbGVbXSB9PigpO1xuICAgIEBPdXRwdXQoKSBhYm9ydCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBtZXNzYWdlIGlucHV0IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8c3RyaW5nPn1cbiAgICAgKi9cblxuICAgIEBPdXRwdXQoKSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxlLW92ZXInKSBmaWxlT3ZlciA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBmaWxlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChJTUFHRV9UWVBFUy5pbmNsdWRlcyhmaWxlLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNyYyA9IGUudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMudXJsU3R5bGUgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYHVybCgke3Jlcy5zcmN9KWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMucHVzaChyZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUZpbGUoZmlsZSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZHJvcHBlZEZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICAgIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZSgpIHtcbiAgICAgICAgaWYgKHRoaXMud2FpdEZvclJlcGx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kcm9wcGVkRmlsZXMubGVuZ3RoIHx8IFN0cmluZyh0aGlzLm1lc3NhZ2UpLnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNlbmQuZW1pdCh7IG1lc3NhZ2U6IHRoaXMubWVzc2FnZSwgZmlsZXM6IHRoaXMuZHJvcHBlZEZpbGVzIH0pO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRGaWxlcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhYm9ydE1lc3NhZ2UoKSB7XG4gICAgICAgIHRoaXMuYWJvcnQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0YXJlYUluaXRpYWxIZWlnaHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRUZXh0QXJlYUhlaWdodCh0ZXh0QXJlYUVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgICAgbGV0IGhlaWdodDtcbiAgICAgICAgaWYgKHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gNDU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQgPSB0ZXh0QXJlYUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgaGVpZ2h0OiAke2hlaWdodH1weDtgO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzXCIgKm5nSWY9XCJkcm9wcGVkRmlsZXM/Lmxlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZHJvcHBlZEZpbGVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtX19wcmV2aWV3XCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiZmlsZS51cmxTdHlsZSB8fCAnbm9uZSdcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZHItaWNvbi1maWxlXCIgKm5nSWY9XCIhZmlsZS51cmxTdHlsZVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtX19uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiZHJvcHBlZC1maWxlc19faXRlbV9fcmVtb3ZlIGRyLWljb24tZXhpdFwiIChjbGljayk9XCJyZW1vdmVGaWxlKGZpbGUpXCI+PC9pPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWVzc2FnZS1yb3dcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWVzc2FnZS1yb3dfX2lucHV0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnbWVzc2FnZS1yb3dfX2lucHV0LS1mb2N1c2VkJzogaW5wdXRGb2N1cywgJ21lc3NhZ2Utcm93X19pbnB1dC0tZmlsbGVkJzogISFtZXNzYWdlPy5sZW5ndGggfVwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcbiAgICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzID0gdHJ1ZVwiXG4gICAgICAgICAgICAoYmx1cik9XCJpbnB1dEZvY3VzID0gZmFsc2VcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaW5wdXRIb3ZlciA9IHRydWVcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaW5wdXRIb3ZlciA9IGZhbHNlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZVwiXG4gICAgICAgICAgICBbcm93c109XCIxXCJcbiAgICAgICAgICAgIFtzdHlsZV09XCJnZXRUZXh0QXJlYUhlaWdodCh0ZXh0QXJlYUVsZW1lbnQpXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGZpbGVPdmVyID8gZHJvcEZpbGVQbGFjZWhvbGRlciA6IG1lc3NhZ2VQbGFjZWhvbGRlciB9fVwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VuZE1lc3NhZ2UoKVwiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8aSAqbmdJZj1cIiF3YWl0Rm9yUmVwbHlcIiAoY2xpY2spPVwic2VuZE1lc3NhZ2UoKVwiIGNsYXNzPVwiZHItaWNvbi1ub3RpZnkgc2VuZC1idXR0b25cIj48L2k+XG4gICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cIndhaXRGb3JSZXBseSAmJiBzaG93RGlzYWJsZWRCdXR0b25JbnN0ZWFkT2ZEb3RGbGFzaGluZ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VuZE1lc3NhZ2UoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImRyLWljb24tbm90aWZ5IHNlbmQtYnV0dG9uLWRpc2FibGVkXCI+PC9pPlxuICAgICAgICA8ZHItZG90LWZsYXNoaW5nXG4gICAgICAgICAgICAqbmdJZj1cIndhaXRGb3JSZXBseSAmJiAhc2hvd0Rpc2FibGVkQnV0dG9uSW5zdGVhZE9mRG90Rmxhc2hpbmdcIlxuICAgICAgICAgICAgY2xhc3M9XCJ3YWl0LXJlcGx5LWRvdC1mbGFzaGluZ1wiPjwvZHItZG90LWZsYXNoaW5nPlxuICAgICAgICA8ZHItYnV0dG9uICpuZ0lmPVwid2FpdEZvclJlcGx5XCIgKGNsaWNrKT1cImFib3J0TWVzc2FnZSgpXCIgdGhlbWU9XCJnaG9zdFwiIGNsYXNzPVwiYWJvcnQtYnV0dG9uXCI+U3RvcCBnZW5lcmF0aW5nPC9kci1idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItY2hhdC1mb3JtL2NoYXQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtZm9ybS9jaGF0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVFoRCxNQUFNLE9BQU8sbUJBQW1CO0lBa0U1QixZQUNjLEdBQXNCLEVBQ3RCLFlBQTBCO1FBRDFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBbkV4QywyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBRXpCOzs7O1dBSUc7UUFDTSxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXRCOzs7O1dBSUc7UUFDTSx1QkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUUvQzs7OztXQUlHO1FBQ00sY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUzQjs7OztXQUlHO1FBQ00sd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFFbkQ7Ozs7V0FJRztRQUNNLGlC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ZCxNQUFNO2dCQVFHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRXlCLFFBQVE7c0JBQXZDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVE5QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW1DaEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVcEMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgSU1BR0VfVFlQRVMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hhdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY2hhdC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NoYXQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hhdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdEZvcm1Db21wb25lbnQge1xuICAgIF90ZXh0YXJlYUluaXRpYWxIZWlnaHQgPSB0cnVlO1xuICAgIGlucHV0Rm9jdXMgPSBmYWxzZTtcbiAgICBpbnB1dEhvdmVyID0gZmFsc2U7XG5cbiAgICBkcm9wcGVkRmlsZXM6IGFueVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBQcmVkZWZpbmVkIG1lc3NhZ2UgdGV4dFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBNZXNzYWdlIHBsYWNlaG9sZGVyIHRleHRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgQElucHV0KCkgbWVzc2FnZVBsYWNlaG9sZGVyID0gJ1R5cGUgYSBtZXNzYWdlJztcblxuICAgIC8qKlxuICAgICAqIFNob3cgc2VuZCBidXR0b25cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRyb3BGaWxlcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRmlsZSBkcm9wIHBsYWNlaG9sZGVyIHRleHRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcEZpbGVQbGFjZWhvbGRlciA9ICdEcm9wIGZpbGUgdG8gc2VuZCc7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgdG8gY2hlY2sgaXMgc2VuZCBtZXNzYWdlIGZ1bmN0aW9uIGF2YWlsYWJsZVxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgQElucHV0KCkgd2FpdEZvclJlcGx5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgdG8gY2hlY2sgaXMgc2VuZCBtZXNzYWdlIGZ1bmN0aW9uIGF2YWlsYWJsZVxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgQElucHV0KCkgc2hvd0Rpc2FibGVkQnV0dG9uSW5zdGVhZE9mRG90Rmxhc2hpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHR5cGUge0V2ZW50RW1pdHRlcjx7IG1lc3NhZ2U6IHN0cmluZywgZmlsZXM6IEZpbGVbXSB9Pn1cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgc2VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtZXNzYWdlOiBzdHJpbmc7IGZpbGVzOiBGaWxlW10gfT4oKTtcbiAgICBAT3V0cHV0KCkgYWJvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gbWVzc2FnZSBpbnB1dCB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHN0cmluZz59XG4gICAgICovXG5cbiAgICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmlsZS1vdmVyJykgZmlsZU92ZXIgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICkge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3BGaWxlcykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gZmlsZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoSU1BR0VfVFlQRVMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZnIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zcmMgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnVybFN0eWxlID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGB1cmwoJHtyZXMuc3JjfSlgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBmci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHBlZEZpbGVzLnB1c2gocmVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKGZpbGUpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRyb3BwZWRGaWxlcy5pbmRleE9mKGZpbGUpO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmRyb3BGaWxlcykge1xuICAgICAgICAgICAgdGhpcy5maWxlT3ZlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICAgIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmRyb3BGaWxlcykge1xuICAgICAgICAgICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VuZE1lc3NhZ2UoJGV2ZW50KSB7XG4gICAgICAgIGlmICghJGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLndhaXRGb3JSZXBseSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJvcHBlZEZpbGVzLmxlbmd0aCB8fCBTdHJpbmcodGhpcy5tZXNzYWdlKS50cmltKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGV4dGFyZWFJbml0aWFsSGVpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmQuZW1pdCh7IG1lc3NhZ2U6IHRoaXMubWVzc2FnZSwgZmlsZXM6IHRoaXMuZHJvcHBlZEZpbGVzIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcHBlZEZpbGVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhYm9ydE1lc3NhZ2UoKSB7XG4gICAgICAgIHRoaXMuYWJvcnQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0YXJlYUluaXRpYWxIZWlnaHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRUZXh0QXJlYUhlaWdodCh0ZXh0QXJlYUVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgICAgbGV0IGhlaWdodDtcbiAgICAgICAgaWYgKHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gNDU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQgPSB0ZXh0QXJlYUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgaGVpZ2h0OiAke2hlaWdodH1weDtgO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzXCIgKm5nSWY9XCJkcm9wcGVkRmlsZXM/Lmxlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZHJvcHBlZEZpbGVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtX19wcmV2aWV3XCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiZmlsZS51cmxTdHlsZSB8fCAnbm9uZSdcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZHItaWNvbi1maWxlXCIgKm5nSWY9XCIhZmlsZS51cmxTdHlsZVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtX19uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiZHJvcHBlZC1maWxlc19faXRlbV9fcmVtb3ZlIGRyLWljb24tZXhpdFwiIChjbGljayk9XCJyZW1vdmVGaWxlKGZpbGUpXCI+PC9pPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWVzc2FnZS1yb3dcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWVzc2FnZS1yb3dfX2lucHV0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnbWVzc2FnZS1yb3dfX2lucHV0LS1mb2N1c2VkJzogaW5wdXRGb2N1cywgJ21lc3NhZ2Utcm93X19pbnB1dC0tZmlsbGVkJzogISFtZXNzYWdlPy5sZW5ndGggfVwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcbiAgICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzID0gdHJ1ZVwiXG4gICAgICAgICAgICAoYmx1cik9XCJpbnB1dEZvY3VzID0gZmFsc2VcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaW5wdXRIb3ZlciA9IHRydWVcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaW5wdXRIb3ZlciA9IGZhbHNlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZVwiXG4gICAgICAgICAgICBbcm93c109XCIxXCJcbiAgICAgICAgICAgIFtzdHlsZV09XCJnZXRUZXh0QXJlYUhlaWdodCh0ZXh0QXJlYUVsZW1lbnQpXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGZpbGVPdmVyID8gZHJvcEZpbGVQbGFjZWhvbGRlciA6IG1lc3NhZ2VQbGFjZWhvbGRlciB9fVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZW5kTWVzc2FnZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxpICpuZ0lmPVwiIXdhaXRGb3JSZXBseVwiIChjbGljayk9XCJzZW5kTWVzc2FnZSgpXCIgY2xhc3M9XCJkci1pY29uLW5vdGlmeSBzZW5kLWJ1dHRvblwiPjwvaT5cbiAgICAgICAgPGlcbiAgICAgICAgICAgICpuZ0lmPVwid2FpdEZvclJlcGx5ICYmIHNob3dEaXNhYmxlZEJ1dHRvbkluc3RlYWRPZkRvdEZsYXNoaW5nXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZW5kTWVzc2FnZSgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHItaWNvbi1ub3RpZnkgc2VuZC1idXR0b24tZGlzYWJsZWRcIj48L2k+XG4gICAgICAgIDxkci1kb3QtZmxhc2hpbmdcbiAgICAgICAgICAgICpuZ0lmPVwid2FpdEZvclJlcGx5ICYmICFzaG93RGlzYWJsZWRCdXR0b25JbnN0ZWFkT2ZEb3RGbGFzaGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cIndhaXQtcmVwbHktZG90LWZsYXNoaW5nXCI+PC9kci1kb3QtZmxhc2hpbmc+XG4gICAgICAgIDxkci1idXR0b24gKm5nSWY9XCJ3YWl0Rm9yUmVwbHlcIiAoY2xpY2spPVwiYWJvcnRNZXNzYWdlKClcIiB0aGVtZT1cImdob3N0XCIgY2xhc3M9XCJhYm9ydC1idXR0b25cIj5TdG9wIGdlbmVyYXRpbmc8L2RyLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -38,10 +38,4 @@ export class ChatMessage {
|
|
|
38
38
|
this.user = obj?.user;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
constructor(obj) {
|
|
43
|
-
super(obj);
|
|
44
|
-
this.isLoading = obj?.isLoading;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL21vZGVscy9jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFcEUsTUFBTSxDQUFOLElBQVksaUJBU1g7QUFURCxXQUFZLGlCQUFpQjtJQUN6QixrQ0FBYSxDQUFBO0lBQ2IsNENBQXVCLENBQUE7SUFDdkIsb0NBQWUsQ0FBQTtJQUNmLG9EQUErQixDQUFBO0lBQy9CLHNDQUFpQixDQUFBO0lBQ2pCLG9DQUFlLENBQUE7SUFDZixvQ0FBZSxDQUFBO0lBQ2Ysa0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBVFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQVM1QjtBQUVELE1BQU0sQ0FBTixJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDaEIseUJBQWEsQ0FBQTtJQUNiLG1DQUF1QixDQUFBO0FBQzNCLENBQUMsRUFIVyxRQUFRLEtBQVIsUUFBUSxRQUduQjtBQW9ERCxNQUFNLE9BQU8sV0FBVztJQWlCcEIsWUFBWSxHQUFRO1FBQ2hCLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUNsQyxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsU0FBUztZQUMzQixDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVM7WUFDZixDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLFNBQVM7Z0JBQzlDLENBQUMsQ0FBRSxRQUFnQixDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVYLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQUdoRCxZQUFZLEdBQVE7UUFDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsU0FBUyxDQUFDO0lBQ3BDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElGZWVkYmFjayB9IGZyb20gJy4vZmVlZGJhY2snO1xuXG5leHBvcnQgY29uc3QgSU1BR0VfVFlQRVMgPSBbJ2ltYWdlL3BuZycsICdpbWFnZS9qcGVnJywgJ2ltYWdlL2dpZiddO1xuXG5leHBvcnQgZW51bSBDSEFUX01FU1NBR0VfVFlQRSB7XG4gICAgVEVYVCA9ICd0ZXh0JyxcbiAgICBSSUNIX1RFWFQgPSAncmljaC10ZXh0JyxcbiAgICBJTUFHRSA9ICdpbWFnZScsXG4gICAgRE9XTkxPQURfRklMRSA9ICdkb3dubG9hZC1maWxlJyxcbiAgICBNQUlMVE8gPSAnbWFpbHRvJyxcbiAgICBFTUJFRCA9ICdlbWJlZCcsXG4gICAgSU5QVVQgPSAnaW5wdXQnLFxuICAgIENPREUgPSAnY29kZScsXG59XG5cbmV4cG9ydCBlbnVtIENoYXRSb2xlIHtcbiAgICBVU0VSID0gJ3VzZXInLFxuICAgIEFTU0lTVEFOVCA9ICdhc3Npc3RhbnQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDaGF0TWVzc2FnZVJlZiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBzZXE6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIElDaGF0TmV3TWVzc2FnZSB7XG4gICAga2luZDogQ0hBVF9NRVNTQUdFX1RZUEU7XG4gICAgcm9sZTogQ2hhdFJvbGU7XG4gICAgYm9keTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDaGF0TWVzc2FnZUJhc2UgZXh0ZW5kcyBJQ2hhdE1lc3NhZ2VSZWYge1xuICAgIGtpbmQ6IHN0cmluZyB8IENIQVRfTUVTU0FHRV9UWVBFO1xuICAgIHJlcGx5OiBib29sZWFuO1xuICAgIHJvbGU6IENoYXRSb2xlO1xuICAgIGF2YXRhclVybD86IHN0cmluZztcbiAgICB1c2VyPzogYW55O1xuICAgIHN1YmplY3RJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdFRleHRNZXNzYWdlIGV4dGVuZHMgSUNoYXRNZXNzYWdlQmFzZSB7XG4gICAga2luZDogc3RyaW5nIHwgQ0hBVF9NRVNTQUdFX1RZUEUuVEVYVDtcbiAgICB0ZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDaGF0SW1hZ2VNZXNzYWdlIGV4dGVuZHMgSUNoYXRNZXNzYWdlQmFzZSB7XG4gICAga2luZDogc3RyaW5nIHwgQ0hBVF9NRVNTQUdFX1RZUEUuSU1BR0U7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdERvd25sb2FkRmlsZU1lc3NhZ2UgZXh0ZW5kcyBJQ2hhdE1lc3NhZ2VCYXNlIHtcbiAgICBraW5kOiBzdHJpbmcgfCBDSEFUX01FU1NBR0VfVFlQRS5ET1dOTE9BRF9GSUxFO1xuICAgIHVybD86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSUNoYXRNZXNzYWdlID0gSUNoYXRNZXNzYWdlQmFzZSAmIElDaGF0VGV4dE1lc3NhZ2UgJiBJQ2hhdEltYWdlTWVzc2FnZSAmIElDaGF0RG93bmxvYWRGaWxlTWVzc2FnZTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdE1lc3NhZ2VGaWxlSWNvblByZXZpZXcge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGljb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdE1lc3NhZ2VGaWxlSW1hZ2VQcmV2aWV3IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElDaGF0TWVzc2FnZUZpbGUgPSBJQ2hhdE1lc3NhZ2VGaWxlSWNvblByZXZpZXcgfCBJQ2hhdE1lc3NhZ2VGaWxlSW1hZ2VQcmV2aWV3O1xuXG5leHBvcnQgY2xhc3MgQ2hhdE1lc3NhZ2UgaW1wbGVtZW50cyBJQ2hhdE1lc3NhZ2VCYXNlLCBJQ2hhdFRleHRNZXNzYWdlLCBJQ2hhdEltYWdlTWVzc2FnZSwgSUNoYXREb3dubG9hZEZpbGVNZXNzYWdlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGtpbmQ6IHN0cmluZyB8IENIQVRfTUVTU0FHRV9UWVBFO1xuICAgIHNlcTogbnVtYmVyO1xuICAgIHJvbGU6IENoYXRSb2xlO1xuICAgIHJlcGx5OiBib29sZWFuO1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgcGFyYW1ldGVycz86IGFueTtcbiAgICBkYXRhPzogYW55O1xuICAgIGF2YXRhclVybD86IHN0cmluZztcbiAgICB1c2VyPzogYW55O1xuICAgIGZlZWRiYWNrPzogSUZlZWRiYWNrO1xuICAgIHN1YmplY3RJZD86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKG9iajogYW55KSB7XG4gICAgICAgIHRoaXMuaWQgPSBvYmo/LmlkO1xuICAgICAgICB0aGlzLnN1YmplY3RJZCA9IG9iaj8uc3ViamVjdElkO1xuICAgICAgICB0aGlzLmZlZWRiYWNrID0gb2JqPy5mZWVkYmFjaztcbiAgICAgICAgdGhpcy5raW5kID0gb2JqPy5raW5kO1xuICAgICAgICB0aGlzLnNlcSA9IG9iaj8uc2VxO1xuICAgICAgICB0aGlzLnJvbGUgPSBvYmo/LnJvbGU7XG4gICAgICAgIHRoaXMucmVwbHkgPSBvYmo/LnJvbGUgIT09IENoYXRSb2xlLlVTRVI7XG4gICAgICAgIHRoaXMudGV4dCA9IG9iaj8udGV4dCB8fCBvYmouYm9keTtcbiAgICAgICAgdGhpcy51cmwgPSBvYmo/LnVybDtcbiAgICAgICAgdGhpcy5sYWJlbCA9IG9iaj8ubGFiZWw7XG4gICAgICAgIHRoaXMuYm9keSA9IG9iaj8uYm9keTtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gb2JqPy5wYXJhbWV0ZXJzO1xuICAgICAgICAvL1RPRE8gZml4IG1lOiByZW1vdmUgc3RhdGljRnVuY1xuICAgICAgICB0aGlzLmF2YXRhclVybCA9IG9iaj8uYXZhdGFyVXJsXG4gICAgICAgICAgICA/IG9iai5hdmF0YXJVcmxcbiAgICAgICAgICAgIDogIW9iaj8ucm9sZSB8fCBvYmo/LnJvbGUgPT09IENoYXRSb2xlLkFTU0lTVEFOVFxuICAgICAgICAgICAgICA/IChkb2N1bWVudCBhcyBhbnkpLnN0YXRpY0Z1bmMoJy9nZW5pdXMtbG9nby53ZWJwJylcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICB0aGlzLnVzZXIgPSBvYmo/LnVzZXI7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxDaGF0TWVzc2FnZSBleHRlbmRzIENoYXRNZXNzYWdlIHtcbiAgICBpc0xvYWRpbmc/OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3Iob2JqOiBhbnkpIHtcbiAgICAgICAgc3VwZXIob2JqKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBvYmo/LmlzTG9hZGluZztcbiAgICB9XG59XG4iXX0=
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL21vZGVscy9jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFcEUsTUFBTSxDQUFOLElBQVksaUJBU1g7QUFURCxXQUFZLGlCQUFpQjtJQUN6QixrQ0FBYSxDQUFBO0lBQ2IsNENBQXVCLENBQUE7SUFDdkIsb0NBQWUsQ0FBQTtJQUNmLG9EQUErQixDQUFBO0lBQy9CLHNDQUFpQixDQUFBO0lBQ2pCLG9DQUFlLENBQUE7SUFDZixvQ0FBZSxDQUFBO0lBQ2Ysa0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBVFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQVM1QjtBQUVELE1BQU0sQ0FBTixJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDaEIseUJBQWEsQ0FBQTtJQUNiLG1DQUF1QixDQUFBO0FBQzNCLENBQUMsRUFIVyxRQUFRLEtBQVIsUUFBUSxRQUduQjtBQW9ERCxNQUFNLE9BQU8sV0FBVztJQWlCcEIsWUFBWSxHQUFRO1FBQ2hCLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUNsQyxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsU0FBUztZQUMzQixDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVM7WUFDZixDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLFNBQVM7Z0JBQzlDLENBQUMsQ0FBRSxRQUFnQixDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVYLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmVlZGJhY2sgfSBmcm9tICcuL2ZlZWRiYWNrJztcblxuZXhwb3J0IGNvbnN0IElNQUdFX1RZUEVTID0gWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9naWYnXTtcblxuZXhwb3J0IGVudW0gQ0hBVF9NRVNTQUdFX1RZUEUge1xuICAgIFRFWFQgPSAndGV4dCcsXG4gICAgUklDSF9URVhUID0gJ3JpY2gtdGV4dCcsXG4gICAgSU1BR0UgPSAnaW1hZ2UnLFxuICAgIERPV05MT0FEX0ZJTEUgPSAnZG93bmxvYWQtZmlsZScsXG4gICAgTUFJTFRPID0gJ21haWx0bycsXG4gICAgRU1CRUQgPSAnZW1iZWQnLFxuICAgIElOUFVUID0gJ2lucHV0JyxcbiAgICBDT0RFID0gJ2NvZGUnLFxufVxuXG5leHBvcnQgZW51bSBDaGF0Um9sZSB7XG4gICAgVVNFUiA9ICd1c2VyJyxcbiAgICBBU1NJU1RBTlQgPSAnYXNzaXN0YW50Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdE1lc3NhZ2VSZWYge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc2VxOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBJQ2hhdE5ld01lc3NhZ2Uge1xuICAgIGtpbmQ6IENIQVRfTUVTU0FHRV9UWVBFO1xuICAgIHJvbGU6IENoYXRSb2xlO1xuICAgIGJvZHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdE1lc3NhZ2VCYXNlIGV4dGVuZHMgSUNoYXRNZXNzYWdlUmVmIHtcbiAgICBraW5kOiBzdHJpbmcgfCBDSEFUX01FU1NBR0VfVFlQRTtcbiAgICByZXBseTogYm9vbGVhbjtcbiAgICByb2xlOiBDaGF0Um9sZTtcbiAgICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gICAgdXNlcj86IGFueTtcbiAgICBzdWJqZWN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXRUZXh0TWVzc2FnZSBleHRlbmRzIElDaGF0TWVzc2FnZUJhc2Uge1xuICAgIGtpbmQ6IHN0cmluZyB8IENIQVRfTUVTU0FHRV9UWVBFLlRFWFQ7XG4gICAgdGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhdEltYWdlTWVzc2FnZSBleHRlbmRzIElDaGF0TWVzc2FnZUJhc2Uge1xuICAgIGtpbmQ6IHN0cmluZyB8IENIQVRfTUVTU0FHRV9UWVBFLklNQUdFO1xuICAgIHVybD86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXREb3dubG9hZEZpbGVNZXNzYWdlIGV4dGVuZHMgSUNoYXRNZXNzYWdlQmFzZSB7XG4gICAga2luZDogc3RyaW5nIHwgQ0hBVF9NRVNTQUdFX1RZUEUuRE9XTkxPQURfRklMRTtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElDaGF0TWVzc2FnZSA9IElDaGF0TWVzc2FnZUJhc2UgJiBJQ2hhdFRleHRNZXNzYWdlICYgSUNoYXRJbWFnZU1lc3NhZ2UgJiBJQ2hhdERvd25sb2FkRmlsZU1lc3NhZ2U7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXRNZXNzYWdlRmlsZUljb25QcmV2aWV3IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBpY29uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXRNZXNzYWdlRmlsZUltYWdlUHJldmlldyB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBJQ2hhdE1lc3NhZ2VGaWxlID0gSUNoYXRNZXNzYWdlRmlsZUljb25QcmV2aWV3IHwgSUNoYXRNZXNzYWdlRmlsZUltYWdlUHJldmlldztcblxuZXhwb3J0IGNsYXNzIENoYXRNZXNzYWdlIGltcGxlbWVudHMgSUNoYXRNZXNzYWdlQmFzZSwgSUNoYXRUZXh0TWVzc2FnZSwgSUNoYXRJbWFnZU1lc3NhZ2UsIElDaGF0RG93bmxvYWRGaWxlTWVzc2FnZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmcgfCBDSEFUX01FU1NBR0VfVFlQRTtcbiAgICBzZXE6IG51bWJlcjtcbiAgICByb2xlOiBDaGF0Um9sZTtcbiAgICByZXBseTogYm9vbGVhbjtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM/OiBhbnk7XG4gICAgZGF0YT86IGFueTtcbiAgICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gICAgdXNlcj86IGFueTtcbiAgICBmZWVkYmFjaz86IElGZWVkYmFjaztcbiAgICBzdWJqZWN0SWQ/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihvYmo6IGFueSkge1xuICAgICAgICB0aGlzLmlkID0gb2JqPy5pZDtcbiAgICAgICAgdGhpcy5zdWJqZWN0SWQgPSBvYmo/LnN1YmplY3RJZDtcbiAgICAgICAgdGhpcy5mZWVkYmFjayA9IG9iaj8uZmVlZGJhY2s7XG4gICAgICAgIHRoaXMua2luZCA9IG9iaj8ua2luZDtcbiAgICAgICAgdGhpcy5zZXEgPSBvYmo/LnNlcTtcbiAgICAgICAgdGhpcy5yb2xlID0gb2JqPy5yb2xlO1xuICAgICAgICB0aGlzLnJlcGx5ID0gb2JqPy5yb2xlICE9PSBDaGF0Um9sZS5VU0VSO1xuICAgICAgICB0aGlzLnRleHQgPSBvYmo/LnRleHQgfHwgb2JqLmJvZHk7XG4gICAgICAgIHRoaXMudXJsID0gb2JqPy51cmw7XG4gICAgICAgIHRoaXMubGFiZWwgPSBvYmo/LmxhYmVsO1xuICAgICAgICB0aGlzLmJvZHkgPSBvYmo/LmJvZHk7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IG9iaj8ucGFyYW1ldGVycztcbiAgICAgICAgLy9UT0RPIGZpeCBtZTogcmVtb3ZlIHN0YXRpY0Z1bmNcbiAgICAgICAgdGhpcy5hdmF0YXJVcmwgPSBvYmo/LmF2YXRhclVybFxuICAgICAgICAgICAgPyBvYmouYXZhdGFyVXJsXG4gICAgICAgICAgICA6ICFvYmo/LnJvbGUgfHwgb2JqPy5yb2xlID09PSBDaGF0Um9sZS5BU1NJU1RBTlRcbiAgICAgICAgICAgICAgPyAoZG9jdW1lbnQgYXMgYW55KS5zdGF0aWNGdW5jKCcvZ2VuaXVzLWxvZ28ud2VicCcpXG4gICAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgdGhpcy51c2VyID0gb2JqPy51c2VyO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -3711,12 +3711,6 @@ class ChatMessage {
|
|
|
3711
3711
|
this.user = obj?.user;
|
|
3712
3712
|
}
|
|
3713
3713
|
}
|
|
3714
|
-
class ExternalChatMessage extends ChatMessage {
|
|
3715
|
-
constructor(obj) {
|
|
3716
|
-
super(obj);
|
|
3717
|
-
this.isLoading = obj?.isLoading;
|
|
3718
|
-
}
|
|
3719
|
-
}
|
|
3720
3714
|
|
|
3721
3715
|
class DrDotFlashingComponent {
|
|
3722
3716
|
constructor() { }
|
|
@@ -3828,16 +3822,19 @@ class DrChatFormComponent {
|
|
|
3828
3822
|
this.fileOver = false;
|
|
3829
3823
|
}
|
|
3830
3824
|
}
|
|
3831
|
-
sendMessage() {
|
|
3832
|
-
if (
|
|
3833
|
-
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
this.
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3825
|
+
sendMessage($event) {
|
|
3826
|
+
if (!$event.shiftKey) {
|
|
3827
|
+
$event.preventDefault();
|
|
3828
|
+
if (this.waitForReply) {
|
|
3829
|
+
return;
|
|
3830
|
+
}
|
|
3831
|
+
if (this.droppedFiles.length || String(this.message).trim().length) {
|
|
3832
|
+
this._textareaInitialHeight = true;
|
|
3833
|
+
this.send.emit({ message: this.message, files: this.droppedFiles });
|
|
3834
|
+
this.message = '';
|
|
3835
|
+
this.droppedFiles = [];
|
|
3836
|
+
this.cdr.markForCheck();
|
|
3837
|
+
}
|
|
3841
3838
|
}
|
|
3842
3839
|
}
|
|
3843
3840
|
abortMessage() {
|
|
@@ -3858,11 +3855,11 @@ class DrChatFormComponent {
|
|
|
3858
3855
|
return `height: ${height}px;`;
|
|
3859
3856
|
}
|
|
3860
3857
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrChatFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3861
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrChatFormComponent, selector: "dr-chat-form", inputs: { message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDisabledButtonInsteadOfDotFlashing: "showDisabledButtonInsteadOfDotFlashing" }, outputs: { send: "send", abort: "abort", inputChange: "inputChange" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" }, properties: { "class.file-over": "this.fileOver" } }, ngImport: i0, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (
|
|
3858
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrChatFormComponent, selector: "dr-chat-form", inputs: { message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDisabledButtonInsteadOfDotFlashing: "showDisabledButtonInsteadOfDotFlashing" }, outputs: { send: "send", abort: "abort", inputChange: "inputChange" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" }, properties: { "class.file-over": "this.fileOver" } }, ngImport: i0, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keydown.enter)=\"sendMessage($event)\">\n </textarea>\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage()\" class=\"dr-icon-notify send-button\"></i>\n <i\n *ngIf=\"waitForReply && showDisabledButtonInsteadOfDotFlashing\"\n (click)=\"sendMessage()\"\n class=\"dr-icon-notify send-button-disabled\"></i>\n <dr-dot-flashing\n *ngIf=\"waitForReply && !showDisabledButtonInsteadOfDotFlashing\"\n class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:center;padding:0 16px;margin-top:12px}:host .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}:host .message-row__input{position:relative;display:flex;align-items:center;flex-grow:1;flex-direction:row;height:auto;overflow:visible;min-width:265px;border-radius:24px;background:#dfe0e3 border-box;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29}:host .message-row__input .send-button,:host .message-row__input .send-button-disabled{position:absolute;right:4px;top:2.5px;cursor:pointer;font-size:28px;width:68px;border-radius:100px;display:flex;align-items:center;justify-content:center;height:40px;background:#f0f1f4;color:#aeabac}:host .message-row__input--focused{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled .send-button{color:#fff;background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input textarea{font-size:14px;color:#333;line-height:19px;flex-grow:1;resize:none;padding:14px 76px 12px 23px;margin:auto;border:none;border-radius:22.5px}:host .message-row__input textarea:focus{border:none}:host .message-row__input textarea::placeholder{color:#9ea1aa}:host .message-row__input .wait-reply-dot-flashing{position:absolute;right:20px}:host .message-row__input .abort-button{position:absolute;right:0;top:-44px}:host .message-row__input .abort-button::ng-deep button{background:#f2f2ff!important;border-radius:4px}:host input{flex:1}:host input.with-button{border-bottom-right-radius:0;border-top-right-radius:0}:host .dropped-files{display:flex;flex-direction:row;margin-bottom:.5rem;flex-wrap:wrap}:host .dropped-files__item{display:flex;flex-direction:column;justify-content:center;margin:0 10px 10px 0;position:relative}:host .dropped-files__item__preview{background-size:cover;background-position:center;width:64px;height:64px;border-radius:8px;border:1px solid #ccc}:host .dropped-files__item__preview i{font-size:62px}:host .dropped-files__item__name{white-space:nowrap;font-size:12px;color:#8f929e;margin-top:4px;max-width:64px;overflow:hidden;text-overflow:ellipsis}:host .dropped-files__item__remove{position:absolute;right:-4px;top:-4px;cursor:pointer;background:#fff;border-radius:12px;color:#8f929e;border:1px solid #8f929e;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "component", type: DrDotFlashingComponent, selector: "dr-dot-flashing" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3862
3859
|
}
|
|
3863
3860
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrChatFormComponent, decorators: [{
|
|
3864
3861
|
type: Component,
|
|
3865
|
-
args: [{ selector: 'dr-chat-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (
|
|
3862
|
+
args: [{ selector: 'dr-chat-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keydown.enter)=\"sendMessage($event)\">\n </textarea>\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage()\" class=\"dr-icon-notify send-button\"></i>\n <i\n *ngIf=\"waitForReply && showDisabledButtonInsteadOfDotFlashing\"\n (click)=\"sendMessage()\"\n class=\"dr-icon-notify send-button-disabled\"></i>\n <dr-dot-flashing\n *ngIf=\"waitForReply && !showDisabledButtonInsteadOfDotFlashing\"\n class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:center;padding:0 16px;margin-top:12px}:host .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}:host .message-row__input{position:relative;display:flex;align-items:center;flex-grow:1;flex-direction:row;height:auto;overflow:visible;min-width:265px;border-radius:24px;background:#dfe0e3 border-box;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29}:host .message-row__input .send-button,:host .message-row__input .send-button-disabled{position:absolute;right:4px;top:2.5px;cursor:pointer;font-size:28px;width:68px;border-radius:100px;display:flex;align-items:center;justify-content:center;height:40px;background:#f0f1f4;color:#aeabac}:host .message-row__input--focused{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled .send-button{color:#fff;background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input textarea{font-size:14px;color:#333;line-height:19px;flex-grow:1;resize:none;padding:14px 76px 12px 23px;margin:auto;border:none;border-radius:22.5px}:host .message-row__input textarea:focus{border:none}:host .message-row__input textarea::placeholder{color:#9ea1aa}:host .message-row__input .wait-reply-dot-flashing{position:absolute;right:20px}:host .message-row__input .abort-button{position:absolute;right:0;top:-44px}:host .message-row__input .abort-button::ng-deep button{background:#f2f2ff!important;border-radius:4px}:host input{flex:1}:host input.with-button{border-bottom-right-radius:0;border-top-right-radius:0}:host .dropped-files{display:flex;flex-direction:row;margin-bottom:.5rem;flex-wrap:wrap}:host .dropped-files__item{display:flex;flex-direction:column;justify-content:center;margin:0 10px 10px 0;position:relative}:host .dropped-files__item__preview{background-size:cover;background-position:center;width:64px;height:64px;border-radius:8px;border:1px solid #ccc}:host .dropped-files__item__preview i{font-size:62px}:host .dropped-files__item__name{white-space:nowrap;font-size:12px;color:#8f929e;margin-top:4px;max-width:64px;overflow:hidden;text-overflow:ellipsis}:host .dropped-files__item__remove{position:absolute;right:-4px;top:-4px;cursor:pointer;background:#fff;border-radius:12px;color:#8f929e;border:1px solid #8f929e;font-size:14px}\n"] }]
|
|
3866
3863
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$5.DomSanitizer }]; }, propDecorators: { message: [{
|
|
3867
3864
|
type: Input
|
|
3868
3865
|
}], messagePlaceholder: [{
|
|
@@ -8861,5 +8858,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
8861
8858
|
* Generated bundle index. Do not edit.
|
|
8862
8859
|
*/
|
|
8863
8860
|
|
|
8864
|
-
export { AnyTagComponent, BadgeStatus, CHAT_MESSAGE_TYPE, CROP_IMAGE_MODES, CalendarView, ChatMessage, ChatRole, CheckboxComponent, ClickOutsideDirective, ClickOutsideModule, CodeEditorHintWrapperComponent, CustomDateAdapter, CustomDateFormat, DEFAULT_LINK_FONT_SIZE, DEFAULT_LINK_FONT_WEIGHT, DIALOG_BUTTON_LABEL, DIALOG_FIELD_TYPE, DIALOG_SIZE, DateFromats, DatePickerPeriodPosition, DateTagComponent, DateTagModule, DateTags, DayTagComponent, DefaultToastrComponent, DefaultTreeviewEventParser, DefaultTreeviewI18n, DialogModalWrapperComponent, DialogService, DialogWrapperComponent, DownlineTreeviewEventParser, DrAccordionComponent, DrAccordionItemBodyComponent, DrAccordionItemComponent, DrAccordionItemHeaderComponent, DrAccordionModule, DrAlertComponent, DrAlertModule, DrAlertTheme, DrAvatarComponent, DrAvatarModule, DrAvatarPipe, DrAvatarService, DrBadgeStatusComponent, DrBadgeStatusModule, DrButtonComponent, DrChatAlertComponent, DrChatComponent, DrChatCustomMessageDirective, DrChatFormComponent, DrChatMessageComponent, DrChatMessageFileComponent, DrChatMessageTextComponent, DrChatModule, DrChatSuggestionsComponent, DrCodeEditorComponent, DrCodeEditorModule, DrCodemirrorComponent, DrDatePickerComponent, DrDatePickerCustomHeaderComponent, DrDatePickerFormatDirective, DrDatePickerRangeComponent, DrDatePickerWithTimeframeComponent, DrDetailsListComponent, DrDetailsListModule, DrDialogModule, DrDotFlashingComponent, DrDropdownComponent, DrDropdownDirective, DrDropdownItemShowPipe, DrDropdownModule, DrDropdownPositionDirective, DrDropdownService, DrErrorComponent, DrErrorModule, DrImageCropperComponent, DrInputComponent, DrInputsModule, DrLayoutBodyComponent, DrLayoutComponent, DrLayoutHeaderComponent, DrLayoutModule, DrLinkComponent, DrModelDebounceChangeDirective, DrPopoverAlignmentDimension, DrPopoverComponent, DrPopoverDirective, DrPopoverModule, DrPopoverRef, DrPopoverService, DrScenarioConfigurationComponent, DrScenarioModule, DrScenarioTagConfigurationComponent, DrSelectAddItemComponent, DrSelectComponent, DrSharedUtils, DrShowTimeframePipe, DrSliderComponent, DrSpinnerComponent, DrSpinnerDirective, DrSpinnerModule, DrStepperModule, DrTabComponent, DrTabsComponent, DrTabsModule, DrTagComponent, DrTagModule, DrTagsConstructorComponent, DrTagsConstructorModule, DrToastrModule, DrToastrService, DrToggleButtonComponent, DrToggleComponent, DrTooltipDirective, DrTooltipModule,
|
|
8861
|
+
export { AnyTagComponent, BadgeStatus, CHAT_MESSAGE_TYPE, CROP_IMAGE_MODES, CalendarView, ChatMessage, ChatRole, CheckboxComponent, ClickOutsideDirective, ClickOutsideModule, CodeEditorHintWrapperComponent, CustomDateAdapter, CustomDateFormat, DEFAULT_LINK_FONT_SIZE, DEFAULT_LINK_FONT_WEIGHT, DIALOG_BUTTON_LABEL, DIALOG_FIELD_TYPE, DIALOG_SIZE, DateFromats, DatePickerPeriodPosition, DateTagComponent, DateTagModule, DateTags, DayTagComponent, DefaultToastrComponent, DefaultTreeviewEventParser, DefaultTreeviewI18n, DialogModalWrapperComponent, DialogService, DialogWrapperComponent, DownlineTreeviewEventParser, DrAccordionComponent, DrAccordionItemBodyComponent, DrAccordionItemComponent, DrAccordionItemHeaderComponent, DrAccordionModule, DrAlertComponent, DrAlertModule, DrAlertTheme, DrAvatarComponent, DrAvatarModule, DrAvatarPipe, DrAvatarService, DrBadgeStatusComponent, DrBadgeStatusModule, DrButtonComponent, DrChatAlertComponent, DrChatComponent, DrChatCustomMessageDirective, DrChatFormComponent, DrChatMessageComponent, DrChatMessageFileComponent, DrChatMessageTextComponent, DrChatModule, DrChatSuggestionsComponent, DrCodeEditorComponent, DrCodeEditorModule, DrCodemirrorComponent, DrDatePickerComponent, DrDatePickerCustomHeaderComponent, DrDatePickerFormatDirective, DrDatePickerRangeComponent, DrDatePickerWithTimeframeComponent, DrDetailsListComponent, DrDetailsListModule, DrDialogModule, DrDotFlashingComponent, DrDropdownComponent, DrDropdownDirective, DrDropdownItemShowPipe, DrDropdownModule, DrDropdownPositionDirective, DrDropdownService, DrErrorComponent, DrErrorModule, DrImageCropperComponent, DrInputComponent, DrInputsModule, DrLayoutBodyComponent, DrLayoutComponent, DrLayoutHeaderComponent, DrLayoutModule, DrLinkComponent, DrModelDebounceChangeDirective, DrPopoverAlignmentDimension, DrPopoverComponent, DrPopoverDirective, DrPopoverModule, DrPopoverRef, DrPopoverService, DrScenarioConfigurationComponent, DrScenarioModule, DrScenarioTagConfigurationComponent, DrSelectAddItemComponent, DrSelectComponent, DrSharedUtils, DrShowTimeframePipe, DrSliderComponent, DrSpinnerComponent, DrSpinnerDirective, DrSpinnerModule, DrStepperModule, DrTabComponent, DrTabsComponent, DrTabsModule, DrTagComponent, DrTagModule, DrTagsConstructorComponent, DrTagsConstructorModule, DrToastrModule, DrToastrService, DrToggleButtonComponent, DrToggleComponent, DrTooltipDirective, DrTooltipModule, FeedbackSentiment, ForecastTagComponent, ICodeEditorHintIcon, IMAGE_TYPES, LinkTheme, ListTagComponent, ListTagModule, MonthTagComponent, OrderDownlineTreeviewEventParser, QuarterTagComponent, RadioButtonComponent, RadioGroupComponent, Scenario, ScenarioService, StepperComponent, TagTypes, TagsConfigSubType, TagsConstructorService, TimeframeOption, ToastrStatus, ToastrStatusIcon, ToggleButtonMode, TooltipComponent, TooltipDefaultComponent, TooltipInfoComponent, TooltipInfoIconTheme, TooltipInfoWidth, TooltipPosition, TooltipTheme, TreeviewComponent, TreeviewConfig, TreeviewEventParser, TreeviewHelper, TreeviewI18n, TreeviewItem, TreeviewModule, TreeviewPipe, WeekTagComponent, YearTagComponent };
|
|
8865
8862
|
//# sourceMappingURL=datarailsshared-datarailsshared.mjs.map
|