UNPKG

survey-angular-ui

Version:

survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.

56 lines 11.7 kB
import { Component, Input, ViewChild } from "@angular/core"; import { AngularComponentFactory } from "./component-factory"; import { EmbeddedViewContentComponent } from "./embedded-view-content.component"; import { getComponentName } from "./question"; import * as i0 from "@angular/core"; import * as i1 from "./errors.component"; import * as i2 from "./components/element-header/element-header.component"; import * as i3 from "./survey-string.component"; import * as i4 from "./comment.component"; import * as i5 from "@angular/common"; import * as i6 from "./utils/dynamic.directive"; import * as i7 from "./utils/ng-show.directive"; export class QuestionComponent extends EmbeddedViewContentComponent { getModel() { return this.model; } ngAfterViewInit() { var _a, _b; if (!!((_a = this.rootEl) === null || _a === void 0 ? void 0 : _a.nativeElement)) { this.model.afterRender((_b = this.rootEl) === null || _b === void 0 ? void 0 : _b.nativeElement); } } ngOnDestroy() { if (!!this.model) { this.model.destroyResizeObserver(); } } getComponentName() { return getComponentName(this.model); } getQuestionContentWrapperComponentName() { return this.model.survey.getQuestionContentWrapperComponentName(this.model); } getQuestionContentWrapperComponentData() { return { componentData: { model: this.model, data: this.model.survey.getElementWrapperComponentData(this.model) } }; } } QuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); QuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["elementContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\" [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\" [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\" [attr.aria-expanded]=\"model.ariaExpanded\">\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <ng-template [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\">\n <div *ngIf=\"model.showErrorOnTop && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <ng-template [component]=\"{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }\"></ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.showErrorOnBottom && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\" [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n </ng-template>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: i1.ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: i2.ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: i3.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i4.SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i7.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, decorators: [{ type: Component, args: [{ selector: "sv-ng-question", templateUrl: "./question.component.html" }] }], propDecorators: { model: [{ type: Input }], rootEl: [{ type: ViewChild, args: ["elementContainer"] }] } }); AngularComponentFactory.Instance.registerComponent("question", QuestionComponent); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uL3NyYy9xdWVzdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFNOUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0QjtJQUd2RCxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsZUFBZTs7UUFDYixJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxhQUFhLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNwQztJQUNILENBQUM7SUFDTSxnQkFBZ0IsS0FBYSxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsc0NBQXNDO1FBQzNDLE9BQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFPLENBQUMsc0NBQXNDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFDTSxzQ0FBc0M7UUFDM0MsT0FBTztZQUNMLGFBQWEsRUFBRTtnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLElBQUksRUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQzFFO1NBQ0YsQ0FBQztJQUNKLENBQUM7OytHQTNCVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixxTkNWOUIsKzZEQW1CYzs0RkRURCxpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDJCQUEyQjtpQkFDekM7OEJBRVUsS0FBSztzQkFBYixLQUFLO2dCQUN5QixNQUFNO3NCQUFwQyxTQUFTO3VCQUFDLGtCQUFrQjs7QUE0Qi9CLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuaW1wb3J0IHsgRW1iZWRkZWRWaWV3Q29udGVudENvbXBvbmVudCB9IGZyb20gXCIuL2VtYmVkZGVkLXZpZXctY29udGVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7IGdldENvbXBvbmVudE5hbWUgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctcXVlc3Rpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9xdWVzdGlvbi5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgRW1iZWRkZWRWaWV3Q29udGVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1vZGVsITogUXVlc3Rpb247XG4gIEBWaWV3Q2hpbGQoXCJlbGVtZW50Q29udGFpbmVyXCIpIHJvb3RFbD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogUXVlc3Rpb24ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLnJvb3RFbD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5tb2RlbC5hZnRlclJlbmRlcih0aGlzLnJvb3RFbD8ubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmKCEhdGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbC5kZXN0cm95UmVzaXplT2JzZXJ2ZXIoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldENvbXBvbmVudE5hbWUoKTogc3RyaW5nIHsgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodGhpcy5tb2RlbCk7IH1cbiAgcHVibGljIGdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICg8YW55PnRoaXMubW9kZWwuc3VydmV5KS5nZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50TmFtZSh0aGlzLm1vZGVsKTtcbiAgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25Db250ZW50V3JhcHBlckNvbXBvbmVudERhdGEoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29tcG9uZW50RGF0YToge1xuICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgZGF0YTogKDxhbnk+dGhpcy5tb2RlbC5zdXJ2ZXkpLmdldEVsZW1lbnRXcmFwcGVyQ29tcG9uZW50RGF0YSh0aGlzLm1vZGVsKVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJxdWVzdGlvblwiLCBRdWVzdGlvbkNvbXBvbmVudCk7IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiAqbmdJZj1cIiEhbW9kZWxcIiAjZWxlbWVudENvbnRhaW5lciBbY2xhc3NdPVwibW9kZWwuZ2V0Um9vdENzcygpXCIgW3N0eWxlXT1cIm1vZGVsLmdldFJvb3RTdHlsZSgpXCIgW2lkXT1cIm1vZGVsLmlkXCIgW2F0dHIuZGF0YS1uYW1lXT1cIm1vZGVsLm5hbWVcIiBbYXR0ci5yb2xlXT1cIm1vZGVsLmFyaWFSb2xlXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hcmlhUmVxdWlyZWRcIiBbYXR0ci5hcmlhLWludmFsaWRdPVwibW9kZWwuYXJpYUludmFsaWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmFyaWFMYWJlbFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJtb2RlbC5hcmlhTGFiZWxsZWRCeVwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJtb2RlbC5hcmlhRXhwYW5kZWRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuc2hvd0Vycm9yc0Fib3ZlUXVlc3Rpb24gJiYgbW9kZWwuaGFzVmlzaWJsZUVycm9yc1wiIFtlbGVtZW50XT1cIm1vZGVsXCIgc3YtbmctZXJyb3JzPjwvZGl2PlxuICAgIDxkaXYgW2VsZW1lbnRdPVwibW9kZWxcIiAqbmdJZj1cIm1vZGVsLmhhc1RpdGxlT25MZWZ0VG9wXCIgc3YtbmctZWxlbWVudC1oZWFkZXI+PC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwieyBuYW1lOiBnZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50TmFtZSgpLCBkYXRhOiBnZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50RGF0YSgpIH1cIj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NvbnRlbnRcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgW3Zpc2libGVdPVwibW9kZWwucmVuZGVyZWRJc0V4cGFuZGVkXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5zaG93RXJyb3JPblRvcCAmJiBtb2RlbC5oYXNWaXNpYmxlRXJyb3JzXCIgW2VsZW1lbnRdPVwibW9kZWxcIiBzdi1uZy1lcnJvcnM+PC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50XT1cInsgbmFtZTogZ2V0Q29tcG9uZW50TmFtZSgpLCBkYXRhOiB7IG1vZGVsOiBtb2RlbCB9LCBkZWZhdWx0OiAnc2tlbGV0b24tcXVlc3Rpb24nIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuaGFzQ29tbWVudFwiIFtjbGFzc109XCJtb2RlbC5nZXRDb21tZW50QXJlYUNzcyhmYWxzZSlcIj5cbiAgICAgICAgICA8ZGl2IFttb2RlbF09XCJtb2RlbC5sb2NDb21tZW50VGV4dFwiIHN2LW5nLXN0cmluZz48L2Rpdj5cbiAgICAgICAgICA8c3YtbmctY29tbWVudCBbcXVlc3Rpb25dPVwibW9kZWxcIj48L3N2LW5nLWNvbW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuc2hvd0Vycm9yT25Cb3R0b20gJiYgbW9kZWwuaGFzVmlzaWJsZUVycm9yc1wiIFtlbGVtZW50XT1cIm1vZGVsXCIgc3YtbmctZXJyb3JzPjwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuaGFzRGVzY3JpcHRpb25VbmRlcklucHV0XCIgW2NsYXNzXT1cIm1vZGVsLmNzc0Rlc2NyaXB0aW9uXCIgW2F0dHIuaWRdPVwibW9kZWwuYXJpYURlc2NyaXB0aW9uSWRcIiBbbW9kZWxdPVwibW9kZWwubG9jRGVzY3JpcHRpb25cIiBzdi1uZy1zdHJpbmc+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgW2VsZW1lbnRdPVwibW9kZWxcIiAqbmdJZj1cIm1vZGVsLmhhc1RpdGxlT25Cb3R0b21cIiBzdi1uZy1lbGVtZW50LWhlYWRlcj48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuc2hvd0Vycm9yc0JlbG93UXVlc3Rpb24gJiYgbW9kZWwuaGFzVmlzaWJsZUVycm9yc1wiIFtlbGVtZW50XT1cIm1vZGVsXCIgc3YtbmctZXJyb3JzPjwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19