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.
49 lines • 8.65 kB
JavaScript
import { Component, Input } from "@angular/core";
import { BaseAngular } from "../base-angular";
import * as i0 from "@angular/core";
import * as i1 from "../survey-string.component";
import * as i2 from "./text.component";
import * as i3 from "../errors.component";
import * as i4 from "@angular/common";
export class MultipleTextItemComponent extends BaseAngular {
getModel() {
if (!this.model.isErrorsCell) {
return this.model.item.editor;
}
return null;
}
get item() {
return this.model.item;
}
get editor() {
return this.model.item.editor;
}
ngDoCheck() {
super.ngDoCheck();
if (this.model.isErrorsCell) {
this.editor.registerFunctionOnPropertyValueChanged("errors", () => {
this.update();
}, "__ngSubscription");
}
}
ngOnDestroy() {
super.ngOnDestroy();
if (this.model.isErrorsCell) {
this.editor.unRegisterFunctionOnPropertyValueChanged("errors", "__ngSubscription");
}
}
}
MultipleTextItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MultipleTextItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
MultipleTextItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MultipleTextItemComponent, selector: "'[sv-ng-multipletext-item]'", inputs: { question: "question", model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!model.isErrorsCell\">\n <label [class]=\"question.getItemLabelCss(item)\">\n <span [class]=\"question.getItemTitleCss()\" [style]=\"{ minWidth: question.itemTitleWidth, width: question.itemTitleWidth }\">\n <span *ngIf=\" item.editor.isRequireTextBeforeTitle || item.editor.isRequireTextOnStart\"\n [class]=\"question.cssClasses.requiredMark\">{{ item.editor.requiredMark }}</span>\n <span *ngIf=\"item.editor.isRequireTextBeforeTitle || item.editor.isRequireTextOnStart\"> </span>\n <sv-ng-string [model]=\"item.locTitle\"></sv-ng-string>\n <span *ngIf=\"item.editor.isRequireTextAfterTitle\"> </span>\n <span *ngIf=\"item.editor.isRequireTextAfterTitle\" [class]=\"question.cssClasses.requiredMark\" aria-hidden=\"true\">{{\n item.editor.requiredMark }}</span>\n </span>\n <div [class]=\"question.getItemCss()\" (focusin)=\"item.focusIn()\">\n <sv-ng-text-question [model]=\"item.editor\"></sv-ng-text-question>\n </div>\n </label>\n</ng-container>\n<ng-container *ngIf=\"model.isErrorsCell\">\n <div *ngIf=\"item.editor.hasVisibleErrors\" [element]=\"item.editor\" sv-ng-errors></div>\n</ng-container>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.TextQuestionComponent, selector: "sv-ng-text-question" }, { type: i3.ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MultipleTextItemComponent, decorators: [{
type: Component,
args: [{
selector: "'[sv-ng-multipletext-item]'",
templateUrl: "./mutlipletextitem.component.html"
}]
}], propDecorators: { question: [{
type: Input
}], model: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGV0ZXh0aXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlc3Rpb25zL211bHRpcGxldGV4dGl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL3F1ZXN0aW9ucy9tdXRsaXBsZXRleHRpdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBTTlDLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxXQUE4QjtJQUdqRSxRQUFRO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMvQjtRQUNELE9BQU8sSUFBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBQ1EsU0FBUztRQUNoQixLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRTtZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFDUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDcEY7SUFDSCxDQUFDOzt1SEE1QlUseUJBQXlCOzJHQUF6Qix5QkFBeUIsNElDUnRDLDhxQ0FrQmU7NEZEVkYseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFdBQVcsRUFBRSxtQ0FBbUM7aUJBQ2pEOzhCQUVVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXVsdGlwbGVUZXh0Q2VsbCwgTXVsdGlwbGVUZXh0SXRlbU1vZGVsLCBRdWVzdGlvbk11bHRpcGxlVGV4dE1vZGVsLCBRdWVzdGlvblRleHRNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VBbmd1bGFyIH0gZnJvbSBcIi4uL2Jhc2UtYW5ndWxhclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiJ1tzdi1uZy1tdWx0aXBsZXRleHQtaXRlbV0nXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vbXV0bGlwbGV0ZXh0aXRlbS5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpcGxlVGV4dEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxRdWVzdGlvblRleHRNb2RlbD4gaW1wbGVtZW50cyBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBxdWVzdGlvbiE6IFF1ZXN0aW9uTXVsdGlwbGVUZXh0TW9kZWw7XG4gIEBJbnB1dCgpIG1vZGVsITogTXVsdGlwbGVUZXh0Q2VsbDtcbiAgcHJvdGVjdGVkIGdldE1vZGVsKCk6IFF1ZXN0aW9uVGV4dE1vZGVsIHtcbiAgICBpZiAoIXRoaXMubW9kZWwuaXNFcnJvcnNDZWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5tb2RlbC5pdGVtLmVkaXRvcjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGwgYXMgYW55O1xuICB9XG4gIHB1YmxpYyBnZXQgaXRlbSgpOiBNdWx0aXBsZVRleHRJdGVtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLml0ZW07XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3IoKTogUXVlc3Rpb25UZXh0TW9kZWwge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLml0ZW0uZWRpdG9yO1xuICB9XG4gIG92ZXJyaWRlIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0RvQ2hlY2soKTtcbiAgICBpZiAodGhpcy5tb2RlbC5pc0Vycm9yc0NlbGwpIHtcbiAgICAgIHRoaXMuZWRpdG9yLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwiZXJyb3JzXCIsICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgIH0sIFwiX19uZ1N1YnNjcmlwdGlvblwiKTtcbiAgICB9XG4gIH1cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICBpZiAodGhpcy5tb2RlbC5pc0Vycm9yc0NlbGwpIHtcbiAgICAgIHRoaXMuZWRpdG9yLnVuUmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXCJlcnJvcnNcIiwgXCJfX25nU3Vic2NyaXB0aW9uXCIpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2RlbC5pc0Vycm9yc0NlbGxcIj5cbiAgPGxhYmVsIFtjbGFzc109XCJxdWVzdGlvbi5nZXRJdGVtTGFiZWxDc3MoaXRlbSlcIj5cbiAgICA8c3BhbiBbY2xhc3NdPVwicXVlc3Rpb24uZ2V0SXRlbVRpdGxlQ3NzKClcIiBbc3R5bGVdPVwieyBtaW5XaWR0aDogcXVlc3Rpb24uaXRlbVRpdGxlV2lkdGgsIHdpZHRoOiBxdWVzdGlvbi5pdGVtVGl0bGVXaWR0aCB9XCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiBpdGVtLmVkaXRvci5pc1JlcXVpcmVUZXh0QmVmb3JlVGl0bGUgfHwgaXRlbS5lZGl0b3IuaXNSZXF1aXJlVGV4dE9uU3RhcnRcIlxuICAgICAgICBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5yZXF1aXJlZE1hcmtcIj57eyBpdGVtLmVkaXRvci5yZXF1aXJlZE1hcmsgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uZWRpdG9yLmlzUmVxdWlyZVRleHRCZWZvcmVUaXRsZSB8fCBpdGVtLmVkaXRvci5pc1JlcXVpcmVUZXh0T25TdGFydFwiPiZuYnNwOzwvc3Bhbj5cbiAgICAgIDxzdi1uZy1zdHJpbmcgW21vZGVsXT1cIml0ZW0ubG9jVGl0bGVcIj48L3N2LW5nLXN0cmluZz5cbiAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5lZGl0b3IuaXNSZXF1aXJlVGV4dEFmdGVyVGl0bGVcIj4mbmJzcDs8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uZWRpdG9yLmlzUmVxdWlyZVRleHRBZnRlclRpdGxlXCIgW2NsYXNzXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMucmVxdWlyZWRNYXJrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3tcbiAgICAgICAgaXRlbS5lZGl0b3IucmVxdWlyZWRNYXJrIH19PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2IFtjbGFzc109XCJxdWVzdGlvbi5nZXRJdGVtQ3NzKClcIiAoZm9jdXNpbik9XCJpdGVtLmZvY3VzSW4oKVwiPlxuICAgICAgPHN2LW5nLXRleHQtcXVlc3Rpb24gW21vZGVsXT1cIml0ZW0uZWRpdG9yXCI+PC9zdi1uZy10ZXh0LXF1ZXN0aW9uPlxuICAgIDwvZGl2PlxuICA8L2xhYmVsPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwuaXNFcnJvcnNDZWxsXCI+XG4gIDxkaXYgKm5nSWY9XCJpdGVtLmVkaXRvci5oYXNWaXNpYmxlRXJyb3JzXCIgW2VsZW1lbnRdPVwiaXRlbS5lZGl0b3JcIiBzdi1uZy1lcnJvcnM+PC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=