survey-creator-angular
Version:
A white-label drag-and-drop form builder for Angular that lets you design complex, interactive forms and surveys without writing code. It generates JSON schemas used by the SurveyJS Form Library to render dynamic forms in your Angular app.
40 lines • 8.71 kB
JavaScript
import { Component, Input } from "@angular/core";
import { cssVariablesToString } from "survey-creator-core";
import { BaseAngular } from "survey-angular-ui";
import * as i0 from "@angular/core";
import * as i1 from "survey-angular-ui";
import * as i2 from "../../page-wrapper.component";
import * as i3 from "./designer-pages.component";
import * as i4 from "../../page-navigator/page-navigator.component";
import * as i5 from "@angular/common";
export class DesignerSurveyComponent extends BaseAngular {
getModel() {
return this.model.survey;
}
get creator() {
return this.model.creator;
}
get survey() {
return this.creator.survey;
}
trackPageBy(index, page) {
return page.id;
}
get surfaceCssVariablesString() {
const styles = Object.assign(Object.assign({}, this.model.surfaceCssVariables), { ["max-width"]: this.survey.renderedWidth || "" });
return cssVariablesToString(styles);
}
}
DesignerSurveyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DesignerSurveyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
DesignerSurveyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DesignerSurveyComponent, selector: "svc-designer-survey", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.designerCss\" [attr.style]=\"surfaceCssVariablesString\">\n <div *ngIf=\"creator.showSurveyHeader\" class=\"svc-designer-header\">\n <div *ngIf=\"survey.renderedHasHeader\" [class]=\"survey.css.header\" [survey]=\"survey\" sv-ng-survey-header></div>\n </div>\n\n <ng-container *ngIf=\"creator.pageEditMode !== 'bypage'\">\n <ng-container *ngFor=\"let page of model.pages; trackBy: trackPageBy \">\n <svc-page-wrapper [page]=\"page\" [creator]=\"creator\" [isGhost]=\"model.newPage == page\" [className]=\"'svc-page'\"></svc-page-wrapper>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"model.pagesController.page2Display && creator.pageEditMode === 'bypage'\">\n <svc-designer-pages [model]=\"model\"></svc-designer-pages>\n </ng-container>\n\n </div>\n\n <div *ngIf=\"model.showSurfaceTools\" class=\"svc-tab-designer__tools\">\n <div *ngIf=\"creator.showPageNavigator\" class=\"svc-tab-designer__page-navigator\">\n <svc-page-navigator [pagesController]=\"model.pagesController\" [pageEditMode]=\"creator.pageEditMode\">\n </svc-page-navigator>\n </div>\n <div *ngIf=\"model.showSurfaceToolbar\" class=\"svc-tab-designer__toolbar\">\n <sv-action-bar [model]=\"model.surfaceToolbar\"></sv-action-bar>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SurveyHeaderComponent, selector: "'[sv-ng-survey-header]'", inputs: ["survey"] }, { type: i2.PageWrapperComponent, selector: "svc-page-wrapper", inputs: ["page", "isGhost", "creator", "className"] }, { type: i3.DesignerPagesComponent, selector: "svc-designer-pages", inputs: ["model"] }, { type: i4.PageNavigatorComponent, selector: "svc-page-navigator", inputs: ["pagesController", "pageEditMode"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DesignerSurveyComponent, decorators: [{
type: Component,
args: [{
selector: "svc-designer-survey",
templateUrl: "./designer-survey.component.html",
styles: [":host { display: none; }"]
}]
}], propDecorators: { model: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItc3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL2Rlc2lnbmVyL2Rlc2lnbmVyLXN1cnZleS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdGFicy9kZXNpZ25lci9kZXNpZ25lci1zdXJ2ZXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUF3QixvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQU9oRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBd0I7SUFFekQsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBQ00sV0FBVyxDQUFDLEtBQWEsRUFBRSxJQUFlO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBVyx5QkFBeUI7UUFDbEMsTUFBTSxNQUFNLG1DQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEtBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLEdBQUUsQ0FBQztRQUNyRyxPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O3FIQWpCVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qiw4R0NWcEMsNDFDQTBCYzs0RkRoQkQsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUNyQzs4QkFFVSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFBhZ2VNb2RlbCwgU3VydmV5TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IFRhYkRlc2lnbmVyVmlld01vZGVsLCBjc3NWYXJpYWJsZXNUb1N0cmluZyB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3ZjLWRlc2lnbmVyLXN1cnZleVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Rlc2lnbmVyLXN1cnZleS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZTsgfVwiXVxufSlcbmV4cG9ydCBjbGFzcyBEZXNpZ25lclN1cnZleUNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFN1cnZleU1vZGVsPiB7XG4gIEBJbnB1dCgpIG1vZGVsITogVGFiRGVzaWduZXJWaWV3TW9kZWw7XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBTdXJ2ZXlNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuc3VydmV5O1xuICB9XG4gIHB1YmxpYyBnZXQgY3JlYXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbC5jcmVhdG9yO1xuICB9XG4gIHB1YmxpYyBnZXQgc3VydmV5KCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0b3Iuc3VydmV5O1xuICB9XG4gIHB1YmxpYyB0cmFja1BhZ2VCeShpbmRleDogbnVtYmVyLCBwYWdlOiBQYWdlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYWdlLmlkO1xuICB9XG4gIHB1YmxpYyBnZXQgc3VyZmFjZUNzc1ZhcmlhYmxlc1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0eWxlcyA9IHsgLi4udGhpcy5tb2RlbC5zdXJmYWNlQ3NzVmFyaWFibGVzLCBbXCJtYXgtd2lkdGhcIl06IHRoaXMuc3VydmV5LnJlbmRlcmVkV2lkdGggfHwgXCJcIiB9O1xuICAgIHJldHVybiBjc3NWYXJpYWJsZXNUb1N0cmluZyhzdHlsZXMpO1xuICB9XG59IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBbY2xhc3NdPVwibW9kZWwuZGVzaWduZXJDc3NcIiBbYXR0ci5zdHlsZV09XCJzdXJmYWNlQ3NzVmFyaWFibGVzU3RyaW5nXCI+XG4gICAgPGRpdiAqbmdJZj1cImNyZWF0b3Iuc2hvd1N1cnZleUhlYWRlclwiIGNsYXNzPVwic3ZjLWRlc2lnbmVyLWhlYWRlclwiPlxuICAgICAgPGRpdiAqbmdJZj1cInN1cnZleS5yZW5kZXJlZEhhc0hlYWRlclwiIFtjbGFzc109XCJzdXJ2ZXkuY3NzLmhlYWRlclwiIFtzdXJ2ZXldPVwic3VydmV5XCIgc3Ytbmctc3VydmV5LWhlYWRlcj48L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcmVhdG9yLnBhZ2VFZGl0TW9kZSAhPT0gJ2J5cGFnZSdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgbW9kZWwucGFnZXM7IHRyYWNrQnk6IHRyYWNrUGFnZUJ5IFwiPlxuICAgICAgICA8c3ZjLXBhZ2Utd3JhcHBlciBbcGFnZV09XCJwYWdlXCIgW2NyZWF0b3JdPVwiY3JlYXRvclwiIFtpc0dob3N0XT1cIm1vZGVsLm5ld1BhZ2UgPT0gcGFnZVwiIFtjbGFzc05hbWVdPVwiJ3N2Yy1wYWdlJ1wiPjwvc3ZjLXBhZ2Utd3JhcHBlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5wYWdlc0NvbnRyb2xsZXIucGFnZTJEaXNwbGF5ICYmIGNyZWF0b3IucGFnZUVkaXRNb2RlID09PSAnYnlwYWdlJ1wiPlxuICAgICAgPHN2Yy1kZXNpZ25lci1wYWdlcyBbbW9kZWxdPVwibW9kZWxcIj48L3N2Yy1kZXNpZ25lci1wYWdlcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwibW9kZWwuc2hvd1N1cmZhY2VUb29sc1wiIGNsYXNzPVwic3ZjLXRhYi1kZXNpZ25lcl9fdG9vbHNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY3JlYXRvci5zaG93UGFnZU5hdmlnYXRvclwiIGNsYXNzPVwic3ZjLXRhYi1kZXNpZ25lcl9fcGFnZS1uYXZpZ2F0b3JcIj5cbiAgICAgIDxzdmMtcGFnZS1uYXZpZ2F0b3IgW3BhZ2VzQ29udHJvbGxlcl09XCJtb2RlbC5wYWdlc0NvbnRyb2xsZXJcIiBbcGFnZUVkaXRNb2RlXT1cImNyZWF0b3IucGFnZUVkaXRNb2RlXCI+XG4gICAgICA8L3N2Yy1wYWdlLW5hdmlnYXRvcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuc2hvd1N1cmZhY2VUb29sYmFyXCIgY2xhc3M9XCJzdmMtdGFiLWRlc2lnbmVyX190b29sYmFyXCI+XG4gICAgICA8c3YtYWN0aW9uLWJhciBbbW9kZWxdPVwibW9kZWwuc3VyZmFjZVRvb2xiYXJcIj48L3N2LWFjdGlvbi1iYXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=