survey-angular-ui 1.9.54 → 1.9.55

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.
@@ -2,19 +2,20 @@ import { Component, Input } from "@angular/core";
2
2
  import { AngularComponentFactory } from "../../../component-factory";
3
3
  import { RendererFactory } from "survey-core";
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../../survey-string.component";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "@angular/common";
5
+ import * as i1 from "../../element-title/title-actions.component";
6
+ import * as i2 from "../../../survey-string.component";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@angular/common";
8
9
  export class BooleanCheckboxComponent {
9
10
  }
10
11
  BooleanCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: BooleanCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- BooleanCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: BooleanCheckboxComponent, selector: "sv-ng-boolean-checkbox-question", inputs: { model: "model" }, ngImport: i0, template: "<div [class]=\"model.cssClasses.rootCheckbox\">\n <div [class]=\"model.getCheckboxItemCss()\">\n <label [class]=\"model.cssClasses.checkboxLabel\">\n <input\n type=\"checkbox\"\n [value]=\"model.booleanValue\" [class]=\"model.cssClasses.controlCheckbox\" \n [attr.name]=\"model.name\" [id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-describedby]=\"model.ariaDescribedBy\" [(ngModel)]=\"model.booleanValue\" [value]=\"model.booleanValue\"\n [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\"\n />\n <span [class]=\"model.cssClasses.checkboxMaterialDecorator\">\n <svg *ngIf=\"!!model.svgIcon\" [class]=\"model.cssClasses.checkboxItemDecorator\">\n <use [attr.xlink:href]=\"model.svgIcon\"></use>\n </svg>\n <span class=\"check\"></span>\n </span>\n <span *ngIf=\"model.titleLocation === 'hidden'\" [class]=\"model.cssClasses.checkboxControlLabel\" [model]=\"model.locDisplayLabel\" sv-ng-string></span>\n </label>\n </div>\n</div>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
12
+ BooleanCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: BooleanCheckboxComponent, selector: "sv-ng-boolean-checkbox-question", inputs: { model: "model" }, ngImport: i0, template: "<div [class]=\"model.cssClasses.rootCheckbox\">\n <div [class]=\"model.getCheckboxItemCss()\">\n <label [class]=\"model.cssClasses.checkboxLabel\">\n <input\n type=\"checkbox\"\n [value]=\"model.booleanValue\" [class]=\"model.cssClasses.controlCheckbox\" \n [attr.name]=\"model.name\" [id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-describedby]=\"model.ariaDescribedBy\" [(ngModel)]=\"model.booleanValue\" [value]=\"model.booleanValue\"\n [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\"\n />\n <span [class]=\"model.cssClasses.checkboxMaterialDecorator\">\n <svg *ngIf=\"!!model.svgIcon\" [class]=\"model.cssClasses.checkboxItemDecorator\">\n <use [attr.xlink:href]=\"model.svgIcon\"></use>\n </svg>\n <span class=\"check\"></span>\n </span>\n <span *ngIf=\"model.isLabelRendered\" [class]=\"model.cssClasses.checkboxControlLabel\">\n <sv-ng-element-title-actions [element]=\"model\"></sv-ng-element-title-actions>\n </span>\n </label>\n <div *ngIf=\"model.canRenderLabelDescription\" [class]=\"model.cssDescription\" [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n</div>", components: [{ type: i1.ElementTitleActionsComponent, selector: "sv-ng-element-title-actions", inputs: ["element"] }, { type: i2.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
12
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: BooleanCheckboxComponent, decorators: [{
13
14
  type: Component,
14
- args: [{ selector: "sv-ng-boolean-checkbox-question", template: "<div [class]=\"model.cssClasses.rootCheckbox\">\n <div [class]=\"model.getCheckboxItemCss()\">\n <label [class]=\"model.cssClasses.checkboxLabel\">\n <input\n type=\"checkbox\"\n [value]=\"model.booleanValue\" [class]=\"model.cssClasses.controlCheckbox\" \n [attr.name]=\"model.name\" [id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-describedby]=\"model.ariaDescribedBy\" [(ngModel)]=\"model.booleanValue\" [value]=\"model.booleanValue\"\n [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\"\n />\n <span [class]=\"model.cssClasses.checkboxMaterialDecorator\">\n <svg *ngIf=\"!!model.svgIcon\" [class]=\"model.cssClasses.checkboxItemDecorator\">\n <use [attr.xlink:href]=\"model.svgIcon\"></use>\n </svg>\n <span class=\"check\"></span>\n </span>\n <span *ngIf=\"model.titleLocation === 'hidden'\" [class]=\"model.cssClasses.checkboxControlLabel\" [model]=\"model.locDisplayLabel\" sv-ng-string></span>\n </label>\n </div>\n</div>" }]
15
+ args: [{ selector: "sv-ng-boolean-checkbox-question", template: "<div [class]=\"model.cssClasses.rootCheckbox\">\n <div [class]=\"model.getCheckboxItemCss()\">\n <label [class]=\"model.cssClasses.checkboxLabel\">\n <input\n type=\"checkbox\"\n [value]=\"model.booleanValue\" [class]=\"model.cssClasses.controlCheckbox\" \n [attr.name]=\"model.name\" [id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-describedby]=\"model.ariaDescribedBy\" [(ngModel)]=\"model.booleanValue\" [value]=\"model.booleanValue\"\n [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\"\n />\n <span [class]=\"model.cssClasses.checkboxMaterialDecorator\">\n <svg *ngIf=\"!!model.svgIcon\" [class]=\"model.cssClasses.checkboxItemDecorator\">\n <use [attr.xlink:href]=\"model.svgIcon\"></use>\n </svg>\n <span class=\"check\"></span>\n </span>\n <span *ngIf=\"model.isLabelRendered\" [class]=\"model.cssClasses.checkboxControlLabel\">\n <sv-ng-element-title-actions [element]=\"model\"></sv-ng-element-title-actions>\n </span>\n </label>\n <div *ngIf=\"model.canRenderLabelDescription\" [class]=\"model.cssDescription\" [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n</div>" }]
15
16
  }], propDecorators: { model: [{
16
17
  type: Input
17
18
  }] } });
18
19
  AngularComponentFactory.Instance.registerComponent("boolean-checkbox-question", BooleanCheckboxComponent);
19
20
  RendererFactory.Instance.registerRenderer("boolean", "checkbox", "boolean-checkbox-question");
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvY29tcG9uZW50cy9yZW5kZXJBcy9ib29sZWFuLWNoZWNrYm94L2Jvb2xlYW4tY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL2NvbXBvbmVudHMvcmVuZGVyQXMvYm9vbGVhbi1jaGVja2JveC9ib29sZWFuLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBTTlDLE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7eUdBQXhCLHdCQUF3QixtR0NUckMsaXBDQW1CTTsyRkRWTyx3QkFBd0I7a0JBSnBDLFNBQVM7K0JBQ0UsaUNBQWlDOzhCQUlsQyxLQUFLO3NCQUFiLEtBQUs7O0FBR1IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLDJCQUEyQixFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFDMUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDdkMsU0FBUyxFQUNULFVBQVUsRUFDViwyQkFBMkIsQ0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuaW1wb3J0IHsgUmVuZGVyZXJGYWN0b3J5IH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1ib29sZWFuLWNoZWNrYm94LXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYm9vbGVhbi1jaGVja2JveC5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIEJvb2xlYW5DaGVja2JveENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1vZGVsOiBhbnk7XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwiYm9vbGVhbi1jaGVja2JveC1xdWVzdGlvblwiLCBCb29sZWFuQ2hlY2tib3hDb21wb25lbnQpO1xuUmVuZGVyZXJGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyUmVuZGVyZXIoXG4gIFwiYm9vbGVhblwiLFxuICBcImNoZWNrYm94XCIsXG4gIFwiYm9vbGVhbi1jaGVja2JveC1xdWVzdGlvblwiXG4pO1xuIiwiPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yb290Q2hlY2tib3hcIj5cbiAgPGRpdiBbY2xhc3NdPVwibW9kZWwuZ2V0Q2hlY2tib3hJdGVtQ3NzKClcIj5cbiAgICA8bGFiZWwgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY2hlY2tib3hMYWJlbFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIFt2YWx1ZV09XCJtb2RlbC5ib29sZWFuVmFsdWVcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jb250cm9sQ2hlY2tib3hcIiBcbiAgICAgICAgW2F0dHIubmFtZV09XCJtb2RlbC5uYW1lXCIgW2lkXT1cIm1vZGVsLmlucHV0SWRcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cIm1vZGVsLmFyaWFSZXF1aXJlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1vZGVsLmFyaWFJbnZhbGlkXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtb2RlbC5hcmlhRGVzY3JpYmVkQnlcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmJvb2xlYW5WYWx1ZVwiIFt2YWx1ZV09XCJtb2RlbC5ib29sZWFuVmFsdWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwibW9kZWwuaXNJbnB1dFJlYWRPbmx5XCIgW2luZGV0ZXJtaW5hdGVdPVwibW9kZWwuaXNJbmRldGVybWluYXRlXCJcbiAgICAgIC8+XG4gICAgICA8c3BhbiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jaGVja2JveE1hdGVyaWFsRGVjb3JhdG9yXCI+XG4gICAgICAgIDxzdmcgKm5nSWY9XCIhIW1vZGVsLnN2Z0ljb25cIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jaGVja2JveEl0ZW1EZWNvcmF0b3JcIj5cbiAgICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwibW9kZWwuc3ZnSWNvblwiPjwvdXNlPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja1wiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwibW9kZWwudGl0bGVMb2NhdGlvbiA9PT0gJ2hpZGRlbidcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jaGVja2JveENvbnRyb2xMYWJlbFwiIFttb2RlbF09XCJtb2RlbC5sb2NEaXNwbGF5TGFiZWxcIiBzdi1uZy1zdHJpbmc+PC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC9kaXY+Il19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvY29tcG9uZW50cy9yZW5kZXJBcy9ib29sZWFuLWNoZWNrYm94L2Jvb2xlYW4tY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL2NvbXBvbmVudHMvcmVuZGVyQXMvYm9vbGVhbi1jaGVja2JveC9ib29sZWFuLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQU05QyxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IsbUdDVHJDLGswQ0FzQk07MkZEYk8sd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLGlDQUFpQzs4QkFJbEMsS0FBSztzQkFBYixLQUFLOztBQUdSLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBQzFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQ3ZDLFNBQVMsRUFDVCxVQUFVLEVBQ1YsMkJBQTJCLENBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbmltcG9ydCB7IFJlbmRlcmVyRmFjdG9yeSB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctYm9vbGVhbi1jaGVja2JveC1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Jvb2xlYW4tY2hlY2tib3guY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuQ2hlY2tib3hDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbDogYW55O1xufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcImJvb2xlYW4tY2hlY2tib3gtcXVlc3Rpb25cIiwgQm9vbGVhbkNoZWNrYm94Q29tcG9uZW50KTtcblJlbmRlcmVyRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclJlbmRlcmVyKFxuICBcImJvb2xlYW5cIixcbiAgXCJjaGVja2JveFwiLFxuICBcImJvb2xlYW4tY2hlY2tib3gtcXVlc3Rpb25cIlxuKTtcbiIsIjxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucm9vdENoZWNrYm94XCI+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmdldENoZWNrYm94SXRlbUNzcygpXCI+XG4gICAgPGxhYmVsIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNoZWNrYm94TGFiZWxcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbdmFsdWVdPVwibW9kZWwuYm9vbGVhblZhbHVlXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY29udHJvbENoZWNrYm94XCIgXG4gICAgICAgIFthdHRyLm5hbWVdPVwibW9kZWwubmFtZVwiIFtpZF09XCJtb2RlbC5pbnB1dElkXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hcmlhUmVxdWlyZWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtb2RlbC5hcmlhSW52YWxpZFwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCIgWyhuZ01vZGVsKV09XCJtb2RlbC5ib29sZWFuVmFsdWVcIiBbdmFsdWVdPVwibW9kZWwuYm9vbGVhblZhbHVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGVsLmlzSW5wdXRSZWFkT25seVwiIFtpbmRldGVybWluYXRlXT1cIm1vZGVsLmlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAvPlxuICAgICAgPHNwYW4gW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY2hlY2tib3hNYXRlcmlhbERlY29yYXRvclwiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiISFtb2RlbC5zdmdJY29uXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY2hlY2tib3hJdGVtRGVjb3JhdG9yXCI+XG4gICAgICAgICAgPHVzZSBbYXR0ci54bGluazpocmVmXT1cIm1vZGVsLnN2Z0ljb25cIj48L3VzZT5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIm1vZGVsLmlzTGFiZWxSZW5kZXJlZFwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNoZWNrYm94Q29udHJvbExhYmVsXCI+XG4gICAgICAgIDxzdi1uZy1lbGVtZW50LXRpdGxlLWFjdGlvbnMgW2VsZW1lbnRdPVwibW9kZWxcIj48L3N2LW5nLWVsZW1lbnQtdGl0bGUtYWN0aW9ucz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5jYW5SZW5kZXJMYWJlbERlc2NyaXB0aW9uXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0Rlc2NyaXB0aW9uXCIgW21vZGVsXT1cIm1vZGVsLmxvY0Rlc2NyaXB0aW9uXCIgc3Ytbmctc3RyaW5nPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -16,10 +16,10 @@ export class FileQuestionComponent extends QuestionAngular {
16
16
  }
17
17
  }
18
18
  FileQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FileQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
- FileQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input\n [class]=\"model.cssClasses.fileInput\"\n *ngIf=\"!model.isReadOnly\"\n type=\"file\"\n [attr.id]=\"model.inputId\"\n (change)=\"model.doChange($event)\"\n [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\"\n [attr.accept]=\"model.acceptedTypes\"\n />\n <input\n *ngIf=\"model.isReadOnly\"\n type=\"file\"\n disabled\n [class]=\"model.getReadOnlyFileCss()\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.placeholder]=\"model.title\"\n style=\"color: transparent\"\n />\n <div [class]=\"model.cssClasses.dragArea\"\n (dragenter)=\"model.onDragEnter($event)\"\n (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\"\n (dragleave)=\"model.onDragLeave($event)\"> \n <div\n [class]=\"model.getFileDecoratorCss()\"\n >\n <span [class]=\"model.cssClasses.dragAreaPlaceholder\">{{ model.dragAreaPlaceholder }}</span>\n <div [class]=\"model.cssClasses.wrapper\">\n <label\n role=\"button\"\n [class]=\"model.getChooseFileCss()\"\n [attr.for]=\"model.inputId\"\n [attr.aria-label]=\"model.chooseButtonCaption\"\n >\n <span>{{ model.chooseButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.chooseFileIconId\" [title]=\"model.chooseButtonCaption\" [iconName]=\"model.cssClasses.chooseFileIconId\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </label>\n <span\n [class]=\"model.cssClasses.noFileChosen\"\n *ngIf=\"model.isEmpty()\"\n >{{ model.noFileChosenCaption }}</span\n >\n </div>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButton\"\n [class]=\"model.cssClasses.removeButton\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <div [class]=\"model.cssClasses.fileList || undefined\" *ngIf=\"!model.isEmpty()\">\n <span\n *ngFor=\"let val of model.previewValue; index as index; trackBy: trackFilesFn\"\n [visible]=\"val && model.isPreviewVisible(index)\"\n [class]=\"model.cssClasses.preview\"\n >\n <div *ngIf=\"val.name && model.cssClasses.fileSign\" [class]=\"model.cssClasses.fileSign\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [attr.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n <div [class]=\"model.cssClasses.imageWrapper\">\n <img\n *ngIf=\"model.canPreviewImage(val)\"\n [attr.src]=\"val.content | safeUrl\"\n [attr.height]=\"model.imageHeight\"\n [attr.width]=\"model.imageWidth\"\n alt=\"File preview\"\n />\n <svg *ngIf=\"model.defaultImage(val)\" \n [iconName]=\"model.cssClasses.defaultImageIconId\" [partCss]=\"model.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"val.name && !model.isReadOnly\" [class]=\"model.cssClasses.removeFileButton\" (click)=\"model.doRemoveFile(val)\">\n <span\n [class]=\"model.cssClasses.removeFile\"\n >{{ model.removeFileCaption }}</span\n >\n <svg *ngIf=\"model.cssClasses.removeFileSvgIconId\" [title]=\"model.removeFileCaption\" [partCss]=\"model.cssClasses.removeFileSvg\" [iconName]=\"model.cssClasses.removeFileSvgIconId\" [size]=\"'auto'\" sv-ng-svg-icon ></svg>\n </div>\n </div>\n <div *ngIf=\"val.name && model.cssClasses.fileSignBottom\" [class]=\"model.cssClasses.fileSignBottom\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [attr.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n </span>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButtonBottom\"\n [class]=\"model.showRemoveButtonBottom\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <sv-action-bar *ngIf=\"model.mobileFileNavigatorVisible\" [model]=\"model.mobileFileNavigator\"></sv-action-bar>\n </div>\n</div>", components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i2.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.VisibleDirective, selector: "[visible]", inputs: ["visible"] }], pipes: { "safeUrl": i5.SafeUrlPipe } });
19
+ FileQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input\n [class]=\"model.cssClasses.fileInput\"\n *ngIf=\"!model.isReadOnly\"\n type=\"file\"\n [attr.id]=\"model.inputId\"\n (change)=\"model.doChange($event)\"\n [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\"\n [attr.accept]=\"model.acceptedTypes\"\n />\n <input\n *ngIf=\"model.isReadOnly\"\n type=\"file\"\n disabled\n [class]=\"model.getReadOnlyFileCss()\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.placeholder]=\"model.title\"\n style=\"color: transparent\"\n />\n <div [class]=\"model.cssClasses.dragArea\"\n (dragenter)=\"model.onDragEnter($event)\"\n (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\"\n (dragleave)=\"model.onDragLeave($event)\"> \n <div\n [class]=\"model.getFileDecoratorCss()\"\n >\n <span [class]=\"model.cssClasses.dragAreaPlaceholder\">{{ model.dragAreaPlaceholder }}</span>\n <div [class]=\"model.cssClasses.wrapper\">\n <label\n role=\"button\"\n [class]=\"model.getChooseFileCss()\"\n [attr.for]=\"model.inputId\"\n [attr.aria-label]=\"model.chooseButtonCaption\"\n >\n <span>{{ model.chooseButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.chooseFileIconId\" [title]=\"model.chooseButtonCaption\" [iconName]=\"model.cssClasses.chooseFileIconId\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </label>\n <span\n [class]=\"model.cssClasses.noFileChosen\"\n *ngIf=\"model.isEmpty()\"\n >{{ model.noFileChosenCaption }}</span\n >\n </div>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButton\"\n [class]=\"model.cssClasses.removeButton\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <div [class]=\"model.cssClasses.fileList || undefined\" *ngIf=\"!model.isEmpty()\">\n <span\n *ngFor=\"let val of model.previewValue; index as index; trackBy: trackFilesFn\"\n [visible]=\"val && model.isPreviewVisible(index)\"\n [class]=\"model.cssClasses.preview\"\n >\n <div *ngIf=\"val.name && model.cssClasses.fileSign\" [class]=\"model.cssClasses.fileSign\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n <div [class]=\"model.cssClasses.imageWrapper\">\n <img\n *ngIf=\"model.canPreviewImage(val)\"\n [attr.src]=\"val.content | safeUrl\"\n [style.height]=\"model.imageHeight\"\n [style.width]=\"model.imageWidth\"\n alt=\"File preview\"\n />\n <svg *ngIf=\"model.defaultImage(val)\" \n [iconName]=\"model.cssClasses.defaultImageIconId\" [partCss]=\"model.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"val.name && !model.isReadOnly\" [class]=\"model.cssClasses.removeFileButton\" (click)=\"model.doRemoveFile(val)\">\n <span\n [class]=\"model.cssClasses.removeFile\"\n >{{ model.removeFileCaption }}</span\n >\n <svg *ngIf=\"model.cssClasses.removeFileSvgIconId\" [title]=\"model.removeFileCaption\" [partCss]=\"model.cssClasses.removeFileSvg\" [iconName]=\"model.cssClasses.removeFileSvgIconId\" [size]=\"'auto'\" sv-ng-svg-icon ></svg>\n </div>\n </div>\n <div *ngIf=\"val.name && model.cssClasses.fileSignBottom\" [class]=\"model.cssClasses.fileSignBottom\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n </span>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButtonBottom\"\n [class]=\"model.showRemoveButtonBottom\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <sv-action-bar *ngIf=\"model.mobileFileNavigatorVisible\" [model]=\"model.mobileFileNavigator\"></sv-action-bar>\n </div>\n</div>", components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i2.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.VisibleDirective, selector: "[visible]", inputs: ["visible"] }], pipes: { "safeUrl": i5.SafeUrlPipe } });
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FileQuestionComponent, decorators: [{
21
21
  type: Component,
22
- args: [{ selector: "sv-ng-file-question", template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input\n [class]=\"model.cssClasses.fileInput\"\n *ngIf=\"!model.isReadOnly\"\n type=\"file\"\n [attr.id]=\"model.inputId\"\n (change)=\"model.doChange($event)\"\n [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\"\n [attr.accept]=\"model.acceptedTypes\"\n />\n <input\n *ngIf=\"model.isReadOnly\"\n type=\"file\"\n disabled\n [class]=\"model.getReadOnlyFileCss()\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.placeholder]=\"model.title\"\n style=\"color: transparent\"\n />\n <div [class]=\"model.cssClasses.dragArea\"\n (dragenter)=\"model.onDragEnter($event)\"\n (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\"\n (dragleave)=\"model.onDragLeave($event)\"> \n <div\n [class]=\"model.getFileDecoratorCss()\"\n >\n <span [class]=\"model.cssClasses.dragAreaPlaceholder\">{{ model.dragAreaPlaceholder }}</span>\n <div [class]=\"model.cssClasses.wrapper\">\n <label\n role=\"button\"\n [class]=\"model.getChooseFileCss()\"\n [attr.for]=\"model.inputId\"\n [attr.aria-label]=\"model.chooseButtonCaption\"\n >\n <span>{{ model.chooseButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.chooseFileIconId\" [title]=\"model.chooseButtonCaption\" [iconName]=\"model.cssClasses.chooseFileIconId\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </label>\n <span\n [class]=\"model.cssClasses.noFileChosen\"\n *ngIf=\"model.isEmpty()\"\n >{{ model.noFileChosenCaption }}</span\n >\n </div>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButton\"\n [class]=\"model.cssClasses.removeButton\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <div [class]=\"model.cssClasses.fileList || undefined\" *ngIf=\"!model.isEmpty()\">\n <span\n *ngFor=\"let val of model.previewValue; index as index; trackBy: trackFilesFn\"\n [visible]=\"val && model.isPreviewVisible(index)\"\n [class]=\"model.cssClasses.preview\"\n >\n <div *ngIf=\"val.name && model.cssClasses.fileSign\" [class]=\"model.cssClasses.fileSign\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [attr.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n <div [class]=\"model.cssClasses.imageWrapper\">\n <img\n *ngIf=\"model.canPreviewImage(val)\"\n [attr.src]=\"val.content | safeUrl\"\n [attr.height]=\"model.imageHeight\"\n [attr.width]=\"model.imageWidth\"\n alt=\"File preview\"\n />\n <svg *ngIf=\"model.defaultImage(val)\" \n [iconName]=\"model.cssClasses.defaultImageIconId\" [partCss]=\"model.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"val.name && !model.isReadOnly\" [class]=\"model.cssClasses.removeFileButton\" (click)=\"model.doRemoveFile(val)\">\n <span\n [class]=\"model.cssClasses.removeFile\"\n >{{ model.removeFileCaption }}</span\n >\n <svg *ngIf=\"model.cssClasses.removeFileSvgIconId\" [title]=\"model.removeFileCaption\" [partCss]=\"model.cssClasses.removeFileSvg\" [iconName]=\"model.cssClasses.removeFileSvgIconId\" [size]=\"'auto'\" sv-ng-svg-icon ></svg>\n </div>\n </div>\n <div *ngIf=\"val.name && model.cssClasses.fileSignBottom\" [class]=\"model.cssClasses.fileSignBottom\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [attr.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n </span>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButtonBottom\"\n [class]=\"model.showRemoveButtonBottom\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <sv-action-bar *ngIf=\"model.mobileFileNavigatorVisible\" [model]=\"model.mobileFileNavigator\"></sv-action-bar>\n </div>\n</div>", styles: [] }]
22
+ args: [{ selector: "sv-ng-file-question", template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input\n [class]=\"model.cssClasses.fileInput\"\n *ngIf=\"!model.isReadOnly\"\n type=\"file\"\n [attr.id]=\"model.inputId\"\n (change)=\"model.doChange($event)\"\n [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\"\n [attr.accept]=\"model.acceptedTypes\"\n />\n <input\n *ngIf=\"model.isReadOnly\"\n type=\"file\"\n disabled\n [class]=\"model.getReadOnlyFileCss()\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.placeholder]=\"model.title\"\n style=\"color: transparent\"\n />\n <div [class]=\"model.cssClasses.dragArea\"\n (dragenter)=\"model.onDragEnter($event)\"\n (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\"\n (dragleave)=\"model.onDragLeave($event)\"> \n <div\n [class]=\"model.getFileDecoratorCss()\"\n >\n <span [class]=\"model.cssClasses.dragAreaPlaceholder\">{{ model.dragAreaPlaceholder }}</span>\n <div [class]=\"model.cssClasses.wrapper\">\n <label\n role=\"button\"\n [class]=\"model.getChooseFileCss()\"\n [attr.for]=\"model.inputId\"\n [attr.aria-label]=\"model.chooseButtonCaption\"\n >\n <span>{{ model.chooseButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.chooseFileIconId\" [title]=\"model.chooseButtonCaption\" [iconName]=\"model.cssClasses.chooseFileIconId\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </label>\n <span\n [class]=\"model.cssClasses.noFileChosen\"\n *ngIf=\"model.isEmpty()\"\n >{{ model.noFileChosenCaption }}</span\n >\n </div>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButton\"\n [class]=\"model.cssClasses.removeButton\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <div [class]=\"model.cssClasses.fileList || undefined\" *ngIf=\"!model.isEmpty()\">\n <span\n *ngFor=\"let val of model.previewValue; index as index; trackBy: trackFilesFn\"\n [visible]=\"val && model.isPreviewVisible(index)\"\n [class]=\"model.cssClasses.preview\"\n >\n <div *ngIf=\"val.name && model.cssClasses.fileSign\" [class]=\"model.cssClasses.fileSign\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n <div [class]=\"model.cssClasses.imageWrapper\">\n <img\n *ngIf=\"model.canPreviewImage(val)\"\n [attr.src]=\"val.content | safeUrl\"\n [style.height]=\"model.imageHeight\"\n [style.width]=\"model.imageWidth\"\n alt=\"File preview\"\n />\n <svg *ngIf=\"model.defaultImage(val)\" \n [iconName]=\"model.cssClasses.defaultImageIconId\" [partCss]=\"model.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"val.name && !model.isReadOnly\" [class]=\"model.cssClasses.removeFileButton\" (click)=\"model.doRemoveFile(val)\">\n <span\n [class]=\"model.cssClasses.removeFile\"\n >{{ model.removeFileCaption }}</span\n >\n <svg *ngIf=\"model.cssClasses.removeFileSvgIconId\" [title]=\"model.removeFileCaption\" [partCss]=\"model.cssClasses.removeFileSvg\" [iconName]=\"model.cssClasses.removeFileSvgIconId\" [size]=\"'auto'\" sv-ng-svg-icon ></svg>\n </div>\n </div>\n <div *ngIf=\"val.name && model.cssClasses.fileSignBottom\" [class]=\"model.cssClasses.fileSignBottom\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n </span>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButtonBottom\"\n [class]=\"model.showRemoveButtonBottom\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <sv-action-bar *ngIf=\"model.mobileFileNavigatorVisible\" [model]=\"model.mobileFileNavigator\"></sv-action-bar>\n </div>\n</div>", styles: [] }]
23
23
  }] });
24
24
  AngularComponentFactory.Instance.registerComponent("file-question", FileQuestionComponent);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvcXVlc3Rpb25zL2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU0vRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBa0M7SUFMN0U7O1FBTUUsaUJBQVksR0FBOEIsQ0FBQyxLQUFhLEVBQVUsRUFBRTtZQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDMUMsQ0FBQyxDQUFBO0tBQ0Y7O2tIQUpZLHFCQUFxQjtzR0FBckIscUJBQXFCLGtGQ1RsQyxtaEtBb0hNOzJGRDNHTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCOztBQVVqQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb25Bbmd1bGFyIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1maWxlLXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIFF1ZXN0aW9uQW5ndWxhcjxRdWVzdGlvbkZpbGVNb2RlbD4ge1xuICB0cmFja0ZpbGVzRm46IChpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcgPSAoaW5kZXg6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuaW5wdXRJZCArIFwiX1wiICsgaW5kZXg7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJmaWxlLXF1ZXN0aW9uXCIsIEZpbGVRdWVzdGlvbkNvbXBvbmVudCk7IiwiPGRpdiBbY2xhc3NdPVwibW9kZWwuZmlsZVJvb3RDc3NcIiAjY29udGVudEVsZW1lbnQ+XG4gIDxpbnB1dFxuICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVJbnB1dFwiXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIlxuICAgIChjaGFuZ2UpPVwibW9kZWwuZG9DaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hcmlhUmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibW9kZWwuYXJpYUludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci50aXRsZV09XCJtb2RlbC5pbnB1dFRpdGxlXCJcbiAgICBbYXR0ci5hY2NlcHRdPVwibW9kZWwuYWNjZXB0ZWRUeXBlc1wiXG4gIC8+XG4gIDxpbnB1dFxuICAgICpuZ0lmPVwibW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIGRpc2FibGVkXG4gICAgW2NsYXNzXT1cIm1vZGVsLmdldFJlYWRPbmx5RmlsZUNzcygpXCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlbC50aXRsZVwiXG4gICAgc3R5bGU9XCJjb2xvcjogdHJhbnNwYXJlbnRcIlxuICAvPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhXCJcbiAgICAoZHJhZ2VudGVyKT1cIm1vZGVsLm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAgIChkcm9wKT1cIm1vZGVsLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAoZHJhZ292ZXIpPVwibW9kZWwub25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm1vZGVsLm9uRHJhZ0xlYXZlKCRldmVudClcIj4gIFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRGaWxlRGVjb3JhdG9yQ3NzKClcIlxuICAgID5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhUGxhY2Vob2xkZXJcIj57eyBtb2RlbC5kcmFnQXJlYVBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy53cmFwcGVyXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRDaG9vc2VGaWxlQ3NzKClcIlxuICAgICAgICAgIFthdHRyLmZvcl09XCJtb2RlbC5pbnB1dElkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmNob29zZUJ1dHRvbkNhcHRpb25cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8c3Bhbj57eyBtb2RlbC5jaG9vc2VCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlbC5jc3NDbGFzc2VzLmNob29zZUZpbGVJY29uSWRcIiBbdGl0bGVdPVwibW9kZWwuY2hvb3NlQnV0dG9uQ2FwdGlvblwiIFtpY29uTmFtZV09XCJtb2RlbC5jc3NDbGFzc2VzLmNob29zZUZpbGVJY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5ub0ZpbGVDaG9zZW5cIlxuICAgICAgICAgICpuZ0lmPVwibW9kZWwuaXNFbXB0eSgpXCJcbiAgICAgICAgICA+e3sgbW9kZWwubm9GaWxlQ2hvc2VuQ2FwdGlvbiB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ0lmPVwibW9kZWwuc2hvd1JlbW92ZUJ1dHRvblwiXG4gICAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGVsLmRvQ2xlYW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgbW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgW3RpdGxlXT1cIm1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvblwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZmlsZUxpc3QgfHwgdW5kZWZpbmVkXCIgKm5nSWY9XCIhbW9kZWwuaXNFbXB0eSgpXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgdmFsIG9mIG1vZGVsLnByZXZpZXdWYWx1ZTsgaW5kZXggYXMgaW5kZXg7IHRyYWNrQnk6IHRyYWNrRmlsZXNGblwiXG4gICAgICAgIFt2aXNpYmxlXT1cInZhbCAmJiBtb2RlbC5pc1ByZXZpZXdWaXNpYmxlKGluZGV4KVwiXG4gICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnByZXZpZXdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmFsLm5hbWUgJiYgbW9kZWwuY3NzQ2xhc3Nlcy5maWxlU2lnblwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVTaWduXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIChjbGljayk9XCJtb2RlbC5kb0Rvd25sb2FkRmlsZSgkZXZlbnQsIHZhbClcIlxuICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJ2YWwuY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW2F0dHIuZG93bmxvYWRdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwuaW1hZ2VXaWR0aFwiXG4gICAgICAgICAgICA+e3sgdmFsLm5hbWUgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmltYWdlV3JhcHBlclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICpuZ0lmPVwibW9kZWwuY2FuUHJldmlld0ltYWdlKHZhbClcIlxuICAgICAgICAgICAgW2F0dHIuc3JjXT1cInZhbC5jb250ZW50IHwgc2FmZVVybFwiXG4gICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwibW9kZWwuaW1hZ2VIZWlnaHRcIlxuICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwuaW1hZ2VXaWR0aFwiXG4gICAgICAgICAgICBhbHQ9XCJGaWxlIHByZXZpZXdcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmRlZmF1bHRJbWFnZSh2YWwpXCIgXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5kZWZhdWx0SW1hZ2VJY29uSWRcIiBbcGFydENzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRlZmF1bHRJbWFnZVwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWwubmFtZSAmJiAhbW9kZWwuaXNSZWFkT25seVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVCdXR0b25cIiAoY2xpY2spPVwibW9kZWwuZG9SZW1vdmVGaWxlKHZhbClcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVcIlxuICAgICAgICAgICAgICA+e3sgbW9kZWwucmVtb3ZlRmlsZUNhcHRpb24gfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdJY29uSWRcIiBbdGl0bGVdPVwibW9kZWwucmVtb3ZlRmlsZUNhcHRpb25cIiBbcGFydENzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdcIiBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVGaWxlU3ZnSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgc3Ytbmctc3ZnLWljb24gPjwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZhbC5uYW1lICYmIG1vZGVsLmNzc0NsYXNzZXMuZmlsZVNpZ25Cb3R0b21cIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5maWxlU2lnbkJvdHRvbVwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICAoY2xpY2spPVwibW9kZWwuZG9Eb3dubG9hZEZpbGUoJGV2ZW50LCB2YWwpXCJcbiAgICAgICAgICAgIFthdHRyLmhyZWZdPVwidmFsLmNvbnRlbnQgfCBzYWZlVXJsXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInZhbC5uYW1lXCJcbiAgICAgICAgICAgIFthdHRyLmRvd25sb2FkXT1cInZhbC5uYW1lXCJcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cIm1vZGVsLmltYWdlV2lkdGhcIlxuICAgICAgICAgICAgPnt7IHZhbC5uYW1lIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ0lmPVwibW9kZWwuc2hvd1JlbW92ZUJ1dHRvbkJvdHRvbVwiXG4gICAgICBbY2xhc3NdPVwibW9kZWwuc2hvd1JlbW92ZUJ1dHRvbkJvdHRvbVwiXG4gICAgICAoY2xpY2spPVwibW9kZWwuZG9DbGVhbigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3Bhbj57eyBtb2RlbC5jbGVhckJ1dHRvbkNhcHRpb24gfX08L3NwYW4+XG4gICAgICA8c3ZnICpuZ0lmPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIiBbdGl0bGVdPVwibW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gICAgPHN2LWFjdGlvbi1iYXIgKm5nSWY9XCJtb2RlbC5tb2JpbGVGaWxlTmF2aWdhdG9yVmlzaWJsZVwiIFttb2RlbF09XCJtb2RlbC5tb2JpbGVGaWxlTmF2aWdhdG9yXCI+PC9zdi1hY3Rpb24tYmFyPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvcXVlc3Rpb25zL2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU0vRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBa0M7SUFMN0U7O1FBTUUsaUJBQVksR0FBOEIsQ0FBQyxLQUFhLEVBQVUsRUFBRTtZQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDMUMsQ0FBQyxDQUFBO0tBQ0Y7O2tIQUpZLHFCQUFxQjtzR0FBckIscUJBQXFCLGtGQ1RsQyx1aEtBb0hNOzJGRDNHTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCOztBQVVqQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb25Bbmd1bGFyIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1maWxlLXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIFF1ZXN0aW9uQW5ndWxhcjxRdWVzdGlvbkZpbGVNb2RlbD4ge1xuICB0cmFja0ZpbGVzRm46IChpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcgPSAoaW5kZXg6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuaW5wdXRJZCArIFwiX1wiICsgaW5kZXg7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJmaWxlLXF1ZXN0aW9uXCIsIEZpbGVRdWVzdGlvbkNvbXBvbmVudCk7IiwiPGRpdiBbY2xhc3NdPVwibW9kZWwuZmlsZVJvb3RDc3NcIiAjY29udGVudEVsZW1lbnQ+XG4gIDxpbnB1dFxuICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVJbnB1dFwiXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIlxuICAgIChjaGFuZ2UpPVwibW9kZWwuZG9DaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hcmlhUmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibW9kZWwuYXJpYUludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci50aXRsZV09XCJtb2RlbC5pbnB1dFRpdGxlXCJcbiAgICBbYXR0ci5hY2NlcHRdPVwibW9kZWwuYWNjZXB0ZWRUeXBlc1wiXG4gIC8+XG4gIDxpbnB1dFxuICAgICpuZ0lmPVwibW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIGRpc2FibGVkXG4gICAgW2NsYXNzXT1cIm1vZGVsLmdldFJlYWRPbmx5RmlsZUNzcygpXCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlbC50aXRsZVwiXG4gICAgc3R5bGU9XCJjb2xvcjogdHJhbnNwYXJlbnRcIlxuICAvPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhXCJcbiAgICAoZHJhZ2VudGVyKT1cIm1vZGVsLm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAgIChkcm9wKT1cIm1vZGVsLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAoZHJhZ292ZXIpPVwibW9kZWwub25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm1vZGVsLm9uRHJhZ0xlYXZlKCRldmVudClcIj4gIFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRGaWxlRGVjb3JhdG9yQ3NzKClcIlxuICAgID5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhUGxhY2Vob2xkZXJcIj57eyBtb2RlbC5kcmFnQXJlYVBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy53cmFwcGVyXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRDaG9vc2VGaWxlQ3NzKClcIlxuICAgICAgICAgIFthdHRyLmZvcl09XCJtb2RlbC5pbnB1dElkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmNob29zZUJ1dHRvbkNhcHRpb25cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8c3Bhbj57eyBtb2RlbC5jaG9vc2VCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlbC5jc3NDbGFzc2VzLmNob29zZUZpbGVJY29uSWRcIiBbdGl0bGVdPVwibW9kZWwuY2hvb3NlQnV0dG9uQ2FwdGlvblwiIFtpY29uTmFtZV09XCJtb2RlbC5jc3NDbGFzc2VzLmNob29zZUZpbGVJY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5ub0ZpbGVDaG9zZW5cIlxuICAgICAgICAgICpuZ0lmPVwibW9kZWwuaXNFbXB0eSgpXCJcbiAgICAgICAgICA+e3sgbW9kZWwubm9GaWxlQ2hvc2VuQ2FwdGlvbiB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ0lmPVwibW9kZWwuc2hvd1JlbW92ZUJ1dHRvblwiXG4gICAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGVsLmRvQ2xlYW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgbW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgW3RpdGxlXT1cIm1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvblwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZmlsZUxpc3QgfHwgdW5kZWZpbmVkXCIgKm5nSWY9XCIhbW9kZWwuaXNFbXB0eSgpXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgdmFsIG9mIG1vZGVsLnByZXZpZXdWYWx1ZTsgaW5kZXggYXMgaW5kZXg7IHRyYWNrQnk6IHRyYWNrRmlsZXNGblwiXG4gICAgICAgIFt2aXNpYmxlXT1cInZhbCAmJiBtb2RlbC5pc1ByZXZpZXdWaXNpYmxlKGluZGV4KVwiXG4gICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnByZXZpZXdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmFsLm5hbWUgJiYgbW9kZWwuY3NzQ2xhc3Nlcy5maWxlU2lnblwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVTaWduXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIChjbGljayk9XCJtb2RlbC5kb0Rvd25sb2FkRmlsZSgkZXZlbnQsIHZhbClcIlxuICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJ2YWwuY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW2F0dHIuZG93bmxvYWRdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cIm1vZGVsLmltYWdlV2lkdGhcIlxuICAgICAgICAgICAgPnt7IHZhbC5uYW1lIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5pbWFnZVdyYXBwZXJcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGVsLmNhblByZXZpZXdJbWFnZSh2YWwpXCJcbiAgICAgICAgICAgIFthdHRyLnNyY109XCJ2YWwuY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJtb2RlbC5pbWFnZUhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwibW9kZWwuaW1hZ2VXaWR0aFwiXG4gICAgICAgICAgICBhbHQ9XCJGaWxlIHByZXZpZXdcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmRlZmF1bHRJbWFnZSh2YWwpXCIgXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5kZWZhdWx0SW1hZ2VJY29uSWRcIiBbcGFydENzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRlZmF1bHRJbWFnZVwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWwubmFtZSAmJiAhbW9kZWwuaXNSZWFkT25seVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVCdXR0b25cIiAoY2xpY2spPVwibW9kZWwuZG9SZW1vdmVGaWxlKHZhbClcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVcIlxuICAgICAgICAgICAgICA+e3sgbW9kZWwucmVtb3ZlRmlsZUNhcHRpb24gfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdJY29uSWRcIiBbdGl0bGVdPVwibW9kZWwucmVtb3ZlRmlsZUNhcHRpb25cIiBbcGFydENzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdcIiBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVGaWxlU3ZnSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgc3Ytbmctc3ZnLWljb24gPjwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZhbC5uYW1lICYmIG1vZGVsLmNzc0NsYXNzZXMuZmlsZVNpZ25Cb3R0b21cIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5maWxlU2lnbkJvdHRvbVwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICAoY2xpY2spPVwibW9kZWwuZG9Eb3dubG9hZEZpbGUoJGV2ZW50LCB2YWwpXCJcbiAgICAgICAgICAgIFthdHRyLmhyZWZdPVwidmFsLmNvbnRlbnQgfCBzYWZlVXJsXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInZhbC5uYW1lXCJcbiAgICAgICAgICAgIFthdHRyLmRvd25sb2FkXT1cInZhbC5uYW1lXCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJtb2RlbC5pbWFnZVdpZHRoXCJcbiAgICAgICAgICAgID57eyB2YWwubmFtZSB9fTwvYVxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdJZj1cIm1vZGVsLnNob3dSZW1vdmVCdXR0b25Cb3R0b21cIlxuICAgICAgW2NsYXNzXT1cIm1vZGVsLnNob3dSZW1vdmVCdXR0b25Cb3R0b21cIlxuICAgICAgKGNsaWNrKT1cIm1vZGVsLmRvQ2xlYW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgbW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgW3RpdGxlXT1cIm1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvblwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICAgIDxzdi1hY3Rpb24tYmFyICpuZ0lmPVwibW9kZWwubW9iaWxlRmlsZU5hdmlnYXRvclZpc2libGVcIiBbbW9kZWxdPVwibW9kZWwubW9iaWxlRmlsZU5hdmlnYXRvclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=