UNPKG

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.

58 lines 9.97 kB
import { Component, Input } from "@angular/core"; import { BaseAngular } from "survey-angular-ui"; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "survey-angular-ui"; export class SimulatorComponent extends BaseAngular { constructor(changeDetectorRef, viewContainerRef) { super(changeDetectorRef, viewContainerRef); } /** * `BaseAngular` defers updates while `model.isRendering` is true during `ngDoCheck`, so * `popupOverlayHeight` (and frame-driving props) would not refresh the embedded template in time. * These properties must run synchronous `detectChanges` so `[style.--sv-popup-overlay-height]` applies. */ getPropertiesToUpdateSync() { return ["popupOverlayHeight", "landscape", "device", "survey"]; } ngAfterViewInit() { this.model.queueSurveyLayoutRefresh(); } ngOnDestroy() { this.model.cancelSurveyLayoutRefresh(); super.ngOnDestroy(); } afterUpdate(isSync = false) { super.afterUpdate(isSync); this.model.queueSurveyLayoutRefresh(); } getModel() { return this.model; } get simulatorFrame() { return this.model.simulatorFrame; } activateZoom() { if (this.model.device !== "desktop") { this.model.activateZoom(); } } deactivateZoom() { if (this.model.device !== "desktop") { this.model.deactivateZoom(); } } } SimulatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SimulatorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); SimulatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SimulatorComponent, selector: "survey-simulator", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.getRootCss()\" (keydown)=\"model.tryToZoom($event, $event)\" (mouseover)=\"activateZoom()\"\n (mouseout)=\"deactivateZoom()\">\n <div *ngIf=\"model.hasFrame\" class=\"svd-simulator-wrapper\" id=\"svd-simulator-wrapper\"\n [style.width]=\"simulatorFrame.frameWidth + 'px'\" [style.height]=\"simulatorFrame.frameHeight + 'px'\">\n <div class=\"svd-simulator\" [style.width]=\"simulatorFrame.deviceWidth + 'px'\"\n [style.height]=\"simulatorFrame.deviceHeight + 'px'\"\n [style.transform]=\"'scale(' + simulatorFrame.scale + ') translate(-50%, -50%)'\">\n <div class=\"svd-simulator-content\"\n [style.--sv-popup-overlay-height]=\"model.popupOverlayHeight || null\">\n <ng-template [component]=\"{ name: 'survey-widget', data: { model: model.survey } }\"></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"!model.hasFrame\" class=\"svd-simulator-content\"\n [style.--sv-popup-overlay-height]=\"model.popupOverlayHeight || null\">\n <ng-template [component]=\"{ name: 'survey-widget', data: { model: model.survey } }\"></ng-template>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SimulatorComponent, decorators: [{ type: Component, args: [{ selector: "survey-simulator", templateUrl: "./simulator.component.html", styles: [":host { display: none; }"] }] }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { model: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3ByZXZpZXcvc2ltdWxhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJzL3ByZXZpZXcvc2ltdWxhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLEtBQUssRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBUWhELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFpQztJQUd2RSxZQUNFLGlCQUFvQyxFQUNwQyxnQkFBa0M7UUFFbEMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDZ0IseUJBQXlCO1FBQzFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUN2QyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVrQixXQUFXLENBQUMsU0FBa0IsS0FBSztRQUNwRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRVMsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ25DLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7O2dIQWhEVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiwyR0NUL0Isc3JDQW1CYzs0RkRWRCxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDO3VJQUVVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmFzZUFuZ3VsYXIgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcbmltcG9ydCB7IFN1cnZleVNpbXVsYXRvck1vZGVsIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN1cnZleS1zaW11bGF0b3JcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zaW11bGF0b3IuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgU2ltdWxhdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXI8U3VydmV5U2ltdWxhdG9yTW9kZWw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbW9kZWwhOiBTdXJ2ZXlTaW11bGF0b3JNb2RlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cblxuICAvKipcbiAgICogYEJhc2VBbmd1bGFyYCBkZWZlcnMgdXBkYXRlcyB3aGlsZSBgbW9kZWwuaXNSZW5kZXJpbmdgIGlzIHRydWUgZHVyaW5nIGBuZ0RvQ2hlY2tgLCBzb1xuICAgKiBgcG9wdXBPdmVybGF5SGVpZ2h0YCAoYW5kIGZyYW1lLWRyaXZpbmcgcHJvcHMpIHdvdWxkIG5vdCByZWZyZXNoIHRoZSBlbWJlZGRlZCB0ZW1wbGF0ZSBpbiB0aW1lLlxuICAgKiBUaGVzZSBwcm9wZXJ0aWVzIG11c3QgcnVuIHN5bmNocm9ub3VzIGBkZXRlY3RDaGFuZ2VzYCBzbyBgW3N0eWxlLi0tc3YtcG9wdXAtb3ZlcmxheS1oZWlnaHRdYCBhcHBsaWVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldFByb3BlcnRpZXNUb1VwZGF0ZVN5bmMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtcInBvcHVwT3ZlcmxheUhlaWdodFwiLCBcImxhbmRzY2FwZVwiLCBcImRldmljZVwiLCBcInN1cnZleVwiXTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLnF1ZXVlU3VydmV5TGF5b3V0UmVmcmVzaCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5jYW5jZWxTdXJ2ZXlMYXlvdXRSZWZyZXNoKCk7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhZnRlclVwZGF0ZShpc1N5bmM6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHN1cGVyLmFmdGVyVXBkYXRlKGlzU3luYyk7XG4gICAgdGhpcy5tb2RlbC5xdWV1ZVN1cnZleUxheW91dFJlZnJlc2goKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBTdXJ2ZXlTaW11bGF0b3JNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgcHVibGljIGdldCBzaW11bGF0b3JGcmFtZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLnNpbXVsYXRvckZyYW1lO1xuICB9XG4gIGFjdGl2YXRlWm9vbSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbC5kZXZpY2UgIT09IFwiZGVza3RvcFwiKSB7XG4gICAgICB0aGlzLm1vZGVsLmFjdGl2YXRlWm9vbSgpO1xuICAgIH1cbiAgfVxuICBkZWFjdGl2YXRlWm9vbSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbC5kZXZpY2UgIT09IFwiZGVza3RvcFwiKSB7XG4gICAgICB0aGlzLm1vZGVsLmRlYWN0aXZhdGVab29tKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5nZXRSb290Q3NzKClcIiAoa2V5ZG93bik9XCJtb2RlbC50cnlUb1pvb20oJGV2ZW50LCAkZXZlbnQpXCIgKG1vdXNlb3Zlcik9XCJhY3RpdmF0ZVpvb20oKVwiXG4gICAgKG1vdXNlb3V0KT1cImRlYWN0aXZhdGVab29tKClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuaGFzRnJhbWVcIiBjbGFzcz1cInN2ZC1zaW11bGF0b3Itd3JhcHBlclwiIGlkPVwic3ZkLXNpbXVsYXRvci13cmFwcGVyXCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJzaW11bGF0b3JGcmFtZS5mcmFtZVdpZHRoICsgJ3B4J1wiIFtzdHlsZS5oZWlnaHRdPVwic2ltdWxhdG9yRnJhbWUuZnJhbWVIZWlnaHQgKyAncHgnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZkLXNpbXVsYXRvclwiIFtzdHlsZS53aWR0aF09XCJzaW11bGF0b3JGcmFtZS5kZXZpY2VXaWR0aCArICdweCdcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInNpbXVsYXRvckZyYW1lLmRldmljZUhlaWdodCArICdweCdcIlxuICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cIidzY2FsZSgnICsgc2ltdWxhdG9yRnJhbWUuc2NhbGUgKyAnKSB0cmFuc2xhdGUoLTUwJSwgLTUwJSknXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdmQtc2ltdWxhdG9yLWNvbnRlbnRcIlxuICAgICAgICAgIFtzdHlsZS4tLXN2LXBvcHVwLW92ZXJsYXktaGVpZ2h0XT1cIm1vZGVsLnBvcHVwT3ZlcmxheUhlaWdodCB8fCBudWxsXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwieyBuYW1lOiAnc3VydmV5LXdpZGdldCcsIGRhdGE6IHsgbW9kZWw6IG1vZGVsLnN1cnZleSB9IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhbW9kZWwuaGFzRnJhbWVcIiBjbGFzcz1cInN2ZC1zaW11bGF0b3ItY29udGVudFwiXG4gICAgICBbc3R5bGUuLS1zdi1wb3B1cC1vdmVybGF5LWhlaWdodF09XCJtb2RlbC5wb3B1cE92ZXJsYXlIZWlnaHQgfHwgbnVsbFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwieyBuYW1lOiAnc3VydmV5LXdpZGdldCcsIGRhdGE6IHsgbW9kZWw6IG1vZGVsLnN1cnZleSB9IH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19