@datarailsshared/datarailsshared 1.6.115 → 1.6.119

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.
@@ -34,9 +34,10 @@ function DrChatFormDropdownComponent_i_14_Template(rf, ctx) { if (rf & 1) {
34
34
  function DrChatFormDropdownComponent_dr_dot_flashing_15_Template(rf, ctx) { if (rf & 1) {
35
35
  i0.ɵɵelement(0, "dr-dot-flashing", 15);
36
36
  } }
37
- const _c2 = function (a0) { return { "message-row_loading": a0 }; };
38
- const _c3 = function (a0, a1) { return { "message-row__input--focused": a0, "message-row__input--filled": a1 }; };
39
- const _c4 = ["*"];
37
+ const _c2 = ["*", [["", "dropItem", ""]]];
38
+ const _c3 = function (a0) { return { "message-row_loading": a0 }; };
39
+ const _c4 = function (a0, a1) { return { "message-row__input--focused": a0, "message-row__input--filled": a1 }; };
40
+ const _c5 = ["*", "[dropItem]"];
40
41
  export class DrChatFormDropdownComponent {
41
42
  constructor(cdr, domSanitizer) {
42
43
  this.cdr = cdr;
@@ -204,8 +205,8 @@ export class DrChatFormDropdownComponent {
204
205
  i0.ɵɵlistener("drop", function DrChatFormDropdownComponent_drop_HostBindingHandler($event) { return ctx.onDrop($event); })("dragover", function DrChatFormDropdownComponent_dragover_HostBindingHandler($event) { return ctx.onDragOver($event); })("dragleave", function DrChatFormDropdownComponent_dragleave_HostBindingHandler($event) { return ctx.onDragLeave($event); });
205
206
  } if (rf & 2) {
206
207
  i0.ɵɵclassProp("file-over", ctx.fileOver);
207
- } }, inputs: { isUploadingFiles: "isUploadingFiles", message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDotFlashing: "showDotFlashing" }, outputs: { send: "send", uploadFiles: "uploadFiles", abort: "abort", inputChange: "inputChange" }, ngContentSelectors: _c4, decls: 16, vars: 20, consts: [[1, "message-row", 3, "ngClass"], [1, "message-row__input", 3, "ngClass"], [3, "files", "isRemovable", "maxLengthText", "removeFileEvent", 4, "ngIf"], [1, "message-row__input-textarea-wrap"], ["type", "text", 3, "ngModel", "rows", "placeholder", "focus", "blur", "mouseenter", "mouseleave", "ngModelChange", "keydown.enter"], ["textAreaElement", ""], [1, "message-row__btns"], ["type", "file", "hidden", "", "multiple", "", 3, "change"], ["fileInput", ""], ["class", "dr-icon-send-arrow-up send-button", 3, "click", 4, "ngIf"], ["class", "dr-icon-stop abort-button", 3, "click", 4, "ngIf"], ["class", "wait-reply-dot-flashing", 4, "ngIf"], [3, "files", "isRemovable", "maxLengthText", "removeFileEvent"], [1, "dr-icon-send-arrow-up", "send-button", 3, "click"], [1, "dr-icon-stop", "abort-button", 3, "click"], [1, "wait-reply-dot-flashing"]], template: function DrChatFormDropdownComponent_Template(rf, ctx) { if (rf & 1) {
208
- i0.ɵɵprojectionDef();
208
+ } }, inputs: { isUploadingFiles: "isUploadingFiles", message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDotFlashing: "showDotFlashing" }, outputs: { send: "send", uploadFiles: "uploadFiles", abort: "abort", inputChange: "inputChange" }, ngContentSelectors: _c5, decls: 17, vars: 20, consts: [[1, "message-row", 3, "ngClass"], [1, "message-row__input", 3, "ngClass"], [3, "files", "isRemovable", "maxLengthText", "removeFileEvent", 4, "ngIf"], [1, "message-row__input-textarea-wrap"], ["type", "text", 3, "ngModel", "rows", "placeholder", "focus", "blur", "mouseenter", "mouseleave", "ngModelChange", "keydown.enter"], ["textAreaElement", ""], [1, "message-row__btns"], ["type", "file", "hidden", "", "multiple", "", 3, "change"], ["fileInput", ""], ["class", "dr-icon-send-arrow-up send-button", 3, "click", 4, "ngIf"], ["class", "dr-icon-stop abort-button", 3, "click", 4, "ngIf"], ["class", "wait-reply-dot-flashing", 4, "ngIf"], [3, "files", "isRemovable", "maxLengthText", "removeFileEvent"], [1, "dr-icon-send-arrow-up", "send-button", 3, "click"], [1, "dr-icon-stop", "abort-button", 3, "click"], [1, "wait-reply-dot-flashing"]], template: function DrChatFormDropdownComponent_Template(rf, ctx) { if (rf & 1) {
209
+ i0.ɵɵprojectionDef(_c2);
209
210
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
210
211
  i0.ɵɵpipe(2, "async");
211
212
  i0.ɵɵtemplate(3, DrChatFormDropdownComponent_dr_chat_dropped_files_3_Template, 2, 5, "dr-chat-dropped-files", 2);
@@ -222,13 +223,15 @@ export class DrChatFormDropdownComponent {
222
223
  i0.ɵɵtemplate(13, DrChatFormDropdownComponent_i_13_Template, 1, 0, "i", 9);
223
224
  i0.ɵɵtemplate(14, DrChatFormDropdownComponent_i_14_Template, 1, 0, "i", 10);
224
225
  i0.ɵɵtemplate(15, DrChatFormDropdownComponent_dr_dot_flashing_15_Template, 1, 0, "dr-dot-flashing", 11);
225
- i0.ɵɵelementEnd()()();
226
+ i0.ɵɵelementEnd();
227
+ i0.ɵɵprojection(16, 1);
228
+ i0.ɵɵelementEnd()();
226
229
  } if (rf & 2) {
227
230
  const _r1 = i0.ɵɵreference(7);
228
231
  let tmp_1_0;
229
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c2, ctx.isUploadingFiles));
232
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c3, ctx.isUploadingFiles));
230
233
  i0.ɵɵadvance(1);
231
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(17, _c3, ctx.inputFocus, !!(ctx.message == null ? null : (tmp_1_0 = ctx.message.trim()) == null ? null : tmp_1_0.length) || !!i0.ɵɵpipeBind1(2, 11, ctx.droppedFiles$).length));
234
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(17, _c4, ctx.inputFocus, !!(ctx.message == null ? null : (tmp_1_0 = ctx.message.trim()) == null ? null : tmp_1_0.length) || !!i0.ɵɵpipeBind1(2, 11, ctx.droppedFiles$).length));
232
235
  i0.ɵɵadvance(2);
233
236
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(4, 13, ctx.droppedFiles$).length);
234
237
  i0.ɵɵadvance(3);
@@ -241,11 +244,11 @@ export class DrChatFormDropdownComponent {
241
244
  i0.ɵɵproperty("ngIf", ctx.waitForReply && !ctx.showDotFlashing);
242
245
  i0.ɵɵadvance(1);
243
246
  i0.ɵɵproperty("ngIf", ctx.waitForReply && ctx.showDotFlashing);
244
- } }, dependencies: [i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.NgClass, i3.NgIf, i4.DrDotFlashingComponent, i5.DrChatDroppedFilesComponent, i3.AsyncPipe], styles: ["[_nghost-%COMP%] {--disabled-bg: linear-gradient(270.95deg, rgba(130, 210, 240, .2) 10.98%, rgba(146, 146, 255, .2) 93.38%);display:flex;flex-direction:column;align-items:center;padding:0}[_nghost-%COMP%] .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}[_nghost-%COMP%] .message-row__input{flex-direction:column;background-color:#fff;position:relative;display:flex;align-items:center;flex-grow:1;padding:14px 8px 8px 15px;height:auto;overflow:visible;min-width:265px;border-radius:24px;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29;transition:.35s ease}[_nghost-%COMP%] .message-row__input .abort-button, [_nghost-%COMP%] .message-row__input .send-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;border-radius:100px;color:#fff;transition:.15s ease-in-out;background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box}[_nghost-%COMP%] .message-row__input .send-button, [_nghost-%COMP%] .message-row__input .abort-button{background:var(--disabled-bg);pointer-events:none}[_nghost-%COMP%] .message-row__input--focused{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;height:auto!important;background:#fff}[_nghost-%COMP%] .message-row__input--filled{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;background:#fff}[_nghost-%COMP%] .message-row__input--filled .send-button{background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box;pointer-events:all}[_nghost-%COMP%] .message-row__input .wait-reply-dot-flashing{display:flex;align-items:center;width:32px;height:32px}[_nghost-%COMP%] .message-row__input:before{content:\"\";position:absolute;inset:-3px;background:linear-gradient(266.3deg,#6969ff 25.2%,#4eb7df 90.24%);border-radius:25px;z-index:-1}[_nghost-%COMP%] .message-row__input textarea{color:#333;width:100%;outline:none;min-height:30px;flex-grow:1;resize:none;padding:4px 48px 4px 4px;margin:auto;border:none;border-radius:22.5px;font-family:Poppins,sans-serif;font-size:14px;line-height:22px}[_nghost-%COMP%] .message-row__input textarea:focus{border:none}[_nghost-%COMP%] .message-row__input textarea::placeholder{color:#9ea1aa}[_nghost-%COMP%] .message-row__btns{display:flex;justify-content:space-between;width:100%;align-items:center}[_nghost-%COMP%] .message-row__input-textarea-wrap{display:flex;width:100%;position:relative}[_nghost-%COMP%] dr-chat-dropped-files{margin-right:auto}[_nghost-%COMP%] dr-chat-dropped-files .dropped-files{padding:0}[_nghost-%COMP%] dr-chat-dropped-files .dropped-files__item{margin:0}[_nghost-%COMP%] .message-row_loading .send-button{background:var(--disabled-bg);pointer-events:none}[_nghost-%COMP%] .message-row_loading .dropped-files__item{opacity:.5;pointer-events:none}"], changeDetection: 0 }); }
247
+ } }, dependencies: [i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.NgClass, i3.NgIf, i4.DrDotFlashingComponent, i5.DrChatDroppedFilesComponent, i3.AsyncPipe], styles: ["[_nghost-%COMP%] {--disabled-bg: linear-gradient(270.95deg, rgba(130, 210, 240, .2) 10.98%, rgba(146, 146, 255, .2) 93.38%);display:flex;flex-direction:column;align-items:center;padding:0}[_nghost-%COMP%] .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}[_nghost-%COMP%] .message-row__input{flex-direction:column;background-color:#fff;position:relative;display:flex;align-items:center;flex-grow:1;padding:14px 8px 8px 15px;height:auto;overflow:visible;min-width:265px;border-radius:24px;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29;transition:.35s ease;will-change:box-shadow}[_nghost-%COMP%] .message-row__input .abort-button, [_nghost-%COMP%] .message-row__input .send-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;border-radius:100px;color:#fff;transition:.15s ease-in-out;background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box}[_nghost-%COMP%] .message-row__input .send-button, [_nghost-%COMP%] .message-row__input .abort-button{background:var(--disabled-bg);pointer-events:none}[_nghost-%COMP%] .message-row__input--focused{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;height:auto!important;background:#fff}[_nghost-%COMP%] .message-row__input--filled{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;background:#fff}[_nghost-%COMP%] .message-row__input--filled .send-button{background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box;pointer-events:all}[_nghost-%COMP%] .message-row__input .wait-reply-dot-flashing{display:flex;align-items:center;width:32px;height:32px}[_nghost-%COMP%] .message-row__input:before{content:\"\";position:absolute;inset:-3px;background:linear-gradient(266.3deg,#6969ff 25.2%,#4eb7df 90.24%);border-radius:25px;z-index:-1}[_nghost-%COMP%] .message-row__input textarea{color:#333;width:100%;outline:none;min-height:30px;flex-grow:1;resize:none;padding:4px 48px 4px 4px;margin:auto;border:none;border-radius:22.5px;font-family:Poppins,sans-serif;font-size:14px;line-height:22px}[_nghost-%COMP%] .message-row__input textarea:focus{border:none}[_nghost-%COMP%] .message-row__input textarea::placeholder{color:#9ea1aa}[_nghost-%COMP%] .message-row__btns{display:flex;justify-content:space-between;width:100%;align-items:center}[_nghost-%COMP%] .message-row__input-textarea-wrap{display:flex;width:100%;position:relative}[_nghost-%COMP%] dr-chat-dropped-files{margin-right:auto}[_nghost-%COMP%] dr-chat-dropped-files .dropped-files{padding:0}[_nghost-%COMP%] dr-chat-dropped-files .dropped-files__item{margin:0}[_nghost-%COMP%] .message-row_loading .send-button{background:var(--disabled-bg);pointer-events:none}[_nghost-%COMP%] .message-row_loading .dropped-files__item{opacity:.5;pointer-events:none}"], changeDetection: 0 }); }
245
248
  }
246
249
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrChatFormDropdownComponent, [{
247
250
  type: Component,
248
- args: [{ selector: 'dr-chat-form-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"message-row\" [ngClass]=\"{ 'message-row_loading': isUploadingFiles }\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{\n 'message-row__input--focused': inputFocus,\n 'message-row__input--filled': !!message?.trim()?.length || !!(droppedFiles$ | async).length,\n }\">\n <dr-chat-dropped-files\n *ngIf=\"(droppedFiles$ | async).length\"\n [files]=\"droppedFiles$ | async\"\n [isRemovable]=\"true\"\n [maxLengthText]=\"15\"\n (removeFileEvent)=\"removeFile($event)\"></dr-chat-dropped-files>\n\n <div class=\"message-row__input-textarea-wrap\">\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 </div>\n <div class=\"message-row__btns\">\n <ng-content></ng-content>\n <input #fileInput type=\"file\" hidden multiple (change)=\"onFileSelected($event)\" />\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage($event)\" class=\"dr-icon-send-arrow-up send-button\"></i>\n\n <i *ngIf=\"waitForReply && !showDotFlashing\" class=\"dr-icon-stop abort-button\" (click)=\"abortMessage()\"></i>\n <dr-dot-flashing *ngIf=\"waitForReply && showDotFlashing\" class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n </div>\n </div>\n</div>\n", styles: [":host::ng-deep{--disabled-bg: linear-gradient(270.95deg, rgba(130, 210, 240, .2) 10.98%, rgba(146, 146, 255, .2) 93.38%);display:flex;flex-direction:column;align-items:center;padding:0}:host::ng-deep .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}:host::ng-deep .message-row__input{flex-direction:column;background-color:#fff;position:relative;display:flex;align-items:center;flex-grow:1;padding:14px 8px 8px 15px;height:auto;overflow:visible;min-width:265px;border-radius:24px;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29;transition:.35s ease}:host::ng-deep .message-row__input .abort-button,:host::ng-deep .message-row__input .send-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;border-radius:100px;color:#fff;transition:.15s ease-in-out;background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box}:host::ng-deep .message-row__input .send-button,:host::ng-deep .message-row__input .abort-button{background:var(--disabled-bg);pointer-events:none}:host::ng-deep .message-row__input--focused{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;height:auto!important;background:#fff}:host::ng-deep .message-row__input--filled{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;background:#fff}:host::ng-deep .message-row__input--filled .send-button{background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box;pointer-events:all}:host::ng-deep .message-row__input .wait-reply-dot-flashing{display:flex;align-items:center;width:32px;height:32px}:host::ng-deep .message-row__input:before{content:\"\";position:absolute;inset:-3px;background:linear-gradient(266.3deg,#6969ff 25.2%,#4eb7df 90.24%);border-radius:25px;z-index:-1}:host::ng-deep .message-row__input textarea{color:#333;width:100%;outline:none;min-height:30px;flex-grow:1;resize:none;padding:4px 48px 4px 4px;margin:auto;border:none;border-radius:22.5px;font-family:Poppins,sans-serif;font-size:14px;line-height:22px}:host::ng-deep .message-row__input textarea:focus{border:none}:host::ng-deep .message-row__input textarea::placeholder{color:#9ea1aa}:host::ng-deep .message-row__btns{display:flex;justify-content:space-between;width:100%;align-items:center}:host::ng-deep .message-row__input-textarea-wrap{display:flex;width:100%;position:relative}:host::ng-deep dr-chat-dropped-files{margin-right:auto}:host::ng-deep dr-chat-dropped-files .dropped-files{padding:0}:host::ng-deep dr-chat-dropped-files .dropped-files__item{margin:0}:host::ng-deep .message-row_loading .send-button{background:var(--disabled-bg);pointer-events:none}:host::ng-deep .message-row_loading .dropped-files__item{opacity:.5;pointer-events:none}\n"] }]
251
+ args: [{ selector: 'dr-chat-form-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"message-row\" [ngClass]=\"{ 'message-row_loading': isUploadingFiles }\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{\n 'message-row__input--focused': inputFocus,\n 'message-row__input--filled': !!message?.trim()?.length || !!(droppedFiles$ | async).length,\n }\">\n <dr-chat-dropped-files\n *ngIf=\"(droppedFiles$ | async).length\"\n [files]=\"droppedFiles$ | async\"\n [isRemovable]=\"true\"\n [maxLengthText]=\"15\"\n (removeFileEvent)=\"removeFile($event)\"></dr-chat-dropped-files>\n\n <div class=\"message-row__input-textarea-wrap\">\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 </div>\n <div class=\"message-row__btns\">\n <ng-content></ng-content>\n <input #fileInput type=\"file\" hidden multiple (change)=\"onFileSelected($event)\" />\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage($event)\" class=\"dr-icon-send-arrow-up send-button\"></i>\n\n <i *ngIf=\"waitForReply && !showDotFlashing\" class=\"dr-icon-stop abort-button\" (click)=\"abortMessage()\"></i>\n <dr-dot-flashing *ngIf=\"waitForReply && showDotFlashing\" class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n </div>\n <ng-content select=\"[dropItem]\"></ng-content>\n </div>\n</div>\n", styles: [":host::ng-deep{--disabled-bg: linear-gradient(270.95deg, rgba(130, 210, 240, .2) 10.98%, rgba(146, 146, 255, .2) 93.38%);display:flex;flex-direction:column;align-items:center;padding:0}:host::ng-deep .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}:host::ng-deep .message-row__input{flex-direction:column;background-color:#fff;position:relative;display:flex;align-items:center;flex-grow:1;padding:14px 8px 8px 15px;height:auto;overflow:visible;min-width:265px;border-radius:24px;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29;transition:.35s ease;will-change:box-shadow}:host::ng-deep .message-row__input .abort-button,:host::ng-deep .message-row__input .send-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;border-radius:100px;color:#fff;transition:.15s ease-in-out;background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box}:host::ng-deep .message-row__input .send-button,:host::ng-deep .message-row__input .abort-button{background:var(--disabled-bg);pointer-events:none}:host::ng-deep .message-row__input--focused{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;height:auto!important;background:#fff}:host::ng-deep .message-row__input--filled{box-shadow:8px 8px 16px #6969ff40,-4px -4px 8px #40b6e340,8px 8px 60px #00000040;background:#fff}:host::ng-deep .message-row__input--filled .send-button{background:linear-gradient(266deg,#6969ff 25.2%,#4eb7df 90.24%) border-box;pointer-events:all}:host::ng-deep .message-row__input .wait-reply-dot-flashing{display:flex;align-items:center;width:32px;height:32px}:host::ng-deep .message-row__input:before{content:\"\";position:absolute;inset:-3px;background:linear-gradient(266.3deg,#6969ff 25.2%,#4eb7df 90.24%);border-radius:25px;z-index:-1}:host::ng-deep .message-row__input textarea{color:#333;width:100%;outline:none;min-height:30px;flex-grow:1;resize:none;padding:4px 48px 4px 4px;margin:auto;border:none;border-radius:22.5px;font-family:Poppins,sans-serif;font-size:14px;line-height:22px}:host::ng-deep .message-row__input textarea:focus{border:none}:host::ng-deep .message-row__input textarea::placeholder{color:#9ea1aa}:host::ng-deep .message-row__btns{display:flex;justify-content:space-between;width:100%;align-items:center}:host::ng-deep .message-row__input-textarea-wrap{display:flex;width:100%;position:relative}:host::ng-deep dr-chat-dropped-files{margin-right:auto}:host::ng-deep dr-chat-dropped-files .dropped-files{padding:0}:host::ng-deep dr-chat-dropped-files .dropped-files__item{margin:0}:host::ng-deep .message-row_loading .send-button{background:var(--disabled-bg);pointer-events:none}:host::ng-deep .message-row_loading .dropped-files__item{opacity:.5;pointer-events:none}\n"] }]
249
252
  }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }]; }, { textAreaElementRef: [{
250
253
  type: ViewChild,
251
254
  args: ['textAreaElement']
@@ -287,4 +290,4 @@ export class DrChatFormDropdownComponent {
287
290
  type: HostListener,
288
291
  args: ['dragleave', ['$event']]
289
292
  }] }); })();
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY2hhdC1mb3JtLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItY2hhdC1mb3JtLWRyb3Bkb3duL2RyLWNoYXQtZm9ybS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtZm9ybS1kcm9wZG93bi9kci1jaGF0LWZvcm0tZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7SUNQL0IsaURBSzJDO0lBQXZDLG1PQUFtQixlQUFBLHlCQUFrQixDQUFBLElBQUM7O0lBQUMsaUJBQXdCOzs7SUFIL0Qsa0VBQStCLHFCQUFBLHFCQUFBOzs7O0lBd0IvQiw2QkFBaUc7SUFBeEUsd0tBQVMsZUFBQSwwQkFBbUIsQ0FBQSxJQUFDO0lBQTJDLGlCQUFJOzs7O0lBRXJHLDZCQUF1RztJQUF6QixvS0FBUyxlQUFBLHNCQUFjLENBQUEsSUFBQztJQUFDLGlCQUFJOzs7SUFDM0csc0NBQTJHOzs7OztBRGR2SCxNQUFNLE9BQU8sMkJBQTJCO0lBdUVwQyxZQUNjLEdBQXNCLEVBQ3RCLFlBQTBCO1FBRDFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdB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O2NBTnZDLFNBQVM7MkJBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNOytGQUdqQixrQkFBa0I7a0JBQS9DLFNBQVM7bUJBQUMsaUJBQWlCO1lBQ0osU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXO1lBT2IsZ0JBQWdCO2tCQUF4QixLQUFLO1lBT0csT0FBTztrQkFBZixLQUFLO1lBT0csa0JBQWtCO2tCQUExQixLQUFLO1lBT0csU0FBUztrQkFBakIsS0FBSztZQU9HLG1CQUFtQjtrQkFBM0IsS0FBSztZQU9HLFlBQVk7a0JBQXBCLEtBQUs7WUFPRyxlQUFlO2tCQUF2QixLQUFLO1lBTUksSUFBSTtrQkFBYixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLEtBQUs7a0JBQWQsTUFBTTtZQVFHLFdBQVc7a0JBQXBCLE1BQU07WUFFeUIsUUFBUTtrQkFBdkMsV0FBVzttQkFBQyxpQkFBaUI7WUFROUIsTUFBTTtrQkFETCxZQUFZO21CQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztZQXdCaEMsVUFBVTtrQkFEVCxZQUFZO21CQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQVVwQyxXQUFXO2tCQURWLFlBQVk7bUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJRklsZSB9IGZyb20gJy4uLy4uL21vZGVscy9jaGF0JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWNoYXQtZm9ybS1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWNoYXQtZm9ybS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItY2hhdC1mb3JtLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdEZvcm1Ecm9wZG93bkNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgndGV4dEFyZWFFbGVtZW50JykgdGV4dEFyZWFFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dDogRWxlbWVudFJlZjtcbiAgICBfdGV4dGFyZWFJbml0aWFsSGVpZ2h0ID0gdHJ1ZTtcbiAgICBpbnB1dEZvY3VzID0gZmFsc2U7XG4gICAgaW5wdXRIb3ZlciA9IGZhbHNlO1xuXG4gICAgZHJvcHBlZEZpbGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUZJbGVbXT4oW10pO1xuXG4gICAgQElucHV0KCkgaXNVcGxvYWRpbmdGaWxlcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUHJlZGVmaW5lZCBtZXNzYWdlIHRleHRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgQElucHV0KCkgbWVzc2FnZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBwbGFjZWhvbGRlciB0ZXh0XG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG1lc3NhZ2VQbGFjZWhvbGRlciA9ICdUeXBlIGEgbWVzc2FnZSc7XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHNlbmQgYnV0dG9uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBkcm9wRmlsZXMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZpbGUgZHJvcCBwbGFjZWhvbGRlciB0ZXh0XG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRyb3BGaWxlUGxhY2Vob2xkZXIgPSAnRHJvcCBmaWxlIHRvIHNlbmQnO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIHRvIGNoZWNrIGlzIHNlbmQgbWVzc2FnZSBmdW5jdGlvbiBhdmFpbGFibGVcbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHdhaXRGb3JSZXBseSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIHRvIGNoZWNrIGlzIHNlbmQgbWVzc2FnZSBmdW5jdGlvbiBhdmFpbGFibGVcbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNob3dEb3RGbGFzaGluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHsgbWVzc2FnZTogc3RyaW5nLCBmaWxlczogSUZpbGVbXSB9Pn1cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgc2VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtZXNzYWdlOiBzdHJpbmc7IGZpbGVzOiBJRklsZVtdIH0+KCk7XG4gICAgQE91dHB1dCgpIHVwbG9hZEZpbGVzID0gbmV3IEV2ZW50RW1pdHRlcjxJRklsZVtdPigpO1xuICAgIEBPdXRwdXQoKSBhYm9ydCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gbWVzc2FnZSBpbnB1dCB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHN0cmluZz59XG4gICAgICovXG5cbiAgICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmlsZS1vdmVyJykgZmlsZU92ZXIgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICkge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3BGaWxlcykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXM7XG4gICAgICAgICAgICBpZiAoZmlsZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVGaWxlcyhmaWxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKGZpbGU6IElGSWxlKSB7XG4gICAgICAgIGNvbnN0IGRyb3BwZWRGaWxlcyA9IHRoaXMuZHJvcHBlZEZpbGVzJC52YWx1ZTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBkcm9wcGVkRmlsZXMuaW5kZXhPZihmaWxlKTtcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGRyb3BwZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMkLm5leHQoZHJvcHBlZEZpbGVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmRyb3BGaWxlcykge1xuICAgICAgICAgICAgdGhpcy5maWxlT3ZlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICAgIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmRyb3BGaWxlcykge1xuICAgICAgICAgICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VuZE1lc3NhZ2UoJGV2ZW50OiBFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKCEkZXZlbnQgfHwgISgkZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICRldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAodGhpcy53YWl0Rm9yUmVwbHkgfHwgdGhpcy5pc1VwbG9hZGluZ0ZpbGVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRyb3BwZWRGaWxlcyQudmFsdWUubGVuZ3RoIHx8IFN0cmluZyh0aGlzLm1lc3NhZ2UpLnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0YXJlYUluaXRpYWxIZWlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZC5lbWl0KHsgbWVzc2FnZTogdGhpcy5tZXNzYWdlLCBmaWxlczogdGhpcy5kcm9wcGVkRmlsZXMkLnZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcHBlZEZpbGVzJC5uZXh0KFtdKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFib3J0TWVzc2FnZSgpIHtcbiAgICAgICAgdGhpcy5hYm9ydC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldFRleHRBcmVhSGVpZ2h0KHRleHRBcmVhRWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5fdGV4dGFyZWFJbml0aWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICB0ZXh0QXJlYUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJzMwcHgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGV4dEFyZWFFbGVtZW50LnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICAgICAgICAgIHRleHRBcmVhRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0QXJlYUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0ZXh0QXJlYUVsZW1lbnQuc3R5bGUuaGVpZ2h0fWA7XG4gICAgfVxuXG4gICAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBpbnB1dC5maWxlcztcbiAgICAgICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zYXZlRmlsZXMoQXJyYXkuZnJvbShmaWxlcykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNhdmVGaWxlcyhmaWxlczogQXJyYXk8RmlsZT4pIHtcbiAgICAgICAgY29uc3QgdXBsb2FkZWRGaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICAgIGxldCByZXMgPSBmaWxlIGFzIElGSWxlO1xuICAgICAgICAgICAgcmVzLmRhdGEgPSAoYXdhaXQgdGhpcy5iYXNlNjRDb252ZXJ0KHJlcykpIGFzIHN0cmluZztcbiAgICAgICAgICAgIHRoaXMuZHJvcHBlZEZpbGVzJC5uZXh0KFsuLi50aGlzLmRyb3BwZWRGaWxlcyQudmFsdWUsIHJlc10pO1xuICAgICAgICAgICAgdXBsb2FkZWRGaWxlcy5wdXNoKHJlcyk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwbG9hZEZpbGVzLmVtaXQodXBsb2FkZWRGaWxlcy5tYXAoKGl0ZW0pID0+ICh7IGRhdGE6IGl0ZW0uZGF0YSwgbmFtZTogaXRlbS5uYW1lIH0pKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiYXNlNjRDb252ZXJ0KGZpbGU6IGFueSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZXNzYWdlLXJvd1wiIFtuZ0NsYXNzXT1cInsgJ21lc3NhZ2Utcm93X2xvYWRpbmcnOiBpc1VwbG9hZGluZ0ZpbGVzIH1cIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWVzc2FnZS1yb3dfX2lucHV0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ21lc3NhZ2Utcm93X19pbnB1dC0tZm9jdXNlZCc6IGlucHV0Rm9jdXMsXG4gICAgICAgICAgICAnbWVzc2FnZS1yb3dfX2lucHV0LS1maWxsZWQnOiAhIW1lc3NhZ2U/LnRyaW0oKT8ubGVuZ3RoIHx8ICEhKGRyb3BwZWRGaWxlcyQgfCBhc3luYykubGVuZ3RoLFxuICAgICAgICB9XCI+XG4gICAgICAgIDxkci1jaGF0LWRyb3BwZWQtZmlsZXNcbiAgICAgICAgICAgICpuZ0lmPVwiKGRyb3BwZWRGaWxlcyQgfCBhc3luYykubGVuZ3RoXCJcbiAgICAgICAgICAgIFtmaWxlc109XCJkcm9wcGVkRmlsZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2lzUmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgW21heExlbmd0aFRleHRdPVwiMTVcIlxuICAgICAgICAgICAgKHJlbW92ZUZpbGVFdmVudCk9XCJyZW1vdmVGaWxlKCRldmVudClcIj48L2RyLWNoYXQtZHJvcHBlZC1maWxlcz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1yb3dfX2lucHV0LXRleHRhcmVhLXdyYXBcIj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cyA9IHRydWVcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImlucHV0Rm9jdXMgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaW5wdXRIb3ZlciA9IHRydWVcIlxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImlucHV0SG92ZXIgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbcm93c109XCIxXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVdPVwiZ2V0VGV4dEFyZWFIZWlnaHQodGV4dEFyZWFFbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBmaWxlT3ZlciA/IGRyb3BGaWxlUGxhY2Vob2xkZXIgOiBtZXNzYWdlUGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlbmRNZXNzYWdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1yb3dfX2J0bnNcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgaGlkZGVuIG11bHRpcGxlIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICA8aSAqbmdJZj1cIiF3YWl0Rm9yUmVwbHlcIiAoY2xpY2spPVwic2VuZE1lc3NhZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZHItaWNvbi1zZW5kLWFycm93LXVwIHNlbmQtYnV0dG9uXCI+PC9pPlxuXG4gICAgICAgICAgICA8aSAqbmdJZj1cIndhaXRGb3JSZXBseSAmJiAhc2hvd0RvdEZsYXNoaW5nXCIgY2xhc3M9XCJkci1pY29uLXN0b3AgYWJvcnQtYnV0dG9uXCIgKGNsaWNrKT1cImFib3J0TWVzc2FnZSgpXCI+PC9pPlxuICAgICAgICAgICAgPGRyLWRvdC1mbGFzaGluZyAqbmdJZj1cIndhaXRGb3JSZXBseSAmJiBzaG93RG90Rmxhc2hpbmdcIiBjbGFzcz1cIndhaXQtcmVwbHktZG90LWZsYXNoaW5nXCI+PC9kci1kb3QtZmxhc2hpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY2hhdC1mb3JtLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItY2hhdC1mb3JtLWRyb3Bkb3duL2RyLWNoYXQtZm9ybS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtZm9ybS1kcm9wZG93bi9kci1jaGF0LWZvcm0tZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7SUNQL0IsaURBSzJDO0lBQXZDLG1PQUFtQixlQUFBLHlCQUFrQixDQUFBLElBQUM7O0lBQUMsaUJBQXdCOzs7SUFIL0Qsa0VBQStCLHFCQUFBLHFCQUFBOzs7O0lBd0IvQiw2QkFBaUc7SUFBeEUsd0tBQVMsZUFBQSwwQkFBbUIsQ0FBQSxJQUFDO0lBQTJDLGlCQUFJOzs7O0lBRXJHLDZCQUF1RztJQUF6QixvS0FBUyxlQUFBLHNCQUFjLENBQUEsSUFBQztJQUFDLGlCQUFJOzs7SUFDM0csc0NBQTJHOzs7Ozs7QURkdkgsTUFBTSxPQUFPLDJCQUEyQjtJQXVFcEMsWUFDYyxHQUFzQixFQUN0QixZQUEwQjtRQUQxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxH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QUFxQzs7O3VGRGR0RCwyQkFBMkI7Y0FOdkMsU0FBUzsyQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07K0ZBR2pCLGtCQUFrQjtrQkFBL0MsU0FBUzttQkFBQyxpQkFBaUI7WUFDSixTQUFTO2tCQUFoQyxTQUFTO21CQUFDLFdBQVc7WUFPYixnQkFBZ0I7a0JBQXhCLEtBQUs7WUFPRyxPQUFPO2tCQUFmLEtBQUs7WUFPRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFPRyxTQUFTO2tCQUFqQixLQUFLO1lBT0csbUJBQW1CO2tCQUEzQixLQUFLO1lBT0csWUFBWTtrQkFBcEIsS0FBSztZQU9HLGVBQWU7a0JBQXZCLEtBQUs7WUFNSSxJQUFJO2tCQUFiLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNO1lBQ0csS0FBSztrQkFBZCxNQUFNO1lBUUcsV0FBVztrQkFBcEIsTUFBTTtZQUV5QixRQUFRO2tCQUF2QyxXQUFXO21CQUFDLGlCQUFpQjtZQVE5QixNQUFNO2tCQURMLFlBQVk7bUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBd0JoQyxVQUFVO2tCQURULFlBQVk7bUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBVXBDLFdBQVc7a0JBRFYsWUFBWTttQkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IElGSWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoYXQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY2hhdC1mb3JtLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItY2hhdC1mb3JtLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1jaGF0LWZvcm0tZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJDaGF0Rm9ybURyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKCd0ZXh0QXJlYUVsZW1lbnQnKSB0ZXh0QXJlYUVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xuICAgIF90ZXh0YXJlYUluaXRpYWxIZWlnaHQgPSB0cnVlO1xuICAgIGlucHV0Rm9jdXMgPSBmYWxzZTtcbiAgICBpbnB1dEhvdmVyID0gZmFsc2U7XG5cbiAgICBkcm9wcGVkRmlsZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRklsZVtdPihbXSk7XG5cbiAgICBASW5wdXQoKSBpc1VwbG9hZGluZ0ZpbGVzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQcmVkZWZpbmVkIG1lc3NhZ2UgdGV4dFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBNZXNzYWdlIHBsYWNlaG9sZGVyIHRleHRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgQElucHV0KCkgbWVzc2FnZVBsYWNlaG9sZGVyID0gJ1R5cGUgYSBtZXNzYWdlJztcblxuICAgIC8qKlxuICAgICAqIFNob3cgc2VuZCBidXR0b25cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRyb3BGaWxlcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRmlsZSBkcm9wIHBsYWNlaG9sZGVyIHRleHRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcEZpbGVQbGFjZWhvbGRlciA9ICdEcm9wIGZpbGUgdG8gc2VuZCc7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgdG8gY2hlY2sgaXMgc2VuZCBtZXNzYWdlIGZ1bmN0aW9uIGF2YWlsYWJsZVxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgQElucHV0KCkgd2FpdEZvclJlcGx5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgdG8gY2hlY2sgaXMgc2VuZCBtZXNzYWdlIGZ1bmN0aW9uIGF2YWlsYWJsZVxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgQElucHV0KCkgc2hvd0RvdEZsYXNoaW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8eyBtZXNzYWdlOiBzdHJpbmcsIGZpbGVzOiBJRmlsZVtdIH0+fVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBzZW5kID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1lc3NhZ2U6IHN0cmluZzsgZmlsZXM6IElGSWxlW10gfT4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkRmlsZXMgPSBuZXcgRXZlbnRFbWl0dGVyPElGSWxlW10+KCk7XG4gICAgQE91dHB1dCgpIGFib3J0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBtZXNzYWdlIGlucHV0IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8c3RyaW5nPn1cbiAgICAgKi9cblxuICAgIEBPdXRwdXQoKSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxlLW92ZXInKSBmaWxlT3ZlciA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICAgICAgICAgIGlmIChmaWxlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZUZpbGVzKGZpbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUZpbGUoZmlsZTogSUZJbGUpIHtcbiAgICAgICAgY29uc3QgZHJvcHBlZEZpbGVzID0gdGhpcy5kcm9wcGVkRmlsZXMkLnZhbHVlO1xuICAgICAgICBjb25zdCBpbmRleCA9IGRyb3BwZWRGaWxlcy5pbmRleE9mKGZpbGUpO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZHJvcHBlZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRGaWxlcyQubmV4dChkcm9wcGVkRmlsZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICAgIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZSgkZXZlbnQ6IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoISRldmVudCB8fCAhKCRldmVudCBhcyBLZXlib2FyZEV2ZW50KS5zaGlmdEtleSkge1xuICAgICAgICAgICAgJGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGlmICh0aGlzLndhaXRGb3JSZXBseSB8fCB0aGlzLmlzVXBsb2FkaW5nRmlsZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZHJvcHBlZEZpbGVzJC52YWx1ZS5sZW5ndGggfHwgU3RyaW5nKHRoaXMubWVzc2FnZSkudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kLmVtaXQoeyBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsIGZpbGVzOiB0aGlzLmRyb3BwZWRGaWxlcyQudmFsdWUgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMkLm5leHQoW10pO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJvcnRNZXNzYWdlKCkge1xuICAgICAgICB0aGlzLmFib3J0LmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGV4dGFyZWFJbml0aWFsSGVpZ2h0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0VGV4dEFyZWFIZWlnaHQodGV4dEFyZWFFbGVtZW50OiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLl90ZXh0YXJlYUluaXRpYWxIZWlnaHQpIHtcbiAgICAgICAgICAgIHRleHRBcmVhRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMzBweCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0ZXh0QXJlYUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgdGV4dEFyZWFFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRBcmVhRWxlbWVudC5zY3JvbGxIZWlnaHQgKyAncHgnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke3RleHRBcmVhRWxlbWVudC5zdHlsZS5oZWlnaHR9YDtcbiAgICB9XG5cbiAgICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xuICAgICAgICBjb25zdCBmaWxlcyA9IGlucHV0LmZpbGVzO1xuICAgICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVGaWxlcyhBcnJheS5mcm9tKGZpbGVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgc2F2ZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPikge1xuICAgICAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAgICAgbGV0IHJlcyA9IGZpbGUgYXMgSUZJbGU7XG4gICAgICAgICAgICByZXMuZGF0YSA9IChhd2FpdCB0aGlzLmJhc2U2NENvbnZlcnQocmVzKSkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMkLm5leHQoWy4uLnRoaXMuZHJvcHBlZEZpbGVzJC52YWx1ZSwgcmVzXSk7XG4gICAgICAgICAgICB1cGxvYWRlZEZpbGVzLnB1c2gocmVzKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBsb2FkRmlsZXMuZW1pdCh1cGxvYWRlZEZpbGVzLm1hcCgoaXRlbSkgPT4gKHsgZGF0YTogaXRlbS5kYXRhLCBuYW1lOiBpdGVtLm5hbWUgfSkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJhc2U2NENvbnZlcnQoZmlsZTogYW55KSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1lc3NhZ2Utcm93XCIgW25nQ2xhc3NdPVwieyAnbWVzc2FnZS1yb3dfbG9hZGluZyc6IGlzVXBsb2FkaW5nRmlsZXMgfVwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtZXNzYWdlLXJvd19faW5wdXRcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbWVzc2FnZS1yb3dfX2lucHV0LS1mb2N1c2VkJzogaW5wdXRGb2N1cyxcbiAgICAgICAgICAgICdtZXNzYWdlLXJvd19faW5wdXQtLWZpbGxlZCc6ICEhbWVzc2FnZT8udHJpbSgpPy5sZW5ndGggfHwgISEoZHJvcHBlZEZpbGVzJCB8IGFzeW5jKS5sZW5ndGgsXG4gICAgICAgIH1cIj5cbiAgICAgICAgPGRyLWNoYXQtZHJvcHBlZC1maWxlc1xuICAgICAgICAgICAgKm5nSWY9XCIoZHJvcHBlZEZpbGVzJCB8IGFzeW5jKS5sZW5ndGhcIlxuICAgICAgICAgICAgW2ZpbGVzXT1cImRyb3BwZWRGaWxlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbaXNSZW1vdmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbWF4TGVuZ3RoVGV4dF09XCIxNVwiXG4gICAgICAgICAgICAocmVtb3ZlRmlsZUV2ZW50KT1cInJlbW92ZUZpbGUoJGV2ZW50KVwiPjwvZHItY2hhdC1kcm9wcGVkLWZpbGVzPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLXJvd19faW5wdXQtdGV4dGFyZWEtd3JhcFwiPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgI3RleHRBcmVhRWxlbWVudFxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwiaW5wdXRGb2N1cyA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJpbnB1dEhvdmVyID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaW5wdXRIb3ZlciA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIFtyb3dzXT1cIjFcIlxuICAgICAgICAgICAgICAgIFtzdHlsZV09XCJnZXRUZXh0QXJlYUhlaWdodCh0ZXh0QXJlYUVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGZpbGVPdmVyID8gZHJvcEZpbGVQbGFjZWhvbGRlciA6IG1lc3NhZ2VQbGFjZWhvbGRlciB9fVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VuZE1lc3NhZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLXJvd19fYnRuc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBoaWRkZW4gbXVsdGlwbGUgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiIXdhaXRGb3JSZXBseVwiIChjbGljayk9XCJzZW5kTWVzc2FnZSgkZXZlbnQpXCIgY2xhc3M9XCJkci1pY29uLXNlbmQtYXJyb3ctdXAgc2VuZC1idXR0b25cIj48L2k+XG5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwid2FpdEZvclJlcGx5ICYmICFzaG93RG90Rmxhc2hpbmdcIiBjbGFzcz1cImRyLWljb24tc3RvcCBhYm9ydC1idXR0b25cIiAoY2xpY2spPVwiYWJvcnRNZXNzYWdlKClcIj48L2k+XG4gICAgICAgICAgICA8ZHItZG90LWZsYXNoaW5nICpuZ0lmPVwid2FpdEZvclJlcGx5ICYmIHNob3dEb3RGbGFzaGluZ1wiIGNsYXNzPVwid2FpdC1yZXBseS1kb3QtZmxhc2hpbmdcIj48L2RyLWRvdC1mbGFzaGluZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkcm9wSXRlbV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -59,7 +59,7 @@ function DrDynamicTagComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
59
59
  } if (rf & 2) {
60
60
  const item_r12 = ctx.item;
61
61
  const ctx_r5 = i0.ɵɵnextContext();
62
- i0.ɵɵclassProp("disabled", ctx_r5.lockedTags.includes((item_r12 == null ? null : item_r12.value) || item_r12));
62
+ i0.ɵɵclassProp("disabled", ctx_r5.isLockedTag((item_r12 == null ? null : item_r12.value) || item_r12));
63
63
  i0.ɵɵadvance(2);
64
64
  i0.ɵɵtextInterpolate((item_r12 == null ? null : item_r12.value) || item_r12);
65
65
  i0.ɵɵadvance(1);
@@ -92,7 +92,7 @@ export class DrDynamicTagComponent {
92
92
  id: this.tagConfig.id,
93
93
  name: this.tagConfig.name,
94
94
  value: $event,
95
- locked: this.lockedTags.includes($event),
95
+ locked: this.isLockedTag($event),
96
96
  };
97
97
  if (!_isNil(this.selectedTag?.locked)) {
98
98
  resultEvent.locked = this.selectedTag.locked;
@@ -104,7 +104,7 @@ export class DrDynamicTagComponent {
104
104
  this.tagChange.emit(resultEvent);
105
105
  }
106
106
  onOptionClick($event, tagValue) {
107
- if (this.lockedTags.includes(tagValue)) {
107
+ if (this.isLockedTag(tagValue)) {
108
108
  $event.stopImmediatePropagation();
109
109
  }
110
110
  }
@@ -141,20 +141,33 @@ export class DrDynamicTagComponent {
141
141
  }
142
142
  getParentValueKey() {
143
143
  return _map(this.connectedTags, (connectedTag) => {
144
- if (_isNumber(connectedTag.value)) {
145
- const momentData = moment.unix(connectedTag.value);
146
- const convertedParentKey = this.parentKeyFormatterFn
147
- ? this.parentKeyFormatterFn(momentData)
148
- : momentData.format(this.parentKeyFormat);
149
- if (momentData.isValid() && convertedParentKey) {
150
- return convertedParentKey;
151
- }
152
- }
153
- return connectedTag.value;
144
+ return this.getSingleParentKey(connectedTag.value);
154
145
  }).join('__');
155
146
  }
147
+ isLockedTag(tagValue) {
148
+ if (!!this.lockedMultipleTags?.length) {
149
+ return this.hasLockedTagInMultiple(tagValue);
150
+ }
151
+ return this.lockedTags.includes(tagValue);
152
+ }
153
+ getSingleParentKey(value) {
154
+ if (_isNumber(value)) {
155
+ const momentData = moment.unix(value);
156
+ const convertedParentKey = this.parentKeyFormatterFn
157
+ ? this.parentKeyFormatterFn(momentData)
158
+ : momentData.format(this.parentKeyFormat);
159
+ if (momentData.isValid() && convertedParentKey) {
160
+ return convertedParentKey;
161
+ }
162
+ }
163
+ return value;
164
+ }
165
+ hasLockedTagInMultiple(selectedTagValue) {
166
+ const parentValueKey = this.getParentValueKey();
167
+ return this.lockedMultipleTags?.some((tag) => tag.value === selectedTagValue && this.getSingleParentKey(tag.parent_tag_value) === parentValueKey);
168
+ }
156
169
  /** @nocollapse */ static { this.ɵfac = function DrDynamicTagComponent_Factory(t) { return new (t || DrDynamicTagComponent)(); }; }
157
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrDynamicTagComponent, selectors: [["dr-dynamic-tag"]], inputs: { values: "values", tagConfig: "tagConfig", selectedTag: "selectedTag", hideLabel: "hideLabel", lockedTags: "lockedTags", connectedTags: "connectedTags", isDynamicTagAddEnabled: "isDynamicTagAddEnabled", disabled: "disabled", fiscalYearStartsFrom: "fiscalYearStartsFrom", fiscalYearBack: "fiscalYearBack", parentKeyFormat: "parentKeyFormat", parentKeyFormatterFn: "parentKeyFormatterFn", label: "label", hideFavoriteStar: "hideFavoriteStar" }, outputs: { tagChange: "tagChange", tagAdd: "tagAdd" }, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 7, consts: [["class", "dynamic-tag__label", 4, "ngIf"], ["bindLabel", "value", "bindValue", "value", "dropdownClass", "dynamic-tag__select dr-tag__select", 3, "ngModel", "items", "disabled", "ngModelChange"], [4, "ngIf"], ["labelTemplate", ""], ["optionTemplate", ""], [1, "dynamic-tag__label"], ["optionHeaderTemplate", ""], ["bindValue", "value", 3, "values", "dynamicAddLabel", "dynamicValueAdded"], [1, "dynamic-tag__field--label"], [1, "dynamic-tag__field__text"], ["class", "dynamic-tag__field__icon dr-icon-star-fill", 4, "ngIf"], [1, "dynamic-tag__field__icon", "dr-icon-star-fill"], [1, "dynamic-tag__field--option", 3, "click"]], template: function DrDynamicTagComponent_Template(rf, ctx) { if (rf & 1) {
170
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrDynamicTagComponent, selectors: [["dr-dynamic-tag"]], inputs: { values: "values", tagConfig: "tagConfig", selectedTag: "selectedTag", hideLabel: "hideLabel", lockedTags: "lockedTags", connectedTags: "connectedTags", isDynamicTagAddEnabled: "isDynamicTagAddEnabled", disabled: "disabled", lockedMultipleTags: "lockedMultipleTags", tagsConfig: "tagsConfig", fiscalYearStartsFrom: "fiscalYearStartsFrom", fiscalYearBack: "fiscalYearBack", parentKeyFormat: "parentKeyFormat", parentKeyFormatterFn: "parentKeyFormatterFn", label: "label", hideFavoriteStar: "hideFavoriteStar" }, outputs: { tagChange: "tagChange", tagAdd: "tagAdd" }, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 7, consts: [["class", "dynamic-tag__label", 4, "ngIf"], ["bindLabel", "value", "bindValue", "value", "dropdownClass", "dynamic-tag__select dr-tag__select", 3, "ngModel", "items", "disabled", "ngModelChange"], [4, "ngIf"], ["labelTemplate", ""], ["optionTemplate", ""], [1, "dynamic-tag__label"], ["optionHeaderTemplate", ""], ["bindValue", "value", 3, "values", "dynamicAddLabel", "dynamicValueAdded"], [1, "dynamic-tag__field--label"], [1, "dynamic-tag__field__text"], ["class", "dynamic-tag__field__icon dr-icon-star-fill", 4, "ngIf"], [1, "dynamic-tag__field__icon", "dr-icon-star-fill"], [1, "dynamic-tag__field--option", 3, "click"]], template: function DrDynamicTagComponent_Template(rf, ctx) { if (rf & 1) {
158
171
  i0.ɵɵtemplate(0, DrDynamicTagComponent_p_0_Template, 2, 1, "p", 0);
159
172
  i0.ɵɵelementStart(1, "dr-select", 1);
160
173
  i0.ɵɵlistener("ngModelChange", function DrDynamicTagComponent_Template_dr_select_ngModelChange_1_listener($event) { return ctx.selectedDynamicTag = $event; })("ngModelChange", function DrDynamicTagComponent_Template_dr_select_ngModelChange_1_listener($event) { return ctx.onTagChanged($event); });
@@ -173,7 +186,7 @@ export class DrDynamicTagComponent {
173
186
  }
174
187
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrDynamicTagComponent, [{
175
188
  type: Component,
176
- args: [{ selector: 'dr-dynamic-tag', template: "<p *ngIf=\"!hideLabel\" class=\"dynamic-tag__label\">{{ label || tagConfig.name }}</p>\n<dr-select\n [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item\n bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite && !hideFavoriteStar\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div\n class=\"dynamic-tag__field--option\"\n [class.disabled]=\"lockedTags.includes(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n", styles: [":host{flex-grow:1}.dynamic-tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.dynamic-tag__field{cursor:pointer;height:24px}.dynamic-tag__field--option{cursor:pointer;height:24px;padding:8px 12px;width:100%;display:flex;justify-content:space-between;align-items:center}.dynamic-tag__field--option.disabled{opacity:.5;box-sizing:content-box}.dynamic-tag__field--label{cursor:pointer;height:24px;display:flex;align-items:center}.dynamic-tag__field--label>.dynamic-tag__field__icon{position:absolute;right:25px}.dynamic-tag__field--label>dynamic-tag__field__text{margin:0}.dr-icon-star-fill{color:#f0bc57}::ng-deep dr-select.dynamic-tag__locked>ng-select>.ng-select-container{opacity:.4}::ng-deep .ng-option:has(.dynamic-tag__field--option){padding:0!important}\n"] }]
189
+ args: [{ selector: 'dr-dynamic-tag', template: "<p *ngIf=\"!hideLabel\" class=\"dynamic-tag__label\">{{ label || tagConfig.name }}</p>\n<dr-select\n [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item\n bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite && !hideFavoriteStar\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div\n class=\"dynamic-tag__field--option\"\n [class.disabled]=\"isLockedTag(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n", styles: [":host{flex-grow:1}.dynamic-tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.dynamic-tag__field{cursor:pointer;height:24px}.dynamic-tag__field--option{cursor:pointer;height:24px;padding:8px 12px;width:100%;display:flex;justify-content:space-between;align-items:center}.dynamic-tag__field--option.disabled{opacity:.5;box-sizing:content-box}.dynamic-tag__field--label{cursor:pointer;height:24px;display:flex;align-items:center}.dynamic-tag__field--label>.dynamic-tag__field__icon{position:absolute;right:25px}.dynamic-tag__field--label>dynamic-tag__field__text{margin:0}.dr-icon-star-fill{color:#f0bc57}::ng-deep dr-select.dynamic-tag__locked>ng-select>.ng-select-container{opacity:.4}::ng-deep .ng-option:has(.dynamic-tag__field--option){padding:0!important}\n"] }]
177
190
  }], null, { values: [{
178
191
  type: Input
179
192
  }], tagConfig: [{
@@ -190,6 +203,10 @@ export class DrDynamicTagComponent {
190
203
  type: Input
191
204
  }], disabled: [{
192
205
  type: Input
206
+ }], lockedMultipleTags: [{
207
+ type: Input
208
+ }], tagsConfig: [{
209
+ type: Input
193
210
  }], fiscalYearStartsFrom: [{
194
211
  type: Input
195
212
  }], fiscalYearBack: [{
@@ -207,4 +224,4 @@ export class DrDynamicTagComponent {
207
224
  }], tagAdd: [{
208
225
  type: Output
209
226
  }] }); })();
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLFFBQVEsSUFBSSxTQUFTLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVuSCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7SUNINUIsNEJBQWlEO0lBQUEsWUFBNkI7SUFBQSxpQkFBSTs7O0lBQWpDLGVBQTZCO0lBQTdCLDJEQUE2Qjs7OztJQVd0RSw2Q0FJb0Q7SUFBaEQsdU5BQXFCLGVBQUEsZ0NBQXlCLENBQUEsSUFBQztJQUFDLGlCQUFxQjs7O0lBRnJFLDZDQUF3Qix3REFBQTs7O0lBSGhDLHlIQU1jOzs7SUFJTix3QkFBeUc7OztJQUY3Ryw4QkFBdUMsV0FBQTtJQUNDLFlBQXlCO0lBQUEsaUJBQUk7SUFDakUsaUZBQXlHO0lBQzdHLGlCQUFNOzs7O0lBRmtDLGVBQXlCO0lBQXpCLDRFQUF5QjtJQUN6RCxlQUE0QztJQUE1QyxtR0FBNEM7OztJQVNoRCx3QkFBb0Y7Ozs7SUFMeEYsK0JBR3lEO0lBQXJELHNPQUFTLGVBQUEscUZBQTBDLENBQUEsSUFBQztJQUNwRCw0QkFBb0M7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QUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsV0FBVztrQkFBMUIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxVQUFVO2tCQUF6QixLQUFLO1lBQ1UsYUFBYTtrQkFBNUIsS0FBSztZQUNVLHNCQUFzQjtrQkFBckMsS0FBSztZQUNVLFFBQVE7a0JBQXZCLEtBQUs7WUFFRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBRU8sZUFBZTtrQkFBM0IsS0FBSztZQUlHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLEtBQUs7a0JBQWIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUVJLFNBQVM7a0JBQWxCLE1BQU07WUFDRyxNQUFNO2tCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kLCBpc05pbCBhcyBfaXNOaWwsIGlzTnVtYmVyIGFzIF9pc051bWJlciwgaXNPYmplY3QgYXMgX2lzT2JqZWN0LCBtYXAgYXMgX21hcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJRHluYW1pY1RhZywgSVRhZywgSVRhZ0ZvclNlcnZlciwgVER5bmFtaWNUYWcsIFREeW5hbWljVGFnVmFsdWUgfSBmcm9tICcuLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZHluYW1pYy10YWcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1keW5hbWljLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZHluYW1pYy10YWcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJEeW5hbWljVGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVzOiBURHluYW1pY1RhZztcbiAgICBASW5wdXQoKSBwdWJsaWMgdGFnQ29uZmlnOiBJVGFnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFRhZzogSVRhZ0ZvclNlcnZlcjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGlkZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2tlZFRhZ3M6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGNvbm5lY3RlZFRhZ3M6IElUYWdGb3JTZXJ2ZXJbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNEeW5hbWljVGFnQWRkRW5hYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyU3RhcnRzRnJvbTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGZpc2NhbFllYXJCYWNrOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgc2V0IHBhcmVudEtleUZvcm1hdChmb3JtYXQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wYXJlbnRLZXlGb3JtYXQgPSBmb3JtYXQgfHwgdGhpcy5ERUZBVUxUX1BBUkVOVF9LRVlfRk9STUFUO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHBhcmVudEtleUZvcm1hdHRlckZuOiAobW9tZW50RGF0YSkgPT4gc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBoaWRlRmF2b3JpdGVTdGFyOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHRhZ0NoYW5nZTogRXZlbnRFbWl0dGVyPElUYWdGb3JTZXJ2ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPigpO1xuICAgIEBPdXRwdXQoKSB0YWdBZGQ6IEV2ZW50RW1pdHRlcjxURHluYW1pY1RhZ1ZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4oKTtcblxuICAgIHB1YmxpYyBzZWxlY3RlZER5bmFtaWNUYWc6IFREeW5hbWljVGFnVmFsdWU7XG4gICAgcHVibGljIGN1cnJlbnRWYWx1ZXM6IFREeW5hbWljVGFnVmFsdWVbXTtcbiAgICBwdWJsaWMgaXNMb2NrZWRUYWdTZWxlY3RlZDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9QQVJFTlRfS0VZX0ZPUk1BVCA9ICd5eXl5JztcbiAgICBwcml2YXRlIF9wYXJlbnRLZXlGb3JtYXQ6IHN0cmluZyA9IHRoaXMuREVGQVVMVF9QQVJFTlRfS0VZX0ZPUk1BVDtcblxuICAgIHB1YmxpYyBnZXQgcGFyZW50S2V5Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRLZXlGb3JtYXQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1ByaW1pdGl2ZURhdGFTb3VyY2UoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC52YWx1ZXModGhpcy52YWx1ZXMpIHx8IFtdO1xuICAgICAgICByZXR1cm4gIV9pc09iamVjdCh2YWx1ZXNbMF0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRHluYW1pY1RhZ1ZhbHVlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhZ0NoYW5nZWQoJGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQ6IElUYWdGb3JTZXJ2ZXIgPSB7XG4gICAgICAgICAgICBpZDogdGhpcy50YWdDb25maWcuaWQsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLnRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6ICRldmVudCxcbiAgICAgICAgICAgIGxvY2tlZDogdGhpcy5sb2NrZWRUYWdzLmluY2x1ZGVzKCRldmVudCksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCFfaXNOaWwodGhpcy5zZWxlY3RlZFRhZz8ubG9ja2VkKSkge1xuICAgICAgICAgICAgcmVzdWx0RXZlbnQubG9ja2VkID0gdGhpcy5zZWxlY3RlZFRhZy5sb2NrZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIV9pc05pbCh0aGlzLnNlbGVjdGVkVGFnPy5sYWJlbCkpIHtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxhYmVsID0gdGhpcy5zZWxlY3RlZFRhZy5sYWJlbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNMb2NrZWRUYWdTZWxlY3RlZCA9IHJlc3VsdEV2ZW50LmxvY2tlZDtcbiAgICAgICAgdGhpcy50YWdDaGFuZ2UuZW1pdChyZXN1bHRFdmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uT3B0aW9uQ2xpY2soJGV2ZW50OiBFdmVudCwgdGFnVmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sb2NrZWRUYWdzLmluY2x1ZGVzKHRhZ1ZhbHVlKSkge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRHluYW1pY1ZhbHVlQWRkKCRldmVudDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFZhbHVlS2V5ID0gdGhpcy5nZXRQYXJlbnRWYWx1ZUtleSgpO1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZXMgPSB0aGlzLnZhbHVlc1twYXJlbnRWYWx1ZUtleV0gfHwgW107XG5cbiAgICAgICAgaWYgKHRoaXMuaXNQcmltaXRpdmVEYXRhU291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlc1twYXJlbnRWYWx1ZUtleV0gPSBbJGV2ZW50LCAuLi5wYXJlbnRWYWx1ZXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldID0gW3sgdmFsdWU6ICRldmVudCB9LCAuLi5wYXJlbnRWYWx1ZXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZER5bmFtaWNUYWcgPSAkZXZlbnQ7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWVzID0gdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldO1xuICAgICAgICB0aGlzLm9uVGFnQ2hhbmdlZCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRhZ0FkZC5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEeW5hbWljVGFnVmFsdWVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZUtleSA9IHRoaXMuZ2V0UGFyZW50VmFsdWVLZXkoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWVzID0gdGhpcy52YWx1ZXM/LltwYXJlbnRWYWx1ZUtleV07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREeW5hbWljVGFnID0gdGhpcy5nZXRTZWxlY3RlZER5bmFtaWNUYWcodGhpcy5jdXJyZW50VmFsdWVzLCB0aGlzLnNlbGVjdGVkVGFnPy52YWx1ZSk7XG4gICAgICAgIHRoaXMub25UYWdDaGFuZ2VkKHRoaXMuc2VsZWN0ZWREeW5hbWljVGFnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRHluYW1pY1RhZyhjdXJyZW50VmFsdWVzOiBURHluYW1pY1RhZ1ZhbHVlW10sIHNlbGVjdGVkVmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGlmICghY3VycmVudFZhbHVlcz8ubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAoX2lzT2JqZWN0KGN1cnJlbnRWYWx1ZXNbMF0pKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUZyb21Db25maWcgPSBfZmluZChjdXJyZW50VmFsdWVzLCB7IHZhbHVlOiBzZWxlY3RlZFZhbHVlIH0pIGFzIElEeW5hbWljVGFnO1xuICAgICAgICAgICAgY29uc3QgZmF2b3JpdGVWYWx1ZSA9IF9maW5kKGN1cnJlbnRWYWx1ZXMsIHsgaXNfZmF2b3JpdGU6IHRydWUgfSkgYXMgSUR5bmFtaWNUYWc7XG4gICAgICAgICAgICByZXR1cm4gKHZhbHVlRnJvbUNvbmZpZyB8fCBmYXZvcml0ZVZhbHVlIHx8IGN1cnJlbnRWYWx1ZXNbMF0pLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWVGcm9tQ29uZmlnID0gX2ZpbmQoY3VycmVudFZhbHVlcywgKHZhbHVlKSA9PiB2YWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIHJldHVybiAodmFsdWVGcm9tQ29uZmlnIHx8IGN1cnJlbnRWYWx1ZXNbMF0pIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhcmVudFZhbHVlS2V5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBfbWFwKHRoaXMuY29ubmVjdGVkVGFncywgKGNvbm5lY3RlZFRhZykgPT4ge1xuICAgICAgICAgICAgaWYgKF9pc051bWJlcihjb25uZWN0ZWRUYWcudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9tZW50RGF0YSA9IG1vbWVudC51bml4KGNvbm5lY3RlZFRhZy52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb252ZXJ0ZWRQYXJlbnRLZXkgPSB0aGlzLnBhcmVudEtleUZvcm1hdHRlckZuXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5wYXJlbnRLZXlGb3JtYXR0ZXJGbihtb21lbnREYXRhKVxuICAgICAgICAgICAgICAgICAgICA6IG1vbWVudERhdGEuZm9ybWF0KHRoaXMucGFyZW50S2V5Rm9ybWF0KTtcblxuICAgICAgICAgICAgICAgIGlmIChtb21lbnREYXRhLmlzVmFsaWQoKSAmJiBjb252ZXJ0ZWRQYXJlbnRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZFBhcmVudEtleTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb25uZWN0ZWRUYWcudmFsdWU7XG4gICAgICAgIH0pLmpvaW4oJ19fJyk7XG4gICAgfVxufVxuIiwiPHAgKm5nSWY9XCIhaGlkZUxhYmVsXCIgY2xhc3M9XCJkeW5hbWljLXRhZ19fbGFiZWxcIj57eyBsYWJlbCB8fCB0YWdDb25maWcubmFtZSB9fTwvcD5cbjxkci1zZWxlY3RcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRHluYW1pY1RhZ1wiXG4gICAgW2NsYXNzLmR5bmFtaWMtdGFnX19sb2NrZWRdPVwiaXNMb2NrZWRUYWdTZWxlY3RlZFwiXG4gICAgYmluZExhYmVsPVwidmFsdWVcIlxuICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICBbaXRlbXNdPVwiY3VycmVudFZhbHVlc1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBkcm9wZG93bkNsYXNzPVwiZHluYW1pYy10YWdfX3NlbGVjdCBkci10YWdfX3NlbGVjdFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UYWdDaGFuZ2VkKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI29wdGlvbkhlYWRlclRlbXBsYXRlICpuZ0lmPVwiaXNEeW5hbWljVGFnQWRkRW5hYmxlZFwiPlxuICAgICAgICA8ZHItc2VsZWN0LWFkZC1pdGVtXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbdmFsdWVzXT1cImN1cnJlbnRWYWx1ZXNcIlxuICAgICAgICAgICAgW2R5bmFtaWNBZGRMYWJlbF09XCInIEFkZCBuZXcgJyArIHRhZ0NvbmZpZy5uYW1lXCJcbiAgICAgICAgICAgIChkeW5hbWljVmFsdWVBZGRlZCk9XCJvbkR5bmFtaWNWYWx1ZUFkZCgkZXZlbnQpXCI+PC9kci1zZWxlY3QtYWRkLWl0ZW0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLXRhZ19fZmllbGQtLWxhYmVsXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImR5bmFtaWMtdGFnX19maWVsZF9fdGV4dFwiPnt7IGl0ZW0/LnZhbHVlIHx8IGl0ZW0gfX08L3A+XG4gICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0/LmlzX2Zhdm9yaXRlICYmICFoaWRlRmF2b3JpdGVTdGFyXCIgY2xhc3M9XCJkeW5hbWljLXRhZ19fZmllbGRfX2ljb24gZHItaWNvbi1zdGFyLWZpbGxcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNvcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkeW5hbWljLXRhZ19fZmllbGQtLW9wdGlvblwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibG9ja2VkVGFncy5pbmNsdWRlcyhpdGVtPy52YWx1ZSB8fCBpdGVtKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25PcHRpb25DbGljaygkZXZlbnQsIGl0ZW0/LnZhbHVlIHx8IGl0ZW0pXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImR5bmFtaWMtdGFnX19maWVsZF9fdGV4dFwiPnt7IGl0ZW0/LnZhbHVlIHx8IGl0ZW0gfX08L3A+XG4gICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0/LmlzX2Zhdm9yaXRlXCIgY2xhc3M9XCJkeW5hbWljLXRhZ19fZmllbGRfX2ljb24gZHItaWNvbi1zdGFyLWZpbGxcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2RyLXNlbGVjdD5cbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLFFBQVEsSUFBSSxTQUFTLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVuSCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7SUNINUIsNEJBQWlEO0lBQUEsWUFBNkI7SUFBQSxpQkFBSTs7O0lBQWpDLGVBQTZCO0lBQTdCLDJEQUE2Qjs7OztJQVd0RSw2Q0FJb0Q7SUFBaEQsdU5BQXFCLGVBQUEsZ0NBQXlCLENBQUEsSUFBQztJQUFDLGlCQUFxQjs7O0lBRnJFLDZDQUF3Qix3REFBQTs7O0lBSGhDLHlIQU1jOzs7SUFJTix3QkFBeUc7OztJQUY3Ryw4QkFBdUMsV0FBQTtJQUNDLFlBQXlCO0lBQUEsaUJBQUk7SUFDakUsaUZBQXlHO0lBQzdHLGlCQUFNOzs7O0lBRmtDLGVBQXlCO0lBQXpCLDRFQUF5QjtJQUN6RCxlQUE0QztJQUE1QyxtR0FBNEM7OztJQVNoRCx3QkFBb0Y7Ozs7SUFMeEYsK0JBR3lEO0lBQXJELHNPQUFTLGVBQUEscUZBQTBDLENBQUEsSUFBQztJQUNwRCw0QkFBb0M7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bnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kLCBpc05pbCBhcyBfaXNOaWwsIGlzTnVtYmVyIGFzIF9pc051bWJlciwgaXNPYmplY3QgYXMgX2lzT2JqZWN0LCBtYXAgYXMgX21hcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJRHluYW1pY1RhZywgSVRhZywgSVRhZ0ZvclNlcnZlciwgVER5bmFtaWNUYWcsIFREeW5hbWljVGFnVmFsdWUgfSBmcm9tICcuLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBJTXVsdGlwbGVMb2NrZWRUYWcgfSBmcm9tICcuLi9kci10YWdzL2RyLXRhZy50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZHluYW1pYy10YWcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1keW5hbWljLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZHluYW1pYy10YWcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJEeW5hbWljVGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVzOiBURHluYW1pY1RhZztcbiAgICBASW5wdXQoKSBwdWJsaWMgdGFnQ29uZmlnOiBJVGFnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFRhZzogSVRhZ0ZvclNlcnZlcjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGlkZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2tlZFRhZ3M6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGNvbm5lY3RlZFRhZ3M6IElUYWdGb3JTZXJ2ZXJbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNEeW5hbWljVGFnQWRkRW5hYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgbG9ja2VkTXVsdGlwbGVUYWdzOiBJTXVsdGlwbGVMb2NrZWRUYWdbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgdGFnc0NvbmZpZzogSVRhZ1tdO1xuXG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb206IG51bWJlcjtcbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyQmFjazogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHNldCBwYXJlbnRLZXlGb3JtYXQoZm9ybWF0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50S2V5Rm9ybWF0ID0gZm9ybWF0IHx8IHRoaXMuREVGQVVMVF9QQVJFTlRfS0VZX0ZPUk1BVDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBwYXJlbnRLZXlGb3JtYXR0ZXJGbjogKG1vbWVudERhdGEpID0+IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaGlkZUZhdm9yaXRlU3RhcjogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB0YWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4oKTtcbiAgICBAT3V0cHV0KCkgdGFnQWRkOiBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFREeW5hbWljVGFnVmFsdWU+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWREeW5hbWljVGFnOiBURHluYW1pY1RhZ1ZhbHVlO1xuICAgIHB1YmxpYyBjdXJyZW50VmFsdWVzOiBURHluYW1pY1RhZ1ZhbHVlW107XG4gICAgcHVibGljIGlzTG9ja2VkVGFnU2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfUEFSRU5UX0tFWV9GT1JNQVQgPSAneXl5eSc7XG4gICAgcHJpdmF0ZSBfcGFyZW50S2V5Rm9ybWF0OiBzdHJpbmcgPSB0aGlzLkRFRkFVTFRfUEFSRU5UX0tFWV9GT1JNQVQ7XG5cbiAgICBwdWJsaWMgZ2V0IHBhcmVudEtleUZvcm1hdCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50S2V5Rm9ybWF0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNQcmltaXRpdmVEYXRhU291cmNlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBPYmplY3QudmFsdWVzKHRoaXMudmFsdWVzKSB8fCBbXTtcbiAgICAgICAgcmV0dXJuICFfaXNPYmplY3QodmFsdWVzWzBdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUR5bmFtaWNUYWdWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWdDaGFuZ2VkKCRldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc3VsdEV2ZW50OiBJVGFnRm9yU2VydmVyID0ge1xuICAgICAgICAgICAgaWQ6IHRoaXMudGFnQ29uZmlnLmlkLFxuICAgICAgICAgICAgbmFtZTogdGhpcy50YWdDb25maWcubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiAkZXZlbnQsXG4gICAgICAgICAgICBsb2NrZWQ6IHRoaXMuaXNMb2NrZWRUYWcoJGV2ZW50KSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIV9pc05pbCh0aGlzLnNlbGVjdGVkVGFnPy5sb2NrZWQpKSB7XG4gICAgICAgICAgICByZXN1bHRFdmVudC5sb2NrZWQgPSB0aGlzLnNlbGVjdGVkVGFnLmxvY2tlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghX2lzTmlsKHRoaXMuc2VsZWN0ZWRUYWc/LmxhYmVsKSkge1xuICAgICAgICAgICAgcmVzdWx0RXZlbnQubGFiZWwgPSB0aGlzLnNlbGVjdGVkVGFnLmxhYmVsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0xvY2tlZFRhZ1NlbGVjdGVkID0gcmVzdWx0RXZlbnQubG9ja2VkO1xuICAgICAgICB0aGlzLnRhZ0NoYW5nZS5lbWl0KHJlc3VsdEV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25PcHRpb25DbGljaygkZXZlbnQ6IEV2ZW50LCB0YWdWYWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTG9ja2VkVGFnKHRhZ1ZhbHVlKSkge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRHluYW1pY1ZhbHVlQWRkKCRldmVudDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFZhbHVlS2V5ID0gdGhpcy5nZXRQYXJlbnRWYWx1ZUtleSgpO1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZXMgPSB0aGlzLnZhbHVlc1twYXJlbnRWYWx1ZUtleV0gfHwgW107XG5cbiAgICAgICAgaWYgKHRoaXMuaXNQcmltaXRpdmVEYXRhU291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlc1twYXJlbnRWYWx1ZUtleV0gPSBbJGV2ZW50LCAuLi5wYXJlbnRWYWx1ZXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldID0gW3sgdmFsdWU6ICRldmVudCB9LCAuLi5wYXJlbnRWYWx1ZXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZER5bmFtaWNUYWcgPSAkZXZlbnQ7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWVzID0gdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldO1xuICAgICAgICB0aGlzLm9uVGFnQ2hhbmdlZCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRhZ0FkZC5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEeW5hbWljVGFnVmFsdWVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZUtleSA9IHRoaXMuZ2V0UGFyZW50VmFsdWVLZXkoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWVzID0gdGhpcy52YWx1ZXM/LltwYXJlbnRWYWx1ZUtleV07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREeW5hbWljVGFnID0gdGhpcy5nZXRTZWxlY3RlZER5bmFtaWNUYWcodGhpcy5jdXJyZW50VmFsdWVzLCB0aGlzLnNlbGVjdGVkVGFnPy52YWx1ZSk7XG4gICAgICAgIHRoaXMub25UYWdDaGFuZ2VkKHRoaXMuc2VsZWN0ZWREeW5hbWljVGFnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRHluYW1pY1RhZyhjdXJyZW50VmFsdWVzOiBURHluYW1pY1RhZ1ZhbHVlW10sIHNlbGVjdGVkVmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGlmICghY3VycmVudFZhbHVlcz8ubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAoX2lzT2JqZWN0KGN1cnJlbnRWYWx1ZXNbMF0pKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUZyb21Db25maWcgPSBfZmluZChjdXJyZW50VmFsdWVzLCB7IHZhbHVlOiBzZWxlY3RlZFZhbHVlIH0pIGFzIElEeW5hbWljVGFnO1xuICAgICAgICAgICAgY29uc3QgZmF2b3JpdGVWYWx1ZSA9IF9maW5kKGN1cnJlbnRWYWx1ZXMsIHsgaXNfZmF2b3JpdGU6IHRydWUgfSkgYXMgSUR5bmFtaWNUYWc7XG4gICAgICAgICAgICByZXR1cm4gKHZhbHVlRnJvbUNvbmZpZyB8fCBmYXZvcml0ZVZhbHVlIHx8IGN1cnJlbnRWYWx1ZXNbMF0pLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWVGcm9tQ29uZmlnID0gX2ZpbmQoY3VycmVudFZhbHVlcywgKHZhbHVlKSA9PiB2YWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIHJldHVybiAodmFsdWVGcm9tQ29uZmlnIHx8IGN1cnJlbnRWYWx1ZXNbMF0pIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhcmVudFZhbHVlS2V5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBfbWFwKHRoaXMuY29ubmVjdGVkVGFncywgKGNvbm5lY3RlZFRhZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2luZ2xlUGFyZW50S2V5KGNvbm5lY3RlZFRhZy52YWx1ZSk7XG4gICAgICAgIH0pLmpvaW4oJ19fJyk7XG4gICAgfVxuXG4gICAgaXNMb2NrZWRUYWcodGFnVmFsdWU6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoISF0aGlzLmxvY2tlZE11bHRpcGxlVGFncz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNMb2NrZWRUYWdJbk11bHRpcGxlKHRhZ1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2NrZWRUYWdzLmluY2x1ZGVzKHRhZ1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNpbmdsZVBhcmVudEtleSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIGlmIChfaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBtb21lbnREYXRhID0gbW9tZW50LnVuaXgodmFsdWUpO1xuXG4gICAgICAgICAgICBjb25zdCBjb252ZXJ0ZWRQYXJlbnRLZXkgPSB0aGlzLnBhcmVudEtleUZvcm1hdHRlckZuXG4gICAgICAgICAgICAgICAgPyB0aGlzLnBhcmVudEtleUZvcm1hdHRlckZuKG1vbWVudERhdGEpXG4gICAgICAgICAgICAgICAgOiBtb21lbnREYXRhLmZvcm1hdCh0aGlzLnBhcmVudEtleUZvcm1hdCk7XG5cbiAgICAgICAgICAgIGlmIChtb21lbnREYXRhLmlzVmFsaWQoKSAmJiBjb252ZXJ0ZWRQYXJlbnRLZXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVkUGFyZW50S2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzTG9ja2VkVGFnSW5NdWx0aXBsZShzZWxlY3RlZFRhZ1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWVLZXkgPSB0aGlzLmdldFBhcmVudFZhbHVlS2V5KCk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2tlZE11bHRpcGxlVGFncz8uc29tZShcbiAgICAgICAgICAgICh0YWcpID0+IHRhZy52YWx1ZSA9PT0gc2VsZWN0ZWRUYWdWYWx1ZSAmJiB0aGlzLmdldFNpbmdsZVBhcmVudEtleSh0YWcucGFyZW50X3RhZ192YWx1ZSkgPT09IHBhcmVudFZhbHVlS2V5LFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxwICpuZ0lmPVwiIWhpZGVMYWJlbFwiIGNsYXNzPVwiZHluYW1pYy10YWdfX2xhYmVsXCI+e3sgbGFiZWwgfHwgdGFnQ29uZmlnLm5hbWUgfX08L3A+XG48ZHItc2VsZWN0XG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZER5bmFtaWNUYWdcIlxuICAgIFtjbGFzcy5keW5hbWljLXRhZ19fbG9ja2VkXT1cImlzTG9ja2VkVGFnU2VsZWN0ZWRcIlxuICAgIGJpbmRMYWJlbD1cInZhbHVlXCJcbiAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgW2l0ZW1zXT1cImN1cnJlbnRWYWx1ZXNcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgZHJvcGRvd25DbGFzcz1cImR5bmFtaWMtdGFnX19zZWxlY3QgZHItdGFnX19zZWxlY3RcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGFnQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNvcHRpb25IZWFkZXJUZW1wbGF0ZSAqbmdJZj1cImlzRHluYW1pY1RhZ0FkZEVuYWJsZWRcIj5cbiAgICAgICAgPGRyLXNlbGVjdC1hZGQtaXRlbVxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgW3ZhbHVlc109XCJjdXJyZW50VmFsdWVzXCJcbiAgICAgICAgICAgIFtkeW5hbWljQWRkTGFiZWxdPVwiJyBBZGQgbmV3ICcgKyB0YWdDb25maWcubmFtZVwiXG4gICAgICAgICAgICAoZHluYW1pY1ZhbHVlQWRkZWQpPVwib25EeW5hbWljVmFsdWVBZGQoJGV2ZW50KVwiPjwvZHItc2VsZWN0LWFkZC1pdGVtPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy10YWdfX2ZpZWxkLS1sYWJlbFwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJkeW5hbWljLXRhZ19fZmllbGRfX3RleHRcIj57eyBpdGVtPy52YWx1ZSB8fCBpdGVtIH19PC9wPlxuICAgICAgICAgICAgPGkgKm5nSWY9XCJpdGVtPy5pc19mYXZvcml0ZSAmJiAhaGlkZUZhdm9yaXRlU3RhclwiIGNsYXNzPVwiZHluYW1pYy10YWdfX2ZpZWxkX19pY29uIGRyLWljb24tc3Rhci1maWxsXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjb3B0aW9uVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZHluYW1pYy10YWdfX2ZpZWxkLS1vcHRpb25cIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzTG9ja2VkVGFnKGl0ZW0/LnZhbHVlIHx8IGl0ZW0pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKCRldmVudCwgaXRlbT8udmFsdWUgfHwgaXRlbSlcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZHluYW1pYy10YWdfX2ZpZWxkX190ZXh0XCI+e3sgaXRlbT8udmFsdWUgfHwgaXRlbSB9fTwvcD5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbT8uaXNfZmF2b3JpdGVcIiBjbGFzcz1cImR5bmFtaWMtdGFnX19maWVsZF9faWNvbiBkci1pY29uLXN0YXItZmlsbFwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZHItc2VsZWN0PlxuIl19