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.
74 lines • 10 kB
JavaScript
import { Component, ElementRef, Input, ViewChild } from "@angular/core";
import { BaseAngular } from "./base-angular";
import * as i0 from "@angular/core";
import * as i1 from "./element.component";
import * as i2 from "@angular/common";
import * as i3 from "./utils/dynamic.directive";
export class RowComponent extends BaseAngular {
constructor(cdr, vcr, ngZone) {
super(cdr, vcr);
this.ngZone = ngZone;
}
getModel() {
return this.row;
}
trackElementBy(index, element) {
return element.name + index;
}
ngAfterViewInit() {
var _a;
const el = (_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement;
if (!!el) {
this.row.setRootElement(el);
if (!this.row.isNeedRender) {
this.ngZone.runOutsideAngular(() => {
setTimeout(() => {
this.row.startLazyRendering(el);
}, 10);
});
}
}
}
onModelChanged() {
var _a;
super.onModelChanged();
if (!this.previousModel) {
return;
}
else {
this.previousModel.setRootElement(undefined);
if ((_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement) {
this.row.setRootElement(this.container.nativeElement);
}
this.row.isNeedRender = this.previousModel.isNeedRender;
this.stopLazyRendering();
}
}
stopLazyRendering() {
this.row.stopLazyRendering();
this.row.isNeedRender = !this.row.isLazyRendering();
}
ngOnDestroy() {
super.ngOnDestroy();
if (!this.isBaseElementSubsribed(this.row)) {
this.row.setRootElement(undefined);
this.stopLazyRendering();
}
}
}
RowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RowComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RowComponent, selector: "sv-ng-row", inputs: { row: "row" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"row.getRowCss()\" #container>\n <ng-container *ngFor=\"let element of row.visibleElements; trackBy: trackElementBy\">\n <sv-ng-element [model]=\"$any(element)\" *ngIf=\"row.isNeedRender\"></sv-ng-element>\n <ng-template *ngIf=\"!row.isNeedRender && element.skeletonComponentName\" [component]=\"{ name: element.skeletonComponentName, data: { element: element } }\"></ng-template>\n </ng-container>\n </div>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: i1.ElementComponent, selector: "sv-ng-element", inputs: ["model"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RowComponent, decorators: [{
type: Component,
args: [{
selector: "sv-ng-row",
templateUrl: "./row.component.html",
styleUrls: ["./hide-host.scss"]
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }]; }, propDecorators: { row: [{
type: Input
}], container: [{
type: ViewChild,
args: ["container", { read: ElementRef }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vc3JjL3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFcEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU03QyxNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQTZCO0lBRzdELFlBQVksR0FBc0IsRUFBRSxHQUFxQixFQUFVLE1BQWM7UUFDL0UsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQURpRCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWpGLENBQUM7SUFFUyxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBQ0QsY0FBYyxDQUFFLEtBQWEsRUFBRSxPQUFpQjtRQUM5QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDTSxlQUFlOztRQUNwQixNQUFNLEVBQUUsR0FBRyxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO29CQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2xDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDVCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBQ2tCLGNBQWM7O1FBQy9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdDLElBQUksTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxhQUFhLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDdkQ7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztZQUN4RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFDTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBQ2UsV0FBVztRQUN6QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzswR0FqRFUsWUFBWTs4RkFBWixZQUFZLDRKQUVTLFVBQVUsb0RDVjVDLG1lQU9jOzRGRENELFlBQVk7a0JBTHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFdBQVcsRUFBRSxzQkFBc0I7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNoQzs0SkFFVSxHQUFHO3NCQUFYLEtBQUs7Z0JBQ3dDLFNBQVM7c0JBQXRELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJRWxlbWVudCwgUXVlc3Rpb25Sb3dNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQmFzZUFuZ3VsYXIgfSBmcm9tIFwiLi9iYXNlLWFuZ3VsYXJcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1yb3dcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9yb3cuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2hpZGUtaG9zdC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFJvd0NvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFF1ZXN0aW9uUm93TW9kZWw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHJvdyE6IFF1ZXN0aW9uUm93TW9kZWw7XG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNvbnRhaW5lcj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCB2Y3I6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcbiAgICBzdXBlcihjZHIsIHZjcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogUXVlc3Rpb25Sb3dNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMucm93O1xuICB9XG4gIHRyYWNrRWxlbWVudEJ5IChpbmRleDogbnVtYmVyLCBlbGVtZW50OiBJRWxlbWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVsZW1lbnQubmFtZSArIGluZGV4O1xuICB9XG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoISFlbCkge1xuICAgICAgdGhpcy5yb3cuc2V0Um9vdEVsZW1lbnQoZWwpO1xuICAgICAgaWYgKCF0aGlzLnJvdy5pc05lZWRSZW5kZXIpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yb3cuc3RhcnRMYXp5UmVuZGVyaW5nKGVsKTtcbiAgICAgICAgICB9LCAxMCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Nb2RlbENoYW5nZWQoKTogdm9pZCB7XG4gICAgc3VwZXIub25Nb2RlbENoYW5nZWQoKTtcbiAgICBpZiAoIXRoaXMucHJldmlvdXNNb2RlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByZXZpb3VzTW9kZWwuc2V0Um9vdEVsZW1lbnQodW5kZWZpbmVkKTtcbiAgICAgIGlmICh0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJvdy5zZXRSb290RWxlbWVudCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICAgIHRoaXMucm93LmlzTmVlZFJlbmRlciA9IHRoaXMucHJldmlvdXNNb2RlbC5pc05lZWRSZW5kZXI7XG4gICAgICB0aGlzLnN0b3BMYXp5UmVuZGVyaW5nKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc3RvcExhenlSZW5kZXJpbmcoKSB7XG4gICAgdGhpcy5yb3cuc3RvcExhenlSZW5kZXJpbmcoKTtcbiAgICB0aGlzLnJvdy5pc05lZWRSZW5kZXIgPSAhdGhpcy5yb3cuaXNMYXp5UmVuZGVyaW5nKCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgaWYgKCF0aGlzLmlzQmFzZUVsZW1lbnRTdWJzcmliZWQodGhpcy5yb3cpKSB7XG4gICAgICB0aGlzLnJvdy5zZXRSb290RWxlbWVudCh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5zdG9wTGF6eVJlbmRlcmluZygpO1xuICAgIH1cbiAgfVxufSIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgW2NsYXNzXT1cInJvdy5nZXRSb3dDc3MoKVwiICNjb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiByb3cudmlzaWJsZUVsZW1lbnRzOyB0cmFja0J5OiB0cmFja0VsZW1lbnRCeVwiPlxuICAgICAgPHN2LW5nLWVsZW1lbnQgW21vZGVsXT1cIiRhbnkoZWxlbWVudClcIiAqbmdJZj1cInJvdy5pc05lZWRSZW5kZXJcIj48L3N2LW5nLWVsZW1lbnQ+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCIhcm93LmlzTmVlZFJlbmRlciAmJiBlbGVtZW50LnNrZWxldG9uQ29tcG9uZW50TmFtZVwiIFtjb21wb25lbnRdPVwieyBuYW1lOiBlbGVtZW50LnNrZWxldG9uQ29tcG9uZW50TmFtZSwgZGF0YTogeyBlbGVtZW50OiBlbGVtZW50IH0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=