@datarailsshared/datarailsshared 1.5.245 → 1.5.247

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.
@@ -75,11 +75,11 @@ export class DialogModalWrapperComponent {
75
75
  this.destroy$.complete();
76
76
  }
77
77
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModalWrapperComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.DialogService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
78
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogModalWrapperComponent, selector: "dr-dialog-modal-wrapper", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i mat-icon-button *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\"\n data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\">{{ field.label }}</label>\n <div class=\"input-group p-0\"\n [ngClass]=\"{ 'col-md-10': field.label && !field.isLabelFullWidth, 'col-md-12': !field.label || field.isLabelFullWidth }\">\n <dr-select *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close();\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\"\n class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}</button>\n </ng-template>\n </dr-select>\n <dr-input *ngIf=\"field.type === dialogFieldType.INPUT\" data-test=\"modalInput\" class=\"form-control\"\n [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label class=\"form-field-error-alert\" *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\"\n *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\">{{ dialogData.customButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\"\n [theme]=\"'secondary'\">{{ dialogData.cancelButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.acceptButton\" data-test=\"modalAddBtn\" (click)=\"onAccept()\" [theme]=\"'primary'\"\n [isLoading]=\"isLoading\" [disabled]=\"form.invalid\">{{ dialogData.acceptButton.label }}</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;justify-content:space-between;flex-direction:column}:host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:80vh}.header-dialog{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:8px 39px 8px 32px;border-bottom:1px solid #DFE0E3}.title-dialog{display:flex;color:#333;position:static;font-weight:600;font-size:16px;line-height:24px}.title-dialog__icon{font-size:32px;margin-right:8px;line-height:24px;color:#6d6e6f}.content-dialog{font-weight:400;font-size:14px;padding:16px 32px 5px;white-space:pre-line}.icon-close{color:#6d6e6f;cursor:pointer}.dr-smart-from{font-size:14px;font-weight:400;line-height:22px;padding:16px 32px 22px}.dr-smart-from dr-checkbox{font-weight:400}.content-dialog{padding:16px 32px 0;font-weight:400;font-size:14px;line-height:22px}.content-anchor{display:none}.footer-dialog{border-top:1px solid #DFE0E3}.buttons-wrapper{display:flex;justify-content:flex-end;padding:10px 32px 11px}.buttons-wrapper dr-button:nth-of-type(n+2){margin-left:12px}.buttons-wrapper--custom-btn{margin-right:auto}.form-field-error-alert{font-size:12px;color:#bf1d30;line-height:20px}.form-error-alert{position:absolute;margin-top:5px;font-size:12px;color:#bf1d30}.dr-select-footer__btn{background-color:transparent;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "component", type: i5.CheckboxComponent, selector: "dr-checkbox", inputs: ["checkedStatus", "disabled", "icon", "indeterminate"], outputs: ["checkedChange"] }, { kind: "component", type: i6.DrInputComponent, selector: "dr-input", inputs: ["disabled", "buttonOptions", "type", "name", "placeholder", "readonly", "clearable", "min", "max", "minLength", "maxlength", "step"], outputs: ["blur", "ngModelDebounceChange", "searchHandler", "clearHandler", "buttonHandler"] }, { kind: "component", type: i7.DrSelectComponent, selector: "dr-select", inputs: ["className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen"], outputs: ["change", "open", "closeUp"] }, { kind: "component", type: i8.DrDatePickerComponent, selector: "dr-date-picker", inputs: ["format", "min", "max", "periodPosition", "placeholder", "disabled", "fiscalYearMonthsModifier", "datepickerFilter"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
78
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogModalWrapperComponent, selector: "dr-dialog-modal-wrapper", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\"\n data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\">{{ field.label }}</label>\n <div class=\"input-group p-0\"\n [ngClass]=\"{ 'col-md-10': field.label && !field.isLabelFullWidth, 'col-md-12': !field.label || field.isLabelFullWidth }\">\n <dr-select *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close();\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\"\n class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}</button>\n </ng-template>\n </dr-select>\n <dr-input *ngIf=\"field.type === dialogFieldType.INPUT\" data-test=\"modalInput\" class=\"form-control\"\n [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label class=\"form-field-error-alert\" *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\"\n *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\">{{ dialogData.customButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\"\n [theme]=\"'secondary'\">{{ dialogData.cancelButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.acceptButton\" data-test=\"modalAddBtn\" (click)=\"onAccept()\" [theme]=\"'primary'\"\n [isLoading]=\"isLoading\" [disabled]=\"form.invalid\">{{ dialogData.acceptButton.label }}</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;justify-content:space-between;flex-direction:column}:host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:80vh}.header-dialog{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}.header-dialog>.icon-close{position:absolute;right:32px;top:16px;cursor:pointer}.title-dialog{display:flex;color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}.title-dialog__icon{font-size:32px;margin-right:8px;line-height:24px;color:#6d6e6f}.content-dialog{font-weight:400;font-size:14px;padding:16px 32px 5px;white-space:pre-line}.icon-close{color:#6d6e6f;cursor:pointer}.dr-smart-from{font-size:14px;font-weight:400;line-height:22px;padding:16px 32px 22px}.dr-smart-from dr-checkbox{font-weight:400}.content-dialog{padding:16px 32px 0;font-weight:400;font-size:14px;line-height:22px}.content-anchor{display:none}.footer-dialog{border-top:1px solid #DFE0E3}.buttons-wrapper{display:flex;justify-content:flex-end;padding:10px 32px 11px}.buttons-wrapper dr-button:nth-of-type(n+2){margin-left:12px}.buttons-wrapper--custom-btn{margin-right:auto}.form-field-error-alert{font-size:12px;color:#bf1d30;line-height:20px}.form-error-alert{position:absolute;margin-top:5px;font-size:12px;color:#bf1d30}.dr-select-footer__btn{background-color:transparent;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "component", type: i5.CheckboxComponent, selector: "dr-checkbox", inputs: ["checkedStatus", "disabled", "icon", "indeterminate"], outputs: ["checkedChange"] }, { kind: "component", type: i6.DrInputComponent, selector: "dr-input", inputs: ["disabled", "buttonOptions", "type", "name", "placeholder", "readonly", "clearable", "min", "max", "minLength", "maxlength", "step"], outputs: ["blur", "ngModelDebounceChange", "searchHandler", "clearHandler", "buttonHandler"] }, { kind: "component", type: i7.DrSelectComponent, selector: "dr-select", inputs: ["className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen"], outputs: ["change", "open", "closeUp"] }, { kind: "component", type: i8.DrDatePickerComponent, selector: "dr-date-picker", inputs: ["format", "min", "max", "periodPosition", "placeholder", "disabled", "fiscalYearMonthsModifier", "datepickerFilter"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
79
79
  }
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModalWrapperComponent, decorators: [{
81
81
  type: Component,
82
- args: [{ selector: 'dr-dialog-modal-wrapper', template: "<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i mat-icon-button *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\"\n data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\">{{ field.label }}</label>\n <div class=\"input-group p-0\"\n [ngClass]=\"{ 'col-md-10': field.label && !field.isLabelFullWidth, 'col-md-12': !field.label || field.isLabelFullWidth }\">\n <dr-select *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close();\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\"\n class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}</button>\n </ng-template>\n </dr-select>\n <dr-input *ngIf=\"field.type === dialogFieldType.INPUT\" data-test=\"modalInput\" class=\"form-control\"\n [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label class=\"form-field-error-alert\" *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\"\n *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\">{{ dialogData.customButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\"\n [theme]=\"'secondary'\">{{ dialogData.cancelButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.acceptButton\" data-test=\"modalAddBtn\" (click)=\"onAccept()\" [theme]=\"'primary'\"\n [isLoading]=\"isLoading\" [disabled]=\"form.invalid\">{{ dialogData.acceptButton.label }}</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;justify-content:space-between;flex-direction:column}:host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:80vh}.header-dialog{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:8px 39px 8px 32px;border-bottom:1px solid #DFE0E3}.title-dialog{display:flex;color:#333;position:static;font-weight:600;font-size:16px;line-height:24px}.title-dialog__icon{font-size:32px;margin-right:8px;line-height:24px;color:#6d6e6f}.content-dialog{font-weight:400;font-size:14px;padding:16px 32px 5px;white-space:pre-line}.icon-close{color:#6d6e6f;cursor:pointer}.dr-smart-from{font-size:14px;font-weight:400;line-height:22px;padding:16px 32px 22px}.dr-smart-from dr-checkbox{font-weight:400}.content-dialog{padding:16px 32px 0;font-weight:400;font-size:14px;line-height:22px}.content-anchor{display:none}.footer-dialog{border-top:1px solid #DFE0E3}.buttons-wrapper{display:flex;justify-content:flex-end;padding:10px 32px 11px}.buttons-wrapper dr-button:nth-of-type(n+2){margin-left:12px}.buttons-wrapper--custom-btn{margin-right:auto}.form-field-error-alert{font-size:12px;color:#bf1d30;line-height:20px}.form-error-alert{position:absolute;margin-top:5px;font-size:12px;color:#bf1d30}.dr-select-footer__btn{background-color:transparent;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}\n"] }]
82
+ args: [{ selector: 'dr-dialog-modal-wrapper', template: "<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\"\n data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\">{{ field.label }}</label>\n <div class=\"input-group p-0\"\n [ngClass]=\"{ 'col-md-10': field.label && !field.isLabelFullWidth, 'col-md-12': !field.label || field.isLabelFullWidth }\">\n <dr-select *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close();\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\"\n class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}</button>\n </ng-template>\n </dr-select>\n <dr-input *ngIf=\"field.type === dialogFieldType.INPUT\" data-test=\"modalInput\" class=\"form-control\"\n [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label class=\"form-field-error-alert\" *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\"\n *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\">{{ dialogData.customButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\"\n [theme]=\"'secondary'\">{{ dialogData.cancelButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.acceptButton\" data-test=\"modalAddBtn\" (click)=\"onAccept()\" [theme]=\"'primary'\"\n [isLoading]=\"isLoading\" [disabled]=\"form.invalid\">{{ dialogData.acceptButton.label }}</dr-button>\n </div>\n</div>\n", styles: [":host{display:flex;justify-content:space-between;flex-direction:column}:host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:80vh}.header-dialog{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}.header-dialog>.icon-close{position:absolute;right:32px;top:16px;cursor:pointer}.title-dialog{display:flex;color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}.title-dialog__icon{font-size:32px;margin-right:8px;line-height:24px;color:#6d6e6f}.content-dialog{font-weight:400;font-size:14px;padding:16px 32px 5px;white-space:pre-line}.icon-close{color:#6d6e6f;cursor:pointer}.dr-smart-from{font-size:14px;font-weight:400;line-height:22px;padding:16px 32px 22px}.dr-smart-from dr-checkbox{font-weight:400}.content-dialog{padding:16px 32px 0;font-weight:400;font-size:14px;line-height:22px}.content-anchor{display:none}.footer-dialog{border-top:1px solid #DFE0E3}.buttons-wrapper{display:flex;justify-content:flex-end;padding:10px 32px 11px}.buttons-wrapper dr-button:nth-of-type(n+2){margin-left:12px}.buttons-wrapper--custom-btn{margin-right:auto}.form-field-error-alert{font-size:12px;color:#bf1d30;line-height:20px}.form-error-alert{position:absolute;margin-top:5px;font-size:12px;color:#bf1d30}.dr-select-footer__btn{background-color:transparent;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}\n"] }]
83
83
  }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.DialogService }, { type: undefined, decorators: [{
84
84
  type: Inject,
85
85
  args: [MAT_DIALOG_DATA]
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
87
87
  type: HostBinding,
88
88
  args: ['class']
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsa0JBQWtCLElBQUksWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEksT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTywyQkFBMkI7SUFZcEMsWUFDVyxTQUFvRCxFQUNuRCxhQUE0QixFQUNKLFVBQW9CO1FBRjdDLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQ25ELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ0osZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQWQvQyxvQkFBZSxHQUFHLGlCQUFpQixDQUFDO1FBRzdDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUMvQixhQUFRLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkMsdUJBQWtCLEdBQTZDLEVBQUUsQ0FBQztRQUU1QyxVQUFLLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO0lBT2pFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO2dCQUNoRixZQUFZLENBQUMsTUFBTSxHQUFJLFlBQVksQ0FBQyxNQUFjLENBQUMsSUFBSSxDQUNuRCxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDZixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNqRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDekUsQ0FBQzthQUNMO1lBRUQsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7WUFDOUIsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLFlBQVksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7WUFDckgsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztRQUVyRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDM0MsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQ0wsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO2tJQWhGUSwyQkFBMkIsaUZBZXhCLGVBQWU7c0hBZmxCLDJCQUEyQixnSENkeEMsbXFLQWtGQTs7NEZEcEVhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDSSx5QkFBeUI7OzBCQW9COUIsTUFBTTsyQkFBQyxlQUFlOzRDQUxMLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSwgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgRGF0YVByb3AsIERJQUxPR19GSUVMRF9UWVBFIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kaWFsb2ctZGF0YSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZGlhbG9nLW1vZGFsLXdyYXBwZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctbW9kYWwtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnXSxcblxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RhbFdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcmVhZG9ubHkgZGlhbG9nRmllbGRUeXBlID0gRElBTE9HX0ZJRUxEX1RZUEU7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG4gICAgc2F2aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHNob3dTZXJ2ZXJFcnJvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBmaWVsZHNJdGVtc0xvYWRpbmc6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4gPSB7fTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9IHRoaXM/LmRpYWxvZ0RhdGE/LnRoZW1lPy50aGVtZVNpemU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ01vZGFsV3JhcHBlckNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBEYXRhUHJvcCxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEuZmllbGRzKSB0aGlzLmRpYWxvZ0RhdGEuZmllbGRzID0gW107XG5cbiAgICAgICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cChcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YS5maWVsZHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5pdGVtcyQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHNJdGVtc0xvYWRpbmdbY3VycmVudFZhbHVlLm5hbWVdID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlLml0ZW1zJCA9IChjdXJyZW50VmFsdWUuaXRlbXMkIGFzIGFueSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXS5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5maWVsZHNJdGVtc0xvYWRpbmdbY3VycmVudFZhbHVlLm5hbWVdLm5leHQoZmFsc2UpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXS5uZXh0KGZhbHNlKSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEZvcm1Db250cm9sID0ge307XG4gICAgICAgICAgICAgICAgY3VycmVudEZvcm1Db250cm9sW2N1cnJlbnRWYWx1ZS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbChjdXJyZW50VmFsdWUuZGVmYXVsdCB8fCBudWxsLCBjdXJyZW50VmFsdWUudmFsaWRhdG9ycyB8fCBbXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjdW11bGF0b3IsIGN1cnJlbnRGb3JtQ29udHJvbCk7XG4gICAgICAgICAgICB9LCB7fSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkFjY2VwdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEuY29uZmlybUZuKSByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlIHx8IHRydWUpO1xuXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zYXZpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YS5jb25maXJtRm4odGhpcy5mb3JtLnZhbHVlKS5waXBlKFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NlcnZlckVycm9yTWVzc2FnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dTZXJ2aWNlLnRocm93RXJyKGVyciwgdGhpcy5zYXZpbmckKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmZvcm0udmFsdWUgfHwgdHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGVjbGluZSgpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBmb290ZXJBY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEuYWN0aW9uKHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBoZWFkZXIgY2xhc3M9XCJoZWFkZXItZGlhbG9nXCI+XG4gICAgPGgxIGNsYXNzPVwidGl0bGUtZGlhbG9nXCIgZGF0YS10ZXN0PVwibW9kYWxUaXRsZVwiPlxuICAgICAgICA8aSAqbmdJZj1cImRpYWxvZ0RhdGEuaGVhZGVySWNvbkNsYXNzXCJcbiAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxuICAgICAgICAgICBjbGFzcz1cInRpdGxlLWRpYWxvZ19faWNvblwiXG4gICAgICAgICAgIFtjbGFzc109XCJkaWFsb2dEYXRhLmhlYWRlckljb25DbGFzc1wiXG4gICAgICAgICAgIGRhdGEtdGVzdD1cImRpYWxvZ1RpdGxlSWNvblwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS1kaWFsb2dfX3RleHRcIj57eyBkaWFsb2dEYXRhLnRpdGxlIH19PC9zcGFuPlxuICAgIDwvaDE+XG4gICAgPGkgbWF0LWljb24tYnV0dG9uICpuZ0lmPVwiIWRpYWxvZ0RhdGEuaGlkZUNsb3NlQnRuXCIgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBjbGFzcz1cImRyLWljb24tZXhpdCBpY29uLWNsb3NlXCJcbiAgICAgICBkYXRhLXRlc3Q9XCJ4QnRuXCI+PC9pPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZGlhbG9nRGF0YS5jb250ZW50XCIgY2xhc3M9XCJjb250ZW50LWRpYWxvZ1wiPlxuICAgIDxuZy1jb250YWluZXI+e3sgZGlhbG9nRGF0YS5jb250ZW50IH19PC9uZy1jb250YWluZXI+XG4gICAgPHNwYW4gI2NvbnRlbnQgY2xhc3M9XCJjb250ZW50LWFuY2hvclwiPjwvc3Bhbj5cbjwvZGl2PlxuPGZvcm0gKm5nSWY9XCJkaWFsb2dEYXRhLmZpZWxkc1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZHItc21hcnQtZnJvbVwiPlxuICAgIDxkaXYgW2NsYXNzXT1cImRpYWxvZ0RhdGEuZm9ybVdyYXBwZXJDbGFzcyB8fCAnZHItc21hcnQtZm9ybV93cmFwcGVyJ1wiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBkaWFsb2dEYXRhLmZpZWxkc1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJkci1zbWFydC1mb3JtX2dyb3VwXCJcbiAgICAgICAgICAgICBbY2xhc3NdPVwiZmllbGQuZm9ybUdyb3VwQ2xhc3NcIlxuICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogZmllbGQuaXNMYWJlbEZ1bGxXaWR0aCA/ICdibG9jaycgOiAnZmxleCcgfVwiPlxuICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiZmllbGQubGFiZWwgJiYgZmllbGQudHlwZSAhPT0gZGlhbG9nRmllbGRUeXBlLkNIRUNLQk9YXCJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJmaWVsZC5pc0xhYmVsRnVsbFdpZHRoID8gJ2NvbC1tZC0xMiBtYi0yJyA6ICdjb2wtbWQtMidcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGFiZWwgcC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj57eyBmaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgcC0wXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sLW1kLTEwJzogZmllbGQubGFiZWwgJiYgIWZpZWxkLmlzTGFiZWxGdWxsV2lkdGgsICdjb2wtbWQtMTInOiAhZmllbGQubGFiZWwgfHwgZmllbGQuaXNMYWJlbEZ1bGxXaWR0aCB9XCI+XG4gICAgICAgICAgICAgICAgPGRyLXNlbGVjdCAqbmdJZj1cImZpZWxkLnR5cGUgPT09IGRpYWxvZ0ZpZWxkVHlwZS5TRUxFQ1RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaGFibGVdPVwiZGlhbG9nRGF0YS5zZWFyY2hhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGVhcmFibGVdPVwiZGlhbG9nRGF0YS5jbGVhcmFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtiaW5kTGFiZWxdPVwiZmllbGQuYmluZExhYmVsIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JpbmRWYWx1ZV09XCJmaWVsZC5iaW5kVmFsdWUgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRJdGVtXT1cImZpZWxkLmRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZpZWxkLml0ZW1zIHx8IChmaWVsZC5pdGVtcyQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiZmllbGRzSXRlbXNMb2FkaW5nW2ZpZWxkLm5hbWVdIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImRpYWxvZ0RhdGE/LmZvb3RlclRlbXBsYXRlRGF0YVwiICNvcHRpb25Gb290ZXJUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZm9vdGVyQWN0aW9uKCk7IGNsb3NlKCk7XCIgY2xhc3M9XCJkci1zZWxlY3QtZm9vdGVyX19idG5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImRpYWxvZ0RhdGEuZm9vdGVyVGVtcGxhdGVEYXRhLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEuaWNvbiB9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaWFsb2dEYXRhLmZvb3RlclRlbXBsYXRlRGF0YS5sYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZHItc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxkci1pbnB1dCAqbmdJZj1cImZpZWxkLnR5cGUgPT09IGRpYWxvZ0ZpZWxkVHlwZS5JTlBVVFwiIGRhdGEtdGVzdD1cIm1vZGFsSW5wdXRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiPjwvZHItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGRyLWRhdGUtcGlja2VyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gZGlhbG9nRmllbGRUeXBlLkRBVEVfUElDS0VSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJmaWVsZC5kYXRlUGlja2VyRm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCI+PC9kci1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8ZHItY2hlY2tib3ggKm5nSWY9XCJmaWVsZC50eXBlID09PSBkaWFsb2dGaWVsZFR5cGUuQ0hFQ0tCT1hcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZmllbGQubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2RyLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tZmllbGQtZXJyb3ItYWxlcnRcIiAqbmdJZj1cImZvcm0uaW52YWxpZCAmJiBmb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdPy5kaXJ0eSAmJiBmb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdPy5lcnJvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXS5lcnJvcnMuZXJyb3JTdHJpbmcgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tZXJyb3ItYWxlcnRcIiAqbmdJZj1cImRpYWxvZ0RhdGEuZXJyb3JNZXNzYWdlICYmICFmb3JtLnByaXN0aW5lICYmIGZvcm0uaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBkaWFsb2dEYXRhLmVycm9yTWVzc2FnZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1lcnJvci1hbGVydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS52YWxpZCAmJiBzaG93U2VydmVyRXJyb3JNZXNzYWdlICYmIGRpYWxvZ0RhdGEuc2VydmVyRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRpYWxvZ0RhdGEuc2VydmVyRXJyb3JNZXNzYWdlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cblxuPGRpdiBmb290ZXIgY2xhc3M9XCJmb290ZXItZGlhbG9nXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlclwiICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24gfHwgZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIj5cbiAgICAgICAgPGRyLWJ1dHRvbiAoY2xpY2spPVwib25EZWNsaW5lKClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cImRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uPy50aGVtZSB8fCAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9ucy13cmFwcGVyLS1jdXN0b20tYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiZGVjbGluZUJ0blwiPnt7IGRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uLmxhYmVsIH19PC9kci1idXR0b24+XG4gICAgICAgIDxkci1idXR0b24gKm5nSWY9XCJkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvblwiIGRhdGEtdGVzdD1cIm1vZGFsQ2xvc2VCdG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cIidzZWNvbmRhcnknXCI+e3sgZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24ubGFiZWwgfX08L2RyLWJ1dHRvbj5cbiAgICAgICAgPGRyLWJ1dHRvbiAqbmdJZj1cImRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uXCIgZGF0YS10ZXN0PVwibW9kYWxBZGRCdG5cIiAoY2xpY2spPVwib25BY2NlcHQoKVwiIFt0aGVtZV09XCIncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiPnt7IGRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmxhYmVsIH19PC9kci1idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsa0JBQWtCLElBQUksWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEksT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTywyQkFBMkI7SUFZcEMsWUFDVyxTQUFvRCxFQUNuRCxhQUE0QixFQUNKLFVBQW9CO1FBRjdDLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQ25ELGtCQUFhLEdB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TyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSwgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgRGF0YVByb3AsIERJQUxPR19GSUVMRF9UWVBFIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kaWFsb2ctZGF0YSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZGlhbG9nLW1vZGFsLXdyYXBwZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctbW9kYWwtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnXSxcblxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RhbFdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcmVhZG9ubHkgZGlhbG9nRmllbGRUeXBlID0gRElBTE9HX0ZJRUxEX1RZUEU7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG4gICAgc2F2aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHNob3dTZXJ2ZXJFcnJvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBmaWVsZHNJdGVtc0xvYWRpbmc6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4gPSB7fTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9IHRoaXM/LmRpYWxvZ0RhdGE/LnRoZW1lPy50aGVtZVNpemU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ01vZGFsV3JhcHBlckNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBEYXRhUHJvcCxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEuZmllbGRzKSB0aGlzLmRpYWxvZ0RhdGEuZmllbGRzID0gW107XG5cbiAgICAgICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cChcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YS5maWVsZHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5pdGVtcyQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHNJdGVtc0xvYWRpbmdbY3VycmVudFZhbHVlLm5hbWVdID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlLml0ZW1zJCA9IChjdXJyZW50VmFsdWUuaXRlbXMkIGFzIGFueSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXS5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5maWVsZHNJdGVtc0xvYWRpbmdbY3VycmVudFZhbHVlLm5hbWVdLm5leHQoZmFsc2UpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXS5uZXh0KGZhbHNlKSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEZvcm1Db250cm9sID0ge307XG4gICAgICAgICAgICAgICAgY3VycmVudEZvcm1Db250cm9sW2N1cnJlbnRWYWx1ZS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbChjdXJyZW50VmFsdWUuZGVmYXVsdCB8fCBudWxsLCBjdXJyZW50VmFsdWUudmFsaWRhdG9ycyB8fCBbXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjdW11bGF0b3IsIGN1cnJlbnRGb3JtQ29udHJvbCk7XG4gICAgICAgICAgICB9LCB7fSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkFjY2VwdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEuY29uZmlybUZuKSByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlIHx8IHRydWUpO1xuXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zYXZpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YS5jb25maXJtRm4odGhpcy5mb3JtLnZhbHVlKS5waXBlKFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NlcnZlckVycm9yTWVzc2FnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dTZXJ2aWNlLnRocm93RXJyKGVyciwgdGhpcy5zYXZpbmckKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmZvcm0udmFsdWUgfHwgdHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGVjbGluZSgpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBmb290ZXJBY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEuYWN0aW9uKHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBoZWFkZXIgY2xhc3M9XCJoZWFkZXItZGlhbG9nXCI+XG4gICAgPGgxIGNsYXNzPVwidGl0bGUtZGlhbG9nXCIgZGF0YS10ZXN0PVwibW9kYWxUaXRsZVwiPlxuICAgICAgICA8aSAqbmdJZj1cImRpYWxvZ0RhdGEuaGVhZGVySWNvbkNsYXNzXCJcbiAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxuICAgICAgICAgICBjbGFzcz1cInRpdGxlLWRpYWxvZ19faWNvblwiXG4gICAgICAgICAgIFtjbGFzc109XCJkaWFsb2dEYXRhLmhlYWRlckljb25DbGFzc1wiXG4gICAgICAgICAgIGRhdGEtdGVzdD1cImRpYWxvZ1RpdGxlSWNvblwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS1kaWFsb2dfX3RleHRcIj57eyBkaWFsb2dEYXRhLnRpdGxlIH19PC9zcGFuPlxuICAgIDwvaDE+XG4gICAgPGkgKm5nSWY9XCIhZGlhbG9nRGF0YS5oaWRlQ2xvc2VCdG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiIGNsYXNzPVwiZHItaWNvbi1leGl0IGljb24tY2xvc2VcIlxuICAgICAgIGRhdGEtdGVzdD1cInhCdG5cIj48L2k+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJkaWFsb2dEYXRhLmNvbnRlbnRcIiBjbGFzcz1cImNvbnRlbnQtZGlhbG9nXCI+XG4gICAgPG5nLWNvbnRhaW5lcj57eyBkaWFsb2dEYXRhLmNvbnRlbnQgfX08L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiAjY29udGVudCBjbGFzcz1cImNvbnRlbnQtYW5jaG9yXCI+PC9zcGFuPlxuPC9kaXY+XG48Zm9ybSAqbmdJZj1cImRpYWxvZ0RhdGEuZmllbGRzXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJkci1zbWFydC1mcm9tXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiZGlhbG9nRGF0YS5mb3JtV3JhcHBlckNsYXNzIHx8ICdkci1zbWFydC1mb3JtX3dyYXBwZXInXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGRpYWxvZ0RhdGEuZmllbGRzXCJcbiAgICAgICAgICAgICBjbGFzcz1cImRyLXNtYXJ0LWZvcm1fZ3JvdXBcIlxuICAgICAgICAgICAgIFtjbGFzc109XCJmaWVsZC5mb3JtR3JvdXBDbGFzc1wiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwieyBkaXNwbGF5OiBmaWVsZC5pc0xhYmVsRnVsbFdpZHRoID8gJ2Jsb2NrJyA6ICdmbGV4JyB9XCI+XG4gICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJmaWVsZC5sYWJlbCAmJiBmaWVsZC50eXBlICE9PSBkaWFsb2dGaWVsZFR5cGUuQ0hFQ0tCT1hcIlxuICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmlzTGFiZWxGdWxsV2lkdGggPyAnY29sLW1kLTEyIG1iLTInIDogJ2NvbC1tZC0yJ1wiXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPnt7IGZpZWxkLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBwLTBcIlxuICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjb2wtbWQtMTAnOiBmaWVsZC5sYWJlbCAmJiAhZmllbGQuaXNMYWJlbEZ1bGxXaWR0aCwgJ2NvbC1tZC0xMic6ICFmaWVsZC5sYWJlbCB8fCBmaWVsZC5pc0xhYmVsRnVsbFdpZHRoIH1cIj5cbiAgICAgICAgICAgICAgICA8ZHItc2VsZWN0ICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gZGlhbG9nRmllbGRUeXBlLlNFTEVDVFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoYWJsZV09XCJkaWFsb2dEYXRhLnNlYXJjaGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsZWFyYWJsZV09XCJkaWFsb2dEYXRhLmNsZWFyYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JpbmRMYWJlbF09XCJmaWVsZC5iaW5kTGFiZWwgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbYmluZFZhbHVlXT1cImZpZWxkLmJpbmRWYWx1ZSB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1dPVwiZmllbGQuZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZmllbGQuaXRlbXMgfHwgKGZpZWxkLml0ZW1zJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJmaWVsZHNJdGVtc0xvYWRpbmdbZmllbGQubmFtZV0gfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiZGlhbG9nRGF0YT8uZm9vdGVyVGVtcGxhdGVEYXRhXCIgI29wdGlvbkZvb3RlclRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJmb290ZXJBY3Rpb24oKTsgY2xvc2UoKTtcIiBjbGFzcz1cImRyLXNlbGVjdC1mb290ZXJfX2J0blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEuaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBkaWFsb2dEYXRhLmZvb3RlclRlbXBsYXRlRGF0YS5pY29uIH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpYWxvZ0RhdGEuZm9vdGVyVGVtcGxhdGVEYXRhLmxhYmVsIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kci1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPGRyLWlucHV0ICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gZGlhbG9nRmllbGRUeXBlLklOUFVUXCIgZGF0YS10ZXN0PVwibW9kYWxJbnB1dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCI+PC9kci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8ZHItZGF0ZS1waWNrZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSBkaWFsb2dGaWVsZFR5cGUuREFURV9QSUNLRVJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImZpZWxkLmRhdGVQaWNrZXJGb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIj48L2RyLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIDxkci1jaGVja2JveCAqbmdJZj1cImZpZWxkLnR5cGUgPT09IGRpYWxvZ0ZpZWxkVHlwZS5DSEVDS0JPWFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZC5sYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvZHItY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1maWVsZC1lcnJvci1hbGVydFwiICpuZ0lmPVwiZm9ybS5pbnZhbGlkICYmIGZvcm0uY29udHJvbHNbZmllbGQubmFtZV0/LmRpcnR5ICYmIGZvcm0uY29udHJvbHNbZmllbGQubmFtZV0/LmVycm9yc1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyBmb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdLmVycm9ycy5lcnJvclN0cmluZyB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1lcnJvci1hbGVydFwiICpuZ0lmPVwiZGlhbG9nRGF0YS5lcnJvck1lc3NhZ2UgJiYgIWZvcm0ucHJpc3RpbmUgJiYgZm9ybS5pbnZhbGlkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRpYWxvZ0RhdGEuZXJyb3JNZXNzYWdlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWVycm9yLWFsZXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtLnZhbGlkICYmIHNob3dTZXJ2ZXJFcnJvck1lc3NhZ2UgJiYgZGlhbG9nRGF0YS5zZXJ2ZXJFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZGlhbG9nRGF0YS5zZXJ2ZXJFcnJvck1lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuXG48ZGl2IGZvb3RlciBjbGFzcz1cImZvb3Rlci1kaWFsb2dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9ucy13cmFwcGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbiB8fCBkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvblwiPlxuICAgICAgICA8ZHItYnV0dG9uIChjbGljayk9XCJvbkRlY2xpbmUoKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5jdXN0b21CdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiZGlhbG9nRGF0YS5jdXN0b21CdXR0b24/LnRoZW1lIHx8ICdzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b25zLXdyYXBwZXItLWN1c3RvbS1idG5cIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3Q9XCJkZWNsaW5lQnRuXCI+e3sgZGlhbG9nRGF0YS5jdXN0b21CdXR0b24ubGFiZWwgfX08L2RyLWJ1dHRvbj5cbiAgICAgICAgPGRyLWJ1dHRvbiAqbmdJZj1cImRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uXCIgZGF0YS10ZXN0PVwibW9kYWxDbG9zZUJ0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiJ3NlY29uZGFyeSdcIj57eyBkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbi5sYWJlbCB9fTwvZHItYnV0dG9uPlxuICAgICAgICA8ZHItYnV0dG9uICpuZ0lmPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIiBkYXRhLXRlc3Q9XCJtb2RhbEFkZEJ0blwiIChjbGljayk9XCJvbkFjY2VwdCgpXCIgW3RoZW1lXT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCI+e3sgZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24ubGFiZWwgfX08L2RyLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -79,11 +79,11 @@ export class DialogWrapperComponent {
79
79
  this.destroy$.complete();
80
80
  }
81
81
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogWrapperComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.DialogService }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
82
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogWrapperComponent, selector: "dr-dialog-wrapper", host: { properties: { "class": "this.elementClass" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"dialog-wrapper\"\n [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\"\n [class.dialog-wrapper__header__title--with-subtitle]=\"dialogData.subtitle\"\n data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\"\n *ngIf=\"dialogData.subtitle\">{{ dialogData.subtitle }}</h1>\n </div>\n <div class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\">{{ dialogData.customButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\">{{ dialogData.cancelButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\">{{ dialogData.acceptButton.label }}</dr-button>\n </span>\n </div>\n </div>\n</div>\n", styles: [":host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:85vh}:host.large-modal{min-width:750px;max-width:750px}:host.medium-large-modal{min-width:669px;max-width:669px}:host.xl-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:1100px}:host.xl-custom-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:100%}::ng-deep .dialog-wrapper{display:flex;justify-content:space-between;flex-direction:column;position:relative}::ng-deep .dialog-wrapper>.dr-icon-exit{z-index:1;position:absolute;right:32px;top:20px;color:#6d6e6f;cursor:pointer}::ng-deep .dialog-wrapper__header{display:flex;flex-direction:column;padding:8px 52px 8px 32px;border-bottom:1px solid #DFE0E3}::ng-deep .dialog-wrapper__header__title{color:#333;position:static;font-weight:600;font-size:16px;line-height:24px}::ng-deep .dialog-wrapper__header__title--with-subtitle{margin-bottom:0}::ng-deep .dialog-wrapper__header__subtitle{color:#6d6e6f;font-weight:400;font-size:14px;line-height:20px;margin:0}::ng-deep .dialog-wrapper--confirmation-no-title{padding-top:16px;height:100%}::ng-deep .dialog-wrapper__content{overflow-y:inherit;font-size:14px;font-weight:400;line-height:22px;padding:24px 32px 32px}::ng-deep .dialog-wrapper__content__anchor{display:none}::ng-deep .dialog-wrapper__content--no-padding{padding:0}::ng-deep .dialog-wrapper__content__icon{margin-right:10px;top:5px;position:relative}::ng-deep .dialog-wrapper__content.flex-position{display:flex}::ng-deep .dialog-wrapper__content .dialog-content__wrapper{white-space:pre-line}::ng-deep .dialog-wrapper dr-details-list{margin-top:-24px;padding:0 32px 32px}::ng-deep .dialog-wrapper__footer{border-top:1px solid #DFE0E3}::ng-deep .dialog-wrapper__footer__buttons{display:flex;justify-content:flex-end;padding:11px 32px}::ng-deep .dialog-wrapper__footer__buttons>dr-button:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper--custom:nth-last-child(3){margin-right:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "directive", type: i5.DrTooltipDirective, selector: "[drTooltip]", inputs: ["drTooltip", "drTooltipContext", "drTooltipPosition", "drTooltipClass", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipOptions", "drTooltipShow"] }, { kind: "component", type: i6.DrDetailsListComponent, selector: "dr-details-list", inputs: ["title", "items", "collapse"] }] }); }
82
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogWrapperComponent, selector: "dr-dialog-wrapper", host: { properties: { "class": "this.elementClass" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"dialog-wrapper\"\n [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\"\n data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\"\n *ngIf=\"dialogData.subtitle\">{{ dialogData.subtitle }}</h1>\n </div>\n <div class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\">{{ dialogData.customButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\">{{ dialogData.cancelButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\">{{ dialogData.acceptButton.label }}</dr-button>\n </span>\n </div>\n </div>\n</div>\n", styles: [":host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:85vh}:host.large-modal{min-width:750px;max-width:750px}:host.medium-large-modal{min-width:669px;max-width:669px}:host.xl-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:1100px}:host.xl-custom-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:100%}::ng-deep .dialog-wrapper{display:flex;justify-content:space-between;flex-direction:column;position:relative}::ng-deep .dialog-wrapper>.dr-icon-exit{z-index:1;position:absolute;right:32px;top:16px;color:#6d6e6f;cursor:pointer}::ng-deep .dialog-wrapper__header{display:flex;flex-direction:column;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}::ng-deep .dialog-wrapper__header__title{color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}::ng-deep .dialog-wrapper__header__subtitle{color:#333;font-weight:400;font-size:14px;line-height:22px;margin:4px 0 0}::ng-deep .dialog-wrapper--confirmation-no-title{padding-top:16px;height:100%}::ng-deep .dialog-wrapper__content{overflow-y:inherit;font-size:14px;font-weight:400;line-height:22px;padding:24px 32px 32px}::ng-deep .dialog-wrapper__content__anchor{display:none}::ng-deep .dialog-wrapper__content--no-padding{padding:0}::ng-deep .dialog-wrapper__content__icon{margin-right:10px;top:5px;position:relative}::ng-deep .dialog-wrapper__content.flex-position{display:flex}::ng-deep .dialog-wrapper__content .dialog-content__wrapper{white-space:pre-line}::ng-deep .dialog-wrapper dr-details-list{margin-top:-24px;padding:0 32px 32px}::ng-deep .dialog-wrapper__footer{border-top:1px solid #DFE0E3}::ng-deep .dialog-wrapper__footer__buttons{display:flex;justify-content:flex-end;padding:11px 32px}::ng-deep .dialog-wrapper__footer__buttons>dr-button:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper--custom:nth-last-child(3){margin-right:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "directive", type: i5.DrTooltipDirective, selector: "[drTooltip]", inputs: ["drTooltip", "drTooltipContext", "drTooltipPosition", "drTooltipClass", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipOptions", "drTooltipShow"] }, { kind: "component", type: i6.DrDetailsListComponent, selector: "dr-details-list", inputs: ["title", "items", "collapse"] }] }); }
83
83
  }
84
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogWrapperComponent, decorators: [{
85
85
  type: Component,
86
- args: [{ selector: 'dr-dialog-wrapper', template: "<div class=\"dialog-wrapper\"\n [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\"\n [class.dialog-wrapper__header__title--with-subtitle]=\"dialogData.subtitle\"\n data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\"\n *ngIf=\"dialogData.subtitle\">{{ dialogData.subtitle }}</h1>\n </div>\n <div class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\">{{ dialogData.customButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\">{{ dialogData.cancelButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\">{{ dialogData.acceptButton.label }}</dr-button>\n </span>\n </div>\n </div>\n</div>\n", styles: [":host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:85vh}:host.large-modal{min-width:750px;max-width:750px}:host.medium-large-modal{min-width:669px;max-width:669px}:host.xl-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:1100px}:host.xl-custom-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:100%}::ng-deep .dialog-wrapper{display:flex;justify-content:space-between;flex-direction:column;position:relative}::ng-deep .dialog-wrapper>.dr-icon-exit{z-index:1;position:absolute;right:32px;top:20px;color:#6d6e6f;cursor:pointer}::ng-deep .dialog-wrapper__header{display:flex;flex-direction:column;padding:8px 52px 8px 32px;border-bottom:1px solid #DFE0E3}::ng-deep .dialog-wrapper__header__title{color:#333;position:static;font-weight:600;font-size:16px;line-height:24px}::ng-deep .dialog-wrapper__header__title--with-subtitle{margin-bottom:0}::ng-deep .dialog-wrapper__header__subtitle{color:#6d6e6f;font-weight:400;font-size:14px;line-height:20px;margin:0}::ng-deep .dialog-wrapper--confirmation-no-title{padding-top:16px;height:100%}::ng-deep .dialog-wrapper__content{overflow-y:inherit;font-size:14px;font-weight:400;line-height:22px;padding:24px 32px 32px}::ng-deep .dialog-wrapper__content__anchor{display:none}::ng-deep .dialog-wrapper__content--no-padding{padding:0}::ng-deep .dialog-wrapper__content__icon{margin-right:10px;top:5px;position:relative}::ng-deep .dialog-wrapper__content.flex-position{display:flex}::ng-deep .dialog-wrapper__content .dialog-content__wrapper{white-space:pre-line}::ng-deep .dialog-wrapper dr-details-list{margin-top:-24px;padding:0 32px 32px}::ng-deep .dialog-wrapper__footer{border-top:1px solid #DFE0E3}::ng-deep .dialog-wrapper__footer__buttons{display:flex;justify-content:flex-end;padding:11px 32px}::ng-deep .dialog-wrapper__footer__buttons>dr-button:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper--custom:nth-last-child(3){margin-right:auto}\n"] }]
86
+ args: [{ selector: 'dr-dialog-wrapper', template: "<div class=\"dialog-wrapper\"\n [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\"\n data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\"\n *ngIf=\"dialogData.subtitle\">{{ dialogData.subtitle }}</h1>\n </div>\n <div class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\">{{ dialogData.customButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\">{{ dialogData.cancelButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\">{{ dialogData.acceptButton.label }}</dr-button>\n </span>\n </div>\n </div>\n</div>\n", styles: [":host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:85vh}:host.large-modal{min-width:750px;max-width:750px}:host.medium-large-modal{min-width:669px;max-width:669px}:host.xl-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:1100px}:host.xl-custom-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:100%}::ng-deep .dialog-wrapper{display:flex;justify-content:space-between;flex-direction:column;position:relative}::ng-deep .dialog-wrapper>.dr-icon-exit{z-index:1;position:absolute;right:32px;top:16px;color:#6d6e6f;cursor:pointer}::ng-deep .dialog-wrapper__header{display:flex;flex-direction:column;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}::ng-deep .dialog-wrapper__header__title{color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}::ng-deep .dialog-wrapper__header__subtitle{color:#333;font-weight:400;font-size:14px;line-height:22px;margin:4px 0 0}::ng-deep .dialog-wrapper--confirmation-no-title{padding-top:16px;height:100%}::ng-deep .dialog-wrapper__content{overflow-y:inherit;font-size:14px;font-weight:400;line-height:22px;padding:24px 32px 32px}::ng-deep .dialog-wrapper__content__anchor{display:none}::ng-deep .dialog-wrapper__content--no-padding{padding:0}::ng-deep .dialog-wrapper__content__icon{margin-right:10px;top:5px;position:relative}::ng-deep .dialog-wrapper__content.flex-position{display:flex}::ng-deep .dialog-wrapper__content .dialog-content__wrapper{white-space:pre-line}::ng-deep .dialog-wrapper dr-details-list{margin-top:-24px;padding:0 32px 32px}::ng-deep .dialog-wrapper__footer{border-top:1px solid #DFE0E3}::ng-deep .dialog-wrapper__footer__buttons{display:flex;justify-content:flex-end;padding:11px 32px}::ng-deep .dialog-wrapper__footer__buttons>dr-button:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper--custom:nth-last-child(3){margin-right:auto}\n"] }]
87
87
  }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.DialogService }, { type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: undefined, decorators: [{
88
88
  type: Inject,
89
89
  args: [MAT_DIALOG_DATA]
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
94
94
  type: HostBinding,
95
95
  args: ['class']
96
96
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLElBQUksZUFBZSxFQUFFLGtCQUFrQixJQUFJLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhJLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQU85RCxNQUFNLE9BQU8sc0JBQXNCO0lBSS9CLElBQ0ksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxJQUFJLGNBQWMsQ0FBQztJQUNqSCxDQUFD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QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM3SSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNuQyxPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztrSUFoRlEsc0JBQXNCLDBKQWtCWCxlQUFlO3NIQWxCMUIsc0JBQXNCLGdNQUVELGdCQUFnQiw2QkMxQmxELCt3SEEwREE7OzRGRGxDYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksbUJBQW1COzswQkFzQmhCLE1BQU07MkJBQUMsZUFBZTs0Q0FoQmUsT0FBTztzQkFBeEQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRzVDLFlBQVk7c0JBRGYsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IERhdGFQcm9wLCBTaXplTW9kYWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpYWxvZy1kYXRhJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kaWFsb2ctd3JhcHBlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGVudDogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBlbGVtZW50Q2xhc3MoKTogU2l6ZU1vZGFsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nRGF0YT8udGhlbWU/Lm5vVGhlbWVTaXplQ2xhc3MgPyBudWxsIDogdGhpcy5kaWFsb2dEYXRhPy50aGVtZT8udGhlbWVTaXplIHx8ICdtZWRpdW0tbW9kYWwnO1xuICAgIH1cblxuICAgIGNoaWxkQ29tcG9uZW50OiBhbnk7XG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIHNhdmluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgICBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEaWFsb2dXcmFwcGVyQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBEYXRhUHJvcCkge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiBFcnJvciB7XG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLmNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdFeHBlY3RlZCBjb21wb25lbnRUeXBlQ2hpbGQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT4gPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmRpYWxvZ0RhdGEuY2hpbGQpO1xuICAgICAgICB0aGlzLmNoaWxkQ29tcG9uZW50ID0gdGhpcy5jb250ZW50LmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KS5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5jaGlsZENvbXBvbmVudC5jbG9zZURpYWxvZyA9IHRoaXMuY2xvc2VEaWFsb2cuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5jaGlsZENvbXBvbmVudC5vbkFjY2VwdERpYWxvZyA9IHRoaXMub25BY2NlcHREaWFsb2cuYmluZCh0aGlzKTtcblxuICAgICAgICAvLyBwYXNzIGRhdGEgdG8gY29tcG9uZW50IGNoaWxkXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2hpbGREYXRhKSB7XG4gICAgICAgICAgICBfLmFzc2lnbih0aGlzLmNoaWxkQ29tcG9uZW50LCB0aGlzLmRpYWxvZ0RhdGEuY2hpbGREYXRhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjYWxsIGNvbXBvbmVudCBjaGlsZCBpbml0IGZ1bmMgLSBsb29rcyBsaWtlIGRvdWJsZSBpbml0XG4gICAgICAgIC8vIGlmICh0aGlzLmNoaWxkQ29tcG9uZW50Lm5nT25Jbml0KSB7XG4gICAgICAgIC8vICAgdGhpcy5jaGlsZENvbXBvbmVudC5uZ09uSW5pdCgpO1xuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBjbG9zZURpYWxvZyhkYXRhPzogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgZmFsc2UpO1xuICAgIH1cblxuICAgIGVuYWJsZUFjY2VwdEJ1dHRvbigpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25EZWNsaW5lKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIG9uQWNjZXB0RGlhbG9nKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhIHx8IHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZ1bmNOYW1lID0gdGhpcy5kaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5mdW5jdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkQ29tcG9uZW50W2Z1bmNOYW1lXSkgdGhpcy5jaGlsZENvbXBvbmVudFtmdW5jTmFtZV0oKTtcbiAgICAgICAgY29uc3QgbG9hZEZ1bmNOYW1lID0gdGhpcy5kaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5sb2FkaW5nO1xuICAgICAgICBpZiAodGhpcy5jaGlsZENvbXBvbmVudFtsb2FkRnVuY05hbWVdKSB0aGlzLmlzTG9hZGluZyA9IHRoaXMuY2hpbGRDb21wb25lbnRbbG9hZEZ1bmNOYW1lXSgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY29uZmlybUZuKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YS5jb25maXJtRm4oKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmRpYWxvZ1NlcnZpY2UudGhyb3dFcnIoZXJyb3IsIHRoaXMuc2F2aW5nJCkpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhIHx8IHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGlsZENvbXBvbmVudCAmJiAhdGhpcy5jaGlsZENvbXBvbmVudFtmdW5jTmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCJcbiAgICAgW2NsYXNzLmRpYWxvZy13cmFwcGVyLS1jb25maXJtYXRpb24tbm8tdGl0bGVdPVwiZGlhbG9nRGF0YS50aGVtZT8uaXNDb25maXJtYXRpb24gJiYgIWRpYWxvZ0RhdGEudGl0bGVcIj5cbiAgICA8aSBjbGFzcz1cImRyLWljb24tZXhpdFwiIGRhdGEtdGVzdD1cImNsb3NlX2J0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgKm5nSWY9XCIhZGlhbG9nRGF0YT8uaGlkZUNsb3NlQnRuXCI+PC9pPlxuXG4gICAgPGRpdiBoZWFkZXIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9faGVhZGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLnRpdGxlXCI+XG4gICAgICAgIDxoMSBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19oZWFkZXJfX3RpdGxlXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaWFsb2ctd3JhcHBlcl9faGVhZGVyX190aXRsZS0td2l0aC1zdWJ0aXRsZV09XCJkaWFsb2dEYXRhLnN1YnRpdGxlXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdD1cImRpYWxvZ1RpdGxlXCI+e3sgZGlhbG9nRGF0YS50aXRsZSB9fTwvaDE+XG4gICAgICAgIDxoMSBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19oZWFkZXJfX3N1YnRpdGxlXCIgZGF0YS10ZXN0PVwiZGlhbG9nU3VidGl0bGVcIlxuICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dEYXRhLnN1YnRpdGxlXCI+e3sgZGlhbG9nRGF0YS5zdWJ0aXRsZSB9fTwvaDE+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19jb250ZW50XCJcbiAgICAgICAgIFtjbGFzcy5kaWFsb2ctd3JhcHBlcl9fY29udGVudC0tbm8tcGFkZGluZ109XCJkaWFsb2dEYXRhLnRoZW1lPy5jb250ZW50Tm9QYWRkaW5nXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZsZXgtcG9zaXRpb24nOiBkaWFsb2dEYXRhLmNvbnRlbnRJY29uPy5jbGFzcyAmJiAhY2hpbGRDb21wb25lbnQgfVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImRpYWxvZ0RhdGEuY29udGVudEljb24/LmNsYXNzXCIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fY29udGVudF9faWNvblwiPlxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiZGlhbG9nRGF0YS5jb250ZW50SWNvbi5jbGFzc1wiIFtzdHlsZS5jb2xvcl09XCJkaWFsb2dEYXRhLmNvbnRlbnRJY29uPy5jb2xvciB8fCAnaW5oZXJpdCdcIj48L2k+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaWFsb2ctY29udGVudF9fd3JhcHBlclwiIFtpbm5lckhUTUxdPVwiZGlhbG9nRGF0YS5jb250ZW50XCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiAjY29udGVudCBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19jb250ZW50X19hbmNob3JcIj4gPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkci1kZXRhaWxzLWxpc3QgKm5nSWY9XCJkaWFsb2dEYXRhLmRldGFpbHNcIlxuICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImRpYWxvZ0RhdGEuZGV0YWlscy50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZGlhbG9nRGF0YS5kZXRhaWxzLml0ZW1zXCI+XG4gICAgPC9kci1kZXRhaWxzLWxpc3Q+XG4gICAgPGRpdiBmb290ZXIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fZm9vdGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbiB8fCBkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3Rlcl9fYnV0dG9uc1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbi13cmFwcGVyIGRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbi13cmFwcGVyLS1jdXN0b21cIlxuICAgICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvbi5pc0Rpc2FibGVkICYmIGRpYWxvZ0RhdGEudG9vbHRpcHM/LmN1c3RvbURpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgPGRyLWJ1dHRvbiAoY2xpY2spPVwib25EZWNsaW5lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cImRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uPy50aGVtZSB8fCAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3Q9XCJkZWNsaW5lQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvbi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uY3VzdG9tXCI+e3sgZGlhbG9nRGF0YS5jdXN0b21CdXR0b24ubGFiZWwgfX08L2RyLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fZm9vdGVyX19idXR0b24td3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICBbZHJUb29sdGlwXT1cImRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uLmlzRGlzYWJsZWQgJiYgZGlhbG9nRGF0YS50b29sdGlwcz8uY2FuY2VsRGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8ZHItYnV0dG9uIChjbGljayk9XCJjbG9zZURpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbj8udGhlbWUgfHwgJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiY2xvc2VCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJkaWFsb2dEYXRhLnRvb2x0aXBzPy5jYW5jZWxcIj57eyBkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbi5sYWJlbCB9fTwvZHItYnV0dG9uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbi13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24uaXNEaXNhYmxlZCAmJiBkaWFsb2dEYXRhLnRvb2x0aXBzPy5hY2NlcHREaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxkci1idXR0b24gKGNsaWNrKT1cIm9uQWNjZXB0RGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cImRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uPy50aGVtZSB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiYWNjZXB0QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uYWNjZXB0XCI+e3sgZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24ubGFiZWwgfX08L2RyLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLElBQUksZUFBZSxFQUFFLGtCQUFrQixJQUFJLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhJLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQU85RCxNQUFNLE9BQU8sc0JBQXNCO0lBSS9CLElBQ0ksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxJQUFJLGNBQWMsQ0FBQztJQUNqSCxDQUFD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QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM3SSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNuQyxPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztrSUFoRlEsc0JBQXNCLDBKQWtCWCxlQUFlO3NIQWxCMUIsc0JBQXNCLGdNQUVELGdCQUFnQiw2QkMxQmxELHFySEF5REE7OzRGRGpDYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksbUJBQW1COzswQkFzQmhCLE1BQU07MkJBQUMsZUFBZTs0Q0FoQmUsT0FBTztzQkFBeEQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRzVDLFlBQVk7c0JBRGYsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IERhdGFQcm9wLCBTaXplTW9kYWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpYWxvZy1kYXRhJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kaWFsb2ctd3JhcHBlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGVudDogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBlbGVtZW50Q2xhc3MoKTogU2l6ZU1vZGFsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nRGF0YT8udGhlbWU/Lm5vVGhlbWVTaXplQ2xhc3MgPyBudWxsIDogdGhpcy5kaWFsb2dEYXRhPy50aGVtZT8udGhlbWVTaXplIHx8ICdtZWRpdW0tbW9kYWwnO1xuICAgIH1cblxuICAgIGNoaWxkQ29tcG9uZW50OiBhbnk7XG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIHNhdmluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgICBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEaWFsb2dXcmFwcGVyQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBEYXRhUHJvcCkge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiBFcnJvciB7XG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLmNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdFeHBlY3RlZCBjb21wb25lbnRUeXBlQ2hpbGQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT4gPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmRpYWxvZ0RhdGEuY2hpbGQpO1xuICAgICAgICB0aGlzLmNoaWxkQ29tcG9uZW50ID0gdGhpcy5jb250ZW50LmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KS5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5jaGlsZENvbXBvbmVudC5jbG9zZURpYWxvZyA9IHRoaXMuY2xvc2VEaWFsb2cuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5jaGlsZENvbXBvbmVudC5vbkFjY2VwdERpYWxvZyA9IHRoaXMub25BY2NlcHREaWFsb2cuYmluZCh0aGlzKTtcblxuICAgICAgICAvLyBwYXNzIGRhdGEgdG8gY29tcG9uZW50IGNoaWxkXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2hpbGREYXRhKSB7XG4gICAgICAgICAgICBfLmFzc2lnbih0aGlzLmNoaWxkQ29tcG9uZW50LCB0aGlzLmRpYWxvZ0RhdGEuY2hpbGREYXRhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjYWxsIGNvbXBvbmVudCBjaGlsZCBpbml0IGZ1bmMgLSBsb29rcyBsaWtlIGRvdWJsZSBpbml0XG4gICAgICAgIC8vIGlmICh0aGlzLmNoaWxkQ29tcG9uZW50Lm5nT25Jbml0KSB7XG4gICAgICAgIC8vICAgdGhpcy5jaGlsZENvbXBvbmVudC5uZ09uSW5pdCgpO1xuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBjbG9zZURpYWxvZyhkYXRhPzogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgZmFsc2UpO1xuICAgIH1cblxuICAgIGVuYWJsZUFjY2VwdEJ1dHRvbigpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25EZWNsaW5lKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIG9uQWNjZXB0RGlhbG9nKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhIHx8IHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZ1bmNOYW1lID0gdGhpcy5kaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5mdW5jdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkQ29tcG9uZW50W2Z1bmNOYW1lXSkgdGhpcy5jaGlsZENvbXBvbmVudFtmdW5jTmFtZV0oKTtcbiAgICAgICAgY29uc3QgbG9hZEZ1bmNOYW1lID0gdGhpcy5kaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5sb2FkaW5nO1xuICAgICAgICBpZiAodGhpcy5jaGlsZENvbXBvbmVudFtsb2FkRnVuY05hbWVdKSB0aGlzLmlzTG9hZGluZyA9IHRoaXMuY2hpbGRDb21wb25lbnRbbG9hZEZ1bmNOYW1lXSgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY29uZmlybUZuKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YS5jb25maXJtRm4oKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmRpYWxvZ1NlcnZpY2UudGhyb3dFcnIoZXJyb3IsIHRoaXMuc2F2aW5nJCkpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhIHx8IHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGlsZENvbXBvbmVudCAmJiAhdGhpcy5jaGlsZENvbXBvbmVudFtmdW5jTmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCJcbiAgICAgW2NsYXNzLmRpYWxvZy13cmFwcGVyLS1jb25maXJtYXRpb24tbm8tdGl0bGVdPVwiZGlhbG9nRGF0YS50aGVtZT8uaXNDb25maXJtYXRpb24gJiYgIWRpYWxvZ0RhdGEudGl0bGVcIj5cbiAgICA8aSBjbGFzcz1cImRyLWljb24tZXhpdFwiIGRhdGEtdGVzdD1cImNsb3NlX2J0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgKm5nSWY9XCIhZGlhbG9nRGF0YT8uaGlkZUNsb3NlQnRuXCI+PC9pPlxuXG4gICAgPGRpdiBoZWFkZXIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9faGVhZGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLnRpdGxlXCI+XG4gICAgICAgIDxoMSBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19oZWFkZXJfX3RpdGxlXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdD1cImRpYWxvZ1RpdGxlXCI+e3sgZGlhbG9nRGF0YS50aXRsZSB9fTwvaDE+XG4gICAgICAgIDxoMSBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19oZWFkZXJfX3N1YnRpdGxlXCIgZGF0YS10ZXN0PVwiZGlhbG9nU3VidGl0bGVcIlxuICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dEYXRhLnN1YnRpdGxlXCI+e3sgZGlhbG9nRGF0YS5zdWJ0aXRsZSB9fTwvaDE+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19jb250ZW50XCJcbiAgICAgICAgIFtjbGFzcy5kaWFsb2ctd3JhcHBlcl9fY29udGVudC0tbm8tcGFkZGluZ109XCJkaWFsb2dEYXRhLnRoZW1lPy5jb250ZW50Tm9QYWRkaW5nXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZsZXgtcG9zaXRpb24nOiBkaWFsb2dEYXRhLmNvbnRlbnRJY29uPy5jbGFzcyAmJiAhY2hpbGRDb21wb25lbnQgfVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImRpYWxvZ0RhdGEuY29udGVudEljb24/LmNsYXNzXCIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fY29udGVudF9faWNvblwiPlxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiZGlhbG9nRGF0YS5jb250ZW50SWNvbi5jbGFzc1wiIFtzdHlsZS5jb2xvcl09XCJkaWFsb2dEYXRhLmNvbnRlbnRJY29uPy5jb2xvciB8fCAnaW5oZXJpdCdcIj48L2k+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaWFsb2ctY29udGVudF9fd3JhcHBlclwiIFtpbm5lckhUTUxdPVwiZGlhbG9nRGF0YS5jb250ZW50XCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiAjY29udGVudCBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19jb250ZW50X19hbmNob3JcIj4gPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkci1kZXRhaWxzLWxpc3QgKm5nSWY9XCJkaWFsb2dEYXRhLmRldGFpbHNcIlxuICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImRpYWxvZ0RhdGEuZGV0YWlscy50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZGlhbG9nRGF0YS5kZXRhaWxzLml0ZW1zXCI+XG4gICAgPC9kci1kZXRhaWxzLWxpc3Q+XG4gICAgPGRpdiBmb290ZXIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fZm9vdGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbiB8fCBkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3Rlcl9fYnV0dG9uc1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbi13cmFwcGVyIGRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbi13cmFwcGVyLS1jdXN0b21cIlxuICAgICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvbi5pc0Rpc2FibGVkICYmIGRpYWxvZ0RhdGEudG9vbHRpcHM/LmN1c3RvbURpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgPGRyLWJ1dHRvbiAoY2xpY2spPVwib25EZWNsaW5lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cImRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uPy50aGVtZSB8fCAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3Q9XCJkZWNsaW5lQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvbi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uY3VzdG9tXCI+e3sgZGlhbG9nRGF0YS5jdXN0b21CdXR0b24ubGFiZWwgfX08L2RyLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fZm9vdGVyX19idXR0b24td3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICBbZHJUb29sdGlwXT1cImRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uLmlzRGlzYWJsZWQgJiYgZGlhbG9nRGF0YS50b29sdGlwcz8uY2FuY2VsRGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8ZHItYnV0dG9uIChjbGljayk9XCJjbG9zZURpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbj8udGhlbWUgfHwgJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiY2xvc2VCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJkaWFsb2dEYXRhLnRvb2x0aXBzPy5jYW5jZWxcIj57eyBkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbi5sYWJlbCB9fTwvZHItYnV0dG9uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbi13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24uaXNEaXNhYmxlZCAmJiBkaWFsb2dEYXRhLnRvb2x0aXBzPy5hY2NlcHREaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxkci1idXR0b24gKGNsaWNrKT1cIm9uQWNjZXB0RGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cImRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uPy50aGVtZSB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiYWNjZXB0QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uYWNjZXB0XCI+e3sgZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24ubGFiZWwgfX08L2RyLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -10,6 +10,7 @@ export class DrErrorComponent {
10
10
  this.formGroupDirective = formGroupDirective;
11
11
  this.label = 'Field error';
12
12
  this.errorTooltipPosition = 'top';
13
+ this.displayAsLabel = false;
13
14
  this.noIcon = false;
14
15
  }
15
16
  set control(value) {
@@ -35,11 +36,11 @@ export class DrErrorComponent {
35
36
  return this._control.errors?.isWarning;
36
37
  }
37
38
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrErrorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
38
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrErrorComponent, selector: "dr-error", inputs: { control: "control", controlName: "controlName", label: "label", errorTooltipPosition: "errorTooltipPosition", noIcon: "noIcon" }, host: { properties: { "class.no-icon": "this.noIcon" } }, ngImport: i0, template: "<div *ngIf=\"_control.status === 'INVALID' && !_control.pristine\"\n [drTooltip]=\"errorString\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.warning]=\"isWarning\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{label}}</span>\n</div>\n", styles: [":host{display:flex;margin-top:8px}:host:empty{display:none}:host .error-container{display:flex;align-items:center;cursor:pointer;width:auto;color:#bf1d30}:host .error-container i{font-size:16px;margin-right:2px}:host .error-container span{font-family:Poppins,sans-serif;font-style:normal;font-weight:400;font-size:11px;line-height:20px}:host .error-container.warning{color:#ffb800}:host .error-container.warning span{color:#9e5f00}:host.no-icon{margin-top:2px}:host.no-icon .error-container span{font-size:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DrTooltipDirective, selector: "[drTooltip]", inputs: ["drTooltip", "drTooltipContext", "drTooltipPosition", "drTooltipClass", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipOptions", "drTooltipShow"] }] }); }
39
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrErrorComponent, selector: "dr-error", inputs: { control: "control", controlName: "controlName", label: "label", errorTooltipPosition: "errorTooltipPosition", displayAsLabel: "displayAsLabel", noIcon: "noIcon" }, host: { properties: { "class.no-icon": "this.noIcon" } }, ngImport: i0, template: "<div *ngIf=\"_control.status === 'INVALID' && !_control.pristine\"\n [drTooltip]=\"displayAsLabel ? null : errorString\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.error-container--cursor-pointer]=\"!displayAsLabel\"\n [class.warning]=\"isWarning\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{ displayAsLabel ? errorString : label }}</span>\n</div>\n", styles: [":host{display:flex;margin-top:8px}:host:empty{display:none}:host .error-container{display:flex;align-items:center;width:auto;color:#bf1d30}:host .error-container i{font-size:16px;margin-right:2px}:host .error-container span{font-family:Poppins,sans-serif;font-style:normal;font-weight:400;font-size:11px;line-height:20px}:host .error-container.warning{color:#ffb800}:host .error-container.warning span{color:#9e5f00}:host .error-container--cursor-pointer{cursor:pointer}:host.no-icon{margin-top:2px}:host.no-icon .error-container span{font-size:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DrTooltipDirective, selector: "[drTooltip]", inputs: ["drTooltip", "drTooltipContext", "drTooltipPosition", "drTooltipClass", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipOptions", "drTooltipShow"] }] }); }
39
40
  }
40
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrErrorComponent, decorators: [{
41
42
  type: Component,
42
- args: [{ selector: 'dr-error', template: "<div *ngIf=\"_control.status === 'INVALID' && !_control.pristine\"\n [drTooltip]=\"errorString\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.warning]=\"isWarning\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{label}}</span>\n</div>\n", styles: [":host{display:flex;margin-top:8px}:host:empty{display:none}:host .error-container{display:flex;align-items:center;cursor:pointer;width:auto;color:#bf1d30}:host .error-container i{font-size:16px;margin-right:2px}:host .error-container span{font-family:Poppins,sans-serif;font-style:normal;font-weight:400;font-size:11px;line-height:20px}:host .error-container.warning{color:#ffb800}:host .error-container.warning span{color:#9e5f00}:host.no-icon{margin-top:2px}:host.no-icon .error-container span{font-size:12px}\n"] }]
43
+ args: [{ selector: 'dr-error', template: "<div *ngIf=\"_control.status === 'INVALID' && !_control.pristine\"\n [drTooltip]=\"displayAsLabel ? null : errorString\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.error-container--cursor-pointer]=\"!displayAsLabel\"\n [class.warning]=\"isWarning\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{ displayAsLabel ? errorString : label }}</span>\n</div>\n", styles: [":host{display:flex;margin-top:8px}:host:empty{display:none}:host .error-container{display:flex;align-items:center;width:auto;color:#bf1d30}:host .error-container i{font-size:16px;margin-right:2px}:host .error-container span{font-family:Poppins,sans-serif;font-style:normal;font-weight:400;font-size:11px;line-height:20px}:host .error-container.warning{color:#ffb800}:host .error-container.warning span{color:#9e5f00}:host .error-container--cursor-pointer{cursor:pointer}:host.no-icon{margin-top:2px}:host.no-icon .error-container span{font-size:12px}\n"] }]
43
44
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FormGroupDirective, decorators: [{
44
45
  type: Optional
45
46
  }] }]; }, propDecorators: { control: [{
@@ -50,10 +51,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
50
51
  type: Input
51
52
  }], errorTooltipPosition: [{
52
53
  type: Input
54
+ }], displayAsLabel: [{
55
+ type: Input
53
56
  }], noIcon: [{
54
57
  type: Input
55
58
  }, {
56
59
  type: HostBinding,
57
60
  args: ['class.no-icon']
58
61
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZXJyb3IvZHItZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZXJyb3IvZHItZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT2pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBb0IsR0FBc0IsRUFBc0Isa0JBQXNDO1FBQWxGLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQXNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFtQjdGLFVBQUssR0FBRyxhQUFhLENBQUM7UUFDdEIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRUMsV0FBTSxHQUFHLEtBQUssQ0FBQztJQXRCbUQsQ0FBQztJQUcxRyxJQUFhLE9BQU8sQ0FBQyxLQUFrQjtRQUNuQyxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTztRQUVoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztTQUM5RTtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFnQixDQUFDO0lBQzdFLENBQUM7SUFPRCxJQUFJLFdBQVc7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sb0JBQW9CLENBQUM7U0FDL0I7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO0lBQzNDLENBQUM7a0lBbkNRLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLHNQQ1I3QixrVUFRQTs7NEZEQWEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUVJLFVBQVU7OzBCQUl5QixRQUFROzRDQUd4QyxPQUFPO3NCQUFuQixLQUFLO2dCQU1PLFdBQVc7c0JBQXZCLEtBQUs7Z0JBVUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFaUMsTUFBTTtzQkFBNUMsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdkci1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdkci1lcnJvcicsXG4gICAgc3R5bGVVcmxzOiBbJ2RyLWVycm9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyRXJyb3JDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSkge31cblxuICAgIHB1YmxpYyBfY29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgQElucHV0KCkgc2V0IGNvbnRyb2wodmFsdWU6IEZvcm1Db250cm9sKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fY29udHJvbCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNvbnRyb2xOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm47XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgZm9ybUdyb3VwRGlyZWN0aXZlIHRvIHVzZSB0aGlzIGlucHV0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5jb250cm9sLmdldCh2YWx1ZSkgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbGFiZWwgPSAnRmllbGQgZXJyb3InO1xuICAgIEBJbnB1dCgpIGVycm9yVG9vbHRpcFBvc2l0aW9uID0gJ3RvcCc7XG5cbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLm5vLWljb24nKSBub0ljb24gPSBmYWxzZTtcblxuICAgIGdldCBlcnJvclN0cmluZygpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIHJldHVybiAnRmllbGQgaXMgcmVxdWlyZWQhJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250cm9sLmVycm9ycz8uZXJyb3JTdHJpbmcgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgaXNXYXJuaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbC5lcnJvcnM/LmlzV2FybmluZztcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiX2NvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcgJiYgIV9jb250cm9sLnByaXN0aW5lXCJcbiAgICAgW2RyVG9vbHRpcF09XCJlcnJvclN0cmluZ1wiXG4gICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCJlcnJvclRvb2x0aXBQb3NpdGlvblwiXG4gICAgIGNsYXNzPVwiZXJyb3ItY29udGFpbmVyXCJcbiAgICAgW2NsYXNzLndhcm5pbmddPVwiaXNXYXJuaW5nXCI+XG4gICAgPGkgKm5nSWY9XCIhbm9JY29uXCIgY2xhc3M9XCJkci1pY29uLXN0YXR1cy1lcnJvclwiPjwvaT5cbiAgICA8c3Bhbj57e2xhYmVsfX08L3NwYW4+XG48L2Rpdj5cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZXJyb3IvZHItZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZXJyb3IvZHItZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT2pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBb0IsR0FBc0IsRUFBc0Isa0JBQXNDO1FBQWxGLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQXNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFtQjdGLFVBQUssR0FBRyxhQUFhLENBQUM7UUFDdEIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRU8sV0FBTSxHQUFHLEtBQUssQ0FBQztJQXZCbUQsQ0FBQztJQUcxRyxJQUFhLE9BQU8sQ0FBQyxLQUFrQjtRQUNuQyxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTztRQUVoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztTQUM5RTtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFnQixDQUFDO0lBQzdFLENBQUM7SUFRRCxJQUFJLFdBQVc7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sb0JBQW9CLENBQUM7U0FDL0I7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO0lBQzNDLENBQUM7a0lBcENRLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLHdSQ1I3Qiw2YkFTQTs7NEZERGEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUVJLFVBQVU7OzBCQUl5QixRQUFROzRDQUd4QyxPQUFPO3NCQUFuQixLQUFLO2dCQU1PLFdBQVc7c0JBQXZCLEtBQUs7Z0JBVUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVpQyxNQUFNO3NCQUE1QyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJ2RyLWVycm9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzZWxlY3RvcjogJ2RyLWVycm9yJyxcbiAgICBzdHlsZVVybHM6IFsnZHItZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJFcnJvckNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBAT3B0aW9uYWwoKSBwcml2YXRlIGZvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKSB7fVxuXG4gICAgcHVibGljIF9jb250cm9sOiBGb3JtQ29udHJvbDtcbiAgICBASW5wdXQoKSBzZXQgY29udHJvbCh2YWx1ZTogRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY29udHJvbE5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgYSBmb3JtR3JvdXBEaXJlY3RpdmUgdG8gdXNlIHRoaXMgaW5wdXQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmNvbnRyb2wuZ2V0KHZhbHVlKSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsYWJlbCA9ICdGaWVsZCBlcnJvcic7XG4gICAgQElucHV0KCkgZXJyb3JUb29sdGlwUG9zaXRpb24gPSAndG9wJztcbiAgICBASW5wdXQoKSBkaXNwbGF5QXNMYWJlbCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5uby1pY29uJykgbm9JY29uID0gZmFsc2U7XG5cbiAgICBnZXQgZXJyb3JTdHJpbmcoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0ZpZWxkIGlzIHJlcXVpcmVkISc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbC5lcnJvcnM/LmVycm9yU3RyaW5nIHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGlzV2FybmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2wuZXJyb3JzPy5pc1dhcm5pbmc7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIl9jb250cm9sLnN0YXR1cyA9PT0gJ0lOVkFMSUQnICYmICFfY29udHJvbC5wcmlzdGluZVwiXG4gICAgIFtkclRvb2x0aXBdPVwiZGlzcGxheUFzTGFiZWwgPyBudWxsIDogZXJyb3JTdHJpbmdcIlxuICAgICBbZHJUb29sdGlwUG9zaXRpb25dPVwiZXJyb3JUb29sdGlwUG9zaXRpb25cIlxuICAgICBjbGFzcz1cImVycm9yLWNvbnRhaW5lclwiXG4gICAgIFtjbGFzcy5lcnJvci1jb250YWluZXItLWN1cnNvci1wb2ludGVyXT1cIiFkaXNwbGF5QXNMYWJlbFwiXG4gICAgIFtjbGFzcy53YXJuaW5nXT1cImlzV2FybmluZ1wiPlxuICAgIDxpICpuZ0lmPVwiIW5vSWNvblwiIGNsYXNzPVwiZHItaWNvbi1zdGF0dXMtZXJyb3JcIj48L2k+XG4gICAgPHNwYW4+e3sgZGlzcGxheUFzTGFiZWwgPyBlcnJvclN0cmluZyA6IGxhYmVsIH19PC9zcGFuPlxuPC9kaXY+XG4iXX0=