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.
67 lines • 12 kB
JavaScript
import { Component, ElementRef, Input, ViewChild } from "@angular/core";
import { BaseAngular } from "../base-angular";
import { AngularComponentFactory } from "../component-factory";
import * as i0 from "@angular/core";
import * as i1 from "./checkbox-item.component";
import * as i2 from "./radiogroup-item.component";
import * as i3 from "../survey-string.component";
import * as i4 from "../comment-choice.component";
import * as i5 from "@angular/common";
export class SelectBaseItemComponent extends BaseAngular {
constructor() {
super(...arguments);
this.showLabel = true;
}
getModel() {
return this.model;
}
onModelChanged() {
var _a;
super.onModelChanged();
if (!this.question.isDesignMode) {
if (this.previousModel) {
this.previousModel.setRootElement(undefined);
}
if (this.model && ((_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
this.model.setRootElement(this.container.nativeElement);
}
}
}
ngAfterViewInit() {
var _a;
if (this.model && ((_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement) && !this.question.isDesignMode) {
this.model.setRootElement(this.container.nativeElement);
}
}
ngOnDestroy() {
super.ngOnDestroy();
if (this.model && !this.question.isDesignMode) {
this.model.setRootElement(undefined);
}
}
}
SelectBaseItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SelectBaseItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
SelectBaseItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SelectBaseItemComponent, selector: "['sv-ng-selectbase-item'], sv-ng-selebase-item", inputs: { question: "question", model: "model", inputType: "inputType", showLabel: "showLabel", ariaLabel: "ariaLabel" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div role=\"presentation\" [class]=\"question.getItemClass(model)\" #container>\n <ng-container [ngSwitch]=\"inputType\">\n <label *ngSwitchCase=\"'checkbox'\" [class]=\"question.getLabelClass(model)\" [model]=\"model\" [question]=\"question\"\n sv-ng-checkbox-item [ariaLabel]=\"ariaLabel\">\n <ng-container *ngTemplateOutlet=\"itemDecorator\"></ng-container>\n </label>\n <label *ngSwitchCase=\"'radio'\" (mousedown)=\"question.onMouseDown()\" [class]=\"question.getLabelClass(model)\"\n [model]=\"model\" [question]=\"question\" sv-ng-radiogroup-item [ariaLabel]=\"ariaLabel\">\n <ng-container *ngTemplateOutlet=\"itemDecorator\"></ng-container>\n </label>\n </ng-container>\n <ng-template #itemDecorator>\n <span *ngIf=\"question.cssClasses.materialDecorator\" [class]=\"question.cssClasses.materialDecorator\">\n <svg *ngIf=\"question.itemSvgIcon\" [class]=\"question.cssClasses.itemDecorator\">\n <use [attr.xlink:href]=\"question.itemSvgIcon\"></use>\n </svg>\n </span>\n <span [class]=\"question.getControlLabelClass(model)\" *ngIf=\"!model.hideCaption\">\n <sv-ng-string [model]=\"model.locText\"></sv-ng-string>\n </span>\n </ng-template>\n </div>\n <div *ngIf=\"model.isCommentShowing\" [class]=\"question.getCommentAreaCss(true)\" [question]=\"question\" [item]=\"model\" sv-ng-comment-choice></div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.CheckboxItemComponent, selector: "sv-ng-checkbox-item, '[sv-ng-checkbox-item]'", inputs: ["question", "model", "ariaLabel"] }, { type: i2.RadiogroupItemComponent, selector: "sv-ng-radiogroup-item, '[sv-ng-radiogroup-item]'", inputs: ["question", "model", "ariaLabel"] }, { type: i3.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i4.SurveyCommentChoiceComponent, selector: "sv-ng-comment-choice, '[sv-ng-comment-choice]'", inputs: ["question", "item"] }], directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SelectBaseItemComponent, decorators: [{
type: Component,
args: [{
selector: "['sv-ng-selectbase-item'], sv-ng-selebase-item",
templateUrl: "./selectbase-item.html",
styles: [":host { display: none; }"]
}]
}], propDecorators: { question: [{
type: Input
}], model: [{
type: Input
}], inputType: [{
type: Input
}], showLabel: [{
type: Input
}], ariaLabel: [{
type: Input
}], container: [{
type: ViewChild,
args: ["container", { read: ElementRef }]
}] } });
AngularComponentFactory.Instance.registerComponent("sv-ng-selectbase-item", SelectBaseItemComponent);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YmFzZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXN0aW9ucy9zZWxlY3RiYXNlLWl0ZW0udHMiLCIuLi8uLi8uLi9zcmMvcXVlc3Rpb25zL3NlbGVjdGJhc2UtaXRlbS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU8vRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBc0I7SUFMbkU7O1FBVVcsY0FBUyxHQUFZLElBQUksQ0FBQztLQTRCcEM7SUF6QlcsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNrQixjQUFjOztRQUMvQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBZ0IsQ0FBQyxDQUFDO2FBQ3JEO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFJLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsYUFBYSxDQUFBLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDekQ7U0FDRjtJQUNILENBQUM7SUFDRCxlQUFlOztRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGFBQWEsQ0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7WUFDOUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFDUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7O3FIQWhDVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixtU0FPRixVQUFVLG9EQ2pCNUMsNDdDQXdCYzs0RkRkRCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdEQUFnRDtvQkFDMUQsV0FBVyxFQUFFLHdCQUF3QjtvQkFDckMsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUN3QyxTQUFTO3NCQUF0RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O0FBNEI5Qyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCIuLi9iYXNlLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIlsnc3Ytbmctc2VsZWN0YmFzZS1pdGVtJ10sIHN2LW5nLXNlbGViYXNlLWl0ZW1cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWxlY3RiYXNlLWl0ZW0uaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZTsgfVwiXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RCYXNlSXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPEl0ZW1WYWx1ZT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBxdWVzdGlvbiE6IGFueTtcbiAgQElucHV0KCkgbW9kZWwhOiBJdGVtVmFsdWUgfCBhbnk7XG4gIEBJbnB1dCgpIGlucHV0VHlwZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nO1xuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgcHJvdGVjdGVkIGdldE1vZGVsKCk6IEl0ZW1WYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uTW9kZWxDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHN1cGVyLm9uTW9kZWxDaGFuZ2VkKCk7XG4gICAgaWYgKCF0aGlzLnF1ZXN0aW9uLmlzRGVzaWduTW9kZSkge1xuICAgICAgaWYgKHRoaXMucHJldmlvdXNNb2RlbCkge1xuICAgICAgICB0aGlzLnByZXZpb3VzTW9kZWwuc2V0Um9vdEVsZW1lbnQodW5kZWZpbmVkIGFzIGFueSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tb2RlbCAmJiB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLm1vZGVsLnNldFJvb3RFbGVtZW50KHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kZWwgJiYgdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQgJiYgIXRoaXMucXVlc3Rpb24uaXNEZXNpZ25Nb2RlKSB7XG4gICAgICB0aGlzLm1vZGVsLnNldFJvb3RFbGVtZW50KHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIGlmICh0aGlzLm1vZGVsICYmICF0aGlzLnF1ZXN0aW9uLmlzRGVzaWduTW9kZSkge1xuICAgICAgdGhpcy5tb2RlbC5zZXRSb290RWxlbWVudCh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2LW5nLXNlbGVjdGJhc2UtaXRlbVwiLCBTZWxlY3RCYXNlSXRlbUNvbXBvbmVudCk7IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiByb2xlPVwicHJlc2VudGF0aW9uXCIgW2NsYXNzXT1cInF1ZXN0aW9uLmdldEl0ZW1DbGFzcyhtb2RlbClcIiAjY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImlucHV0VHlwZVwiPlxuICAgICAgPGxhYmVsICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCIgW2NsYXNzXT1cInF1ZXN0aW9uLmdldExhYmVsQ2xhc3MobW9kZWwpXCIgW21vZGVsXT1cIm1vZGVsXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcbiAgICAgICAgc3YtbmctY2hlY2tib3gtaXRlbSBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbURlY29yYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxsYWJlbCAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiIChtb3VzZWRvd24pPVwicXVlc3Rpb24ub25Nb3VzZURvd24oKVwiIFtjbGFzc109XCJxdWVzdGlvbi5nZXRMYWJlbENsYXNzKG1vZGVsKVwiXG4gICAgICAgIFttb2RlbF09XCJtb2RlbFwiIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiIHN2LW5nLXJhZGlvZ3JvdXAtaXRlbSBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbURlY29yYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2l0ZW1EZWNvcmF0b3I+XG4gICAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uLmNzc0NsYXNzZXMubWF0ZXJpYWxEZWNvcmF0b3JcIiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5tYXRlcmlhbERlY29yYXRvclwiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwicXVlc3Rpb24uaXRlbVN2Z0ljb25cIiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtRGVjb3JhdG9yXCI+XG4gICAgICAgICAgPHVzZSBbYXR0ci54bGluazpocmVmXT1cInF1ZXN0aW9uLml0ZW1TdmdJY29uXCI+PC91c2U+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gW2NsYXNzXT1cInF1ZXN0aW9uLmdldENvbnRyb2xMYWJlbENsYXNzKG1vZGVsKVwiICpuZ0lmPVwiIW1vZGVsLmhpZGVDYXB0aW9uXCI+XG4gICAgICAgIDxzdi1uZy1zdHJpbmcgW21vZGVsXT1cIm1vZGVsLmxvY1RleHRcIj48L3N2LW5nLXN0cmluZz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIm1vZGVsLmlzQ29tbWVudFNob3dpbmdcIiBbY2xhc3NdPVwicXVlc3Rpb24uZ2V0Q29tbWVudEFyZWFDc3ModHJ1ZSlcIiBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIiBbaXRlbV09XCJtb2RlbFwiIHN2LW5nLWNvbW1lbnQtY2hvaWNlPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=