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.

46 lines 8.22 kB
import { Component, Input, ViewChild } from "@angular/core"; import { PageNavigatorViewModel } from "survey-creator-core"; import { CreatorModelComponent } from "../creator-model.component"; import * as i0 from "@angular/core"; import * as i1 from "survey-angular-ui"; import * as i2 from "./page-navigator-item.component"; import * as i3 from "@angular/common"; export class PageNavigatorComponent extends CreatorModelComponent { createModel() { this.model = new PageNavigatorViewModel(this.pagesController, this.pageEditMode); } getModel() { return this.model; } getPropertiesToTrack() { return ["pagesController", "pageEditMode"]; } ngAfterViewInit() { const el = this.container.nativeElement; this.model.attachToUI(el); } ngOnDestroy() { super.ngOnDestroy(); this.model.stopItemsContainerHeightObserver(); this.model.setScrollableContainer(undefined); this.model.dispose(); } } PageNavigatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PageNavigatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); PageNavigatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PageNavigatorComponent, selector: "svc-page-navigator", inputs: { pagesController: "pagesController", pageEditMode: "pageEditMode" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-page-navigator\" #container [visible]=\"model.visible\">\n <div>\n <div role=\"button\" class=\"svc-page-navigator__selector svc-page-navigator__button\"\n (click)=\"model.togglePageSelector($event)\" [key2click] [attr.title]=\"model.pageSelectorCaption\" [class.svc-page-navigator__button--pressed]=\"model.isPopupOpened\">\n <svg class=\"svc-page-navigator__button-icon\" [iconName]=\"model.icon\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n <sv-ng-popup [popupModel]=\"model.popupModel\"></sv-ng-popup>\n </div>\n <div>\n <svc-page-navigator-item *ngFor=\"let item of model.visibleItems\" [model]=\"item\"></svc-page-navigator-item>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }, { type: i2.PageNavigatorItemComponent, selector: "svc-page-navigator-item", inputs: ["model"] }], directives: [{ type: i1.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PageNavigatorComponent, decorators: [{ type: Component, args: [{ selector: "svc-page-navigator", templateUrl: "./page-navigator.component.html", styles: [":host { display: none; }"] }] }], propDecorators: { pagesController: [{ type: Input }], pageEditMode: [{ type: Input }], container: [{ type: ViewChild, args: ["container"] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1uYXZpZ2F0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2UtbmF2aWdhdG9yL3BhZ2UtbmF2aWdhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9wYWdlLW5hdmlnYXRvci9wYWdlLW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxzQkFBc0IsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFPbkUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHFCQUE2QztJQUt2RixXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHNCQUFzQixDQUNyQyxJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO0lBQ0osQ0FBQztJQUNTLFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDUyxvQkFBb0I7UUFDNUIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDTSxlQUFlO1FBQ3BCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDZSxXQUFXO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxTQUFnQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDOztvSEExQlUsc0JBQXNCO3dHQUF0QixzQkFBc0IsdVFDVG5DLHl4QkFhYzs0RkRKRCxzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUdVLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFBhZ2VOYXZpZ2F0b3JWaWV3TW9kZWwsIFBhZ2VzQ29udHJvbGxlciB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5pbXBvcnQgeyBDcmVhdG9yTW9kZWxDb21wb25lbnQgfSBmcm9tIFwiLi4vY3JlYXRvci1tb2RlbC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy1wYWdlLW5hdmlnYXRvclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3BhZ2UtbmF2aWdhdG9yLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBub25lOyB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VOYXZpZ2F0b3JDb21wb25lbnQgZXh0ZW5kcyBDcmVhdG9yTW9kZWxDb21wb25lbnQ8UGFnZU5hdmlnYXRvclZpZXdNb2RlbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIG1vZGVsITogUGFnZU5hdmlnYXRvclZpZXdNb2RlbDtcbiAgQElucHV0KCkgcGFnZXNDb250cm9sbGVyITogUGFnZXNDb250cm9sbGVyO1xuICBASW5wdXQoKSBwYWdlRWRpdE1vZGUhOiBzdHJpbmc7XG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIikgY29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIGNyZWF0ZU1vZGVsKCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwgPSBuZXcgUGFnZU5hdmlnYXRvclZpZXdNb2RlbChcbiAgICAgIHRoaXMucGFnZXNDb250cm9sbGVyLFxuICAgICAgdGhpcy5wYWdlRWRpdE1vZGVcbiAgICApO1xuICB9XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBQYWdlTmF2aWdhdG9yVmlld01vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvcGVydGllc1RvVHJhY2soKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXCJwYWdlc0NvbnRyb2xsZXJcIiwgXCJwYWdlRWRpdE1vZGVcIl07XG4gIH1cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5tb2RlbC5hdHRhY2hUb1VJKGVsKTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLm1vZGVsLnN0b3BJdGVtc0NvbnRhaW5lckhlaWdodE9ic2VydmVyKCk7XG4gICAgdGhpcy5tb2RlbC5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHVuZGVmaW5lZCBhcyBhbnkpO1xuICAgIHRoaXMubW9kZWwuZGlzcG9zZSgpO1xuICB9XG59IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInN2Yy1wYWdlLW5hdmlnYXRvclwiICNjb250YWluZXIgW3Zpc2libGVdPVwibW9kZWwudmlzaWJsZVwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJzdmMtcGFnZS1uYXZpZ2F0b3JfX3NlbGVjdG9yIHN2Yy1wYWdlLW5hdmlnYXRvcl9fYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJtb2RlbC50b2dnbGVQYWdlU2VsZWN0b3IoJGV2ZW50KVwiIFtrZXkyY2xpY2tdIFthdHRyLnRpdGxlXT1cIm1vZGVsLnBhZ2VTZWxlY3RvckNhcHRpb25cIiBbY2xhc3Muc3ZjLXBhZ2UtbmF2aWdhdG9yX19idXR0b24tLXByZXNzZWRdPVwibW9kZWwuaXNQb3B1cE9wZW5lZFwiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInN2Yy1wYWdlLW5hdmlnYXRvcl9fYnV0dG9uLWljb25cIiBbaWNvbk5hbWVdPVwibW9kZWwuaWNvblwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHN2LW5nLXBvcHVwIFtwb3B1cE1vZGVsXT1cIm1vZGVsLnBvcHVwTW9kZWxcIj48L3N2LW5nLXBvcHVwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8c3ZjLXBhZ2UtbmF2aWdhdG9yLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWwudmlzaWJsZUl0ZW1zXCIgW21vZGVsXT1cIml0ZW1cIj48L3N2Yy1wYWdlLW5hdmlnYXRvci1pdGVtPlxuICAgICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=