survey-angular-ui
Version:
A free MIT-licensed Angular UI component that renders dynamic, interactive JSON-based forms and surveys. You can use it to collect responses from users and send them to your own database.
25 lines • 11.4 kB
JavaScript
import { Component } from "@angular/core";
import { QuestionAngular } from "../question";
import { AngularComponentFactory } from "../component-factory";
import * as i0 from "@angular/core";
import * as i1 from "../survey-string.component";
import * as i2 from "../components/action-bar/action-bar.component";
import * as i3 from "../components/loading-indicator/loading-indicator.component";
import * as i4 from "../components/svg-icon/svg-icon.component";
import * as i5 from "../components/action-bar/action.component";
import * as i6 from "@angular/common";
import * as i7 from "../utils/dynamic.directive";
export class FileQuestionComponent extends QuestionAngular {
}
FileQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
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"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileQuestionComponent, decorators: [{
type: Component,
args: [{
selector: "sv-ng-file-question",
templateUrl: "./file.component.html",
styleUrls: []
}]
}] });
AngularComponentFactory.Instance.registerComponent("file-question", FileQuestionComponent);
//# 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==