survey-angular-ui 2.3.14 → 2.3.16

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.
@@ -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==
@@ -37,7 +37,7 @@ export class SliderQuestionComponent extends QuestionAngular {
37
37
  }
38
38
  }
39
39
  SliderQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SliderQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
40
- SliderQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SliderQuestionComponent, selector: "sv-ng-slider-question", viewQueries: [{ propertyName: "rangeInputRef", first: true, predicate: ["rangeInputRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<div [class]=\"model.rootCss\" #contentElement>\n <input *ngIf=\"model.sliderType !== 'single' && model.allowDragRange\" #rangeInputRef\n name=\"range-input\" [class]=\"model.cssClasses.input\" type=\"range\" tabIndex=\"-1\"\n id=\"sjs-slider-input-range-input\"\n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" aria-hidden=\"true\"\n (input)=\"model.handleRangeOnChange($any($event))\"\n (pointerdown)=\"model.handleRangePointerDown($any($event), rootRef)\"\n (pointerup)=\"model.handleRangePointerUp($any($event), rangeInputRef)\" />\n \n <div [class]=\"model.cssClasses.visualContainer\" (pointerup)=\"model.setValueByClickOnPath($any($event), rootRef)\">\n <div [class]=\"model.cssClasses.visualContainerSlider\">\n <div [class]=\"model.cssClasses.inverseTrackLeft\" [style]=\"{ width: model.getTrackPercentLeft() + '%' }\"></div>\n <div [class]=\"model.cssClasses.inverseTrackRight\" [style]=\"{ width: model.getTrackPercentRight() + '%' }\"></div>\n <div [class]=\"model.cssClasses.rangeTrack\" [style]=\"{ left: model.getTrackPercentLeft() + '%', right: model.getTrackPercentRight() + '%' }\" ></div>\n\n <ng-container *ngFor=\"let value of valueArray; index as i; trackBy: trackByRenderedValue;\">\n <input [class]=\"model.cssClasses.input\" [attr.id]=\"'sjs-slider-input-' + i\" type=\"range\" [value]=\"value\" \n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" [disabled]=\"model.isDisabledAttr\"\n (input)=\"model.handleOnChange($any($event), i)\"\n (pointerdown)=\"model.handlePointerDown($any($event))\"\n (pointerup)=\"model.handlePointerUp($any($event))\"\n (keydown)=\"model.handleKeyDown($any($event))\"\n (keyup)=\"model.handleKeyUp($any($event))\"\n (focus)=\"model.handleOnFocus(i)\"\n (blur)=\"model.handleOnBlur()\"\n [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\"\n [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\"\n [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"\n [attr.aria-invalid]=\"model.a11y_input_ariaInvalid\"\n [attr.aria-errormessage]=\"model.a11y_input_ariaErrormessage\"\n />\n <div [class]=\"model.getThumbContainerCss(i)\" [style]=\"{ left: model.getPercent(value) + '%' }\">\n <div *ngIf=\"model.tooltipVisibility !== 'never'\" [class]=\"model.tooltipCss\">\n <div [class]=\"model.cssClasses.tooltipPanel\">\n <div [class]=\"model.cssClasses.tooltipValue\">{{model.getTooltipValue(i)}}</div>\n </div>\n </div>\n <div [class]=\"model.cssClasses.thumb\">\n <div [class]=\"model.cssClasses.thumbDot\"></div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n\n <div *ngIf=\"model.showLabels\" [class]=\"model.cssClasses.labelsContainer\">\n <div>\n <ng-template *ngFor=\"let label of model.renderedLabels; index as i; trackBy: trackByLabelCount;\" [component]=\"{ name: 'sv-slider-label-item', data: {model: model, item: label }}\"></ng-template>\n </div>\n </div>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
40
+ SliderQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SliderQuestionComponent, selector: "sv-ng-slider-question", viewQueries: [{ propertyName: "rangeInputRef", first: true, predicate: ["rangeInputRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<div [class]=\"model.rootCss\" #contentElement>\n <input *ngIf=\"model.sliderType !== 'single' && model.allowDragRange\" #rangeInputRef\n name=\"range-input\" [class]=\"model.cssClasses.input\" type=\"range\" tabIndex=\"-1\"\n [attr.id]=\"model.id + '-sjs-slider-input-range-input'\"\n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" aria-hidden=\"true\"\n (input)=\"model.handleRangeOnChange($any($event))\"\n (pointerdown)=\"model.handleRangePointerDown($any($event), rootRef)\"\n (pointerup)=\"model.handleRangePointerUp($any($event), rangeInputRef)\" />\n \n <div [class]=\"model.cssClasses.visualContainer\" (pointerup)=\"model.setValueByClickOnPath($any($event), rootRef)\">\n <div [class]=\"model.cssClasses.visualContainerSlider\">\n <div [class]=\"model.cssClasses.inverseTrackLeft\" [style]=\"{ width: model.getTrackPercentLeft() + '%' }\"></div>\n <div [class]=\"model.cssClasses.inverseTrackRight\" [style]=\"{ width: model.getTrackPercentRight() + '%' }\"></div>\n <div [class]=\"model.cssClasses.rangeTrack\" [style]=\"{ left: model.getTrackPercentLeft() + '%', right: model.getTrackPercentRight() + '%' }\" ></div>\n\n <ng-container *ngFor=\"let value of valueArray; index as i; trackBy: trackByRenderedValue;\">\n <input [class]=\"model.cssClasses.input\" [attr.id]=\"model.id + '-sjs-slider-input-' + i\" type=\"range\" [value]=\"value\" \n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" [disabled]=\"model.isDisabledAttr\"\n (input)=\"model.handleOnChange($any($event), i)\"\n (pointerdown)=\"model.handlePointerDown($any($event))\"\n (pointerup)=\"model.handlePointerUp($any($event))\"\n (keydown)=\"model.handleKeyDown($any($event))\"\n (keyup)=\"model.handleKeyUp($any($event))\"\n (focus)=\"model.handleOnFocus(i)\"\n (blur)=\"model.handleOnBlur()\"\n [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\"\n [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\"\n [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"\n [attr.aria-invalid]=\"model.a11y_input_ariaInvalid\"\n [attr.aria-errormessage]=\"model.a11y_input_ariaErrormessage\"\n />\n <div [class]=\"model.getThumbContainerCss(i)\" [style]=\"{ left: model.getPercent(value) + '%' }\">\n <div *ngIf=\"model.tooltipVisibility !== 'never'\" [class]=\"model.tooltipCss\">\n <div [class]=\"model.cssClasses.tooltipPanel\">\n <div [class]=\"model.cssClasses.tooltipValue\">{{model.getTooltipValue(i)}}</div>\n </div>\n </div>\n <div [class]=\"model.cssClasses.thumb\">\n <div [class]=\"model.cssClasses.thumbDot\"></div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n\n <div *ngIf=\"model.showLabels\" [class]=\"model.cssClasses.labelsContainer\">\n <div>\n <ng-template *ngFor=\"let label of model.renderedLabels; index as i; trackBy: trackByLabelCount;\" [component]=\"{ name: 'sv-slider-label-item', data: {model: model, item: label }}\"></ng-template>\n </div>\n </div>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SliderQuestionComponent, decorators: [{
42
42
  type: Component,
43
43
  args: [{
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
49
49
  args: ["rangeInputRef"]
50
50
  }] } });
51
51
  AngularComponentFactory.Instance.registerComponent("slider-question", SliderQuestionComponent);
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFNL0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGVBQW9DO0lBR3RFLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFDRCxJQUFJLE9BQU87O1FBQ1QsT0FBTyxNQUFBLElBQUksQ0FBQyxpQkFBaUIsMENBQUUsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFDRCxJQUFJLGlCQUFpQjs7UUFDbkIsT0FBTyxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLGFBQWEsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sTUFBTSxHQUFZLEVBQUUsQ0FBQztRQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQUNELG9CQUFvQixDQUFFLENBQVM7UUFDN0IsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsaUJBQWlCLENBQUUsQ0FBUyxFQUFFLEtBQWdCO1FBQzVDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNsQixDQUFDOztxSEE5QlUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsb01DVHBDLHVyR0FzREE7NEZEN0NhLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUseUJBQXlCO2lCQUN2Qzs4QkFFNkIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlOztBQWdDNUIsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkFuZ3VsYXIgfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSwgUXVlc3Rpb25TbGlkZXJNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXNsaWRlci1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3NsaWRlci5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlclF1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUXVlc3Rpb25Bbmd1bGFyPFF1ZXN0aW9uU2xpZGVyTW9kZWw+IHtcbiAgQFZpZXdDaGlsZChcInJhbmdlSW5wdXRSZWZcIikgcmFuZ2VJbnB1dFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLm1vZGVsICYmIHRoaXMucmFuZ2VJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMubW9kZWwucmVmcmVzaElucHV0UmFuZ2UodGhpcy5yYW5nZUlucHV0RWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGdldCByb290UmVmKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Q29udGVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgfVxuICBnZXQgcmFuZ2VJbnB1dEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2VJbnB1dFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgfVxuICBnZXQgbGFiZWxDb3VudEFycmF5KCk6IG51bWJlcltdIHtcbiAgICBjb25zdCByZXN1bHQ6bnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubW9kZWwucmVuZGVyZWRMYWJlbENvdW50OyBpKyspIHtcbiAgICAgIHJlc3VsdC5wdXNoKGkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGdldCB2YWx1ZUFycmF5KCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbC5yZW5kZXJlZFZhbHVlO1xuICB9XG4gIHRyYWNrQnlSZW5kZXJlZFZhbHVlIChpOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpO1xuICB9XG4gIHRyYWNrQnlMYWJlbENvdW50IChpOiBudW1iZXIsIGxhYmVsOiBJdGVtVmFsdWUpOiBzdHJpbmcge1xuICAgIHJldHVybiBsYWJlbC5pZDtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInNsaWRlci1xdWVzdGlvblwiLCBTbGlkZXJRdWVzdGlvbkNvbXBvbmVudCk7IiwiXG48ZGl2IFtjbGFzc109XCJtb2RlbC5yb290Q3NzXCIgI2NvbnRlbnRFbGVtZW50PlxuICA8aW5wdXQgKm5nSWY9XCJtb2RlbC5zbGlkZXJUeXBlICE9PSAnc2luZ2xlJyAmJiBtb2RlbC5hbGxvd0RyYWdSYW5nZVwiICNyYW5nZUlucHV0UmVmXG4gIG5hbWU9XCJyYW5nZS1pbnB1dFwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmlucHV0XCIgdHlwZT1cInJhbmdlXCIgdGFiSW5kZXg9XCItMVwiXG4gIGlkPVwic2pzLXNsaWRlci1pbnB1dC1yYW5nZS1pbnB1dFwiXG4gIFthdHRyLm1pbl09XCJtb2RlbC5taW5cIiBbYXR0ci5tYXhdPVwibW9kZWwubWF4XCIgW2F0dHIuc3RlcF09XCJtb2RlbC5zdGVwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgKGlucHV0KT1cIm1vZGVsLmhhbmRsZVJhbmdlT25DaGFuZ2UoJGFueSgkZXZlbnQpKVwiXG4gIChwb2ludGVyZG93bik9XCJtb2RlbC5oYW5kbGVSYW5nZVBvaW50ZXJEb3duKCRhbnkoJGV2ZW50KSwgcm9vdFJlZilcIlxuICAocG9pbnRlcnVwKT1cIm1vZGVsLmhhbmRsZVJhbmdlUG9pbnRlclVwKCRhbnkoJGV2ZW50KSwgcmFuZ2VJbnB1dFJlZilcIiAvPlxuICBcbiAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy52aXN1YWxDb250YWluZXJcIiAocG9pbnRlcnVwKT1cIm1vZGVsLnNldFZhbHVlQnlDbGlja09uUGF0aCgkYW55KCRldmVudCksIHJvb3RSZWYpXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy52aXN1YWxDb250YWluZXJTbGlkZXJcIj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuaW52ZXJzZVRyYWNrTGVmdFwiIFtzdHlsZV09XCJ7IHdpZHRoOiBtb2RlbC5nZXRUcmFja1BlcmNlbnRMZWZ0KCkgKyAnJScgfVwiPjwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5pbnZlcnNlVHJhY2tSaWdodFwiIFtzdHlsZV09XCJ7IHdpZHRoOiBtb2RlbC5nZXRUcmFja1BlcmNlbnRSaWdodCgpICsgJyUnIH1cIj48L2Rpdj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucmFuZ2VUcmFja1wiIFtzdHlsZV09XCJ7IGxlZnQ6IG1vZGVsLmdldFRyYWNrUGVyY2VudExlZnQoKSArICclJywgcmlnaHQ6IG1vZGVsLmdldFRyYWNrUGVyY2VudFJpZ2h0KCkgKyAnJScgfVwiID48L2Rpdj5cblxuICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHZhbHVlQXJyYXk7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlSZW5kZXJlZFZhbHVlO1wiPlxuICAgICAgICA8aW5wdXQgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuaW5wdXRcIiBbYXR0ci5pZF09XCInc2pzLXNsaWRlci1pbnB1dC0nICsgaVwiIHR5cGU9XCJyYW5nZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiIFxuICAgICAgICAgIFthdHRyLm1pbl09XCJtb2RlbC5taW5cIiBbYXR0ci5tYXhdPVwibW9kZWwubWF4XCIgW2F0dHIuc3RlcF09XCJtb2RlbC5zdGVwXCIgW2Rpc2FibGVkXT1cIm1vZGVsLmlzRGlzYWJsZWRBdHRyXCJcbiAgICAgICAgICAoaW5wdXQpPVwibW9kZWwuaGFuZGxlT25DaGFuZ2UoJGFueSgkZXZlbnQpLCBpKVwiXG4gICAgICAgICAgKHBvaW50ZXJkb3duKT1cIm1vZGVsLmhhbmRsZVBvaW50ZXJEb3duKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgIChwb2ludGVydXApPVwibW9kZWwuaGFuZGxlUG9pbnRlclVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgIChrZXlkb3duKT1cIm1vZGVsLmhhbmRsZUtleURvd24oJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgKGtleXVwKT1cIm1vZGVsLmhhbmRsZUtleVVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgIChmb2N1cyk9XCJtb2RlbC5oYW5kbGVPbkZvY3VzKGkpXCJcbiAgICAgICAgICAoYmx1cik9XCJtb2RlbC5oYW5kbGVPbkJsdXIoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFSZXF1aXJlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFMYWJlbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIm1vZGVsLmExMXlfaW5wdXRfYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYTExeV9pbnB1dF9hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFJbnZhbGlkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFFcnJvcm1lc3NhZ2VcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5nZXRUaHVtYkNvbnRhaW5lckNzcyhpKVwiIFtzdHlsZV09XCJ7IGxlZnQ6IG1vZGVsLmdldFBlcmNlbnQodmFsdWUpICsgJyUnIH1cIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZWwudG9vbHRpcFZpc2liaWxpdHkgIT09ICduZXZlcidcIiBbY2xhc3NdPVwibW9kZWwudG9vbHRpcENzc1wiPlxuICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy50b29sdGlwUGFuZWxcIj5cbiAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy50b29sdGlwVmFsdWVcIj57e21vZGVsLmdldFRvb2x0aXBWYWx1ZShpKX19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnRodW1iXCI+XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnRodW1iRG90XCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIm1vZGVsLnNob3dMYWJlbHNcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5sYWJlbHNDb250YWluZXJcIj5cbiAgICA8ZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBtb2RlbC5yZW5kZXJlZExhYmVsczsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUxhYmVsQ291bnQ7XCIgW2NvbXBvbmVudF09XCJ7IG5hbWU6ICdzdi1zbGlkZXItbGFiZWwtaXRlbScsIGRhdGE6IHttb2RlbDogbW9kZWwsIGl0ZW06IGxhYmVsIH19XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFNL0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGVBQW9DO0lBR3RFLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFDRCxJQUFJLE9BQU87O1FBQ1QsT0FBTyxNQUFBLElBQUksQ0FBQyxpQkFBaUIsMENBQUUsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFDRCxJQUFJLGlCQUFpQjs7UUFDbkIsT0FBTyxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLGFBQWEsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sTUFBTSxHQUFZLEVBQUUsQ0FBQztRQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQUNELG9CQUFvQixDQUFFLENBQVM7UUFDN0IsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsaUJBQWlCLENBQUUsQ0FBUyxFQUFFLEtBQWdCO1FBQzVDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNsQixDQUFDOztxSEE5QlUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsb01DVHBDLHd0R0FzREE7NEZEN0NhLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUseUJBQXlCO2lCQUN2Qzs4QkFFNkIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlOztBQWdDNUIsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkFuZ3VsYXIgfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSwgUXVlc3Rpb25TbGlkZXJNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXNsaWRlci1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3NsaWRlci5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlclF1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUXVlc3Rpb25Bbmd1bGFyPFF1ZXN0aW9uU2xpZGVyTW9kZWw+IHtcbiAgQFZpZXdDaGlsZChcInJhbmdlSW5wdXRSZWZcIikgcmFuZ2VJbnB1dFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLm1vZGVsICYmIHRoaXMucmFuZ2VJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMubW9kZWwucmVmcmVzaElucHV0UmFuZ2UodGhpcy5yYW5nZUlucHV0RWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGdldCByb290UmVmKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Q29udGVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgfVxuICBnZXQgcmFuZ2VJbnB1dEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2VJbnB1dFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgfVxuICBnZXQgbGFiZWxDb3VudEFycmF5KCk6IG51bWJlcltdIHtcbiAgICBjb25zdCByZXN1bHQ6bnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubW9kZWwucmVuZGVyZWRMYWJlbENvdW50OyBpKyspIHtcbiAgICAgIHJlc3VsdC5wdXNoKGkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGdldCB2YWx1ZUFycmF5KCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbC5yZW5kZXJlZFZhbHVlO1xuICB9XG4gIHRyYWNrQnlSZW5kZXJlZFZhbHVlIChpOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpO1xuICB9XG4gIHRyYWNrQnlMYWJlbENvdW50IChpOiBudW1iZXIsIGxhYmVsOiBJdGVtVmFsdWUpOiBzdHJpbmcge1xuICAgIHJldHVybiBsYWJlbC5pZDtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInNsaWRlci1xdWVzdGlvblwiLCBTbGlkZXJRdWVzdGlvbkNvbXBvbmVudCk7IiwiXG48ZGl2IFtjbGFzc109XCJtb2RlbC5yb290Q3NzXCIgI2NvbnRlbnRFbGVtZW50PlxuICA8aW5wdXQgKm5nSWY9XCJtb2RlbC5zbGlkZXJUeXBlICE9PSAnc2luZ2xlJyAmJiBtb2RlbC5hbGxvd0RyYWdSYW5nZVwiICNyYW5nZUlucHV0UmVmXG4gIG5hbWU9XCJyYW5nZS1pbnB1dFwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmlucHV0XCIgdHlwZT1cInJhbmdlXCIgdGFiSW5kZXg9XCItMVwiXG4gIFthdHRyLmlkXT1cIm1vZGVsLmlkICsgJy1zanMtc2xpZGVyLWlucHV0LXJhbmdlLWlucHV0J1wiXG4gIFthdHRyLm1pbl09XCJtb2RlbC5taW5cIiBbYXR0ci5tYXhdPVwibW9kZWwubWF4XCIgW2F0dHIuc3RlcF09XCJtb2RlbC5zdGVwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgKGlucHV0KT1cIm1vZGVsLmhhbmRsZVJhbmdlT25DaGFuZ2UoJGFueSgkZXZlbnQpKVwiXG4gIChwb2ludGVyZG93bik9XCJtb2RlbC5oYW5kbGVSYW5nZVBvaW50ZXJEb3duKCRhbnkoJGV2ZW50KSwgcm9vdFJlZilcIlxuICAocG9pbnRlcnVwKT1cIm1vZGVsLmhhbmRsZVJhbmdlUG9pbnRlclVwKCRhbnkoJGV2ZW50KSwgcmFuZ2VJbnB1dFJlZilcIiAvPlxuICBcbiAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy52aXN1YWxDb250YWluZXJcIiAocG9pbnRlcnVwKT1cIm1vZGVsLnNldFZhbHVlQnlDbGlja09uUGF0aCgkYW55KCRldmVudCksIHJvb3RSZWYpXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy52aXN1YWxDb250YWluZXJTbGlkZXJcIj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuaW52ZXJzZVRyYWNrTGVmdFwiIFtzdHlsZV09XCJ7IHdpZHRoOiBtb2RlbC5nZXRUcmFja1BlcmNlbnRMZWZ0KCkgKyAnJScgfVwiPjwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5pbnZlcnNlVHJhY2tSaWdodFwiIFtzdHlsZV09XCJ7IHdpZHRoOiBtb2RlbC5nZXRUcmFja1BlcmNlbnRSaWdodCgpICsgJyUnIH1cIj48L2Rpdj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucmFuZ2VUcmFja1wiIFtzdHlsZV09XCJ7IGxlZnQ6IG1vZGVsLmdldFRyYWNrUGVyY2VudExlZnQoKSArICclJywgcmlnaHQ6IG1vZGVsLmdldFRyYWNrUGVyY2VudFJpZ2h0KCkgKyAnJScgfVwiID48L2Rpdj5cblxuICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHZhbHVlQXJyYXk7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlSZW5kZXJlZFZhbHVlO1wiPlxuICAgICAgICA8aW5wdXQgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuaW5wdXRcIiBbYXR0ci5pZF09XCJtb2RlbC5pZCArICctc2pzLXNsaWRlci1pbnB1dC0nICsgaVwiIHR5cGU9XCJyYW5nZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiIFxuICAgICAgICAgIFthdHRyLm1pbl09XCJtb2RlbC5taW5cIiBbYXR0ci5tYXhdPVwibW9kZWwubWF4XCIgW2F0dHIuc3RlcF09XCJtb2RlbC5zdGVwXCIgW2Rpc2FibGVkXT1cIm1vZGVsLmlzRGlzYWJsZWRBdHRyXCJcbiAgICAgICAgICAoaW5wdXQpPVwibW9kZWwuaGFuZGxlT25DaGFuZ2UoJGFueSgkZXZlbnQpLCBpKVwiXG4gICAgICAgICAgKHBvaW50ZXJkb3duKT1cIm1vZGVsLmhhbmRsZVBvaW50ZXJEb3duKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgIChwb2ludGVydXApPVwibW9kZWwuaGFuZGxlUG9pbnRlclVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgIChrZXlkb3duKT1cIm1vZGVsLmhhbmRsZUtleURvd24oJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgKGtleXVwKT1cIm1vZGVsLmhhbmRsZUtleVVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgIChmb2N1cyk9XCJtb2RlbC5oYW5kbGVPbkZvY3VzKGkpXCJcbiAgICAgICAgICAoYmx1cik9XCJtb2RlbC5oYW5kbGVPbkJsdXIoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFSZXF1aXJlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFMYWJlbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIm1vZGVsLmExMXlfaW5wdXRfYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYTExeV9pbnB1dF9hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFJbnZhbGlkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFFcnJvcm1lc3NhZ2VcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5nZXRUaHVtYkNvbnRhaW5lckNzcyhpKVwiIFtzdHlsZV09XCJ7IGxlZnQ6IG1vZGVsLmdldFBlcmNlbnQodmFsdWUpICsgJyUnIH1cIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZWwudG9vbHRpcFZpc2liaWxpdHkgIT09ICduZXZlcidcIiBbY2xhc3NdPVwibW9kZWwudG9vbHRpcENzc1wiPlxuICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy50b29sdGlwUGFuZWxcIj5cbiAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy50b29sdGlwVmFsdWVcIj57e21vZGVsLmdldFRvb2x0aXBWYWx1ZShpKX19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnRodW1iXCI+XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnRodW1iRG90XCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIm1vZGVsLnNob3dMYWJlbHNcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5sYWJlbHNDb250YWluZXJcIj5cbiAgICA8ZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBtb2RlbC5yZW5kZXJlZExhYmVsczsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUxhYmVsQ291bnQ7XCIgW2NvbXBvbmVudF09XCJ7IG5hbWU6ICdzdi1zbGlkZXItbGFiZWwtaXRlbScsIGRhdGE6IHttb2RlbDogbW9kZWwsIGl0ZW06IGxhYmVsIH19XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -2160,7 +2160,7 @@ class SliderQuestionComponent extends QuestionAngular {
2160
2160
  }
2161
2161
  }
2162
2162
  SliderQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SliderQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2163
- SliderQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SliderQuestionComponent, selector: "sv-ng-slider-question", viewQueries: [{ propertyName: "rangeInputRef", first: true, predicate: ["rangeInputRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<div [class]=\"model.rootCss\" #contentElement>\n <input *ngIf=\"model.sliderType !== 'single' && model.allowDragRange\" #rangeInputRef\n name=\"range-input\" [class]=\"model.cssClasses.input\" type=\"range\" tabIndex=\"-1\"\n id=\"sjs-slider-input-range-input\"\n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" aria-hidden=\"true\"\n (input)=\"model.handleRangeOnChange($any($event))\"\n (pointerdown)=\"model.handleRangePointerDown($any($event), rootRef)\"\n (pointerup)=\"model.handleRangePointerUp($any($event), rangeInputRef)\" />\n \n <div [class]=\"model.cssClasses.visualContainer\" (pointerup)=\"model.setValueByClickOnPath($any($event), rootRef)\">\n <div [class]=\"model.cssClasses.visualContainerSlider\">\n <div [class]=\"model.cssClasses.inverseTrackLeft\" [style]=\"{ width: model.getTrackPercentLeft() + '%' }\"></div>\n <div [class]=\"model.cssClasses.inverseTrackRight\" [style]=\"{ width: model.getTrackPercentRight() + '%' }\"></div>\n <div [class]=\"model.cssClasses.rangeTrack\" [style]=\"{ left: model.getTrackPercentLeft() + '%', right: model.getTrackPercentRight() + '%' }\" ></div>\n\n <ng-container *ngFor=\"let value of valueArray; index as i; trackBy: trackByRenderedValue;\">\n <input [class]=\"model.cssClasses.input\" [attr.id]=\"'sjs-slider-input-' + i\" type=\"range\" [value]=\"value\" \n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" [disabled]=\"model.isDisabledAttr\"\n (input)=\"model.handleOnChange($any($event), i)\"\n (pointerdown)=\"model.handlePointerDown($any($event))\"\n (pointerup)=\"model.handlePointerUp($any($event))\"\n (keydown)=\"model.handleKeyDown($any($event))\"\n (keyup)=\"model.handleKeyUp($any($event))\"\n (focus)=\"model.handleOnFocus(i)\"\n (blur)=\"model.handleOnBlur()\"\n [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\"\n [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\"\n [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"\n [attr.aria-invalid]=\"model.a11y_input_ariaInvalid\"\n [attr.aria-errormessage]=\"model.a11y_input_ariaErrormessage\"\n />\n <div [class]=\"model.getThumbContainerCss(i)\" [style]=\"{ left: model.getPercent(value) + '%' }\">\n <div *ngIf=\"model.tooltipVisibility !== 'never'\" [class]=\"model.tooltipCss\">\n <div [class]=\"model.cssClasses.tooltipPanel\">\n <div [class]=\"model.cssClasses.tooltipValue\">{{model.getTooltipValue(i)}}</div>\n </div>\n </div>\n <div [class]=\"model.cssClasses.thumb\">\n <div [class]=\"model.cssClasses.thumbDot\"></div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n\n <div *ngIf=\"model.showLabels\" [class]=\"model.cssClasses.labelsContainer\">\n <div>\n <ng-template *ngFor=\"let label of model.renderedLabels; index as i; trackBy: trackByLabelCount;\" [component]=\"{ name: 'sv-slider-label-item', data: {model: model, item: label }}\"></ng-template>\n </div>\n </div>\n</div>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
2163
+ SliderQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SliderQuestionComponent, selector: "sv-ng-slider-question", viewQueries: [{ propertyName: "rangeInputRef", first: true, predicate: ["rangeInputRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<div [class]=\"model.rootCss\" #contentElement>\n <input *ngIf=\"model.sliderType !== 'single' && model.allowDragRange\" #rangeInputRef\n name=\"range-input\" [class]=\"model.cssClasses.input\" type=\"range\" tabIndex=\"-1\"\n [attr.id]=\"model.id + '-sjs-slider-input-range-input'\"\n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" aria-hidden=\"true\"\n (input)=\"model.handleRangeOnChange($any($event))\"\n (pointerdown)=\"model.handleRangePointerDown($any($event), rootRef)\"\n (pointerup)=\"model.handleRangePointerUp($any($event), rangeInputRef)\" />\n \n <div [class]=\"model.cssClasses.visualContainer\" (pointerup)=\"model.setValueByClickOnPath($any($event), rootRef)\">\n <div [class]=\"model.cssClasses.visualContainerSlider\">\n <div [class]=\"model.cssClasses.inverseTrackLeft\" [style]=\"{ width: model.getTrackPercentLeft() + '%' }\"></div>\n <div [class]=\"model.cssClasses.inverseTrackRight\" [style]=\"{ width: model.getTrackPercentRight() + '%' }\"></div>\n <div [class]=\"model.cssClasses.rangeTrack\" [style]=\"{ left: model.getTrackPercentLeft() + '%', right: model.getTrackPercentRight() + '%' }\" ></div>\n\n <ng-container *ngFor=\"let value of valueArray; index as i; trackBy: trackByRenderedValue;\">\n <input [class]=\"model.cssClasses.input\" [attr.id]=\"model.id + '-sjs-slider-input-' + i\" type=\"range\" [value]=\"value\" \n [attr.min]=\"model.min\" [attr.max]=\"model.max\" [attr.step]=\"model.step\" [disabled]=\"model.isDisabledAttr\"\n (input)=\"model.handleOnChange($any($event), i)\"\n (pointerdown)=\"model.handlePointerDown($any($event))\"\n (pointerup)=\"model.handlePointerUp($any($event))\"\n (keydown)=\"model.handleKeyDown($any($event))\"\n (keyup)=\"model.handleKeyUp($any($event))\"\n (focus)=\"model.handleOnFocus(i)\"\n (blur)=\"model.handleOnBlur()\"\n [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\"\n [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\"\n [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"\n [attr.aria-invalid]=\"model.a11y_input_ariaInvalid\"\n [attr.aria-errormessage]=\"model.a11y_input_ariaErrormessage\"\n />\n <div [class]=\"model.getThumbContainerCss(i)\" [style]=\"{ left: model.getPercent(value) + '%' }\">\n <div *ngIf=\"model.tooltipVisibility !== 'never'\" [class]=\"model.tooltipCss\">\n <div [class]=\"model.cssClasses.tooltipPanel\">\n <div [class]=\"model.cssClasses.tooltipValue\">{{model.getTooltipValue(i)}}</div>\n </div>\n </div>\n <div [class]=\"model.cssClasses.thumb\">\n <div [class]=\"model.cssClasses.thumbDot\"></div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n\n <div *ngIf=\"model.showLabels\" [class]=\"model.cssClasses.labelsContainer\">\n <div>\n <ng-template *ngFor=\"let label of model.renderedLabels; index as i; trackBy: trackByLabelCount;\" [component]=\"{ name: 'sv-slider-label-item', data: {model: model, item: label }}\"></ng-template>\n </div>\n </div>\n</div>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
2164
2164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SliderQuestionComponent, decorators: [{
2165
2165
  type: Component,
2166
2166
  args: [{
@@ -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: [{