survey-angular-ui 2.3.15 → 2.4.0

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.
@@ -9,7 +9,7 @@ export class ActionComponent extends BaseAngular {
9
9
  return this.model;
10
10
  }
11
11
  get id() {
12
- return this.model.id || "";
12
+ return this.model.uniqueId + "" || "";
13
13
  }
14
14
  ngOnDestroy() {
15
15
  super.ngOnDestroy();
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
42
42
  args: ["container"]
43
43
  }] } });
44
44
  AngularComponentFactory.Instance.registerComponent("sv-action", ActionComponent);
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQVFsRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBRzlDLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDZSxXQUFXO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLFNBQWdCLENBQUM7SUFDbkQsQ0FBQztJQUNNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDdkIsY0FBYyxDQUFDLEdBQUcsRUFBRTs7Z0JBQ2xCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxhQUFhLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7NkdBckJVLGVBQWU7aUdBQWYsZUFBZSxrTkNWNUIsMGFBU2M7NEZEQ0QsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDa0IsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXOztBQXNCeEIsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCIuLi8uLi9iYXNlLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudC1mYWN0b3J5XCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLWFjdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FjdGlvbi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZTsgfVwiXSxcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbW9kZWwhOiBBY3Rpb247XG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIikgY29udGFpbmVyUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIGdldE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG4gIHB1YmxpYyBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuaWQgfHwgXCJcIjtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLm1vZGVsLnVwZGF0ZU1vZGVDYWxsYmFjayA9IHVuZGVmaW5lZCBhcyBhbnk7XG4gIH1cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLnVwZGF0ZU1vZGVDYWxsYmFjayA9IChtb2RlLCBjYWxsYmFjaykgPT4ge1xuICAgICAgdGhpcy5tb2RlbC5tb2RlID0gbW9kZTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgY2FsbGJhY2sobW9kZSwgdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB0aGlzLm1vZGVsLmFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdi1hY3Rpb25cIiwgQWN0aW9uQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5nZXRBY3Rpb25Sb290Q3NzKClcIiBbaWRdPVwiaWRcIiAjY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJzdi1hY3Rpb25fX2NvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5uZWVkU2VwYXJhdG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdi1hY3Rpb24tYmFyLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgW2NvbXBvbmVudF09XCJ7IG5hbWU6IG1vZGVsLmNvbXBvbmVudCwgZGF0YTogeyBtb2RlbCB9LCBkZWZhdWx0OiAnc3YtYWN0aW9uLWJhci1pdGVtJ31cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQVFsRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBRzlDLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ2UsV0FBVztRQUN6QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxTQUFnQixDQUFDO0lBQ25ELENBQUM7SUFDTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLGNBQWMsQ0FBQyxHQUFHLEVBQUU7O2dCQUNsQixRQUFRLENBQUMsSUFBSSxFQUFFLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsYUFBYSxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzZHQXJCVSxlQUFlO2lHQUFmLGVBQWUsa05DVjVCLDBhQVNjOzRGRENELGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUNyQzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2tCLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVzs7QUFzQnhCLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmFzZUFuZ3VsYXIgfSBmcm9tIFwiLi4vLi4vYmFzZS1hbmd1bGFyXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1hY3Rpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9hY3Rpb24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl0sXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG1vZGVsITogQWN0aW9uO1xuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLnVuaXF1ZUlkICsgXCJcIiB8fCBcIlwiO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMubW9kZWwudXBkYXRlTW9kZUNhbGxiYWNrID0gdW5kZWZpbmVkIGFzIGFueTtcbiAgfVxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwudXBkYXRlTW9kZUNhbGxiYWNrID0gKG1vZGUsIGNhbGxiYWNrKSA9PiB7XG4gICAgICB0aGlzLm1vZGVsLm1vZGUgPSBtb2RlO1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICBjYWxsYmFjayhtb2RlLCB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudCk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHRoaXMubW9kZWwuYWZ0ZXJSZW5kZXIoKTtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2LWFjdGlvblwiLCBBY3Rpb25Db21wb25lbnQpOyIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmdldEFjdGlvblJvb3RDc3MoKVwiIFtpZF09XCJpZFwiICNjb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cInN2LWFjdGlvbl9fY29udGVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsLm5lZWRTZXBhcmF0b3JcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2LWFjdGlvbi1iYXItc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50XT1cInsgbmFtZTogbW9kZWwuY29tcG9uZW50LCBkYXRhOiB7IG1vZGVsIH0sIGRlZmF1bHQ6ICdzdi1hY3Rpb24tYmFyLWl0ZW0nfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -12,7 +12,7 @@ import * as i7 from "../utils/dynamic.directive";
12
12
  export class FileQuestionComponent extends QuestionAngular {
13
13
  }
14
14
  FileQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
- FileQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input [class]=\"model.cssClasses.fileInput\" *ngIf=\"!model.isReadOnlyAttr && !model.isDisabledAttr && model.hasFileUI\"\n tabindex=\"-1\" type=\"file\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-errormessage]=\"model.ariaErrormessage\" [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\" [attr.accept]=\"model.acceptedTypes\" [attr.capture]=\"model.renderCapture\" />\n <input *ngIf=\"model.isReadOnlyAttr\" type=\"file\" readonly [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <input *ngIf=\"model.isDisabledAttr\" type=\"file\" disabled [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <div [class]=\"model.cssClasses.dragArea\" (dragenter)=\"model.onDragEnter($event)\" (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\" (dragleave)=\"model.onDragLeave($event)\">\n <div [class]=\"model.getFileDecoratorCss()\" *ngIf=\"model.showFileDecorator\">\n <span *ngIf=\"model.showDragAreaPlaceholder\" [class]=\"model.cssClasses.dragAreaPlaceholder\" [model]=\"model.locRenderedPlaceholder\" sv-ng-string></span>\n <div [class]=\"model.cssClasses.wrapper\">\n <sv-ng-action-bar [model]=\"model.actionsContainer\" *ngIf=\"model.actionsContainerVisible\"></sv-ng-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n </ng-container>\n <ng-container *ngIf=\"model.isPlayingVideo\">\n <ng-container *ngTemplateOutlet=\"fileVideo\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"model.allowShowPreview\">\n <ng-template [component]=\"{ name: 'sv-file-preview', data: { question: model } }\"></ng-template>\n </ng-container>\n <sv-action-bar *ngIf=\"model.fileNavigatorVisible\" [model]=\"model.fileNavigator\"></sv-action-bar>\n </div>\n</div>\n<ng-template #fileCleanButton let-css=\"css\">\n <button type=\"button\" [class]=\"css\" (click)=\"model.doClean()\">\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\"\n [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n</ng-template>\n<ng-template #fileVideo>\n <div [class]=\"model.cssClasses.videoContainer\">\n <sv-ng-action [model]=\"model.changeCameraAction\"></sv-ng-action>\n <sv-ng-action [model]=\"model.closeCameraAction\"></sv-ng-action>\n <video autoplay playsinline [attr.id]=\"model.videoId\" [class]=\"model.cssClasses.video\"></video>\n <sv-ng-action [model]=\"model.takePictureAction\"></sv-ng-action>\n </div>\n</ng-template>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i3.LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }, { type: i4.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i5.ActionComponent, selector: "sv-ng-action", inputs: ["model"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
15
+ FileQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input [class]=\"model.cssClasses.fileInput\" *ngIf=\"!model.isReadOnlyAttr && !model.isDisabledAttr && model.hasFileUI\"\n tabindex=\"-1\" type=\"file\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-errormessage]=\"model.ariaErrormessage\" [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\" [attr.accept]=\"model.renderedAcceptedTypes\" [attr.capture]=\"model.renderCapture\" />\n <input *ngIf=\"model.isReadOnlyAttr\" type=\"file\" readonly [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <input *ngIf=\"model.isDisabledAttr\" type=\"file\" disabled [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <div [class]=\"model.cssClasses.dragArea\" (dragenter)=\"model.onDragEnter($event)\" (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\" (dragleave)=\"model.onDragLeave($event)\">\n <div [class]=\"model.getFileDecoratorCss()\" *ngIf=\"model.showFileDecorator\">\n <span *ngIf=\"model.showDragAreaPlaceholder\" [class]=\"model.cssClasses.dragAreaPlaceholder\" [model]=\"model.locRenderedPlaceholder\" sv-ng-string></span>\n <div [class]=\"model.cssClasses.wrapper\">\n <sv-ng-action-bar [model]=\"model.actionsContainer\" *ngIf=\"model.actionsContainerVisible\"></sv-ng-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n </ng-container>\n <ng-container *ngIf=\"model.isPlayingVideo\">\n <ng-container *ngTemplateOutlet=\"fileVideo\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"model.allowShowPreview\">\n <ng-template [component]=\"{ name: 'sv-file-preview', data: { question: model } }\"></ng-template>\n </ng-container>\n <sv-action-bar *ngIf=\"model.fileNavigatorVisible\" [model]=\"model.fileNavigator\"></sv-action-bar>\n </div>\n</div>\n<ng-template #fileCleanButton let-css=\"css\">\n <button type=\"button\" [class]=\"css\" (click)=\"model.doClean()\">\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\"\n [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n</ng-template>\n<ng-template #fileVideo>\n <div [class]=\"model.cssClasses.videoContainer\">\n <sv-ng-action [model]=\"model.changeCameraAction\"></sv-ng-action>\n <sv-ng-action [model]=\"model.closeCameraAction\"></sv-ng-action>\n <video autoplay playsinline [attr.id]=\"model.videoId\" [class]=\"model.cssClasses.video\"></video>\n <sv-ng-action [model]=\"model.takePictureAction\"></sv-ng-action>\n </div>\n</ng-template>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i3.LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }, { type: i4.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i5.ActionComponent, selector: "sv-ng-action", inputs: ["model"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileQuestionComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
22
22
  }]
23
23
  }] });
24
24
  AngularComponentFactory.Instance.registerComponent("file-question", FileQuestionComponent);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlc3Rpb25zL2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL3F1ZXN0aW9ucy9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBTS9ELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFrQzs7bUhBQWhFLHFCQUFxQjt1R0FBckIscUJBQXFCLGtGQ1RsQyxncEdBZ0RjOzRGRHZDRCxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsU0FBUyxFQUFFLEVBQUU7aUJBQ2Q7O0FBR0QsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXN0aW9uQW5ndWxhciB9IGZyb20gXCIuLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GaWxlTW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4uL2NvbXBvbmVudC1mYWN0b3J5XCI7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctZmlsZS1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlUXVlc3Rpb25Db21wb25lbnQgZXh0ZW5kcyBRdWVzdGlvbkFuZ3VsYXI8UXVlc3Rpb25GaWxlTW9kZWw+IHt9XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwiZmlsZS1xdWVzdGlvblwiLCBGaWxlUXVlc3Rpb25Db21wb25lbnQpOyIsIjxkaXYgW2NsYXNzXT1cIm1vZGVsLmZpbGVSb290Q3NzXCIgI2NvbnRlbnRFbGVtZW50PlxuICA8aW5wdXQgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZmlsZUlucHV0XCIgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seUF0dHIgJiYgIW1vZGVsLmlzRGlzYWJsZWRBdHRyICYmIG1vZGVsLmhhc0ZpbGVVSVwiXG4gICAgdGFiaW5kZXg9XCItMVwiIHR5cGU9XCJmaWxlXCIgW2F0dHIuaWRdPVwibW9kZWwuaW5wdXRJZFwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwibW9kZWwuYXJpYVJlcXVpcmVkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmFyaWFMYWJlbFwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJtb2RlbC5hcmlhSW52YWxpZFwiXG4gICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwibW9kZWwuYXJpYUVycm9ybWVzc2FnZVwiIFthdHRyLm11bHRpcGxlXT1cIm1vZGVsLm11bHRpcGxlUmVuZGVyZWRcIlxuICAgIFthdHRyLnRpdGxlXT1cIm1vZGVsLmlucHV0VGl0bGVcIiBbYXR0ci5hY2NlcHRdPVwibW9kZWwuYWNjZXB0ZWRUeXBlc1wiIFthdHRyLmNhcHR1cmVdPVwibW9kZWwucmVuZGVyQ2FwdHVyZVwiIC8+XG4gIDxpbnB1dCAqbmdJZj1cIm1vZGVsLmlzUmVhZE9ubHlBdHRyXCIgdHlwZT1cImZpbGVcIiByZWFkb25seSBbY2xhc3NdPVwibW9kZWwuZ2V0UmVhZE9ubHlGaWxlQ3NzKClcIlxuICAgIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIiBbYXR0ci5tdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVJlbmRlcmVkXCIgW2F0dHIucGxhY2Vob2xkZXJdPVwibW9kZWwudGl0bGVcIlxuICAgIHN0eWxlPVwiY29sb3I6IHRyYW5zcGFyZW50XCIgLz5cbiAgPGlucHV0ICpuZ0lmPVwibW9kZWwuaXNEaXNhYmxlZEF0dHJcIiB0eXBlPVwiZmlsZVwiIGRpc2FibGVkIFtjbGFzc109XCJtb2RlbC5nZXRSZWFkT25seUZpbGVDc3MoKVwiXG4gICAgW2F0dHIuaWRdPVwibW9kZWwuaW5wdXRJZFwiIFthdHRyLm11bHRpcGxlXT1cIm1vZGVsLm11bHRpcGxlUmVuZGVyZWRcIiBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlbC50aXRsZVwiXG4gICAgc3R5bGU9XCJjb2xvcjogdHJhbnNwYXJlbnRcIiAvPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmRyYWdBcmVhXCIgKGRyYWdlbnRlcik9XCJtb2RlbC5vbkRyYWdFbnRlcigkZXZlbnQpXCIgKGRyb3ApPVwibW9kZWwub25Ecm9wKCRldmVudClcIlxuICAgIChkcmFnb3Zlcik9XCJtb2RlbC5vbkRyYWdPdmVyKCRldmVudClcIiAoZHJhZ2xlYXZlKT1cIm1vZGVsLm9uRHJhZ0xlYXZlKCRldmVudClcIj5cbiAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5nZXRGaWxlRGVjb3JhdG9yQ3NzKClcIiAqbmdJZj1cIm1vZGVsLnNob3dGaWxlRGVjb3JhdG9yXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIm1vZGVsLnNob3dEcmFnQXJlYVBsYWNlaG9sZGVyXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZHJhZ0FyZWFQbGFjZWhvbGRlclwiIFttb2RlbF09XCJtb2RlbC5sb2NSZW5kZXJlZFBsYWNlaG9sZGVyXCIgc3Ytbmctc3RyaW5nPjwvc3Bhbj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMud3JhcHBlclwiPlxuICAgICAgICA8c3YtbmctYWN0aW9uLWJhciBbbW9kZWxdPVwibW9kZWwuYWN0aW9uc0NvbnRhaW5lclwiICpuZ0lmPVwibW9kZWwuYWN0aW9uc0NvbnRhaW5lclZpc2libGVcIj48L3N2LW5nLWFjdGlvbi1iYXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwuc2hvd0xvYWRpbmdJbmRpY2F0b3JcIj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMubG9hZGluZ0luZGljYXRvclwiPlxuICAgICAgICA8c3YtbmctbG9hZGluZy1pbmRpY2F0b3I+PC9zdi1uZy1sb2FkaW5nLWluZGljYXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5pc1BsYXlpbmdWaWRlb1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVWaWRlb1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5hbGxvd1Nob3dQcmV2aWV3XCI+XG4gICAgICA8bmctdGVtcGxhdGUgW2NvbXBvbmVudF09XCJ7IG5hbWU6ICdzdi1maWxlLXByZXZpZXcnLCBkYXRhOiB7IHF1ZXN0aW9uOiBtb2RlbCB9IH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzdi1hY3Rpb24tYmFyICpuZ0lmPVwibW9kZWwuZmlsZU5hdmlnYXRvclZpc2libGVcIiBbbW9kZWxdPVwibW9kZWwuZmlsZU5hdmlnYXRvclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZmlsZUNsZWFuQnV0dG9uIGxldC1jc3M9XCJjc3NcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2NsYXNzXT1cImNzc1wiIChjbGljayk9XCJtb2RlbC5kb0NsZWFuKClcIj5cbiAgICA8c3Bhbj57eyBtb2RlbC5jbGVhckJ1dHRvbkNhcHRpb24gfX08L3NwYW4+XG4gICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMucmVtb3ZlQnV0dG9uSWNvbklkXCIgW3NpemVdPVwiJ2F1dG8nXCJcbiAgICAgIFt0aXRsZV09XCJtb2RlbC5jbGVhckJ1dHRvbkNhcHRpb25cIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmaWxlVmlkZW8+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMudmlkZW9Db250YWluZXJcIj5cbiAgICA8c3YtbmctYWN0aW9uIFttb2RlbF09XCJtb2RlbC5jaGFuZ2VDYW1lcmFBY3Rpb25cIj48L3N2LW5nLWFjdGlvbj5cbiAgICA8c3YtbmctYWN0aW9uIFttb2RlbF09XCJtb2RlbC5jbG9zZUNhbWVyYUFjdGlvblwiPjwvc3YtbmctYWN0aW9uPlxuICAgIDx2aWRlbyBhdXRvcGxheSBwbGF5c2lubGluZSBbYXR0ci5pZF09XCJtb2RlbC52aWRlb0lkXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMudmlkZW9cIj48L3ZpZGVvPlxuICAgIDxzdi1uZy1hY3Rpb24gW21vZGVsXT1cIm1vZGVsLnRha2VQaWN0dXJlQWN0aW9uXCI+PC9zdi1uZy1hY3Rpb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlc3Rpb25zL2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL3F1ZXN0aW9ucy9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBTS9ELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFrQzs7bUhBQWhFLHFCQUFxQjt1R0FBckIscUJBQXFCLGtGQ1RsQyx3cEdBZ0RjOzRGRHZDRCxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsU0FBUyxFQUFFLEVBQUU7aUJBQ2Q7O0FBR0QsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXN0aW9uQW5ndWxhciB9IGZyb20gXCIuLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GaWxlTW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4uL2NvbXBvbmVudC1mYWN0b3J5XCI7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctZmlsZS1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlUXVlc3Rpb25Db21wb25lbnQgZXh0ZW5kcyBRdWVzdGlvbkFuZ3VsYXI8UXVlc3Rpb25GaWxlTW9kZWw+IHt9XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwiZmlsZS1xdWVzdGlvblwiLCBGaWxlUXVlc3Rpb25Db21wb25lbnQpOyIsIjxkaXYgW2NsYXNzXT1cIm1vZGVsLmZpbGVSb290Q3NzXCIgI2NvbnRlbnRFbGVtZW50PlxuICA8aW5wdXQgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZmlsZUlucHV0XCIgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seUF0dHIgJiYgIW1vZGVsLmlzRGlzYWJsZWRBdHRyICYmIG1vZGVsLmhhc0ZpbGVVSVwiXG4gICAgdGFiaW5kZXg9XCItMVwiIHR5cGU9XCJmaWxlXCIgW2F0dHIuaWRdPVwibW9kZWwuaW5wdXRJZFwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwibW9kZWwuYXJpYVJlcXVpcmVkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmFyaWFMYWJlbFwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJtb2RlbC5hcmlhSW52YWxpZFwiXG4gICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwibW9kZWwuYXJpYUVycm9ybWVzc2FnZVwiIFthdHRyLm11bHRpcGxlXT1cIm1vZGVsLm11bHRpcGxlUmVuZGVyZWRcIlxuICAgIFthdHRyLnRpdGxlXT1cIm1vZGVsLmlucHV0VGl0bGVcIiBbYXR0ci5hY2NlcHRdPVwibW9kZWwucmVuZGVyZWRBY2NlcHRlZFR5cGVzXCIgW2F0dHIuY2FwdHVyZV09XCJtb2RlbC5yZW5kZXJDYXB0dXJlXCIgLz5cbiAgPGlucHV0ICpuZ0lmPVwibW9kZWwuaXNSZWFkT25seUF0dHJcIiB0eXBlPVwiZmlsZVwiIHJlYWRvbmx5IFtjbGFzc109XCJtb2RlbC5nZXRSZWFkT25seUZpbGVDc3MoKVwiXG4gICAgW2F0dHIuaWRdPVwibW9kZWwuaW5wdXRJZFwiIFthdHRyLm11bHRpcGxlXT1cIm1vZGVsLm11bHRpcGxlUmVuZGVyZWRcIiBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlbC50aXRsZVwiXG4gICAgc3R5bGU9XCJjb2xvcjogdHJhbnNwYXJlbnRcIiAvPlxuICA8aW5wdXQgKm5nSWY9XCJtb2RlbC5pc0Rpc2FibGVkQXR0clwiIHR5cGU9XCJmaWxlXCIgZGlzYWJsZWQgW2NsYXNzXT1cIm1vZGVsLmdldFJlYWRPbmx5RmlsZUNzcygpXCJcbiAgICBbYXR0ci5pZF09XCJtb2RlbC5pbnB1dElkXCIgW2F0dHIubXVsdGlwbGVdPVwibW9kZWwubXVsdGlwbGVSZW5kZXJlZFwiIFthdHRyLnBsYWNlaG9sZGVyXT1cIm1vZGVsLnRpdGxlXCJcbiAgICBzdHlsZT1cImNvbG9yOiB0cmFuc3BhcmVudFwiIC8+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuZHJhZ0FyZWFcIiAoZHJhZ2VudGVyKT1cIm1vZGVsLm9uRHJhZ0VudGVyKCRldmVudClcIiAoZHJvcCk9XCJtb2RlbC5vbkRyb3AoJGV2ZW50KVwiXG4gICAgKGRyYWdvdmVyKT1cIm1vZGVsLm9uRHJhZ092ZXIoJGV2ZW50KVwiIChkcmFnbGVhdmUpPVwibW9kZWwub25EcmFnTGVhdmUoJGV2ZW50KVwiPlxuICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmdldEZpbGVEZWNvcmF0b3JDc3MoKVwiICpuZ0lmPVwibW9kZWwuc2hvd0ZpbGVEZWNvcmF0b3JcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwibW9kZWwuc2hvd0RyYWdBcmVhUGxhY2Vob2xkZXJcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5kcmFnQXJlYVBsYWNlaG9sZGVyXCIgW21vZGVsXT1cIm1vZGVsLmxvY1JlbmRlcmVkUGxhY2Vob2xkZXJcIiBzdi1uZy1zdHJpbmc+PC9zcGFuPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy53cmFwcGVyXCI+XG4gICAgICAgIDxzdi1uZy1hY3Rpb24tYmFyIFttb2RlbF09XCJtb2RlbC5hY3Rpb25zQ29udGFpbmVyXCIgKm5nSWY9XCJtb2RlbC5hY3Rpb25zQ29udGFpbmVyVmlzaWJsZVwiPjwvc3YtbmctYWN0aW9uLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5zaG93TG9hZGluZ0luZGljYXRvclwiPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5sb2FkaW5nSW5kaWNhdG9yXCI+XG4gICAgICAgIDxzdi1uZy1sb2FkaW5nLWluZGljYXRvcj48L3N2LW5nLWxvYWRpbmctaW5kaWNhdG9yPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsLmlzUGxheWluZ1ZpZGVvXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZVZpZGVvXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsLmFsbG93U2hvd1ByZXZpZXdcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50XT1cInsgbmFtZTogJ3N2LWZpbGUtcHJldmlldycsIGRhdGE6IHsgcXVlc3Rpb246IG1vZGVsIH0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHN2LWFjdGlvbi1iYXIgKm5nSWY9XCJtb2RlbC5maWxlTmF2aWdhdG9yVmlzaWJsZVwiIFttb2RlbF09XCJtb2RlbC5maWxlTmF2aWdhdG9yXCI+PC9zdi1hY3Rpb24tYmFyPlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNmaWxlQ2xlYW5CdXR0b24gbGV0LWNzcz1cImNzc1wiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbY2xhc3NdPVwiY3NzXCIgKGNsaWNrKT1cIm1vZGVsLmRvQ2xlYW4oKVwiPlxuICAgIDxzcGFuPnt7IG1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvbiB9fTwvc3Bhbj5cbiAgICA8c3ZnICpuZ0lmPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b25JY29uSWRcIiBbc2l6ZV09XCInYXV0bydcIlxuICAgICAgW3RpdGxlXT1cIm1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvblwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ZpbGVWaWRlbz5cbiAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy52aWRlb0NvbnRhaW5lclwiPlxuICAgIDxzdi1uZy1hY3Rpb24gW21vZGVsXT1cIm1vZGVsLmNoYW5nZUNhbWVyYUFjdGlvblwiPjwvc3YtbmctYWN0aW9uPlxuICAgIDxzdi1uZy1hY3Rpb24gW21vZGVsXT1cIm1vZGVsLmNsb3NlQ2FtZXJhQWN0aW9uXCI+PC9zdi1uZy1hY3Rpb24+XG4gICAgPHZpZGVvIGF1dG9wbGF5IHBsYXlzaW5saW5lIFthdHRyLmlkXT1cIm1vZGVsLnZpZGVvSWRcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy52aWRlb1wiPjwvdmlkZW8+XG4gICAgPHN2LW5nLWFjdGlvbiBbbW9kZWxdPVwibW9kZWwudGFrZVBpY3R1cmVBY3Rpb25cIj48L3N2LW5nLWFjdGlvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -249,7 +249,7 @@ class ActionComponent extends BaseAngular {
249
249
  return this.model;
250
250
  }
251
251
  get id() {
252
- return this.model.id || "";
252
+ return this.model.uniqueId + "" || "";
253
253
  }
254
254
  ngOnDestroy() {
255
255
  super.ngOnDestroy();
@@ -3112,7 +3112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
3112
3112
  class FileQuestionComponent extends QuestionAngular {
3113
3113
  }
3114
3114
  FileQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3115
- FileQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input [class]=\"model.cssClasses.fileInput\" *ngIf=\"!model.isReadOnlyAttr && !model.isDisabledAttr && model.hasFileUI\"\n tabindex=\"-1\" type=\"file\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-errormessage]=\"model.ariaErrormessage\" [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\" [attr.accept]=\"model.acceptedTypes\" [attr.capture]=\"model.renderCapture\" />\n <input *ngIf=\"model.isReadOnlyAttr\" type=\"file\" readonly [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <input *ngIf=\"model.isDisabledAttr\" type=\"file\" disabled [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <div [class]=\"model.cssClasses.dragArea\" (dragenter)=\"model.onDragEnter($event)\" (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\" (dragleave)=\"model.onDragLeave($event)\">\n <div [class]=\"model.getFileDecoratorCss()\" *ngIf=\"model.showFileDecorator\">\n <span *ngIf=\"model.showDragAreaPlaceholder\" [class]=\"model.cssClasses.dragAreaPlaceholder\" [model]=\"model.locRenderedPlaceholder\" sv-ng-string></span>\n <div [class]=\"model.cssClasses.wrapper\">\n <sv-ng-action-bar [model]=\"model.actionsContainer\" *ngIf=\"model.actionsContainerVisible\"></sv-ng-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n </ng-container>\n <ng-container *ngIf=\"model.isPlayingVideo\">\n <ng-container *ngTemplateOutlet=\"fileVideo\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"model.allowShowPreview\">\n <ng-template [component]=\"{ name: 'sv-file-preview', data: { question: model } }\"></ng-template>\n </ng-container>\n <sv-action-bar *ngIf=\"model.fileNavigatorVisible\" [model]=\"model.fileNavigator\"></sv-action-bar>\n </div>\n</div>\n<ng-template #fileCleanButton let-css=\"css\">\n <button type=\"button\" [class]=\"css\" (click)=\"model.doClean()\">\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\"\n [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n</ng-template>\n<ng-template #fileVideo>\n <div [class]=\"model.cssClasses.videoContainer\">\n <sv-ng-action [model]=\"model.changeCameraAction\"></sv-ng-action>\n <sv-ng-action [model]=\"model.closeCameraAction\"></sv-ng-action>\n <video autoplay playsinline [attr.id]=\"model.videoId\" [class]=\"model.cssClasses.video\"></video>\n <sv-ng-action [model]=\"model.takePictureAction\"></sv-ng-action>\n </div>\n</ng-template>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionComponent, selector: "sv-ng-action", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
3115
+ FileQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input [class]=\"model.cssClasses.fileInput\" *ngIf=\"!model.isReadOnlyAttr && !model.isDisabledAttr && model.hasFileUI\"\n tabindex=\"-1\" type=\"file\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-errormessage]=\"model.ariaErrormessage\" [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\" [attr.accept]=\"model.renderedAcceptedTypes\" [attr.capture]=\"model.renderCapture\" />\n <input *ngIf=\"model.isReadOnlyAttr\" type=\"file\" readonly [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <input *ngIf=\"model.isDisabledAttr\" type=\"file\" disabled [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <div [class]=\"model.cssClasses.dragArea\" (dragenter)=\"model.onDragEnter($event)\" (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\" (dragleave)=\"model.onDragLeave($event)\">\n <div [class]=\"model.getFileDecoratorCss()\" *ngIf=\"model.showFileDecorator\">\n <span *ngIf=\"model.showDragAreaPlaceholder\" [class]=\"model.cssClasses.dragAreaPlaceholder\" [model]=\"model.locRenderedPlaceholder\" sv-ng-string></span>\n <div [class]=\"model.cssClasses.wrapper\">\n <sv-ng-action-bar [model]=\"model.actionsContainer\" *ngIf=\"model.actionsContainerVisible\"></sv-ng-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n </ng-container>\n <ng-container *ngIf=\"model.isPlayingVideo\">\n <ng-container *ngTemplateOutlet=\"fileVideo\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"model.allowShowPreview\">\n <ng-template [component]=\"{ name: 'sv-file-preview', data: { question: model } }\"></ng-template>\n </ng-container>\n <sv-action-bar *ngIf=\"model.fileNavigatorVisible\" [model]=\"model.fileNavigator\"></sv-action-bar>\n </div>\n</div>\n<ng-template #fileCleanButton let-css=\"css\">\n <button type=\"button\" [class]=\"css\" (click)=\"model.doClean()\">\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\"\n [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n</ng-template>\n<ng-template #fileVideo>\n <div [class]=\"model.cssClasses.videoContainer\">\n <sv-ng-action [model]=\"model.changeCameraAction\"></sv-ng-action>\n <sv-ng-action [model]=\"model.closeCameraAction\"></sv-ng-action>\n <video autoplay playsinline [attr.id]=\"model.videoId\" [class]=\"model.cssClasses.video\"></video>\n <sv-ng-action [model]=\"model.takePictureAction\"></sv-ng-action>\n </div>\n</ng-template>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionComponent, selector: "sv-ng-action", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
3116
3116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileQuestionComponent, decorators: [{
3117
3117
  type: Component,
3118
3118
  args: [{