@datarailsshared/datarailsshared 1.6.89 → 1.6.93

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.
@@ -20,6 +20,7 @@ function DrInputComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
20
20
  const ctx_r0 = i0.ɵɵnextContext();
21
21
  i0.ɵɵadvance(1);
22
22
  i0.ɵɵproperty("ngModel", ctx_r0.value)("disabled", ctx_r0._disabled)("readonly", ctx_r0.readonly)("type", ctx_r0.type)("placeholder", ctx_r0.placeholder)("name", ctx_r0.name)("min", ctx_r0.min)("max", ctx_r0.max)("minlength", ctx_r0.minlength)("maxlength", ctx_r0.maxlength)("step", ctx_r0.step);
23
+ i0.ɵɵattribute("id", ctx_r0.id);
23
24
  } }
24
25
  function DrInputComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
25
26
  const _r15 = i0.ɵɵgetCurrentView();
@@ -29,6 +30,7 @@ function DrInputComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
29
30
  } if (rf & 2) {
30
31
  const ctx_r2 = i0.ɵɵnextContext();
31
32
  i0.ɵɵproperty("ngModel", ctx_r2.value)("disabled", ctx_r2._disabled)("readonly", ctx_r2.readonly)("type", ctx_r2.type)("placeholder", ctx_r2.placeholder)("name", ctx_r2.name)("min", ctx_r2.min)("max", ctx_r2.max)("minlength", ctx_r2.minlength)("maxlength", ctx_r2.maxlength)("mask", ctx_r2.mask)("suffix", ctx_r2.suffix)("prefix", ctx_r2.prefix)("step", ctx_r2.step);
33
+ i0.ɵɵattribute("id", ctx_r2.id);
32
34
  } }
33
35
  function DrInputComponent_span_4_Template(rf, ctx) { if (rf & 1) {
34
36
  const _r21 = i0.ɵɵgetCurrentView();
@@ -129,6 +131,7 @@ export class DrInputComponent {
129
131
  this.elementRef = elementRef;
130
132
  this.renderer = renderer;
131
133
  this.cdr = cdr;
134
+ this.hostId = null;
132
135
  this.readonly = false;
133
136
  this.blur = new EventEmitter();
134
137
  this.focused = new EventEmitter();
@@ -227,11 +230,12 @@ export class DrInputComponent {
227
230
  } if (rf & 2) {
228
231
  let _t;
229
232
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputElement = _t.first);
230
- } }, hostVars: 5, hostBindings: function DrInputComponent_HostBindings(rf, ctx) { if (rf & 2) {
233
+ } }, hostVars: 6, hostBindings: function DrInputComponent_HostBindings(rf, ctx) { if (rf & 2) {
231
234
  i0.ɵɵhostProperty("tabindex", ctx.tabindex);
235
+ i0.ɵɵattribute("id", ctx.hostId);
232
236
  i0.ɵɵclassMap(ctx.elementClass);
233
237
  i0.ɵɵclassProp("search-type-mini", ctx.searchMini);
234
- } }, inputs: { disabled: "disabled", buttonOptions: "buttonOptions", type: "type", placeholder: "placeholder", clearable: "clearable", name: "name", readonly: "readonly", min: "min", max: "max", maxlength: "maxlength", minlength: "minlength", pattern: "pattern", step: "step", searchMini: "searchMini", mask: "mask", suffix: "suffix", prefix: "prefix" }, outputs: { blur: "blur", focused: "focus", modelDebounceChange: "modelDebounceChange", searchHandler: "searchHandler", clearHandler: "clearHandler", buttonHandler: "buttonHandler" }, features: [i0.ɵɵProvidersFeature([
238
+ } }, inputs: { id: "id", disabled: "disabled", buttonOptions: "buttonOptions", type: "type", placeholder: "placeholder", clearable: "clearable", name: "name", readonly: "readonly", min: "min", max: "max", maxlength: "maxlength", minlength: "minlength", pattern: "pattern", step: "step", searchMini: "searchMini", mask: "mask", suffix: "suffix", prefix: "prefix" }, outputs: { blur: "blur", focused: "focus", modelDebounceChange: "modelDebounceChange", searchHandler: "searchHandler", clearHandler: "clearHandler", buttonHandler: "buttonHandler" }, features: [i0.ɵɵProvidersFeature([
235
239
  {
236
240
  provide: NG_VALUE_ACCESSOR,
237
241
  useExisting: forwardRef((() => DrInputComponent)),
@@ -240,8 +244,8 @@ export class DrInputComponent {
240
244
  ])], ngContentSelectors: _c4, decls: 8, vars: 5, consts: [[4, "ngIf", "ngIfElse"], ["maskedInput", ""], ["class", "clear-icon", 3, "click", 4, "ngIf"], ["class", "search-icon", 3, "click", 4, "ngIf"], [3, "click", 4, "ngIf"], [3, "ngModel", "disabled", "readonly", "type", "placeholder", "name", "min", "max", "minlength", "maxlength", "step", "ngModelChange", "ngModelDebounceChange", "blur", "focus"], ["inputRef", ""], [3, "ngModel", "disabled", "readonly", "type", "placeholder", "name", "min", "max", "minlength", "maxlength", "mask", "suffix", "prefix", "step", "ngModelChange", "ngModelDebounceChange", "blur", "focus"], [1, "clear-icon", 3, "click"], [1, "search-icon", 3, "click"], [3, "click"]], template: function DrInputComponent_Template(rf, ctx) { if (rf & 1) {
241
245
  i0.ɵɵprojectionDef(_c3);
242
246
  i0.ɵɵprojection(0);
243
- i0.ɵɵtemplate(1, DrInputComponent_ng_container_1_Template, 3, 11, "ng-container", 0);
244
- i0.ɵɵtemplate(2, DrInputComponent_ng_template_2_Template, 2, 14, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
247
+ i0.ɵɵtemplate(1, DrInputComponent_ng_container_1_Template, 3, 12, "ng-container", 0);
248
+ i0.ɵɵtemplate(2, DrInputComponent_ng_template_2_Template, 2, 15, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
245
249
  i0.ɵɵtemplate(4, DrInputComponent_span_4_Template, 1, 0, "span", 2);
246
250
  i0.ɵɵtemplate(5, DrInputComponent_span_5_Template, 1, 0, "span", 3);
247
251
  i0.ɵɵprojection(6, 1);
@@ -266,8 +270,13 @@ export class DrInputComponent {
266
270
  useExisting: forwardRef((() => DrInputComponent)),
267
271
  multi: true,
268
272
  },
269
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[prefixIcon]\"></ng-content>\n\n<ng-container *ngIf=\"!mask; else maskedInput\">\n <input\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [step]=\"step\" />\n</ng-container>\n<ng-template #maskedInput>\n <input\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [step]=\"step\" />\n</ng-template>\n<span *ngIf=\"value\" class=\"clear-icon\" (click)=\"onClear($event)\"></span>\n<span *ngIf=\"type === 'search'\" class=\"search-icon\" (click)=\"onSearchClicked()\"></span>\n<ng-content select=\"[suffixIcon]\"></ng-content>\n<button *ngIf=\"_buttonOptions.show || (_buttonOptions.showOnFocus && _buttonOptions.focusSet)\" (click)=\"onButtonClicked($event)\">\n {{ _buttonOptions.text }}\n</button>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background:#fff;border:1px solid #9ea1aa;border-radius:6px;color:#333;padding:0 8px;overflow:hidden;outline:none}:host:hover{border-color:#4646ce}:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;color:#aeabac;border-color:#aeabac;background:#f0f1f4}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host input{display:flex;font-size:14px;flex-grow:1;height:100%;border:none;padding:4px 0;text-align:left;box-sizing:border-box;outline:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host .clear-icon{visibility:hidden}:host.clearable .clear-icon,:host.ng-touched.ng-invalid .clear-icon{visibility:visible;content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.91783 5.00001L9.03353 1.88395C9.11924 1.79818 9.16651 1.68374 9.16665 1.56171C9.16665 1.43962 9.11937 1.32504 9.03353 1.2394L8.76047 0.966415C8.67463 0.880433 8.56023 0.833344 8.43808 0.833344C8.31612 0.833344 8.20166 0.880433 8.11582 0.966415L5.00013 4.08227L1.88428 0.966415C1.79858 0.880433 1.68404 0.833344 1.56196 0.833344C1.44001 0.833344 1.32556 0.880433 1.23985 0.966415L0.966646 1.2394C0.788869 1.41719 0.788869 1.70637 0.966646 1.88395L4.08242 5.00001L0.966646 8.11593C0.880873 8.20184 0.833677 8.31628 0.833677 8.43831C0.833677 8.56034 0.880873 8.67478 0.966646 8.76062L1.23978 9.03361C1.32548 9.11952 1.44 9.16668 1.56188 9.16668C1.68397 9.16668 1.7985 9.11952 1.88421 9.03361L5.00005 5.91769L8.11575 9.03361C8.20159 9.11952 8.31605 9.16668 8.438 9.16668H8.43815C8.56017 9.16668 8.67456 9.11952 8.7604 9.03361L9.03346 8.76062C9.11916 8.67484 9.16643 8.56034 9.16643 8.43831C9.16643 8.31628 9.11916 8.20184 9.03346 8.116L5.91783 5.00001Z\" fill=\"%2351566F\"/></svg> ');margin:auto 0 auto 8px;cursor:pointer}:host span+span,:host span+img{margin-left:0}:host.search-type{padding:0 16px;border-radius:16px}:host.search-type .search-icon{content:url('data:image/svg+xml; utf8, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.5816 10.2097C11.4878 10.1157 11.3605 10.0629 11.2277 10.0629H10.8175C10.7473 10.0629 10.6799 10.035 10.6303 9.98534C10.5322 9.88724 10.527 9.73044 10.6132 9.62178C11.4154 8.6112 11.8925 7.33534 11.8925 5.94625C11.8925 2.66209 9.23042 0 5.94625 0C2.66209 0 0 2.66209 0 5.94625C0 9.23042 2.66209 11.8925 5.94625 11.8925C7.33523 11.8925 8.611 11.4155 9.62155 10.6172C9.7304 10.5312 9.88711 10.5366 9.9852 10.6347C10.0349 10.6845 10.0629 10.7519 10.0629 10.8223V11.2277C10.0629 11.3605 10.1157 11.4878 10.2097 11.5816L14.2834 15.6472C14.4787 15.8421 14.795 15.8419 14.9901 15.6468L15.6468 14.9901C15.8419 14.795 15.8421 14.4787 15.6472 14.2834L11.5816 10.2097ZM5.94625 10.0629C3.67296 10.0629 1.82962 8.21955 1.82962 5.94625C1.82962 3.67296 3.67296 1.82962 5.94625 1.82962C8.21955 1.82962 10.0629 3.67296 10.0629 5.94625C10.0629 8.21955 8.21955 10.0629 5.94625 10.0629Z\" fill=\"%23BCBCBC\"/></svg> ');margin:auto 0 auto 8px;cursor:pointer}:host.search-type.clearable .search-icon{margin-left:26px}:host.search-type.clearable .clear-icon+.search-icon{margin-left:8px}:host.search-type-mini{width:200px;min-height:28px;height:28px}:host.with-button{padding-right:0}:host.with-button button{color:#fff;background:#4646ce;height:100%;width:auto;padding:0 8px;display:flex;align-items:center;border:none;border-left:1px solid #9ea1aa}:host.with-button.disabled button{color:#aeabac;background:#f0f1f4;border-left:1px solid #aeabac}:host ::ng-deep img[prefixIcon],:host ::ng-deep img[suffixIcon],:host ::ng-deep i[prefixIcon],:host ::ng-deep i[suffixIcon]{position:relative;margin:auto 8px}:host ::ng-deep img[prefixIcon],:host ::ng-deep i[prefixIcon]{margin-left:0}:host ::ng-deep img[suffixIcon],:host ::ng-deep i[suffixIcon]{margin-right:0}\n"] }]
270
- }], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, { disabled: [{
273
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[prefixIcon]\"></ng-content>\n\n<ng-container *ngIf=\"!mask; else maskedInput\">\n <input\n [attr.id]=\"id\"\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [step]=\"step\" />\n</ng-container>\n<ng-template #maskedInput>\n <input\n [attr.id]=\"id\"\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [step]=\"step\" />\n</ng-template>\n<span *ngIf=\"value\" class=\"clear-icon\" (click)=\"onClear($event)\"></span>\n<span *ngIf=\"type === 'search'\" class=\"search-icon\" (click)=\"onSearchClicked()\"></span>\n<ng-content select=\"[suffixIcon]\"></ng-content>\n<button *ngIf=\"_buttonOptions.show || (_buttonOptions.showOnFocus && _buttonOptions.focusSet)\" (click)=\"onButtonClicked($event)\">\n {{ _buttonOptions.text }}\n</button>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background:#fff;border:1px solid #9ea1aa;border-radius:6px;color:#333;padding:0 8px;overflow:hidden;outline:none}:host:hover{border-color:#4646ce}:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;color:#aeabac;border-color:#aeabac;background:#f0f1f4}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host input{display:flex;font-size:14px;flex-grow:1;height:100%;border:none;padding:4px 0;text-align:left;box-sizing:border-box;outline:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host .clear-icon{visibility:hidden}:host.clearable .clear-icon,:host.ng-touched.ng-invalid .clear-icon{visibility:visible;content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.91783 5.00001L9.03353 1.88395C9.11924 1.79818 9.16651 1.68374 9.16665 1.56171C9.16665 1.43962 9.11937 1.32504 9.03353 1.2394L8.76047 0.966415C8.67463 0.880433 8.56023 0.833344 8.43808 0.833344C8.31612 0.833344 8.20166 0.880433 8.11582 0.966415L5.00013 4.08227L1.88428 0.966415C1.79858 0.880433 1.68404 0.833344 1.56196 0.833344C1.44001 0.833344 1.32556 0.880433 1.23985 0.966415L0.966646 1.2394C0.788869 1.41719 0.788869 1.70637 0.966646 1.88395L4.08242 5.00001L0.966646 8.11593C0.880873 8.20184 0.833677 8.31628 0.833677 8.43831C0.833677 8.56034 0.880873 8.67478 0.966646 8.76062L1.23978 9.03361C1.32548 9.11952 1.44 9.16668 1.56188 9.16668C1.68397 9.16668 1.7985 9.11952 1.88421 9.03361L5.00005 5.91769L8.11575 9.03361C8.20159 9.11952 8.31605 9.16668 8.438 9.16668H8.43815C8.56017 9.16668 8.67456 9.11952 8.7604 9.03361L9.03346 8.76062C9.11916 8.67484 9.16643 8.56034 9.16643 8.43831C9.16643 8.31628 9.11916 8.20184 9.03346 8.116L5.91783 5.00001Z\" fill=\"%2351566F\"/></svg> ');margin:auto 0 auto 8px;cursor:pointer}:host span+span,:host span+img{margin-left:0}:host.search-type{padding:0 16px;border-radius:16px}:host.search-type .search-icon{content:url('data:image/svg+xml; utf8, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.5816 10.2097C11.4878 10.1157 11.3605 10.0629 11.2277 10.0629H10.8175C10.7473 10.0629 10.6799 10.035 10.6303 9.98534C10.5322 9.88724 10.527 9.73044 10.6132 9.62178C11.4154 8.6112 11.8925 7.33534 11.8925 5.94625C11.8925 2.66209 9.23042 0 5.94625 0C2.66209 0 0 2.66209 0 5.94625C0 9.23042 2.66209 11.8925 5.94625 11.8925C7.33523 11.8925 8.611 11.4155 9.62155 10.6172C9.7304 10.5312 9.88711 10.5366 9.9852 10.6347C10.0349 10.6845 10.0629 10.7519 10.0629 10.8223V11.2277C10.0629 11.3605 10.1157 11.4878 10.2097 11.5816L14.2834 15.6472C14.4787 15.8421 14.795 15.8419 14.9901 15.6468L15.6468 14.9901C15.8419 14.795 15.8421 14.4787 15.6472 14.2834L11.5816 10.2097ZM5.94625 10.0629C3.67296 10.0629 1.82962 8.21955 1.82962 5.94625C1.82962 3.67296 3.67296 1.82962 5.94625 1.82962C8.21955 1.82962 10.0629 3.67296 10.0629 5.94625C10.0629 8.21955 8.21955 10.0629 5.94625 10.0629Z\" fill=\"%23BCBCBC\"/></svg> ');margin:auto 0 auto 8px;cursor:pointer}:host.search-type.clearable .search-icon{margin-left:26px}:host.search-type.clearable .clear-icon+.search-icon{margin-left:8px}:host.search-type-mini{width:200px;min-height:28px;height:28px}:host.with-button{padding-right:0}:host.with-button button{color:#fff;background:#4646ce;height:100%;width:auto;padding:0 8px;display:flex;align-items:center;border:none;border-left:1px solid #9ea1aa}:host.with-button.disabled button{color:#aeabac;background:#f0f1f4;border-left:1px solid #aeabac}:host ::ng-deep img[prefixIcon],:host ::ng-deep img[suffixIcon],:host ::ng-deep i[prefixIcon],:host ::ng-deep i[suffixIcon]{position:relative;margin:auto 8px}:host ::ng-deep img[prefixIcon],:host ::ng-deep i[prefixIcon]{margin-left:0}:host ::ng-deep img[suffixIcon],:host ::ng-deep i[suffixIcon]{margin-right:0}\n"] }]
274
+ }], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, { id: [{
275
+ type: Input
276
+ }], hostId: [{
277
+ type: HostBinding,
278
+ args: ['attr.id']
279
+ }], disabled: [{
271
280
  type: Input
272
281
  }], buttonOptions: [{
273
282
  type: Input
@@ -333,4 +342,4 @@ export class DrInputComponent {
333
342
  type: HostBinding,
334
343
  args: ['tabindex']
335
344
  }] }); })();
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RyLWlucHV0L2RyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1pbnB1dC9kci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0lDZjVCLDZCQUE4QztJQUMxQyxtQ0FnQm9CO0lBZGhCLG9PQUFtQix3S0FDRixlQUFBLHNCQUFlLENBQUEsSUFEYiwrTEFFTSxlQUFBLHdDQUFnQyxDQUFBLElBRnRDLGdKQUdYLGdDQUFnQixTQUFFLGVBQUEsbUJBQVcsQ0FBQSxJQUhsQiwrSkFJVixlQUFBLDRCQUFvQixDQUFBLElBSlY7SUFGdkIsaUJBZ0JvQjtJQUN4QiwwQkFBZTs7O0lBZlAsZUFBbUI7SUFBbkIsc0NBQW1CLDhCQUFBLDZCQUFBLHFCQUFBLG1DQUFBLHFCQUFBLG1CQUFBLG1CQUFBLCtCQUFBLCtCQUFBLHFCQUFBOzs7O0lBaUJ2QixtQ0FtQm9CO0lBakJoQixzT0FBbUIseUtBQ0YsZUFBQSx1QkFBZSxDQUFBLElBRGIsK0xBRU0sZUFBQSx3Q0FBZ0MsQ0FBQSxJQUZ0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QU0sRUFBRSxLQUFLLEVBQUU7WUFDRSxVQUFVO2tCQUFwRCxZQUFZO21CQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFaEIsUUFBUTtrQkFBaEMsV0FBVzttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuXG50eXBlIEJ1dHRvbk9wdGlvbnMgPSB7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgc2hvd09uRm9jdXM/OiBib29sZWFuO1xuICAgIGZvY3VzU2V0PzogYm9vbGVhbjtcbiAgICBjaGVja0ZvY3VzT3V0PzogKHRhcmdldDogYW55LCBlbGVtZW50OiBhbnkpID0+IGJvb2xlYW47XG4gICAgdGV4dD86IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcklucHV0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERySW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJ1dHRvbk9wdGlvbnModmFsdWU6IEJ1dHRvbk9wdGlvbnMpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9idXR0b25PcHRpb25zID0geyAuLi50aGlzLl9idXR0b25PcHRpb25zLCAuLi52YWx1ZSB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuX2J1dHRvbk9wdGlvbnM/LnNob3cgfHwgdGhpcy5fYnV0dG9uT3B0aW9ucz8uc2hvd09uRm9jdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnd2l0aC1idXR0b24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fYnV0dG9uT3B0aW9ucy5zaG93T25Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5GdW5jID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2J1dHRvbk9wdGlvbnMuZm9jdXNTZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmdsb2JhbExpc3RlbkZ1bmMgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnBhcmVudE5vZGUgIT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9idXR0b25PcHRpb25zLmNoZWNrRm9jdXNPdXQoZXZlbnQudGFyZ2V0LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25CdXR0b25DbGlja2VkKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHR5cGUodmFsKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB2YWw7XG4gICAgICAgIGlmICh0aGlzLl90eXBlID09PSAnc2VhcmNoJykge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzLnB1c2goJ3NlYXJjaC10eXBlJyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3BsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSAnU2VhcmNoLi4uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBwbGFjZWhvbGRlcih2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbDtcbiAgICB9XG4gICAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjbGVhcmFibGUodmFsKSB7XG4gICAgICAgIHRoaXMuX2NsZWFyYWJsZSA9ICEhdmFsO1xuICAgICAgICBpZiAodGhpcy5fY2xlYXJhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnY2xlYXJhYmxlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MgPSB0aGlzLl9lbGVtZW50Q2xhc3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSAnY2xlYXJhYmxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbjogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IG51bWJlciB8IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4bGVuZ3RoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbmxlbmd0aDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHA7XG5cbiAgICBASW5wdXQoKVxuICAgIHN0ZXA6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWFyY2gtdHlwZS1taW5pJylcbiAgICBzZWFyY2hNaW5pOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpXG4gICAgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoJ2ZvY3VzJylcbiAgICBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgbW9kZWxEZWJvdW5jZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHNlYXJjaEhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNsZWFySGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgYnV0dG9uSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQElucHV0KCkgbWFzazogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1ZmZpeCA9ICcnO1xuICAgIEBJbnB1dCgpIHByZWZpeCA9ICcnO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGVsZW1lbnRDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudENsYXNzLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBpbm5lclZhbHVlID0gbnVsbDtcbiAgICBfZGlzYWJsZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICBfZWxlbWVudENsYXNzOiBzdHJpbmdbXSA9IFtdO1xuICAgIF9idXR0b25PcHRpb25zOiBCdXR0b25PcHRpb25zID0ge1xuICAgICAgICBzaG93OiBmYWxzZSxcbiAgICAgICAgc2hvd09uRm9jdXM6IGZhbHNlLFxuICAgICAgICBmb2N1c1NldDogZmFsc2UsXG4gICAgICAgIGNoZWNrRm9jdXNPdXQ6ICh0YXJnZXQ6IGFueSwgZWxlbWVudDogYW55KSA9PiB0cnVlLFxuICAgICAgICB0ZXh0OiAnU2F2ZScsXG4gICAgfTtcbiAgICBsaXN0ZW5GdW5jOiAoLi4ucGFyYW1zKSA9PiBhbnk7XG4gICAgZ2xvYmFsTGlzdGVuRnVuYzogKC4uLnBhcmFtcykgPT4gYW55O1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKSBwcml2YXRlIHJlYWRvbmx5IGlucHV0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBAQ29udGVudENoaWxkKCdwcmVmaXgnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJlZml4SWNvbjogRWxlbWVudFJlZjtcbiAgICBAQ29udGVudENoaWxkKCdzdWZmaXgnLCB7IHN0YXRpYzogZmFsc2UgfSkgc3VmZml4SWNvbjogRWxlbWVudFJlZjtcblxuICAgIEBIb3N0QmluZGluZygndGFiaW5kZXgnKSB0YWJpbmRleCA9IC0xO1xuICAgIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIHNldCh2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MgPSB2YWwuc3BsaXQoJyAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdGhpcy50eXBlID09PSAnbnVtYmVyJyA/ICt2IDogdjtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3BsYWNlaG9sZGVyID0gJyc7XG4gICAgcHJpdmF0ZSBfdHlwZSA9ICdzdHJpbmcnO1xuICAgIHByaXZhdGUgX2NsZWFyYWJsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wcmVmaXhJY29uKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnd2l0aC1wcmVmaXgnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdWZmaXhJY29uKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnd2l0aC1zdWZmaXgnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcyA9IHRoaXMuX2VsZW1lbnRDbGFzcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09ICdkaXNhYmxlZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgb25TZWFyY2hDbGlja2VkKCkge1xuICAgICAgICB0aGlzLnNlYXJjaEhhbmRsZXIuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbkNsaWNrZWQoJGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5idXR0b25IYW5kbGVyLmVtaXQoJGV2ZW50KTtcbiAgICAgICAgdGhpcy5fYnV0dG9uT3B0aW9ucy5mb2N1c1NldCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubGlzdGVuRnVuYykge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5GdW5jKCk7XG4gICAgICAgICAgICB0aGlzLmdsb2JhbExpc3RlbkZ1bmMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xlYXIoJGV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2xlYXJIYW5kbGVyLmVtaXQoJGV2ZW50KTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJbcHJlZml4SWNvbl1cIj48L25nLWNvbnRlbnQ+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbWFzazsgZWxzZSBtYXNrZWRJbnB1dFwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUNoYW5nZXMoKVwiXG4gICAgICAgIChuZ01vZGVsRGVib3VuY2VDaGFuZ2UpPVwibW9kZWxEZWJvdW5jZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJibHVyLmVtaXQodmFsdWUpOyBvblRvdWNoZWQoKVwiXG4gICAgICAgIChmb2N1cyk9XCJmb2N1c2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICBbbWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcbiAgICAgICAgW3N0ZXBdPVwic3RlcFwiIC8+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjbWFza2VkSW5wdXQ+XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFJlZlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ2hhbmdlcygpXCJcbiAgICAgICAgKG5nTW9kZWxEZWJvdW5jZUNoYW5nZSk9XCJtb2RlbERlYm91bmNlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImJsdXIuZW1pdCh2YWx1ZSk7IG9uVG91Y2hlZCgpXCJcbiAgICAgICAgKGZvY3VzKT1cImZvY3VzZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFttaW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcbiAgICAgICAgW21heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICBbbWFza109XCJtYXNrXCJcbiAgICAgICAgW3N1ZmZpeF09XCJzdWZmaXhcIlxuICAgICAgICBbcHJlZml4XT1cInByZWZpeFwiXG4gICAgICAgIFtzdGVwXT1cInN0ZXBcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbjxzcGFuICpuZ0lmPVwidmFsdWVcIiBjbGFzcz1cImNsZWFyLWljb25cIiAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCI+PC9zcGFuPlxuPHNwYW4gKm5nSWY9XCJ0eXBlID09PSAnc2VhcmNoJ1wiIGNsYXNzPVwic2VhcmNoLWljb25cIiAoY2xpY2spPVwib25TZWFyY2hDbGlja2VkKClcIj48L3NwYW4+XG48bmctY29udGVudCBzZWxlY3Q9XCJbc3VmZml4SWNvbl1cIj48L25nLWNvbnRlbnQ+XG48YnV0dG9uICpuZ0lmPVwiX2J1dHRvbk9wdGlvbnMuc2hvdyB8fCAoX2J1dHRvbk9wdGlvbnMuc2hvd09uRm9jdXMgJiYgX2J1dHRvbk9wdGlvbnMuZm9jdXNTZXQpXCIgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAge3sgX2J1dHRvbk9wdGlvbnMudGV4dCB9fVxuPC9idXR0b24+XG4iXX0=
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RyLWlucHV0L2RyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1pbnB1dC9kci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0lDZjVCLDZCQUE4QztJQUMxQyxtQ0FpQm9CO0lBZGhCLG9PQUFtQix3S0FDRixlQUFBLHNCQUFlLENBQUEsSUFEYiwrTEFFTSxlQUFBLHdDQUFnQyxDQUFBLElBRnRDLGdKQUdYLGdDQUFnQixTQUFFLGVBQUEsbUJBQVcsQ0FBQSxJQUhsQiwrSkFJVixlQUFBLDRCQUFvQixDQUFBLElBSlY7SUFIdkIsaUJBaUJvQjtJQUN4QiwwQkFBZTs7O0lBZlAsZUFBbUI7SUFBbkIsc0NBQW1CLDhCQUFBLDZCQUFBLHFCQUFBLG1DQUFBLHFCQUFBLG1CQUFBLG1CQUFBLCtCQUFBLCtCQUFBLHFCQUFBO0lBRm5CLCtCQUFjOzs7O0lBbUJsQixtQ0FvQm9CO0lBakJoQixzT0FBbUIseUtBQ0YsZUFBQSx1QkFBZSxDQUFBLElBRGIsK0xBRU0sZUFBQSx3Q0FB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WTtrQkFEZixXQUFXO21CQUFDLE9BQU87WUFrQm9CLFlBQVk7a0JBQW5ELFNBQVM7bUJBQUMsVUFBVTtZQUNzQixVQUFVO2tCQUFwRCxZQUFZO21CQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDRSxVQUFVO2tCQUFwRCxZQUFZO21CQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFaEIsUUFBUTtrQkFBaEMsV0FBVzttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuXG50eXBlIEJ1dHRvbk9wdGlvbnMgPSB7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgc2hvd09uRm9jdXM/OiBib29sZWFuO1xuICAgIGZvY3VzU2V0PzogYm9vbGVhbjtcbiAgICBjaGVja0ZvY3VzT3V0PzogKHRhcmdldDogYW55LCBlbGVtZW50OiBhbnkpID0+IGJvb2xlYW47XG4gICAgdGV4dD86IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcklucHV0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERySW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIGlkPzogc3RyaW5nO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgaG9zdElkID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgYnV0dG9uT3B0aW9ucyh2YWx1ZTogQnV0dG9uT3B0aW9ucykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2J1dHRvbk9wdGlvbnMgPSB7IC4uLnRoaXMuX2J1dHRvbk9wdGlvbnMsIC4uLnZhbHVlIH07XG4gICAgICAgICAgICBpZiAodGhpcy5fYnV0dG9uT3B0aW9ucz8uc2hvdyB8fCB0aGlzLl9idXR0b25PcHRpb25zPy5zaG93T25Gb2N1cykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCd3aXRoLWJ1dHRvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9idXR0b25PcHRpb25zLnNob3dPbkZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbkZ1bmMgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYnV0dG9uT3B0aW9ucy5mb2N1c1NldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsTGlzdGVuRnVuYyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQucGFyZW50Tm9kZSAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2J1dHRvbk9wdGlvbnMuY2hlY2tGb2N1c091dChldmVudC50YXJnZXQsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkJ1dHRvbkNsaWNrZWQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgdHlwZSh2YWwpIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHZhbDtcbiAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09ICdzZWFyY2gnKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnc2VhcmNoLXR5cGUnKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fcGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wbGFjZWhvbGRlciA9ICdTZWFyY2guLi4nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHBsYWNlaG9sZGVyKHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsO1xuICAgIH1cbiAgICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNsZWFyYWJsZSh2YWwpIHtcbiAgICAgICAgdGhpcy5fY2xlYXJhYmxlID0gISF2YWw7XG4gICAgICAgIGlmICh0aGlzLl9jbGVhcmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCdjbGVhcmFibGUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcyA9IHRoaXMuX2VsZW1lbnRDbGFzcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09ICdjbGVhcmFibGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG1heDogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhsZW5ndGg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWlubGVuZ3RoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHBhdHRlcm46IHN0cmluZyB8IFJlZ0V4cDtcblxuICAgIEBJbnB1dCgpXG4gICAgc3RlcDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlYXJjaC10eXBlLW1pbmknKVxuICAgIHNlYXJjaE1pbmk6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KClcbiAgICBibHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgnZm9jdXMnKVxuICAgIGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBtb2RlbERlYm91bmNlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgc2VhcmNoSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgY2xlYXJIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBidXR0b25IYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBASW5wdXQoKSBtYXNrOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3VmZml4ID0gJyc7XG4gICAgQElucHV0KCkgcHJlZml4ID0gJyc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgZWxlbWVudENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50Q2xhc3Muam9pbignICcpO1xuICAgIH1cblxuICAgIGlubmVyVmFsdWUgPSBudWxsO1xuICAgIF9kaXNhYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICAgIF9lbGVtZW50Q2xhc3M6IHN0cmluZ1tdID0gW107XG4gICAgX2J1dHRvbk9wdGlvbnM6IEJ1dHRvbk9wdGlvbnMgPSB7XG4gICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICBzaG93T25Gb2N1czogZmFsc2UsXG4gICAgICAgIGZvY3VzU2V0OiBmYWxzZSxcbiAgICAgICAgY2hlY2tGb2N1c091dDogKHRhcmdldDogYW55LCBlbGVtZW50OiBhbnkpID0+IHRydWUsXG4gICAgICAgIHRleHQ6ICdTYXZlJyxcbiAgICB9O1xuICAgIGxpc3RlbkZ1bmM6ICguLi5wYXJhbXMpID0+IGFueTtcbiAgICBnbG9iYWxMaXN0ZW5GdW5jOiAoLi4ucGFyYW1zKSA9PiBhbnk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dFJlZicpIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAgIEBDb250ZW50Q2hpbGQoJ3ByZWZpeCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcmVmaXhJY29uOiBFbGVtZW50UmVmO1xuICAgIEBDb250ZW50Q2hpbGQoJ3N1ZmZpeCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzdWZmaXhJY29uOiBFbGVtZW50UmVmO1xuXG4gICAgQEhvc3RCaW5kaW5nKCd0YWJpbmRleCcpIHRhYmluZGV4ID0gLTE7XG4gICAgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgc2V0KHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcyA9IHZhbC5zcGxpdCgnICcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB0aGlzLnR5cGUgPT09ICdudW1iZXInID8gK3YgOiB2O1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGxhY2Vob2xkZXIgPSAnJztcbiAgICBwcml2YXRlIF90eXBlID0gJ3N0cmluZyc7XG4gICAgcHJpdmF0ZSBfY2xlYXJhYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByZWZpeEljb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCd3aXRoLXByZWZpeCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN1ZmZpeEljb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCd3aXRoLXN1ZmZpeCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCdkaXNhYmxlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzID0gdGhpcy5fZWxlbWVudENsYXNzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gJ2Rpc2FibGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvblNlYXJjaENsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoSGFuZGxlci5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIG9uQnV0dG9uQ2xpY2tlZCgkZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmJ1dHRvbkhhbmRsZXIuZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLl9idXR0b25PcHRpb25zLmZvY3VzU2V0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5saXN0ZW5GdW5jKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbkZ1bmMoKTtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsTGlzdGVuRnVuYygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DbGVhcigkZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jbGVhckhhbmRsZXIuZW1pdCgkZXZlbnQpO1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIltwcmVmaXhJY29uXVwiPjwvbmctY29udGVudD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtYXNrOyBlbHNlIG1hc2tlZElucHV0XCI+XG4gICAgPGlucHV0XG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgI2lucHV0UmVmXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVDaGFuZ2VzKClcIlxuICAgICAgICAobmdNb2RlbERlYm91bmNlQ2hhbmdlKT1cIm1vZGVsRGVib3VuY2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwiYmx1ci5lbWl0KHZhbHVlKTsgb25Ub3VjaGVkKClcIlxuICAgICAgICAoZm9jdXMpPVwiZm9jdXNlZC5lbWl0KCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbmxlbmd0aF09XCJtaW5sZW5ndGhcIlxuICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgICAgIFtzdGVwXT1cInN0ZXBcIiAvPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI21hc2tlZElucHV0PlxuICAgIDxpbnB1dFxuICAgICAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgICAgICNpbnB1dFJlZlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ2hhbmdlcygpXCJcbiAgICAgICAgKG5nTW9kZWxEZWJvdW5jZUNoYW5nZSk9XCJtb2RlbERlYm91bmNlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImJsdXIuZW1pdCh2YWx1ZSk7IG9uVG91Y2hlZCgpXCJcbiAgICAgICAgKGZvY3VzKT1cImZvY3VzZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFttaW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcbiAgICAgICAgW21heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICBbbWFza109XCJtYXNrXCJcbiAgICAgICAgW3N1ZmZpeF09XCJzdWZmaXhcIlxuICAgICAgICBbcHJlZml4XT1cInByZWZpeFwiXG4gICAgICAgIFtzdGVwXT1cInN0ZXBcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbjxzcGFuICpuZ0lmPVwidmFsdWVcIiBjbGFzcz1cImNsZWFyLWljb25cIiAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCI+PC9zcGFuPlxuPHNwYW4gKm5nSWY9XCJ0eXBlID09PSAnc2VhcmNoJ1wiIGNsYXNzPVwic2VhcmNoLWljb25cIiAoY2xpY2spPVwib25TZWFyY2hDbGlja2VkKClcIj48L3NwYW4+XG48bmctY29udGVudCBzZWxlY3Q9XCJbc3VmZml4SWNvbl1cIj48L25nLWNvbnRlbnQ+XG48YnV0dG9uICpuZ0lmPVwiX2J1dHRvbk9wdGlvbnMuc2hvdyB8fCAoX2J1dHRvbk9wdGlvbnMuc2hvd09uRm9jdXMgJiYgX2J1dHRvbk9wdGlvbnMuZm9jdXNTZXQpXCIgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAge3sgX2J1dHRvbk9wdGlvbnMudGV4dCB9fVxuPC9idXR0b24+XG4iXX0=
@@ -141,6 +141,7 @@ export class DrSelectComponent {
141
141
  this.disabled = false;
142
142
  this.groupBy = null;
143
143
  this.optionWithDescription = false;
144
+ this.hostId = null;
144
145
  this.keyDownFn = () => true;
145
146
  this.closeOnSelect = true;
146
147
  this.noValuePadding = false;
@@ -265,7 +266,8 @@ export class DrSelectComponent {
265
266
  } if (rf & 2) {
266
267
  let _t;
267
268
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ngSelect = _t.first);
268
- } }, hostVars: 4, hostBindings: function DrSelectComponent_HostBindings(rf, ctx) { if (rf & 2) {
269
+ } }, hostVars: 5, hostBindings: function DrSelectComponent_HostBindings(rf, ctx) { if (rf & 2) {
270
+ i0.ɵɵattribute("id", ctx.hostId);
269
271
  i0.ɵɵclassMap(ctx.type);
270
272
  i0.ɵɵclassProp("textView", ctx.asTextView);
271
273
  } }, inputs: { type: "type", clearInputTextAfterSelection: "clearInputTextAfterSelection", className: "className", items: "items", addTag: "addTag", appendTo: "appendTo", bindLabel: "bindLabel", bindValue: "bindValue", clearable: "clearable", searchable: "searchable", isDisplayingSearchInHeader: "isDisplayingSearchInHeader", minItemsToDisplaySearchInHeader: "minItemsToDisplaySearchInHeader", searchFn: "searchFn", multiple: "multiple", multipleHeightIncreased: "multipleHeightIncreased", hideSelected: "hideSelected", maxSelectedItems: "maxSelectedItems", placeholder: "placeholder", loading: "loading", loadingText: "loadingText", readonly: "readonly", disabled: "disabled", groupBy: "groupBy", optionWithDescription: "optionWithDescription", id: "id", keyDownFn: "keyDownFn", selectedItem: "selectedItem", dropdownClass: "dropdownClass", closeOnSelect: "closeOnSelect", textView: "textView", autofocus: "autofocus", isOpen: "isOpen", noValuePadding: "noValuePadding", selectOnTabKeyPress: "selectOnTabKeyPress" }, outputs: { change: "change", open: "open", closeUp: "closeUp" }, features: [i0.ɵɵProvidersFeature([
@@ -274,7 +276,7 @@ export class DrSelectComponent {
274
276
  useExisting: DrSelectComponent,
275
277
  multi: true,
276
278
  },
277
- ])], decls: 12, vars: 37, consts: [[1, "dr-select", 3, "ngModel", "items", "bindLabel", "bindValue", "multiple", "addTag", "appendTo", "clearable", "searchable", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "closeOnSelect", "disabled", "id", "maxSelectedItems", "keyDownFn", "searchFn", "isOpen", "groupBy", "selectOnTab", "ngModelChange", "keydown.tab", "change", "open", "close"], ["selectComponent", ""], [4, "ngIf"], ["ng-loadingspinner-tmp", ""], ["class", "search-icon dr-icon-search", 4, "ngIf"], ["ng-header-tmp", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["type", "search", 1, "dr-select__search", 3, "ngModel", "ngModelChange"], ["ng-label-tmp", ""], ["ng-multi-label-tmp", ""], ["ng-option-tmp", ""], [1, "dr-select__option-with-desc__wrapper"], [1, "dr-select__option-with-desc__description"], ["ng-footer-tmp", ""], ["ng-optgroup-tmp", ""], ["class", "dr-select__loading", 3, "drSpinner", "drSpinnerType", "drSpinnerSize", "drSpinnerNoOverlay", 4, "ngIf"], [1, "dr-select__loading", 3, "drSpinner", "drSpinnerType", "drSpinnerSize", "drSpinnerNoOverlay"], [1, "search-icon", "dr-icon-search"]], template: function DrSelectComponent_Template(rf, ctx) { if (rf & 1) {
279
+ ])], decls: 12, vars: 37, consts: [[1, "dr-select", 3, "ngModel", "items", "bindLabel", "bindValue", "multiple", "addTag", "appendTo", "clearable", "searchable", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "closeOnSelect", "disabled", "labelForId", "maxSelectedItems", "keyDownFn", "searchFn", "isOpen", "groupBy", "selectOnTab", "ngModelChange", "keydown.tab", "change", "open", "close"], ["selectComponent", ""], [4, "ngIf"], ["ng-loadingspinner-tmp", ""], ["class", "search-icon dr-icon-search", 4, "ngIf"], ["ng-header-tmp", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["type", "search", 1, "dr-select__search", 3, "ngModel", "ngModelChange"], ["ng-label-tmp", ""], ["ng-multi-label-tmp", ""], ["ng-option-tmp", ""], [1, "dr-select__option-with-desc__wrapper"], [1, "dr-select__option-with-desc__description"], ["ng-footer-tmp", ""], ["ng-optgroup-tmp", ""], ["class", "dr-select__loading", 3, "drSpinner", "drSpinnerType", "drSpinnerSize", "drSpinnerNoOverlay", 4, "ngIf"], [1, "dr-select__loading", 3, "drSpinner", "drSpinnerType", "drSpinnerSize", "drSpinnerNoOverlay"], [1, "search-icon", "dr-icon-search"]], template: function DrSelectComponent_Template(rf, ctx) { if (rf & 1) {
278
280
  i0.ɵɵelementStart(0, "ng-select", 0, 1);
279
281
  i0.ɵɵlistener("ngModelChange", function DrSelectComponent_Template_ng_select_ngModelChange_0_listener($event) { return ctx.selectedItem = $event; })("keydown.tab", function DrSelectComponent_Template_ng_select_keydown_tab_0_listener($event) { return ctx.onTabKeypress($event); })("change", function DrSelectComponent_Template_ng_select_change_0_listener() { return ctx.onValueSelected(ctx.selectedItem); })("open", function DrSelectComponent_Template_ng_select_open_0_listener($event) { ctx.open.emit($event); return ctx.onDropdownOpen(); })("close", function DrSelectComponent_Template_ng_select_close_0_listener($event) { return ctx.onClose($event); });
280
282
  i0.ɵɵtemplate(2, DrSelectComponent_2_Template, 1, 0, null, 2);
@@ -291,7 +293,7 @@ export class DrSelectComponent {
291
293
  } if (rf & 2) {
292
294
  const _r0 = i0.ɵɵreference(1);
293
295
  i0.ɵɵclassProp("ng-select--no-value-padding", ctx.noValuePadding)("ng-select--multiple-height-increased", ctx.multipleHeightIncreased);
294
- i0.ɵɵproperty("ngModel", ctx.selectedItem)("items", ctx.items)("bindLabel", ctx.bindLabel)("bindValue", ctx.bindValue)("multiple", ctx.multiple)("addTag", ctx.addTag)("appendTo", ctx.appendTo)("clearable", ctx.clearable)("searchable", ctx.searchable)("hideSelected", ctx.hideSelected)("placeholder", ctx.placeholder)("loading", ctx.loading)("loadingText", ctx.loadingText)("readonly", ctx.readonly)("closeOnSelect", ctx.closeOnSelect)("disabled", ctx.disabled)("id", ctx.id)("maxSelectedItems", ctx.maxSelectedItems)("keyDownFn", ctx.keyDownFn)("searchFn", ctx.searchFn)("isOpen", (ctx.type !== "search-input" || !!(_r0.searchTerm == null ? null : _r0.searchTerm.length)) && ctx.isOpen)("groupBy", ctx.groupBy)("selectOnTab", ctx.selectOnTabKeyPress);
296
+ i0.ɵɵproperty("ngModel", ctx.selectedItem)("items", ctx.items)("bindLabel", ctx.bindLabel)("bindValue", ctx.bindValue)("multiple", ctx.multiple)("addTag", ctx.addTag)("appendTo", ctx.appendTo)("clearable", ctx.clearable)("searchable", ctx.searchable)("hideSelected", ctx.hideSelected)("placeholder", ctx.placeholder)("loading", ctx.loading)("loadingText", ctx.loadingText)("readonly", ctx.readonly)("closeOnSelect", ctx.closeOnSelect)("disabled", ctx.disabled)("labelForId", ctx.id)("maxSelectedItems", ctx.maxSelectedItems)("keyDownFn", ctx.keyDownFn)("searchFn", ctx.searchFn)("isOpen", (ctx.type !== "search-input" || !!(_r0.searchTerm == null ? null : _r0.searchTerm.length)) && ctx.isOpen)("groupBy", ctx.groupBy)("selectOnTab", ctx.selectOnTabKeyPress);
295
297
  i0.ɵɵattribute("autofocus", ctx.autofocus);
296
298
  i0.ɵɵadvance(2);
297
299
  i0.ɵɵproperty("ngIf", ctx.optionHeaderTemplate);
@@ -321,7 +323,7 @@ export class DrSelectComponent {
321
323
  useExisting: DrSelectComponent,
322
324
  multi: true,
323
325
  },
324
- ], template: "<ng-select\n [(ngModel)]=\"selectedItem\"\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [multiple]=\"multiple\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n [hideSelected]=\"hideSelected\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [readonly]=\"readonly\"\n [closeOnSelect]=\"closeOnSelect\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [keyDownFn]=\"keyDownFn\"\n [searchFn]=\"searchFn\"\n [isOpen]=\"(type !== 'search-input' || !!selectComponent.searchTerm?.length) && isOpen\"\n [groupBy]=\"groupBy\"\n [attr.autofocus]=\"autofocus\"\n [selectOnTab]=\"selectOnTabKeyPress\"\n (keydown.tab)=\"onTabKeypress($event)\"\n (change)=\"onValueSelected(selectedItem)\"\n (open)=\"open.emit($event); onDropdownOpen()\"\n (close)=\"onClose($event)\"\n class=\"dr-select\"\n [class.ng-select--no-value-padding]=\"noValuePadding\"\n [class.ng-select--multiple-height-increased]=\"multipleHeightIncreased\"\n #selectComponent>\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template\n ng-header-tmp\n *ngIf=\"!optionHeaderTemplate && isDisplayingSearchInHeader && items?.length >= minItemsToDisplaySearchInHeader\"\n let-item=\"item\">\n <dr-input\n class=\"dr-select__search\"\n [ngModel]=\"selectComponent.searchTerm\"\n (ngModelChange)=\"selectComponent.itemsList.filter($event + '')\"\n type=\"search\">\n </dr-input>\n </ng-template>\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"multiLabelTemplate\" ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"multiLabelTemplate\" [ngTemplateOutletContext]=\"{ items: items, clear: clear }\">\n </ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{ item: item, item$: item$ }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\n <div class=\"dr-select__option-with-desc__wrapper\">\n <div>{{ item.name }}</div>\n <div class=\"dr-select__option-with-desc__description\">{{ item?.description }}</div>\n </div>\n </ng-template>\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\n <ng-container\n [ngTemplateOutlet]=\"optionFooterTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, close: selectComponent.close.bind(selectComponent) }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"groupBy\" ng-optgroup-tmp let-item=\"item\">\n {{ item[groupBy] }}\n </ng-template>\n <ng-template ng-loadingspinner-tmp>\n <div\n *ngIf=\"loading\"\n class=\"dr-select__loading\"\n [drSpinner]=\"loading\"\n [drSpinnerType]=\"'circle'\"\n [drSpinnerSize]=\"'small'\"\n [drSpinnerNoOverlay]=\"true\"></div>\n </ng-template>\n</ng-select>\n<i *ngIf=\"type === 'search-input'\" class=\"search-icon dr-icon-search\"></i>\n", styles: [":host{width:100%;height:32px;font-family:Poppins,sans-serif}:host.textView::ng-deep{width:auto}:host.textView::ng-deep ng-select.ng-select .ng-select-container{border:none!important;cursor:pointer}:host.textView::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0;color:#4646ce}:host.textView::ng-deep ng-select.ng-select .ng-select-container .ng-value-container:hover{text-decoration-line:underline}:host.textView::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper{display:none}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#fff!important;border:none!important;cursor:default}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#aeabac!important}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-input input::placeholder{color:#aeabac}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-value-container:hover{text-decoration-line:none}:host.no-left-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}:host.no-right-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}:host.no-right-border ::ng-deep ng-select.ng-select .ng-select-container{border-right:none!important}:host.no-left-border ::ng-deep ng-select.ng-select .ng-select-container{border-left:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container{min-height:32px;height:32px;width:100%;border-radius:6px;border:1px solid #9ea1aa;box-shadow:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container:hover{border-color:#4646ce}:host ::ng-deep ng-select.ng-select .ng-select-container:focus-within{border-color:#4646ce}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input{top:0!important;line-height:30px;padding:0 50px 0 8px!important;color:#333;font-size:14px;font-weight:400}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 8px;height:100%;overflow:auto;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 0 0 3px!important}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper{margin-right:7px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper .ng-arrow{border:none;width:auto;height:auto;display:flex;text-decoration-line:none;top:0}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper .ng-arrow:before{font-family:DataRails!important;content:\"\\ea17\";font-size:24px;color:#6d6e6f}:host ::ng-deep ng-select.ng-select.ng-select-opened .ng-select-container{border-radius:6px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container{max-height:58px;height:100%}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:58px;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{color:#333;height:24px;padding:2px 16px;font-size:12px;margin:2px 4px 2px 0;background:#f0f1f4;display:flex;flex-direction:row-reverse;align-items:center;border-radius:12px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-label{line-height:20px;padding:0!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon{border:none!important;padding:0!important;width:20px;display:flex;align-items:center;color:transparent;margin-left:4px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:before{font-family:DataRails!important;content:\"\\ea73\";font-size:20px;color:#333}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon,:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:hover{background:transparent!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#f0f1f4!important;border:1px solid #aeabac!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#aeabac!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-arrow{color:#aeabac}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-arrow:before{color:#aeabac}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-input input::placeholder{color:#aeabac}:host ::ng-deep ng-select.ng-select.ng-select-single.ng-invalid.ng-touched .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-multiple.ng-invalid.ng-touched .ng-select-container{border-color:#bf1d30}:host ::ng-deep ng-select.ng-select--multiple-height-increased.ng-select-multiple .ng-select-container{max-height:88px}:host ::ng-deep ng-select.ng-select--multiple-height-increased.ng-select-multiple .ng-select-container .ng-value-container{max-height:88px}:host ::ng-deep ng-select.ng-select--no-value-padding .ng-select-container .ng-value-container .ng-value,:host ::ng-deep ng-select.ng-select--no-value-padding.ng-select-multiple .ng-select-container .ng-value-container .ng-value{padding:0}:host ::ng-deep ng-select.ng-select--no-value-padding .ng-select-container .ng-value-container .ng-value .ng-select-user-label,:host ::ng-deep ng-select.ng-select--no-value-padding.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-select-user-label{height:100%}:host.ng-invalid.ng-touched::ng-deep ng-select.ng-select .ng-select-container{border-color:#bf1d30}:host .dr-select__loading{position:relative;height:32px;width:24px}:host.search-input{position:relative}:host.search-input .search-icon{position:absolute;top:4px;right:16px;color:#6d6e6f;z-index:1001}:host.search-input::ng-deep ng-select.ng-select .ng-select-container{border-radius:16px}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper{display:none!important}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-clear-wrapper{display:flex;justify-content:center;align-items:center;right:40px;top:1px;width:24px;height:24px}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-clear-wrapper .ng-clear{font-size:24px;font-weight:300;color:#6d6e6f}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-input,:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 16px!important;width:calc(100% - 63px)}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-input input,:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-value-container input{height:100%}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select{font-family:Poppins,sans-serif;border:1px solid #dfe0e3;border-radius:4px!important;margin:8px 0;box-shadow:0 4px 8px 1px #00000040;background-color:#fff;overflow:hidden;padding:8px 0}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.textView{width:auto!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:empty{display:none}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;min-height:36px;padding:8px 12px;font-size:14px;line-height:22px;background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option>.ng-option-label{text-overflow:ellipsis;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-marked{background:#f5f5f5}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{background:#eaeaff;color:#333}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected span,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked span{font-weight:400!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled{cursor:default}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled>div{color:#aeabac}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled>div.dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{color:#aeabac}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled[role=group]{font-size:14px;line-height:22px;color:#aeabac;cursor:default}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled[role=group]:not(:first-of-type){border-top:1px solid #dfe0e3}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled[role=group]:hover{background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .dr-select__option-with-desc__wrapper{color:#333}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{max-width:-moz-fit-content;max-width:fit-content;word-break:break-word;white-space:normal;color:#6d6e6f;font-weight:400;font-size:12px;line-height:20px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected.ng-option-marked .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{color:#6d6e6f}::ng-deep .ng-dropdown-panel--with-search .ng-dropdown-header{border-bottom:none}.custom-backdrop{position:fixed;inset:0;overflow:hidden;pointer-events:none}\n"] }]
326
+ ], template: "<ng-select\n [(ngModel)]=\"selectedItem\"\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [multiple]=\"multiple\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n [hideSelected]=\"hideSelected\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [readonly]=\"readonly\"\n [closeOnSelect]=\"closeOnSelect\"\n [disabled]=\"disabled\"\n [labelForId]=\"id\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [keyDownFn]=\"keyDownFn\"\n [searchFn]=\"searchFn\"\n [isOpen]=\"(type !== 'search-input' || !!selectComponent.searchTerm?.length) && isOpen\"\n [groupBy]=\"groupBy\"\n [attr.autofocus]=\"autofocus\"\n [selectOnTab]=\"selectOnTabKeyPress\"\n (keydown.tab)=\"onTabKeypress($event)\"\n (change)=\"onValueSelected(selectedItem)\"\n (open)=\"open.emit($event); onDropdownOpen()\"\n (close)=\"onClose($event)\"\n class=\"dr-select\"\n [class.ng-select--no-value-padding]=\"noValuePadding\"\n [class.ng-select--multiple-height-increased]=\"multipleHeightIncreased\"\n #selectComponent>\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template\n ng-header-tmp\n *ngIf=\"!optionHeaderTemplate && isDisplayingSearchInHeader && items?.length >= minItemsToDisplaySearchInHeader\"\n let-item=\"item\">\n <dr-input\n class=\"dr-select__search\"\n [ngModel]=\"selectComponent.searchTerm\"\n (ngModelChange)=\"selectComponent.itemsList.filter($event + '')\"\n type=\"search\">\n </dr-input>\n </ng-template>\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"multiLabelTemplate\" ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"multiLabelTemplate\" [ngTemplateOutletContext]=\"{ items: items, clear: clear }\">\n </ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{ item: item, item$: item$ }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\n <div class=\"dr-select__option-with-desc__wrapper\">\n <div>{{ item.name }}</div>\n <div class=\"dr-select__option-with-desc__description\">{{ item?.description }}</div>\n </div>\n </ng-template>\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\n <ng-container\n [ngTemplateOutlet]=\"optionFooterTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, close: selectComponent.close.bind(selectComponent) }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"groupBy\" ng-optgroup-tmp let-item=\"item\">\n {{ item[groupBy] }}\n </ng-template>\n <ng-template ng-loadingspinner-tmp>\n <div\n *ngIf=\"loading\"\n class=\"dr-select__loading\"\n [drSpinner]=\"loading\"\n [drSpinnerType]=\"'circle'\"\n [drSpinnerSize]=\"'small'\"\n [drSpinnerNoOverlay]=\"true\"></div>\n </ng-template>\n</ng-select>\n<i *ngIf=\"type === 'search-input'\" class=\"search-icon dr-icon-search\"></i>\n", styles: [":host{width:100%;height:32px;font-family:Poppins,sans-serif}:host.textView::ng-deep{width:auto}:host.textView::ng-deep ng-select.ng-select .ng-select-container{border:none!important;cursor:pointer}:host.textView::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0;color:#4646ce}:host.textView::ng-deep ng-select.ng-select .ng-select-container .ng-value-container:hover{text-decoration-line:underline}:host.textView::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper{display:none}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#fff!important;border:none!important;cursor:default}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#aeabac!important}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-input input::placeholder{color:#aeabac}:host.textView::ng-deep ng-select.ng-select.ng-select-disabled .ng-value-container:hover{text-decoration-line:none}:host.no-left-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}:host.no-right-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}:host.no-right-border ::ng-deep ng-select.ng-select .ng-select-container{border-right:none!important}:host.no-left-border ::ng-deep ng-select.ng-select .ng-select-container{border-left:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container{min-height:32px;height:32px;width:100%;border-radius:6px;border:1px solid #9ea1aa;box-shadow:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container:hover{border-color:#4646ce}:host ::ng-deep ng-select.ng-select .ng-select-container:focus-within{border-color:#4646ce}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input{top:0!important;line-height:30px;padding:0 50px 0 8px!important;color:#333;font-size:14px;font-weight:400}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 8px;height:100%;overflow:auto;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 0 0 3px!important}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper{margin-right:7px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper .ng-arrow{border:none;width:auto;height:auto;display:flex;text-decoration-line:none;top:0}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper .ng-arrow:before{font-family:DataRails!important;content:\"\\ea17\";font-size:24px;color:#6d6e6f}:host ::ng-deep ng-select.ng-select.ng-select-opened .ng-select-container{border-radius:6px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container{max-height:58px;height:100%}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:58px;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{color:#333;height:24px;padding:2px 16px;font-size:12px;margin:2px 4px 2px 0;background:#f0f1f4;display:flex;flex-direction:row-reverse;align-items:center;border-radius:12px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-label{line-height:20px;padding:0!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon{border:none!important;padding:0!important;width:20px;display:flex;align-items:center;color:transparent;margin-left:4px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:before{font-family:DataRails!important;content:\"\\ea73\";font-size:20px;color:#333}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon,:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:hover{background:transparent!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#f0f1f4!important;border:1px solid #aeabac!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#aeabac!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-arrow{color:#aeabac}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-arrow:before{color:#aeabac}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-input input::placeholder{color:#aeabac}:host ::ng-deep ng-select.ng-select.ng-select-single.ng-invalid.ng-touched .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-multiple.ng-invalid.ng-touched .ng-select-container{border-color:#bf1d30}:host ::ng-deep ng-select.ng-select--multiple-height-increased.ng-select-multiple .ng-select-container{max-height:88px}:host ::ng-deep ng-select.ng-select--multiple-height-increased.ng-select-multiple .ng-select-container .ng-value-container{max-height:88px}:host ::ng-deep ng-select.ng-select--no-value-padding .ng-select-container .ng-value-container .ng-value,:host ::ng-deep ng-select.ng-select--no-value-padding.ng-select-multiple .ng-select-container .ng-value-container .ng-value{padding:0}:host ::ng-deep ng-select.ng-select--no-value-padding .ng-select-container .ng-value-container .ng-value .ng-select-user-label,:host ::ng-deep ng-select.ng-select--no-value-padding.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-select-user-label{height:100%}:host.ng-invalid.ng-touched::ng-deep ng-select.ng-select .ng-select-container{border-color:#bf1d30}:host .dr-select__loading{position:relative;height:32px;width:24px}:host.search-input{position:relative}:host.search-input .search-icon{position:absolute;top:4px;right:16px;color:#6d6e6f;z-index:1001}:host.search-input::ng-deep ng-select.ng-select .ng-select-container{border-radius:16px}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-arrow-wrapper{display:none!important}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-clear-wrapper{display:flex;justify-content:center;align-items:center;right:40px;top:1px;width:24px;height:24px}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-clear-wrapper .ng-clear{font-size:24px;font-weight:300;color:#6d6e6f}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-input,:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 16px!important;width:calc(100% - 63px)}:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-input input,:host.search-input::ng-deep ng-select.ng-select .ng-select-container .ng-value-container input{height:100%}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select{font-family:Poppins,sans-serif;border:1px solid #dfe0e3;border-radius:4px!important;margin:8px 0;box-shadow:0 4px 8px 1px #00000040;background-color:#fff;overflow:hidden;padding:8px 0}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.textView{width:auto!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:empty{display:none}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;min-height:36px;padding:8px 12px;font-size:14px;line-height:22px;background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option>.ng-option-label{text-overflow:ellipsis;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-marked{background:#f5f5f5}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{background:#eaeaff;color:#333}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected span,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked span{font-weight:400!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled{cursor:default}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled>div{color:#aeabac}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled>div.dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{color:#aeabac}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled[role=group]{font-size:14px;line-height:22px;color:#aeabac;cursor:default}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled[role=group]:not(:first-of-type){border-top:1px solid #dfe0e3}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-disabled[role=group]:hover{background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .dr-select__option-with-desc__wrapper{color:#333}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{max-width:-moz-fit-content;max-width:fit-content;word-break:break-word;white-space:normal;color:#6d6e6f;font-weight:400;font-size:12px;line-height:20px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected.ng-option-marked .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{color:#6d6e6f}::ng-deep .ng-dropdown-panel--with-search .ng-dropdown-header{border-bottom:none}.custom-backdrop{position:fixed;inset:0;overflow:hidden;pointer-events:none}\n"] }]
325
327
  }], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, { type: [{
326
328
  type: Input
327
329
  }, {
@@ -375,6 +377,9 @@ export class DrSelectComponent {
375
377
  type: Input
376
378
  }], id: [{
377
379
  type: Input
380
+ }], hostId: [{
381
+ type: HostBinding,
382
+ args: ['attr.id']
378
383
  }], keyDownFn: [{
379
384
  type: Input
380
385
  }], selectedItem: [{
@@ -421,4 +426,4 @@ export class DrSelectComponent {
421
426
  type: HostBinding,
422
427
  args: ['class.textView']
423
428
  }] }); })();
424
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QvZHItc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QvZHItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ29CakQsMkJBQWtIOzs7O0lBQXBHLCtEQUF5QyxpRUFBQTs7O0lBRDNELG9GQUVjOzs7O0lBS1YsbUNBSWtCO0lBRGQsa05BQWlCLGVBQUEsOEJBQTBDLEVBQUUsQ0FBQyxDQUFBLElBQUM7SUFFbkUsaUJBQVc7Ozs7SUFIUCx3Q0FBc0M7OztJQU45QyxvRkFVYzs7O0lBRVYsMkJBQTJHOzs7O0lBQTdGLHdEQUFrQyxpRUFBQTs7O0lBRHBELG9GQUVjOzs7O0lBRVYsMkJBQ2U7Ozs7O0lBREQsNkRBQXVDLDZFQUFBOzs7SUFEekQsb0ZBR2M7Ozs7SUFFViwyQkFBMEg7Ozs7O0lBQTVHLHlEQUFtQyw0RUFBQTs7O0lBRHJELHFGQUVjOzs7SUFFViwrQkFBa0QsVUFBQTtJQUN6QyxZQUFlO0lBQUEsaUJBQU07SUFDMUIsK0JBQXNEO0lBQUEsWUFBdUI7SUFBQSxpQkFB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VTtrQkFBeEMsV0FBVzttQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgSXRlbXNMaXN0IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QvbGliL2l0ZW1zLWxpc3QnO1xuXG5jb25zdCBTRUxFQ1RfSE9TVF9BVFRSSUJVVEVTID0gWyduby1sZWZ0LWJvcmRlcicsICduby1sZWZ0LWJvcmRlci1yYWRpdXMnLCAnbm8tcmlnaHQtYm9yZGVyJywgJ25vLXJpZ2h0LWJvcmRlci1yYWRpdXMnXTtcblxuaW50ZXJmYWNlIElOZ1NlbGVjdENvbXBvbmVudEFjY2Vzc29yIHtcbiAgICBjbG9zZTogKCkgPT4gdm9pZDtcbiAgICB3cml0ZVZhbHVlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICBibHVyOiAoKSA9PiB2b2lkO1xuICAgIGl0ZW1zTGlzdDogSXRlbXNMaXN0O1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBEclNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICB0eXBlOiAnc2VsZWN0JyB8ICdzZWFyY2gtaW5wdXQnID0gJ3NlbGVjdCc7XG5cbiAgICBASW5wdXQoKSBjbGVhcklucHV0VGV4dEFmdGVyU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXRlbXM6IEFycmF5PGFueT4gfCBSZWFkb25seTxBcnJheTxhbnk+PiA9IFtdO1xuICAgIEBJbnB1dCgpIGFkZFRhZzogYm9vbGVhbiB8ICgodGVybTogc3RyaW5nKSA9PiBhbnkgfCBQcm9taXNlPGFueT4pO1xuICAgIEBJbnB1dCgpIGFwcGVuZFRvID0gJ2JvZHknO1xuICAgIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNsZWFyYWJsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNEaXNwbGF5aW5nU2VhcmNoSW5IZWFkZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWluSXRlbXNUb0Rpc3BsYXlTZWFyY2hJbkhlYWRlciA9IDExO1xuXG4gICAgQElucHV0KCkgc2VhcmNoRm46ICh0ZXJtOiBzdHJpbmcsIGl0ZW06IGFueSkgPT4gYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtdWx0aXBsZUhlaWdodEluY3JlYXNlZD86IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZVNlbGVjdGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1heFNlbGVjdGVkSXRlbXM6IG51bWJlcjtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbG9hZGluZ1RleHQ6IHN0cmluZyA9ICdMb2FkaW5nLi4uJztcbiAgICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdyb3VwQnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIG9wdGlvbldpdGhEZXNjcmlwdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkga2V5RG93bkZuOiAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZEl0ZW06IGFueTtcbiAgICBASW5wdXQoKSBkcm9wZG93bkNsYXNzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xvc2VPblNlbGVjdCA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBzZXQgdGV4dFZpZXcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuYXNUZXh0VmlldyA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBhdXRvZm9jdXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNPcGVuOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5vVmFsdWVQYWRkaW5nID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2VsZWN0T25UYWJLZXlQcmVzcyA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb3BlbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgY2xvc2VVcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAVmlld0NoaWxkKE5nU2VsZWN0Q29tcG9uZW50LCB7IHJlYWQ6IE5nU2VsZWN0Q29tcG9uZW50IH0pIHByaXZhdGUgcmVhZG9ubHkgbmdTZWxlY3Q6IElOZ1NlbGVjdENvbXBvbmVudEFjY2Vzc29yO1xuICAgIEBDb250ZW50Q2hpbGQoJ2xhYmVsVGVtcGxhdGUnKSBsYWJlbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ211bHRpTGFiZWxUZW1wbGF0ZScpIG11bHRpTGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdvcHRpb25UZW1wbGF0ZScpIG9wdGlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ29wdGlvbkhlYWRlclRlbXBsYXRlJykgb3B0aW9uSGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnb3B0aW9uRm9vdGVyVGVtcGxhdGUnKSBvcHRpb25Gb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRleHRWaWV3JykgYXNUZXh0VmlldyA9IGZhbHNlO1xuICAgIGJhY2tkcm9wRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge1xuICAgICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgU0VMRUNUX0hPU1RfQVRUUklCVVRFUykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzSG9zdEF0dHJpYnV0ZXMoYXR0cikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZChhdHRyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtKTtcblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnc2VhcmNoLWlucHV0JyAmJiAhdGhpcy5zZWxlY3RlZEl0ZW0gJiYgdGhpcy5uZ1NlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy5uZ1NlbGVjdC5zZWFyY2hUZXJtID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG5cbiAgICAgICAgaWYgKGZuICYmIHRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdTZWxlY3QuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBvbkRyb3Bkb3duT3BlbigpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUJhY2tkcm9wKCk7XG4gICAgICAgICAgICBjb25zdCBjbGFzc2VzVG9BZGQgPSBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFzVGV4dFZpZXcpIHtcbiAgICAgICAgICAgICAgICBjbGFzc2VzVG9BZGQucHVzaCgndGV4dFZpZXcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5kcm9wZG93bkNsYXNzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNsYXNzZXNUb0FkZC5wdXNoKC4uLnRoaXMuZHJvcGRvd25DbGFzcy5zcGxpdCgnICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRGlzcGxheWluZ1NlYXJjaEluSGVhZGVyICYmICF0aGlzLm9wdGlvbkhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgY2xhc3Nlc1RvQWRkLnB1c2goJ25nLWRyb3Bkb3duLXBhbmVsLS13aXRoLXNlYXJjaCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZHJvcGRvd24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubmctZHJvcGRvd24tcGFuZWwnKTtcbiAgICAgICAgICAgIGlmIChkcm9wZG93bikge1xuICAgICAgICAgICAgICAgIGRyb3Bkb3duLmNsYXNzTGlzdC5hZGQoLi4uY2xhc3Nlc1RvQWRkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZVNlbGVjdGVkKHNlbGVjdGVkSXRlbTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNsZWFySW5wdXRUZXh0QWZ0ZXJTZWxlY3Rpb24gJiYgdGhpcy5uZ1NlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy5uZ1NlbGVjdC5zZWFyY2hUZXJtID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25DaGFuZ2Uoc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdChzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIG9uVGFiS2V5cHJlc3MoZSkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RPblRhYktleVByZXNzICYmIHRoaXMubmdTZWxlY3QpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xvc2UoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmNsb3NlVXAuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMucmVtb3ZlQmFja2Ryb3AoKTtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3NlYXJjaC1pbnB1dCcgJiYgdGhpcy5uZ1NlbGVjdC5pdGVtc0xpc3Q/Lmxhc3RTZWxlY3RlZEl0ZW0/LmxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLm5nU2VsZWN0LnNlYXJjaFRlcm0gPSB0aGlzLm5nU2VsZWN0Lml0ZW1zTGlzdC5sYXN0U2VsZWN0ZWRJdGVtLmxhYmVsO1xuICAgICAgICAgICAgdGhpcy5uZ1NlbGVjdC5pdGVtc0xpc3QuZmlsdGVyKHRoaXMubmdTZWxlY3Quc2VhcmNoVGVybSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0Rpc3BsYXlpbmdTZWFyY2hJbkhlYWRlcikge1xuICAgICAgICAgICAgdGhpcy5uZ1NlbGVjdC5zZWFyY2hUZXJtID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubmdTZWxlY3QuaXRlbXNMaXN0LmZpbHRlcihudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUJhY2tkcm9wKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksICduby1zY3JvbGwnKTtcbiAgICAgICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY3VzdG9tLWJhY2tkcm9wJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy5iYWNrZHJvcEVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJlbW92ZUJhY2tkcm9wKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5iYWNrZHJvcEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgJ25vLXNjcm9sbCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzSG9zdEF0dHJpYnV0ZXMoLi4uYXR0cmlidXRlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuc29tZSgoYXR0cmlidXRlKSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICAgIHRoaXMubmdTZWxlY3Q/LmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPG5nLXNlbGVjdFxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJdGVtXCJcbiAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgIFtiaW5kTGFiZWxdPVwiYmluZExhYmVsXCJcbiAgICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZVwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbYWRkVGFnXT1cImFkZFRhZ1wiXG4gICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcbiAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXG4gICAgW3NlYXJjaGFibGVdPVwic2VhcmNoYWJsZVwiXG4gICAgW2hpZGVTZWxlY3RlZF09XCJoaWRlU2VsZWN0ZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgW2xvYWRpbmdUZXh0XT1cImxvYWRpbmdUZXh0XCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtjbG9zZU9uU2VsZWN0XT1cImNsb3NlT25TZWxlY3RcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbbWF4U2VsZWN0ZWRJdGVtc109XCJtYXhTZWxlY3RlZEl0ZW1zXCJcbiAgICBba2V5RG93bkZuXT1cImtleURvd25GblwiXG4gICAgW3NlYXJjaEZuXT1cInNlYXJjaEZuXCJcbiAgICBbaXNPcGVuXT1cIih0eXBlICE9PSAnc2VhcmNoLWlucHV0JyB8fCAhIXNlbGVjdENvbXBvbmVudC5zZWFyY2hUZXJtPy5sZW5ndGgpICYmIGlzT3BlblwiXG4gICAgW2dyb3VwQnldPVwiZ3JvdXBCeVwiXG4gICAgW2F0dHIuYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgW3NlbGVjdE9uVGFiXT1cInNlbGVjdE9uVGFiS2V5UHJlc3NcIlxuICAgIChrZXlkb3duLnRhYik9XCJvblRhYktleXByZXNzKCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25WYWx1ZVNlbGVjdGVkKHNlbGVjdGVkSXRlbSlcIlxuICAgIChvcGVuKT1cIm9wZW4uZW1pdCgkZXZlbnQpOyBvbkRyb3Bkb3duT3BlbigpXCJcbiAgICAoY2xvc2UpPVwib25DbG9zZSgkZXZlbnQpXCJcbiAgICBjbGFzcz1cImRyLXNlbGVjdFwiXG4gICAgW2NsYXNzLm5nLXNlbGVjdC0tbm8tdmFsdWUtcGFkZGluZ109XCJub1ZhbHVlUGFkZGluZ1wiXG4gICAgW2NsYXNzLm5nLXNlbGVjdC0tbXVsdGlwbGUtaGVpZ2h0LWluY3JlYXNlZF09XCJtdWx0aXBsZUhlaWdodEluY3JlYXNlZFwiXG4gICAgI3NlbGVjdENvbXBvbmVudD5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb25IZWFkZXJUZW1wbGF0ZVwiIG5nLWhlYWRlci10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uSGVhZGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBuZy1oZWFkZXItdG1wXG4gICAgICAgICpuZ0lmPVwiIW9wdGlvbkhlYWRlclRlbXBsYXRlICYmIGlzRGlzcGxheWluZ1NlYXJjaEluSGVhZGVyICYmIGl0ZW1zPy5sZW5ndGggPj0gbWluSXRlbXNUb0Rpc3BsYXlTZWFyY2hJbkhlYWRlclwiXG4gICAgICAgIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZHItaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZHItc2VsZWN0X19zZWFyY2hcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0Q29tcG9uZW50LnNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0Q29tcG9uZW50Lml0ZW1zTGlzdC5maWx0ZXIoJGV2ZW50ICsgJycpXCJcbiAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIj5cbiAgICAgICAgPC9kci1pbnB1dD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImxhYmVsVGVtcGxhdGVcIiBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW06IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibXVsdGlMYWJlbFRlbXBsYXRlXCIgbmctbXVsdGktbGFiZWwtdG1wIGxldC1pdGVtcz1cIml0ZW1zXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtdWx0aUxhYmVsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtczogaXRlbXMsIGNsZWFyOiBjbGVhciB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVcIiBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pdGVtJD1cIml0ZW0kXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtLCBpdGVtJDogaXRlbSQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uV2l0aERlc2NyaXB0aW9uXCIgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyLXNlbGVjdF9fb3B0aW9uLXdpdGgtZGVzY19fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkci1zZWxlY3RfX29wdGlvbi13aXRoLWRlc2NfX2Rlc2NyaXB0aW9uXCI+e3sgaXRlbT8uZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb25Gb290ZXJUZW1wbGF0ZVwiIG5nLWZvb3Rlci10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbkZvb3RlclRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW06IGl0ZW0sIGNsb3NlOiBzZWxlY3RDb21wb25lbnQuY2xvc2UuYmluZChzZWxlY3RDb21wb25lbnQpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImdyb3VwQnlcIiBuZy1vcHRncm91cC10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIHt7IGl0ZW1bZ3JvdXBCeV0gfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBuZy1sb2FkaW5nc3Bpbm5lci10bXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImRyLXNlbGVjdF9fbG9hZGluZ1wiXG4gICAgICAgICAgICBbZHJTcGlubmVyXT1cImxvYWRpbmdcIlxuICAgICAgICAgICAgW2RyU3Bpbm5lclR5cGVdPVwiJ2NpcmNsZSdcIlxuICAgICAgICAgICAgW2RyU3Bpbm5lclNpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICBbZHJTcGlubmVyTm9PdmVybGF5XT1cInRydWVcIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1zZWxlY3Q+XG48aSAqbmdJZj1cInR5cGUgPT09ICdzZWFyY2gtaW5wdXQnXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBkci1pY29uLXNlYXJjaFwiPjwvaT5cbiJdfQ==
429
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QvZHItc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QvZHItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ29CakQsMkJBQWtIOzs7O0lBQXBHLCtEQUF5QyxpRUFBQTs7O0lBRDNELG9GQUVjOzs7O0lBS1YsbUNBSWtCO0lBRGQsa05BQWlCLGVBQUEsOEJBQTBDLEVBQUUsQ0FBQyxDQUFBLElBQUM7SUFFbkUsaUJBQVc7Ozs7SUFIUCx3Q0FBc0M7OztJQU45QyxvRkFVYzs7O0lBRVYsMkJBQTJHOzs7O0lBQTdGLHdEQUFrQyxpRUFBQTs7O0lBRHBELG9GQUVjOzs7O0lBRVYsMkJBQ2U7Ozs7O0lBREQsNkRBQXVDLDZFQUFBOzs7SUFEekQsb0ZBR2M7Ozs7SUFFViwyQkFBMEg7Ozs7O0lBQTVHLHlEQUFtQyw0RUFBQTs7O0lBRHJELHFGQUVjOzs7SUFFViwrQkFBa0QsVUFBQTtJQUN6QyxZQUFlO0lBQUEsaUJBQU07SUFDMUIsK0JBQXNEO0lBQUEsWUFBdUI7SUFBQSxpQkFB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QVk7bUJBQUMsc0JBQXNCO1lBQ0Usb0JBQW9CO2tCQUF6RCxZQUFZO21CQUFDLHNCQUFzQjtZQUNMLFVBQVU7a0JBQXhDLFdBQVc7bUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1NlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcbmltcG9ydCB7IEl0ZW1zTGlzdCB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0L2xpYi9pdGVtcy1saXN0JztcblxuY29uc3QgU0VMRUNUX0hPU1RfQVRUUklCVVRFUyA9IFsnbm8tbGVmdC1ib3JkZXInLCAnbm8tbGVmdC1ib3JkZXItcmFkaXVzJywgJ25vLXJpZ2h0LWJvcmRlcicsICduby1yaWdodC1ib3JkZXItcmFkaXVzJ107XG5cbmludGVyZmFjZSBJTmdTZWxlY3RDb21wb25lbnRBY2Nlc3NvciB7XG4gICAgY2xvc2U6ICgpID0+IHZvaWQ7XG4gICAgd3JpdGVWYWx1ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgYmx1cjogKCkgPT4gdm9pZDtcbiAgICBpdGVtc0xpc3Q6IEl0ZW1zTGlzdDtcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRHJTZWxlY3RDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEclNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgdHlwZTogJ3NlbGVjdCcgfCAnc2VhcmNoLWlucHV0JyA9ICdzZWxlY3QnO1xuXG4gICAgQElucHV0KCkgY2xlYXJJbnB1dFRleHRBZnRlclNlbGVjdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGl0ZW1zOiBBcnJheTxhbnk+IHwgUmVhZG9ubHk8QXJyYXk8YW55Pj4gPSBbXTtcbiAgICBASW5wdXQoKSBhZGRUYWc6IGJvb2xlYW4gfCAoKHRlcm06IHN0cmluZykgPT4gYW55IHwgUHJvbWlzZTxhbnk+KTtcbiAgICBASW5wdXQoKSBhcHBlbmRUbyA9ICdib2R5JztcbiAgICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBjbGVhcmFibGU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBzZWFyY2hhYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzRGlzcGxheWluZ1NlYXJjaEluSGVhZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1pbkl0ZW1zVG9EaXNwbGF5U2VhcmNoSW5IZWFkZXIgPSAxMTtcblxuICAgIEBJbnB1dCgpIHNlYXJjaEZuOiAodGVybTogc3RyaW5nLCBpdGVtOiBhbnkpID0+IGJvb2xlYW47XG4gICAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbXVsdGlwbGVIZWlnaHRJbmNyZWFzZWQ/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVTZWxlY3RlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtYXhTZWxlY3RlZEl0ZW1zOiBudW1iZXI7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGxvYWRpbmdUZXh0OiBzdHJpbmcgPSAnTG9hZGluZy4uLic7XG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBncm91cEJ5ID0gbnVsbDtcbiAgICBASW5wdXQoKSBvcHRpb25XaXRoRGVzY3JpcHRpb24gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpZD86IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBob3N0SWQgPSBudWxsO1xuICAgIEBJbnB1dCgpIGtleURvd25GbjogKCRldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRJdGVtOiBhbnk7XG4gICAgQElucHV0KCkgZHJvcGRvd25DbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNsb3NlT25TZWxlY3QgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgc2V0IHRleHRWaWV3KHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFzVGV4dFZpZXcgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzT3BlbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBub1ZhbHVlUGFkZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNlbGVjdE9uVGFiS2V5UHJlc3MgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9wZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIGNsb3NlVXA6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQFZpZXdDaGlsZChOZ1NlbGVjdENvbXBvbmVudCwgeyByZWFkOiBOZ1NlbGVjdENvbXBvbmVudCB9KSBwcml2YXRlIHJlYWRvbmx5IG5nU2VsZWN0OiBJTmdTZWxlY3RDb21wb25lbnRBY2Nlc3NvcjtcbiAgICBAQ29udGVudENoaWxkKCdsYWJlbFRlbXBsYXRlJykgbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdtdWx0aUxhYmVsVGVtcGxhdGUnKSBtdWx0aUxhYmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnb3B0aW9uVGVtcGxhdGUnKSBvcHRpb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdvcHRpb25IZWFkZXJUZW1wbGF0ZScpIG9wdGlvbkhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ29wdGlvbkZvb3RlclRlbXBsYXRlJykgb3B0aW9uRm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZXh0VmlldycpIGFzVGV4dFZpZXcgPSBmYWxzZTtcbiAgICBiYWNrZHJvcEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIFNFTEVDVF9IT1NUX0FUVFJJQlVURVMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0hvc3RBdHRyaWJ1dGVzKGF0dHIpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoYXR0cik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4ge307XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkSXRlbSk7XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3NlYXJjaC1pbnB1dCcgJiYgIXRoaXMuc2VsZWN0ZWRJdGVtICYmIHRoaXMubmdTZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMubmdTZWxlY3Quc2VhcmNoVGVybSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuXG4gICAgICAgIGlmIChmbiAmJiB0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkSXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nU2VsZWN0LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25Ecm9wZG93bk9wZW4oKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVCYWNrZHJvcCgpO1xuICAgICAgICAgICAgY29uc3QgY2xhc3Nlc1RvQWRkID0gW107XG4gICAgICAgICAgICBpZiAodGhpcy5hc1RleHRWaWV3KSB7XG4gICAgICAgICAgICAgICAgY2xhc3Nlc1RvQWRkLnB1c2goJ3RleHRWaWV3Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuZHJvcGRvd25DbGFzcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjbGFzc2VzVG9BZGQucHVzaCguLi50aGlzLmRyb3Bkb3duQ2xhc3Muc3BsaXQoJyAnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pc0Rpc3BsYXlpbmdTZWFyY2hJbkhlYWRlciAmJiAhdGhpcy5vcHRpb25IZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIGNsYXNzZXNUb0FkZC5wdXNoKCduZy1kcm9wZG93bi1wYW5lbC0td2l0aC1zZWFyY2gnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5nLWRyb3Bkb3duLXBhbmVsJyk7XG4gICAgICAgICAgICBpZiAoZHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICBkcm9wZG93bi5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzZXNUb0FkZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIG9uVmFsdWVTZWxlY3RlZChzZWxlY3RlZEl0ZW06IGFueSkge1xuICAgICAgICBpZiAodGhpcy5jbGVhcklucHV0VGV4dEFmdGVyU2VsZWN0aW9uICYmIHRoaXMubmdTZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMubmdTZWxlY3Quc2VhcmNoVGVybSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG5cbiAgICBvblRhYktleXByZXNzKGUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0T25UYWJLZXlQcmVzcyAmJiB0aGlzLm5nU2VsZWN0KSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNsb3NlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5jbG9zZVVwLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzZWFyY2gtaW5wdXQnICYmIHRoaXMubmdTZWxlY3QuaXRlbXNMaXN0Py5sYXN0U2VsZWN0ZWRJdGVtPy5sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5uZ1NlbGVjdC5zZWFyY2hUZXJtID0gdGhpcy5uZ1NlbGVjdC5pdGVtc0xpc3QubGFzdFNlbGVjdGVkSXRlbS5sYWJlbDtcbiAgICAgICAgICAgIHRoaXMubmdTZWxlY3QuaXRlbXNMaXN0LmZpbHRlcih0aGlzLm5nU2VsZWN0LnNlYXJjaFRlcm0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNEaXNwbGF5aW5nU2VhcmNoSW5IZWFkZXIpIHtcbiAgICAgICAgICAgIHRoaXMubmdTZWxlY3Quc2VhcmNoVGVybSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLm5nU2VsZWN0Lml0ZW1zTGlzdC5maWx0ZXIobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCAnbm8tc2Nyb2xsJyk7XG4gICAgICAgIHRoaXMuYmFja2Ryb3BFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2N1c3RvbS1iYWNrZHJvcCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuYmFja2Ryb3BFbGVtZW50KTtcbiAgICB9XG5cbiAgICByZW1vdmVCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksICduby1zY3JvbGwnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy5iYWNrZHJvcEVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0hvc3RBdHRyaWJ1dGVzKC4uLmF0dHJpYnV0ZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLnNvbWUoKGF0dHJpYnV0ZSkgPT4gdGhpcy5nZXRIb3N0RWxlbWVudCgpLmhhc0F0dHJpYnV0ZShhdHRyaWJ1dGUpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuICAgICAgICB0aGlzLm5nU2VsZWN0Py5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjxuZy1zZWxlY3RcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkSXRlbVwiXG4gICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICBbYmluZExhYmVsXT1cImJpbmRMYWJlbFwiXG4gICAgW2JpbmRWYWx1ZV09XCJiaW5kVmFsdWVcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgW2FkZFRhZ109XCJhZGRUYWdcIlxuICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgIFtzZWFyY2hhYmxlXT1cInNlYXJjaGFibGVcIlxuICAgIFtoaWRlU2VsZWN0ZWRdPVwiaGlkZVNlbGVjdGVkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtsb2FkaW5nVGV4dF09XCJsb2FkaW5nVGV4dFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbY2xvc2VPblNlbGVjdF09XCJjbG9zZU9uU2VsZWN0XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtsYWJlbEZvcklkXT1cImlkXCJcbiAgICBbbWF4U2VsZWN0ZWRJdGVtc109XCJtYXhTZWxlY3RlZEl0ZW1zXCJcbiAgICBba2V5RG93bkZuXT1cImtleURvd25GblwiXG4gICAgW3NlYXJjaEZuXT1cInNlYXJjaEZuXCJcbiAgICBbaXNPcGVuXT1cIih0eXBlICE9PSAnc2VhcmNoLWlucHV0JyB8fCAhIXNlbGVjdENvbXBvbmVudC5zZWFyY2hUZXJtPy5sZW5ndGgpICYmIGlzT3BlblwiXG4gICAgW2dyb3VwQnldPVwiZ3JvdXBCeVwiXG4gICAgW2F0dHIuYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgW3NlbGVjdE9uVGFiXT1cInNlbGVjdE9uVGFiS2V5UHJlc3NcIlxuICAgIChrZXlkb3duLnRhYik9XCJvblRhYktleXByZXNzKCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25WYWx1ZVNlbGVjdGVkKHNlbGVjdGVkSXRlbSlcIlxuICAgIChvcGVuKT1cIm9wZW4uZW1pdCgkZXZlbnQpOyBvbkRyb3Bkb3duT3BlbigpXCJcbiAgICAoY2xvc2UpPVwib25DbG9zZSgkZXZlbnQpXCJcbiAgICBjbGFzcz1cImRyLXNlbGVjdFwiXG4gICAgW2NsYXNzLm5nLXNlbGVjdC0tbm8tdmFsdWUtcGFkZGluZ109XCJub1ZhbHVlUGFkZGluZ1wiXG4gICAgW2NsYXNzLm5nLXNlbGVjdC0tbXVsdGlwbGUtaGVpZ2h0LWluY3JlYXNlZF09XCJtdWx0aXBsZUhlaWdodEluY3JlYXNlZFwiXG4gICAgI3NlbGVjdENvbXBvbmVudD5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb25IZWFkZXJUZW1wbGF0ZVwiIG5nLWhlYWRlci10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uSGVhZGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBuZy1oZWFkZXItdG1wXG4gICAgICAgICpuZ0lmPVwiIW9wdGlvbkhlYWRlclRlbXBsYXRlICYmIGlzRGlzcGxheWluZ1NlYXJjaEluSGVhZGVyICYmIGl0ZW1zPy5sZW5ndGggPj0gbWluSXRlbXNUb0Rpc3BsYXlTZWFyY2hJbkhlYWRlclwiXG4gICAgICAgIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZHItaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZHItc2VsZWN0X19zZWFyY2hcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0Q29tcG9uZW50LnNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0Q29tcG9uZW50Lml0ZW1zTGlzdC5maWx0ZXIoJGV2ZW50ICsgJycpXCJcbiAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIj5cbiAgICAgICAgPC9kci1pbnB1dD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImxhYmVsVGVtcGxhdGVcIiBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW06IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibXVsdGlMYWJlbFRlbXBsYXRlXCIgbmctbXVsdGktbGFiZWwtdG1wIGxldC1pdGVtcz1cIml0ZW1zXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtdWx0aUxhYmVsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtczogaXRlbXMsIGNsZWFyOiBjbGVhciB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVcIiBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pdGVtJD1cIml0ZW0kXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtLCBpdGVtJDogaXRlbSQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uV2l0aERlc2NyaXB0aW9uXCIgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyLXNlbGVjdF9fb3B0aW9uLXdpdGgtZGVzY19fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkci1zZWxlY3RfX29wdGlvbi13aXRoLWRlc2NfX2Rlc2NyaXB0aW9uXCI+e3sgaXRlbT8uZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb25Gb290ZXJUZW1wbGF0ZVwiIG5nLWZvb3Rlci10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbkZvb3RlclRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW06IGl0ZW0sIGNsb3NlOiBzZWxlY3RDb21wb25lbnQuY2xvc2UuYmluZChzZWxlY3RDb21wb25lbnQpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImdyb3VwQnlcIiBuZy1vcHRncm91cC10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIHt7IGl0ZW1bZ3JvdXBCeV0gfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBuZy1sb2FkaW5nc3Bpbm5lci10bXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImRyLXNlbGVjdF9fbG9hZGluZ1wiXG4gICAgICAgICAgICBbZHJTcGlubmVyXT1cImxvYWRpbmdcIlxuICAgICAgICAgICAgW2RyU3Bpbm5lclR5cGVdPVwiJ2NpcmNsZSdcIlxuICAgICAgICAgICAgW2RyU3Bpbm5lclNpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICBbZHJTcGlubmVyTm9PdmVybGF5XT1cInRydWVcIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1zZWxlY3Q+XG48aSAqbmdJZj1cInR5cGUgPT09ICdzZWFyY2gtaW5wdXQnXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBkci1pY29uLXNlYXJjaFwiPjwvaT5cbiJdfQ==
@@ -32,6 +32,7 @@ export class DrToggleComponent {
32
32
  this.cdr = cdr;
33
33
  this._disabled = false;
34
34
  this._elementClass = [];
35
+ this.hostId = null;
35
36
  this.checkedChange = new EventEmitter();
36
37
  this.onChange = () => { };
37
38
  this.onTouched = () => { };
@@ -61,9 +62,10 @@ export class DrToggleComponent {
61
62
  this.onTouched();
62
63
  }
63
64
  /** @nocollapse */ static { this.ɵfac = function DrToggleComponent_Factory(t) { return new (t || DrToggleComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
64
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrToggleComponent, selectors: [["dr-toggle"]], hostVars: 2, hostBindings: function DrToggleComponent_HostBindings(rf, ctx) { if (rf & 2) {
65
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrToggleComponent, selectors: [["dr-toggle"]], hostVars: 3, hostBindings: function DrToggleComponent_HostBindings(rf, ctx) { if (rf & 2) {
66
+ i0.ɵɵattribute("id", ctx.hostId);
65
67
  i0.ɵɵclassMap(ctx.elementClass);
66
- } }, inputs: { toggleTitle: "toggleTitle", toggleTitleRight: "toggleTitleRight", successType: "successType", checkedStatus: "checkedStatus", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, features: [i0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }])], ngContentSelectors: _c0, decls: 7, vars: 9, consts: [["class", "toggle-title mr-3", 4, "ngIf"], [1, "toggle-container"], ["type", "checkbox", 3, "checked", "disabled", "click"], [1, "toggle-body"], ["class", "toggle-title ml-3", 4, "ngIf"], [1, "toggle-title", "mr-3"], [1, "toggle-title", "ml-3"]], template: function DrToggleComponent_Template(rf, ctx) { if (rf & 1) {
68
+ } }, inputs: { id: "id", toggleTitle: "toggleTitle", toggleTitleRight: "toggleTitleRight", successType: "successType", checkedStatus: "checkedStatus", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, features: [i0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }])], ngContentSelectors: _c0, decls: 7, vars: 10, consts: [["class", "toggle-title mr-3", 4, "ngIf"], [1, "toggle-container"], ["type", "checkbox", 3, "checked", "disabled", "click"], [1, "toggle-body"], ["class", "toggle-title ml-3", 4, "ngIf"], [1, "toggle-title", "mr-3"], [1, "toggle-title", "ml-3"]], template: function DrToggleComponent_Template(rf, ctx) { if (rf & 1) {
67
69
  i0.ɵɵprojectionDef();
68
70
  i0.ɵɵtemplate(0, DrToggleComponent_span_0_Template, 2, 1, "span", 0);
69
71
  i0.ɵɵelementStart(1, "label", 1)(2, "input", 2);
@@ -81,15 +83,20 @@ export class DrToggleComponent {
81
83
  i0.ɵɵclassProp("success", ctx.successType)("disabled", ctx._disabled);
82
84
  i0.ɵɵadvance(1);
83
85
  i0.ɵɵproperty("checked", ctx.checkedStatus)("disabled", ctx._disabled);
84
- i0.ɵɵattribute("data-test", ctx.checkedStatus ? "toggle-on" : "toggle-off");
86
+ i0.ɵɵattribute("id", ctx.id)("data-test", ctx.checkedStatus ? "toggle-on" : "toggle-off");
85
87
  i0.ɵɵadvance(4);
86
88
  i0.ɵɵproperty("ngIf", ctx.toggleTitle && ctx.toggleTitleRight);
87
89
  } }, dependencies: [i1.NgIf], styles: ["[_nghost-%COMP%]{display:flex;justify-content:space-between;align-items:center;font-family:Poppins,sans-serif}.toggle-label-alignment[_nghost-%COMP%]{justify-content:start}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .toggle-container.disabled[_ngcontent-%COMP%]{pointer-events:none}[_nghost-%COMP%] .toggle-container.disabled[_ngcontent-%COMP%] .toggle-body[_ngcontent-%COMP%]{background-color:#8f9bb329!important}[_nghost-%COMP%] .toggle-container.disabled[_ngcontent-%COMP%] .toggle-body[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{background:#8f9bb33d!important}[_nghost-%COMP%] .toggle-container.success[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + span.toggle-body[_ngcontent-%COMP%]{background-color:#03a678}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + span.toggle-body[_ngcontent-%COMP%] > i[_ngcontent-%COMP%], [_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + span.toggle-body[_ngcontent-%COMP%]:active > i[_ngcontent-%COMP%]{margin-left:16px}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + span.toggle-body[_ngcontent-%COMP%]{background-color:#4646ce}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] .toggle-body[_ngcontent-%COMP%]{cursor:pointer;display:block;width:30px;height:16px;margin:7px auto;border-radius:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;background-color:#8f929e;line-height:1}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] .toggle-body[_ngcontent-%COMP%]:active{background-color:#a6b9cb}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] .toggle-body-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .toggle-container[_ngcontent-%COMP%] .toggle-body[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{height:12px;width:12px;background:#fff;display:inline-block;border-radius:100px;margin-top:2px;margin-left:1.5px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;pointer-events:none}[_nghost-%COMP%] .toggle-title[_ngcontent-%COMP%]{line-height:22px}"], changeDetection: 0 }); }
88
90
  }
89
91
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrToggleComponent, [{
90
92
  type: Component,
91
- args: [{ selector: 'dr-toggle', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"toggle-title mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{ toggleTitle }}</span>\n<label class=\"toggle-container\" [class.success]=\"successType\" [class.disabled]=\"_disabled\">\n <input\n type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'toggle-on' : 'toggle-off'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"_disabled\"\n (click)=\"setValue()\" />\n <span class=\"toggle-body\">\n <i></i>\n </span>\n <ng-content></ng-content>\n</label>\n<span class=\"toggle-title ml-3\" *ngIf=\"toggleTitle && toggleTitleRight\">{{ toggleTitle }}</span>\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;font-family:Poppins,sans-serif}:host.toggle-label-alignment{justify-content:start}:host .toggle-container{display:flex;align-items:center}:host .toggle-container.disabled{pointer-events:none}:host .toggle-container.disabled .toggle-body{background-color:#8f9bb329!important}:host .toggle-container.disabled .toggle-body i{background:#8f9bb33d!important}:host .toggle-container.success input:checked+span.toggle-body{background-color:#03a678}:host .toggle-container input{display:none}:host .toggle-container input:checked+span.toggle-body>i,:host .toggle-container input:checked+span.toggle-body:active>i{margin-left:16px}:host .toggle-container input:checked+span.toggle-body{background-color:#4646ce}:host .toggle-container .toggle-body{cursor:pointer;display:block;width:30px;height:16px;margin:7px auto;border-radius:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;background-color:#8f929e;line-height:1}:host .toggle-container .toggle-body:active{background-color:#a6b9cb}:host .toggle-container .toggle-body-wrapper{display:flex;flex-direction:column}:host .toggle-container .toggle-body i{height:12px;width:12px;background:#fff;display:inline-block;border-radius:100px;margin-top:2px;margin-left:1.5px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;pointer-events:none}:host .toggle-title{line-height:22px}\n"] }]
92
- }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { toggleTitle: [{
93
+ args: [{ selector: 'dr-toggle', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"toggle-title mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{ toggleTitle }}</span>\n<label class=\"toggle-container\" [class.success]=\"successType\" [class.disabled]=\"_disabled\">\n <input\n [attr.id]=\"id\"\n type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'toggle-on' : 'toggle-off'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"_disabled\"\n (click)=\"setValue()\" />\n <span class=\"toggle-body\">\n <i></i>\n </span>\n <ng-content></ng-content>\n</label>\n<span class=\"toggle-title ml-3\" *ngIf=\"toggleTitle && toggleTitleRight\">{{ toggleTitle }}</span>\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;font-family:Poppins,sans-serif}:host.toggle-label-alignment{justify-content:start}:host .toggle-container{display:flex;align-items:center}:host .toggle-container.disabled{pointer-events:none}:host .toggle-container.disabled .toggle-body{background-color:#8f9bb329!important}:host .toggle-container.disabled .toggle-body i{background:#8f9bb33d!important}:host .toggle-container.success input:checked+span.toggle-body{background-color:#03a678}:host .toggle-container input{display:none}:host .toggle-container input:checked+span.toggle-body>i,:host .toggle-container input:checked+span.toggle-body:active>i{margin-left:16px}:host .toggle-container input:checked+span.toggle-body{background-color:#4646ce}:host .toggle-container .toggle-body{cursor:pointer;display:block;width:30px;height:16px;margin:7px auto;border-radius:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;background-color:#8f929e;line-height:1}:host .toggle-container .toggle-body:active{background-color:#a6b9cb}:host .toggle-container .toggle-body-wrapper{display:flex;flex-direction:column}:host .toggle-container .toggle-body i{height:12px;width:12px;background:#fff;display:inline-block;border-radius:100px;margin-top:2px;margin-left:1.5px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;pointer-events:none}:host .toggle-title{line-height:22px}\n"] }]
94
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { id: [{
95
+ type: Input
96
+ }], hostId: [{
97
+ type: HostBinding,
98
+ args: ['attr.id']
99
+ }], toggleTitle: [{
93
100
  type: Input
94
101
  }], toggleTitleRight: [{
95
102
  type: Input
@@ -105,4 +112,4 @@ export class DrToggleComponent {
105
112
  type: HostBinding,
106
113
  args: ['class']
107
114
  }] }); })();
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci10b2dnbGUvZHItdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci10b2dnbGUvZHItdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0lDVnpFLCtCQUF5RTtJQUFBLFlBQWlCO0lBQUEsaUJBQU87OztJQUF4QixlQUFpQjtJQUFqQix3Q0FBaUI7OztJQWExRiwrQkFBd0U7SUFBQSxZQUFpQjtJQUFBLGlCQUFPOzs7SUFBeEIsZUFBaUI7SUFBakIsd0NBQWlCOzs7QURNekYsTUFBTSxPQUFPLGlCQUFpQjtJQWExQixJQUFhLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBSUQsSUFBMEIsWUFBWTtRQUNsQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXRCMUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQWVuQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFjN0MsYUFBUSxHQUE2QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVRZLENBQUM7SUFFOUMsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBS0QsVUFBVSxDQUFDLEtBQWM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7cUdBeERRLGlCQUFpQjttR0FBakIsaUJBQWlCOzsyUEFIZixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7O1lDaEI1RixvRUFBaUc7WUFDakcsZ0NBQTJGLGVBQUE7WUFNbkYsNkZBQVMsY0FBVSxJQUFDO1lBTHhCLGlCQUsyQjtZQUMzQiwrQkFBMEI7WUFDdEIsb0JBQU87WUFDWCxpQkFBTztZQUNQLGtCQUF5QjtZQUM3QixpQkFBUTtZQUNSLG9FQUFnRzs7WUFiL0QsK0RBQXNDO1lBQ3ZDLGVBQTZCO1lBQTdCLDBDQUE2QiwyQkFBQTtZQUlyRCxlQUF5QjtZQUF6QiwyQ0FBeUIsMkJBQUE7WUFEekIsMkVBQTZEO1lBU3BDLGVBQXFDO1lBQXJDLDhEQUFxQzs7O3VGRE16RCxpQkFBaUI7Y0FQN0IsU0FBUzsyQkFDSSxXQUFXLGFBR1YsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLG1CQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxtQkFDdkUsdUJBQXVCLENBQUMsTUFBTTtvRUFPL0MsV0FBVztrQkFEVixLQUFLO1lBR04sZ0JBQWdCO2tCQURmLEtBQUs7WUFHTixXQUFXO2tCQURWLEtBQUs7WUFHTixhQUFhO2tCQURaLEtBQUs7WUFHTyxRQUFRO2tCQUFwQixLQUFLO1lBSUksYUFBYTtrQkFBdEIsTUFBTTtZQUVtQixZQUFZO2tCQUFyQyxXQUFXO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLXRvZ2dsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IERyVG9nZ2xlQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgX2Rpc2FibGVkID0gZmFsc2U7XG4gICAgX2VsZW1lbnRDbGFzczogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgdG9nZ2xlVGl0bGU6IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHRvZ2dsZVRpdGxlUmlnaHQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBzdWNjZXNzVHlwZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIGNoZWNrZWRTdGF0dXM6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgZWxlbWVudENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50Q2xhc3Muam9pbignICcpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudG9nZ2xlVGl0bGVSaWdodCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzLnB1c2goJ3RvZ2dsZS1sYWJlbC1hbGlnbm1lbnQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jaGVja2VkU3RhdHVzID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCkge1xuICAgICAgICB0aGlzLmNoZWNrZWRTdGF0dXMgPSAhdGhpcy5jaGVja2VkU3RhdHVzO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZFN0YXR1cyk7XG4gICAgICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZFN0YXR1cyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJ0b2dnbGUtdGl0bGUgbXItM1wiICpuZ0lmPVwidG9nZ2xlVGl0bGUgJiYgIXRvZ2dsZVRpdGxlUmlnaHRcIj57eyB0b2dnbGVUaXRsZSB9fTwvc3Bhbj5cbjxsYWJlbCBjbGFzcz1cInRvZ2dsZS1jb250YWluZXJcIiBbY2xhc3Muc3VjY2Vzc109XCJzdWNjZXNzVHlwZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJfZGlzYWJsZWRcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgW2F0dHIuZGF0YS10ZXN0XT1cImNoZWNrZWRTdGF0dXMgPyAndG9nZ2xlLW9uJyA6ICd0b2dnbGUtb2ZmJ1wiXG4gICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRTdGF0dXNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNldFZhbHVlKClcIiAvPlxuICAgIDxzcGFuIGNsYXNzPVwidG9nZ2xlLWJvZHlcIj5cbiAgICAgICAgPGk+PC9pPlxuICAgIDwvc3Bhbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2xhYmVsPlxuPHNwYW4gY2xhc3M9XCJ0b2dnbGUtdGl0bGUgbWwtM1wiICpuZ0lmPVwidG9nZ2xlVGl0bGUgJiYgdG9nZ2xlVGl0bGVSaWdodFwiPnt7IHRvZ2dsZVRpdGxlIH19PC9zcGFuPlxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci10b2dnbGUvZHItdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci10b2dnbGUvZHItdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0lDVnpFLCtCQUF5RTtJQUFBLFlBQWlCO0lBQUEsaUJBQU87OztJQUF4QixlQUFpQjtJQUFqQix3Q0FBaUI7OztJQWMxRiwrQkFBd0U7SUFBQSxZQUFpQjtJQUFBLGlCQUFPOzs7SUFBeEIsZUFBaUI7SUFBakIsd0NBQWlCOzs7QURLekYsTUFBTSxPQUFPLGlCQUFpQjtJQWtCMUIsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUlELElBQTBCLFlBQVk7UUFDbEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzQjFDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFLN0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQWVKLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWM3QyxhQUFRLEdBQTZCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBVFksQ0FBQztJQUU5QyxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFLRCxVQUFVLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztxR0E3RFEsaUJBQWlCO21HQUFqQixpQkFBaUI7OztxUUFIZixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7O1lDaEI1RixvRUFBaUc7WUFDakcsZ0NBQTJGLGVBQUE7WUFPbkYsNkZBQVMsY0FBVSxJQUFDO1lBTnhCLGlCQU0yQjtZQUMzQiwrQkFBMEI7WUFDdEIsb0JBQU87WUFDWCxpQkFBTztZQUNQLGtCQUF5QjtZQUM3QixpQkFBUTtZQUNSLG9FQUFnRzs7WUFkL0QsK0RBQXNDO1lBQ3ZDLGVBQTZCO1lBQTdCLDBDQUE2QiwyQkFBQTtZQUtyRCxlQUF5QjtZQUF6QiwyQ0FBeUIsMkJBQUE7WUFIekIsNEJBQWMsNkRBQUE7WUFXVyxlQUFxQztZQUFyQyw4REFBcUM7Ozt1RkRLekQsaUJBQWlCO2NBUDdCLFNBQVM7MkJBQ0ksV0FBVyxhQUdWLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsbUJBQ3ZFLHVCQUF1QixDQUFDLE1BQU07b0VBTy9DLEVBQUU7a0JBREQsS0FBSztZQUdOLE1BQU07a0JBREwsV0FBVzttQkFBQyxTQUFTO1lBSXRCLFdBQVc7a0JBRFYsS0FBSztZQUdOLGdCQUFnQjtrQkFEZixLQUFLO1lBR04sV0FBVztrQkFEVixLQUFLO1lBR04sYUFBYTtrQkFEWixLQUFLO1lBR08sUUFBUTtrQkFBcEIsS0FBSztZQUlJLGFBQWE7a0JBQXRCLE1BQU07WUFFbUIsWUFBWTtrQkFBckMsV0FBVzttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci10b2dnbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEclRvZ2dsZUNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyVG9nZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuICAgIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIF9lbGVtZW50Q2xhc3M6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIGlkPzogc3RyaW5nO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgaG9zdElkID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgdG9nZ2xlVGl0bGU6IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHRvZ2dsZVRpdGxlUmlnaHQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBzdWNjZXNzVHlwZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIGNoZWNrZWRTdGF0dXM6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgZWxlbWVudENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50Q2xhc3Muam9pbignICcpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudG9nZ2xlVGl0bGVSaWdodCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzLnB1c2goJ3RvZ2dsZS1sYWJlbC1hbGlnbm1lbnQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jaGVja2VkU3RhdHVzID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCkge1xuICAgICAgICB0aGlzLmNoZWNrZWRTdGF0dXMgPSAhdGhpcy5jaGVja2VkU3RhdHVzO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZFN0YXR1cyk7XG4gICAgICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZFN0YXR1cyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJ0b2dnbGUtdGl0bGUgbXItM1wiICpuZ0lmPVwidG9nZ2xlVGl0bGUgJiYgIXRvZ2dsZVRpdGxlUmlnaHRcIj57eyB0b2dnbGVUaXRsZSB9fTwvc3Bhbj5cbjxsYWJlbCBjbGFzcz1cInRvZ2dsZS1jb250YWluZXJcIiBbY2xhc3Muc3VjY2Vzc109XCJzdWNjZXNzVHlwZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJfZGlzYWJsZWRcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiY2hlY2tlZFN0YXR1cyA/ICd0b2dnbGUtb24nIDogJ3RvZ2dsZS1vZmYnXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFN0YXR1c1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwic2V0VmFsdWUoKVwiIC8+XG4gICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGUtYm9keVwiPlxuICAgICAgICA8aT48L2k+XG4gICAgPC9zcGFuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbGFiZWw+XG48c3BhbiBjbGFzcz1cInRvZ2dsZS10aXRsZSBtbC0zXCIgKm5nSWY9XCJ0b2dnbGVUaXRsZSAmJiB0b2dnbGVUaXRsZVJpZ2h0XCI+e3sgdG9nZ2xlVGl0bGUgfX08L3NwYW4+XG4iXX0=