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.
50 lines • 7.65 kB
JavaScript
import { Component, Input, ViewChild } from "@angular/core";
import { AngularComponentFactory } from "../../component-factory";
import { BaseAngular } from "../../base-angular";
import * as i0 from "@angular/core";
import * as i1 from "./header-cell.component";
import * as i2 from "./header-mobile.component";
import * as i3 from "@angular/common";
export class HeaderComponent extends BaseAngular {
constructor() {
super(...arguments);
this.shouldProcessResponsiveness = false;
}
getModel() {
this.model.survey = this.survey;
return this.model;
}
onModelChanged() {
super.onModelChanged();
this.shouldProcessResponsiveness = true;
}
ngAfterViewInit() {
this.shouldProcessResponsiveness = true;
}
ngAfterViewChecked() {
super.ngAfterViewChecked();
if (this.shouldProcessResponsiveness) {
this.model.processResponsiveness();
this.shouldProcessResponsiveness = false;
}
}
}
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HeaderComponent, selector: "sv-header, sv-ng-header", inputs: { model: "model", survey: "survey" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"(survey.headerView === 'advanced') && !model.isEmpty\" [class]=\"model.headerClasses\" [style]=\"{ height: model.renderedHeight }\">\n <div *ngIf=\"!!model.backgroundImage\" [style]=\"model.backgroundImageStyle\" [class]=\"model.backgroundImageClasses\"></div>\n <div *ngIf=\"!survey.isMobile\" [class]=\"model.contentClasses\" [style.maxWidth]=\"model.maxWidth\">\n <ng-container *ngFor=\"let cell of model.cells\">\n <sv-ng-header-cell [model]=\"cell\"></sv-ng-header-cell>\n </ng-container>\n </div>\n <div *ngIf=\"survey.isMobile\">\n <sv-ng-header-mobile [model]=\"model\"></sv-ng-header-mobile>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none }"], components: [{ type: i1.HeaderCellComponent, selector: "sv-ng-header-cell", inputs: ["model"] }, { type: i2.HeaderMobileComponent, selector: "sv-ng-header-mobile", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HeaderComponent, decorators: [{
type: Component,
args: [{
selector: "sv-header, sv-ng-header",
templateUrl: "./header.component.html",
styles: [":host { display: none }"]
}]
}], propDecorators: { model: [{
type: Input
}], survey: [{
type: Input
}], container: [{
type: ViewChild,
args: ["container"]
}] } });
AngularComponentFactory.Instance.registerComponent("sv-header", HeaderComponent);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVFqRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFrQjtJQUx2RDs7UUFhVSxnQ0FBMkIsR0FBWSxLQUFLLENBQUM7S0FldEQ7SUFuQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFa0IsY0FBYztRQUMvQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBQ0QsZUFBZTtRQUNiLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUNRLGtCQUFrQjtRQUN6QixLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQztTQUMxQztJQUNILENBQUM7OzZHQXRCVSxlQUFlO2lHQUFmLGVBQWUsNE9DVjVCLDBzQkFZYzs0RkRGRCxlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLE1BQU0sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNwQzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7O0FBc0J4Qix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudC1mYWN0b3J5XCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCIuLi8uLi9iYXNlLWFuZ3VsYXJcIjtcbmltcG9ydCB7IENvdmVyLCBDb3ZlckNlbGwsIFN1cnZleU1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1oZWFkZXIsIHN2LW5nLWhlYWRlclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2hlYWRlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZSB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPENvdmVyPiB7XG4gIEBJbnB1dCgpIG1vZGVsITogQ292ZXI7XG4gIEBJbnB1dCgpIHN1cnZleSE6IFN1cnZleU1vZGVsO1xuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBnZXRNb2RlbCgpOiBDb3ZlciB7XG4gICAgdGhpcy5tb2RlbC5zdXJ2ZXkgPSB0aGlzLnN1cnZleTtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwcml2YXRlIHNob3VsZFByb2Nlc3NSZXNwb25zaXZlbmVzczogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Nb2RlbENoYW5nZWQoKTogdm9pZCB7XG4gICAgc3VwZXIub25Nb2RlbENoYW5nZWQoKTtcbiAgICB0aGlzLnNob3VsZFByb2Nlc3NSZXNwb25zaXZlbmVzcyA9IHRydWU7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2hvdWxkUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzID0gdHJ1ZTtcbiAgfVxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdDaGVja2VkKCk7XG4gICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzKSB7XG4gICAgICB0aGlzLm1vZGVsLnByb2Nlc3NSZXNwb25zaXZlbmVzcygpO1xuICAgICAgdGhpcy5zaG91bGRQcm9jZXNzUmVzcG9uc2l2ZW5lc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdi1oZWFkZXJcIiwgSGVhZGVyQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2ICpuZ0lmPVwiKHN1cnZleS5oZWFkZXJWaWV3ID09PSAnYWR2YW5jZWQnKSAmJiAhbW9kZWwuaXNFbXB0eVwiIFtjbGFzc109XCJtb2RlbC5oZWFkZXJDbGFzc2VzXCIgW3N0eWxlXT1cInsgaGVpZ2h0OiBtb2RlbC5yZW5kZXJlZEhlaWdodCB9XCI+XG4gICAgPGRpdiAqbmdJZj1cIiEhbW9kZWwuYmFja2dyb3VuZEltYWdlXCIgW3N0eWxlXT1cIm1vZGVsLmJhY2tncm91bmRJbWFnZVN0eWxlXCIgW2NsYXNzXT1cIm1vZGVsLmJhY2tncm91bmRJbWFnZUNsYXNzZXNcIj48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIXN1cnZleS5pc01vYmlsZVwiIFtjbGFzc109XCJtb2RlbC5jb250ZW50Q2xhc3Nlc1wiIFtzdHlsZS5tYXhXaWR0aF09XCJtb2RlbC5tYXhXaWR0aFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2VsbCBvZiBtb2RlbC5jZWxsc1wiPlxuICAgICAgICA8c3YtbmctaGVhZGVyLWNlbGwgW21vZGVsXT1cImNlbGxcIj48L3N2LW5nLWhlYWRlci1jZWxsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInN1cnZleS5pc01vYmlsZVwiPlxuICAgICAgPHN2LW5nLWhlYWRlci1tb2JpbGUgW21vZGVsXT1cIm1vZGVsXCI+PC9zdi1uZy1oZWFkZXItbW9iaWxlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19