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.3 kB
JavaScript
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\"\n [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [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\n [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\">\n <ng-template\n [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.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\"\n [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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uL3NyYy9xdWVzdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFNOUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0QjtJQUd2RCxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsZUFBZTs7UUFDYixJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxhQUFhLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBQ00sZ0JBQWdCLEtBQWEsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLHNDQUFzQztRQUMzQyxPQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ00sc0NBQXNDO1FBQzNDLE9BQU87WUFDTCxhQUFhLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEVBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFPLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUMxRTtTQUNGLENBQUM7SUFDSixDQUFDOzsrR0EzQlUsaUJBQWlCO21HQUFqQixpQkFBaUIscU5DVjlCLCt2REF3QmM7NEZEZEQsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSwyQkFBMkI7aUJBQ3pDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDeUIsTUFBTTtzQkFBcEMsU0FBUzt1QkFBQyxrQkFBa0I7O0FBNEIvQix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbmltcG9ydCB7IEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9lbWJlZGRlZC12aWV3LWNvbnRlbnQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBnZXRDb21wb25lbnROYW1lIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcXVlc3Rpb24uY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbCE6IFF1ZXN0aW9uO1xuICBAVmlld0NoaWxkKFwiZWxlbWVudENvbnRhaW5lclwiKSByb290RWw/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgcHJvdGVjdGVkIGdldE1vZGVsKCk6IFF1ZXN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCEhdGhpcy5yb290RWw/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMubW9kZWwuYWZ0ZXJSZW5kZXIodGhpcy5yb290RWw/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAoISF0aGlzLm1vZGVsKSB7XG4gICAgICB0aGlzLm1vZGVsLmRlc3Ryb3lSZXNpemVPYnNlcnZlcigpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0Q29tcG9uZW50TmFtZSgpOiBzdHJpbmcgeyByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZSh0aGlzLm1vZGVsKTsgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25Db250ZW50V3JhcHBlckNvbXBvbmVudE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKDxhbnk+dGhpcy5tb2RlbC5zdXJ2ZXkpLmdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnROYW1lKHRoaXMubW9kZWwpO1xuICB9XG4gIHB1YmxpYyBnZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50RGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjb21wb25lbnREYXRhOiB7XG4gICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgICBkYXRhOiAoPGFueT50aGlzLm1vZGVsLnN1cnZleSkuZ2V0RWxlbWVudFdyYXBwZXJDb21wb25lbnREYXRhKHRoaXMubW9kZWwpXG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInF1ZXN0aW9uXCIsIFF1ZXN0aW9uQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2ICpuZ0lmPVwiISFtb2RlbFwiICNlbGVtZW50Q29udGFpbmVyIFtjbGFzc109XCJtb2RlbC5nZXRSb290Q3NzKClcIiBbc3R5bGVdPVwibW9kZWwuZ2V0Um9vdFN0eWxlKClcIiBbaWRdPVwibW9kZWwuaWRcIlxuICAgIFthdHRyLmRhdGEtbmFtZV09XCJtb2RlbC5uYW1lXCIgW2F0dHIucm9sZV09XCJtb2RlbC5hcmlhUm9sZVwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwibW9kZWwuYXJpYVJlcXVpcmVkXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibW9kZWwuYXJpYUludmFsaWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIm1vZGVsLmFyaWFMYWJlbGxlZEJ5XCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtb2RlbC5hcmlhRGVzY3JpYmVkQnlcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwibW9kZWwuYXJpYUV4cGFuZGVkXCI+XG4gICAgPGRpdiAqbmdJZj1cIm1vZGVsLnNob3dFcnJvcnNBYm92ZVF1ZXN0aW9uICYmIG1vZGVsLmhhc1Zpc2libGVFcnJvcnNcIiBbZWxlbWVudF09XCJtb2RlbFwiIHN2LW5nLWVycm9ycz48L2Rpdj5cbiAgICA8ZGl2IFtlbGVtZW50XT1cIm1vZGVsXCIgKm5nSWY9XCJtb2RlbC5oYXNUaXRsZU9uTGVmdFRvcFwiIHN2LW5nLWVsZW1lbnQtaGVhZGVyPjwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnROYW1lKCksIGRhdGE6IGdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnREYXRhKCkgfVwiPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ29udGVudFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiBbdmlzaWJsZV09XCJtb2RlbC5yZW5kZXJlZElzRXhwYW5kZWRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGdldENvbXBvbmVudE5hbWUoKSwgZGF0YTogeyBtb2RlbDogbW9kZWwgfSwgZGVmYXVsdDogJ3NrZWxldG9uLXF1ZXN0aW9uJyB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGVsLmhhc0NvbW1lbnRcIiBbY2xhc3NdPVwibW9kZWwuZ2V0Q29tbWVudEFyZWFDc3MoZmFsc2UpXCI+XG4gICAgICAgICAgPGRpdiBbbW9kZWxdPVwibW9kZWwubG9jQ29tbWVudFRleHRcIiBzdi1uZy1zdHJpbmc+PC9kaXY+XG4gICAgICAgICAgPHN2LW5nLWNvbW1lbnQgW3F1ZXN0aW9uXT1cIm1vZGVsXCI+PC9zdi1uZy1jb21tZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGVsLmhhc0Rlc2NyaXB0aW9uVW5kZXJJbnB1dFwiIFtjbGFzc109XCJtb2RlbC5jc3NEZXNjcmlwdGlvblwiIFthdHRyLmlkXT1cIm1vZGVsLmFyaWFEZXNjcmlwdGlvbklkXCJcbiAgICAgICAgICBbbW9kZWxdPVwibW9kZWwubG9jRGVzY3JpcHRpb25cIiBzdi1uZy1zdHJpbmc+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgW2VsZW1lbnRdPVwibW9kZWxcIiAqbmdJZj1cIm1vZGVsLmhhc1RpdGxlT25Cb3R0b21cIiBzdi1uZy1lbGVtZW50LWhlYWRlcj48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuc2hvd0Vycm9yc0JlbG93UXVlc3Rpb24gJiYgbW9kZWwuaGFzVmlzaWJsZUVycm9yc1wiIFtlbGVtZW50XT1cIm1vZGVsXCIgc3YtbmctZXJyb3JzPjwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19