survey-angular-ui 1.9.59 → 1.9.60

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.
@@ -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.id]=\"model.inputId\"\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 } });
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.id]=\"model.inputId\"\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 tabindex=\"0\"\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.id]=\"model.inputId\"\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: [] }]
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.id]=\"model.inputId\"\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 tabindex=\"0\"\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvcXVlc3Rpb25zL2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU0vRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBa0M7SUFMN0U7O1FBTUUsaUJBQVksR0FBOEIsQ0FBQyxLQUFhLEVBQVUsRUFBRTtZQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDMUMsQ0FBQyxDQUFBO0tBQ0Y7O2tIQUpZLHFCQUFxQjtzR0FBckIscUJBQXFCLGtGQ1RsQyx3aktBcUhNOzJGRDVHTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCOztBQVVqQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb25Bbmd1bGFyIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1maWxlLXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIFF1ZXN0aW9uQW5ndWxhcjxRdWVzdGlvbkZpbGVNb2RlbD4ge1xuICB0cmFja0ZpbGVzRm46IChpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcgPSAoaW5kZXg6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuaW5wdXRJZCArIFwiX1wiICsgaW5kZXg7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJmaWxlLXF1ZXN0aW9uXCIsIEZpbGVRdWVzdGlvbkNvbXBvbmVudCk7IiwiPGRpdiBbY2xhc3NdPVwibW9kZWwuZmlsZVJvb3RDc3NcIiAjY29udGVudEVsZW1lbnQ+XG4gIDxpbnB1dFxuICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVJbnB1dFwiXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIlxuICAgIChjaGFuZ2UpPVwibW9kZWwuZG9DaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hcmlhUmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibW9kZWwuYXJpYUludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci50aXRsZV09XCJtb2RlbC5pbnB1dFRpdGxlXCJcbiAgICBbYXR0ci5hY2NlcHRdPVwibW9kZWwuYWNjZXB0ZWRUeXBlc1wiXG4gIC8+XG4gIDxpbnB1dFxuICAgICpuZ0lmPVwibW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIGRpc2FibGVkXG4gICAgW2NsYXNzXT1cIm1vZGVsLmdldFJlYWRPbmx5RmlsZUNzcygpXCJcbiAgICBbYXR0ci5pZF09XCJtb2RlbC5pbnB1dElkXCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlbC50aXRsZVwiXG4gICAgc3R5bGU9XCJjb2xvcjogdHJhbnNwYXJlbnRcIlxuICAvPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhXCJcbiAgICAoZHJhZ2VudGVyKT1cIm1vZGVsLm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAgIChkcm9wKT1cIm1vZGVsLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAoZHJhZ292ZXIpPVwibW9kZWwub25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm1vZGVsLm9uRHJhZ0xlYXZlKCRldmVudClcIj4gIFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRGaWxlRGVjb3JhdG9yQ3NzKClcIlxuICAgID5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhUGxhY2Vob2xkZXJcIj57eyBtb2RlbC5kcmFnQXJlYVBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy53cmFwcGVyXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRDaG9vc2VGaWxlQ3NzKClcIlxuICAgICAgICAgIFthdHRyLmZvcl09XCJtb2RlbC5pbnB1dElkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmNob29zZUJ1dHRvbkNhcHRpb25cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8c3Bhbj57eyBtb2RlbC5jaG9vc2VCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlbC5jc3NDbGFzc2VzLmNob29zZUZpbGVJY29uSWRcIiBbdGl0bGVdPVwibW9kZWwuY2hvb3NlQnV0dG9uQ2FwdGlvblwiIFtpY29uTmFtZV09XCJtb2RlbC5jc3NDbGFzc2VzLmNob29zZUZpbGVJY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5ub0ZpbGVDaG9zZW5cIlxuICAgICAgICAgICpuZ0lmPVwibW9kZWwuaXNFbXB0eSgpXCJcbiAgICAgICAgICA+e3sgbW9kZWwubm9GaWxlQ2hvc2VuQ2FwdGlvbiB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ0lmPVwibW9kZWwuc2hvd1JlbW92ZUJ1dHRvblwiXG4gICAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGVsLmRvQ2xlYW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgbW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgW3RpdGxlXT1cIm1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvblwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZmlsZUxpc3QgfHwgdW5kZWZpbmVkXCIgKm5nSWY9XCIhbW9kZWwuaXNFbXB0eSgpXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgdmFsIG9mIG1vZGVsLnByZXZpZXdWYWx1ZTsgaW5kZXggYXMgaW5kZXg7IHRyYWNrQnk6IHRyYWNrRmlsZXNGblwiXG4gICAgICAgIFt2aXNpYmxlXT1cInZhbCAmJiBtb2RlbC5pc1ByZXZpZXdWaXNpYmxlKGluZGV4KVwiXG4gICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnByZXZpZXdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmFsLm5hbWUgJiYgbW9kZWwuY3NzQ2xhc3Nlcy5maWxlU2lnblwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVTaWduXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIChjbGljayk9XCJtb2RlbC5kb0Rvd25sb2FkRmlsZSgkZXZlbnQsIHZhbClcIlxuICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJ2YWwuY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW2F0dHIuZG93bmxvYWRdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cIm1vZGVsLmltYWdlV2lkdGhcIlxuICAgICAgICAgICAgPnt7IHZhbC5uYW1lIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5pbWFnZVdyYXBwZXJcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGVsLmNhblByZXZpZXdJbWFnZSh2YWwpXCJcbiAgICAgICAgICAgIFthdHRyLnNyY109XCJ2YWwuY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJtb2RlbC5pbWFnZUhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwibW9kZWwuaW1hZ2VXaWR0aFwiXG4gICAgICAgICAgICBhbHQ9XCJGaWxlIHByZXZpZXdcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmRlZmF1bHRJbWFnZSh2YWwpXCIgXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5kZWZhdWx0SW1hZ2VJY29uSWRcIiBbcGFydENzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRlZmF1bHRJbWFnZVwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWwubmFtZSAmJiAhbW9kZWwuaXNSZWFkT25seVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVCdXR0b25cIiAoY2xpY2spPVwibW9kZWwuZG9SZW1vdmVGaWxlKHZhbClcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVcIlxuICAgICAgICAgICAgICA+e3sgbW9kZWwucmVtb3ZlRmlsZUNhcHRpb24gfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdJY29uSWRcIiBbdGl0bGVdPVwibW9kZWwucmVtb3ZlRmlsZUNhcHRpb25cIiBbcGFydENzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdcIiBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVGaWxlU3ZnSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgc3Ytbmctc3ZnLWljb24gPjwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZhbC5uYW1lICYmIG1vZGVsLmNzc0NsYXNzZXMuZmlsZVNpZ25Cb3R0b21cIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5maWxlU2lnbkJvdHRvbVwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICAoY2xpY2spPVwibW9kZWwuZG9Eb3dubG9hZEZpbGUoJGV2ZW50LCB2YWwpXCJcbiAgICAgICAgICAgIFthdHRyLmhyZWZdPVwidmFsLmNvbnRlbnQgfCBzYWZlVXJsXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInZhbC5uYW1lXCJcbiAgICAgICAgICAgIFthdHRyLmRvd25sb2FkXT1cInZhbC5uYW1lXCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJtb2RlbC5pbWFnZVdpZHRoXCJcbiAgICAgICAgICAgID57eyB2YWwubmFtZSB9fTwvYVxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdJZj1cIm1vZGVsLnNob3dSZW1vdmVCdXR0b25Cb3R0b21cIlxuICAgICAgW2NsYXNzXT1cIm1vZGVsLnNob3dSZW1vdmVCdXR0b25Cb3R0b21cIlxuICAgICAgKGNsaWNrKT1cIm1vZGVsLmRvQ2xlYW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgbW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uIH19PC9zcGFuPlxuICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCIgW3RpdGxlXT1cIm1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvblwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICAgIDxzdi1hY3Rpb24tYmFyICpuZ0lmPVwibW9kZWwubW9iaWxlRmlsZU5hdmlnYXRvclZpc2libGVcIiBbbW9kZWxdPVwibW9kZWwubW9iaWxlRmlsZU5hdmlnYXRvclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvcXVlc3Rpb25zL2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU0vRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBa0M7SUFMN0U7O1FBTUUsaUJBQVksR0FBOEIsQ0FBQyxLQUFhLEVBQVUsRUFBRTtZQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDMUMsQ0FBQyxDQUFBO0tBQ0Y7O2tIQUpZLHFCQUFxQjtzR0FBckIscUJBQXFCLGtGQ1RsQyxrbEtBc0hNOzJGRDdHTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCOztBQVVqQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb25Bbmd1bGFyIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1maWxlLXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIFF1ZXN0aW9uQW5ndWxhcjxRdWVzdGlvbkZpbGVNb2RlbD4ge1xuICB0cmFja0ZpbGVzRm46IChpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcgPSAoaW5kZXg6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuaW5wdXRJZCArIFwiX1wiICsgaW5kZXg7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJmaWxlLXF1ZXN0aW9uXCIsIEZpbGVRdWVzdGlvbkNvbXBvbmVudCk7IiwiPGRpdiBbY2xhc3NdPVwibW9kZWwuZmlsZVJvb3RDc3NcIiAjY29udGVudEVsZW1lbnQ+XG4gIDxpbnB1dFxuICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVJbnB1dFwiXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIlxuICAgIChjaGFuZ2UpPVwibW9kZWwuZG9DaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hcmlhUmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibW9kZWwuYXJpYUludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci50aXRsZV09XCJtb2RlbC5pbnB1dFRpdGxlXCJcbiAgICBbYXR0ci5hY2NlcHRdPVwibW9kZWwuYWNjZXB0ZWRUeXBlc1wiXG4gIC8+XG4gIDxpbnB1dFxuICAgICpuZ0lmPVwibW9kZWwuaXNSZWFkT25seVwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIGRpc2FibGVkXG4gICAgW2NsYXNzXT1cIm1vZGVsLmdldFJlYWRPbmx5RmlsZUNzcygpXCJcbiAgICBbYXR0ci5pZF09XCJtb2RlbC5pbnB1dElkXCJcbiAgICBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlbC50aXRsZVwiXG4gICAgc3R5bGU9XCJjb2xvcjogdHJhbnNwYXJlbnRcIlxuICAvPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhXCJcbiAgICAoZHJhZ2VudGVyKT1cIm1vZGVsLm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAgIChkcm9wKT1cIm1vZGVsLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAoZHJhZ292ZXIpPVwibW9kZWwub25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm1vZGVsLm9uRHJhZ0xlYXZlKCRldmVudClcIj4gIFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRGaWxlRGVjb3JhdG9yQ3NzKClcIlxuICAgID5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhUGxhY2Vob2xkZXJcIj57eyBtb2RlbC5kcmFnQXJlYVBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy53cmFwcGVyXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgW2NsYXNzXT1cIm1vZGVsLmdldENob29zZUZpbGVDc3MoKVwiXG4gICAgICAgICAgW2F0dHIuZm9yXT1cIm1vZGVsLmlucHV0SWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuY2hvb3NlQnV0dG9uQ2FwdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPnt7IG1vZGVsLmNob29zZUJ1dHRvbkNhcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMuY2hvb3NlRmlsZUljb25JZFwiIFt0aXRsZV09XCJtb2RlbC5jaG9vc2VCdXR0b25DYXB0aW9uXCIgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMuY2hvb3NlRmlsZUljb25JZFwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLm5vRmlsZUNob3NlblwiXG4gICAgICAgICAgKm5nSWY9XCJtb2RlbC5pc0VtcHR5KClcIlxuICAgICAgICAgID57eyBtb2RlbC5ub0ZpbGVDaG9zZW5DYXB0aW9uIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCJtb2RlbC5zaG93UmVtb3ZlQnV0dG9uXCJcbiAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwibW9kZWwuZG9DbGVhbigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3Bhbj57eyBtb2RlbC5jbGVhckJ1dHRvbkNhcHRpb24gfX08L3NwYW4+XG4gICAgICA8c3ZnICpuZ0lmPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIiBbdGl0bGVdPVwibW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5maWxlTGlzdCB8fCB1bmRlZmluZWRcIiAqbmdJZj1cIiFtb2RlbC5pc0VtcHR5KClcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0Zvcj1cImxldCB2YWwgb2YgbW9kZWwucHJldmlld1ZhbHVlOyBpbmRleCBhcyBpbmRleDsgdHJhY2tCeTogdHJhY2tGaWxlc0ZuXCJcbiAgICAgICAgW3Zpc2libGVdPVwidmFsICYmIG1vZGVsLmlzUHJldmlld1Zpc2libGUoaW5kZXgpXCJcbiAgICAgICAgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucHJldmlld1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2YWwubmFtZSAmJiBtb2RlbC5jc3NDbGFzc2VzLmZpbGVTaWduXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZmlsZVNpZ25cIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgKGNsaWNrKT1cIm1vZGVsLmRvRG93bmxvYWRGaWxlKCRldmVudCwgdmFsKVwiXG4gICAgICAgICAgICBbYXR0ci5ocmVmXT1cInZhbC5jb250ZW50IHwgc2FmZVVybFwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJ2YWwubmFtZVwiXG4gICAgICAgICAgICBbYXR0ci5kb3dubG9hZF09XCJ2YWwubmFtZVwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwibW9kZWwuaW1hZ2VXaWR0aFwiXG4gICAgICAgICAgICA+e3sgdmFsLm5hbWUgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmltYWdlV3JhcHBlclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICpuZ0lmPVwibW9kZWwuY2FuUHJldmlld0ltYWdlKHZhbClcIlxuICAgICAgICAgICAgW2F0dHIuc3JjXT1cInZhbC5jb250ZW50IHwgc2FmZVVybFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIm1vZGVsLmltYWdlSGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJtb2RlbC5pbWFnZVdpZHRoXCJcbiAgICAgICAgICAgIGFsdD1cIkZpbGUgcHJldmlld1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwibW9kZWwuZGVmYXVsdEltYWdlKHZhbClcIiBcbiAgICAgICAgICAgIFtpY29uTmFtZV09XCJtb2RlbC5jc3NDbGFzc2VzLmRlZmF1bHRJbWFnZUljb25JZFwiIFtwYXJ0Q3NzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZGVmYXVsdEltYWdlXCIgW3NpemVdPVwiJ2F1dG8nXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInZhbC5uYW1lICYmICFtb2RlbC5pc1JlYWRPbmx5XCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlRmlsZUJ1dHRvblwiIChjbGljayk9XCJtb2RlbC5kb1JlbW92ZUZpbGUodmFsKVwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlRmlsZVwiXG4gICAgICAgICAgICAgID57eyBtb2RlbC5yZW1vdmVGaWxlQ2FwdGlvbiB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlRmlsZVN2Z0ljb25JZFwiIFt0aXRsZV09XCJtb2RlbC5yZW1vdmVGaWxlQ2FwdGlvblwiIFtwYXJ0Q3NzXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlRmlsZVN2Z1wiIFtpY29uTmFtZV09XCJtb2RlbC5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdJY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIiBzdi1uZy1zdmctaWNvbiA+PC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmFsLm5hbWUgJiYgbW9kZWwuY3NzQ2xhc3Nlcy5maWxlU2lnbkJvdHRvbVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmZpbGVTaWduQm90dG9tXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIChjbGljayk9XCJtb2RlbC5kb0Rvd25sb2FkRmlsZSgkZXZlbnQsIHZhbClcIlxuICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJ2YWwuY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW2F0dHIuZG93bmxvYWRdPVwidmFsLm5hbWVcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cIm1vZGVsLmltYWdlV2lkdGhcIlxuICAgICAgICAgICAgPnt7IHZhbC5uYW1lIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ0lmPVwibW9kZWwuc2hvd1JlbW92ZUJ1dHRvbkJvdHRvbVwiXG4gICAgICBbY2xhc3NdPVwibW9kZWwuc2hvd1JlbW92ZUJ1dHRvbkJvdHRvbVwiXG4gICAgICAoY2xpY2spPVwibW9kZWwuZG9DbGVhbigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3Bhbj57eyBtb2RlbC5jbGVhckJ1dHRvbkNhcHRpb24gfX08L3NwYW4+XG4gICAgICA8c3ZnICpuZ0lmPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIiBbdGl0bGVdPVwibW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gICAgPHN2LWFjdGlvbi1iYXIgKm5nSWY9XCJtb2RlbC5tb2JpbGVGaWxlTmF2aWdhdG9yVmlzaWJsZVwiIFttb2RlbF09XCJtb2RlbC5tb2JpbGVGaWxlTmF2aWdhdG9yXCI+PC9zdi1hY3Rpb24tYmFyPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -2090,10 +2090,10 @@ class FileQuestionComponent extends QuestionAngular {
2090
2090
  }
2091
2091
  }
2092
2092
  FileQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FileQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2093
- 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.id]=\"model.inputId\"\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: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }], pipes: { "safeUrl": SafeUrlPipe } });
2093
+ 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.id]=\"model.inputId\"\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 tabindex=\"0\"\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: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }], pipes: { "safeUrl": SafeUrlPipe } });
2094
2094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FileQuestionComponent, decorators: [{
2095
2095
  type: Component,
2096
- 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.id]=\"model.inputId\"\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: [] }]
2096
+ 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.id]=\"model.inputId\"\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 tabindex=\"0\"\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: [] }]
2097
2097
  }] });
2098
2098
  AngularComponentFactory.Instance.registerComponent("file-question", FileQuestionComponent);
2099
2099