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.
62 lines • 11.3 kB
JavaScript
import { Component, Input, ViewChild } from "@angular/core";
import { AngularComponentFactory, BaseAngular } from "survey-angular-ui";
import * as i0 from "@angular/core";
import * as i1 from "./toolbox-tool.component";
import * as i2 from "../components/search.component";
import * as i3 from "survey-angular-ui";
import * as i4 from "@angular/common";
export class AdaptiveToolboxComponent extends BaseAngular {
get toolbox() {
return this.model.toolbox;
}
get creator() {
return this.model;
}
get searchItem() {
return this.toolbox.searchItem;
}
afterRender() {
var _a;
if ((_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement) {
this.toolbox.afterRender(this.container.nativeElement);
}
}
ngAfterViewInit() {
this.afterRender();
}
ngAfterViewChecked() {
super.ngAfterViewChecked();
this.afterRender();
}
afterUpdate(isSync) {
super.afterUpdate(isSync);
this.afterRender();
}
getModel() {
return this.toolbox;
}
ngOnDestroy() {
this.toolbox.beforeDestroy();
super.ngOnDestroy();
}
trackItemBy(_, item) {
return item.renderedId;
}
}
AdaptiveToolboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AdaptiveToolboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
AdaptiveToolboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AdaptiveToolboxComponent, selector: "svc-toolbox", inputs: { model: "model" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"toolbox.classNames\" #container [style]=\"toolbox.getRootStyle()\">\n <div (focusout)=\"toolbox.focusOut($event)\" class=\"svc-toolbox__panel\">\n <div *ngIf=\"toolbox.showSearch\" class=\"svc-toolbox__search-container\">\n <ng-container *ngIf=\"toolbox.isCompactRendered\">\n <svc-toolbox-tool [creator]=\"creator\" [item]=\"searchItem\" [parentModel]=\"toolbox\"\n [isCompact]=\"toolbox.isCompactRendered\"></svc-toolbox-tool>\n </ng-container>\n <svc-search [model]=\"toolbox.searchManager\"></svc-search>\n <div class=\"svc-toolbox__category-separator svc-toolbox__category-separator--search\"></div>\n </div>\n <div *ngIf=\"toolbox.showPlaceholder\" class=\"svc-toolbox__placeholder\">{{toolbox.toolboxNoResultsFound}}</div>\n <sv-scroll>\n <ng-container *ngIf=\"!toolbox.showInSingleCategory\">\n <ng-container *ngFor=\"let category of toolbox.categories\">\n <ng-template [component]=\"{name: 'svc-toolbox-category', data: { category: category, toolbox: toolbox }}\"></ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"toolbox.showInSingleCategory\">\n <div class=\"svc-toolbox__category\">\n <ng-container *ngFor=\"let item of toolbox.renderedActions; trackBy: trackItemBy\">\n <svc-toolbox-tool [creator]=\"creator\" [item]=\"item\" [parentModel]=\"toolbox\"\n [isCompact]=\"toolbox.isCompactRendered\"></svc-toolbox-tool>\n </ng-container>\n </div>\n </ng-container>\n </sv-scroll>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.ToolboxToolComponent, selector: "svc-toolbox-tool", inputs: ["creator", "item", "parentModel", "isCompact"] }, { type: i2.SearchComponent, selector: "svc-search", inputs: ["model"] }, { type: i3.ScrollComponent, selector: "sv-scroll", inputs: ["disabled", "onInnerHeightChanged"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AdaptiveToolboxComponent, decorators: [{
type: Component,
args: [{
selector: "svc-toolbox",
templateUrl: "./adaptive-toolbox.component.html",
styles: [":host { display: none; }"]
}]
}], propDecorators: { model: [{
type: Input
}], container: [{
type: ViewChild,
args: ["container"]
}] } });
AngularComponentFactory.Instance.registerComponent("svc-toolbox", AdaptiveToolboxComponent);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtdG9vbGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9hZGFwdGl2ZS10b29sYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90b29sYm94L2FkYXB0aXZlLXRvb2xib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQU96RSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsV0FBNEI7SUFHeEUsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBb0IsQ0FBQztJQUMzQyxDQUFDO0lBQ08sV0FBVzs7UUFDakIsSUFBSSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGFBQWEsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNRLGtCQUFrQjtRQUN6QixLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNrQixXQUFXLENBQUMsTUFBZ0I7UUFDN0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNTLFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxXQUFXLENBQUMsQ0FBUyxFQUFFLElBQXlCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDOztzSEFyQ1Usd0JBQXdCOzBHQUF4Qix3QkFBd0IsOE1DVnJDLGtxREE2QmM7NEZEbkJELHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXOztBQXFDeEIsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1cnZleUNyZWF0b3JNb2RlbCwgUXVlc3Rpb25Ub29sYm94LCBRdWVzdGlvblRvb2xib3hJdGVtIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnksIEJhc2VBbmd1bGFyIH0gZnJvbSBcInN1cnZleS1hbmd1bGFyLXVpXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdmMtdG9vbGJveFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FkYXB0aXZlLXRvb2xib3guY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgQWRhcHRpdmVUb29sYm94Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXI8UXVlc3Rpb25Ub29sYm94PiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBtb2RlbCE6IFN1cnZleUNyZWF0b3JNb2RlbDtcbiAgQFZpZXdDaGlsZChcImNvbnRhaW5lclwiKSBjb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgcHVibGljIGdldCB0b29sYm94KCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLnRvb2xib3g7XG4gIH1cbiAgcHVibGljIGdldCBjcmVhdG9yKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VhcmNoSXRlbSgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sYm94LnNlYXJjaEl0ZW0gYXMgQWN0aW9uO1xuICB9XG4gIHByaXZhdGUgYWZ0ZXJSZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLnRvb2xib3guYWZ0ZXJSZW5kZXIodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmFmdGVyUmVuZGVyKCk7XG4gIH1cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3Q2hlY2tlZCgpO1xuICAgIHRoaXMuYWZ0ZXJSZW5kZXIoKTtcbiAgfVxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYWZ0ZXJVcGRhdGUoaXNTeW5jPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLmFmdGVyVXBkYXRlKGlzU3luYyk7XG4gICAgdGhpcy5hZnRlclJlbmRlcigpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBRdWVzdGlvblRvb2xib3gge1xuICAgIHJldHVybiB0aGlzLnRvb2xib3g7XG4gIH1cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50b29sYm94LmJlZm9yZURlc3Ryb3koKTtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG4gIHRyYWNrSXRlbUJ5KF86IG51bWJlciwgaXRlbTogUXVlc3Rpb25Ub29sYm94SXRlbSkge1xuICAgIHJldHVybiBpdGVtLnJlbmRlcmVkSWQ7XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLXRvb2xib3hcIiwgQWRhcHRpdmVUb29sYm94Q29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IFtjbGFzc109XCJ0b29sYm94LmNsYXNzTmFtZXNcIiAjY29udGFpbmVyIFtzdHlsZV09XCJ0b29sYm94LmdldFJvb3RTdHlsZSgpXCI+XG4gICAgPGRpdiAoZm9jdXNvdXQpPVwidG9vbGJveC5mb2N1c091dCgkZXZlbnQpXCIgY2xhc3M9XCJzdmMtdG9vbGJveF9fcGFuZWxcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYm94LnNob3dTZWFyY2hcIiBjbGFzcz1cInN2Yy10b29sYm94X19zZWFyY2gtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b29sYm94LmlzQ29tcGFjdFJlbmRlcmVkXCI+XG4gICAgICAgICAgPHN2Yy10b29sYm94LXRvb2wgW2NyZWF0b3JdPVwiY3JlYXRvclwiIFtpdGVtXT1cInNlYXJjaEl0ZW1cIiBbcGFyZW50TW9kZWxdPVwidG9vbGJveFwiXG4gICAgICAgICAgICBbaXNDb21wYWN0XT1cInRvb2xib3guaXNDb21wYWN0UmVuZGVyZWRcIj48L3N2Yy10b29sYm94LXRvb2w+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8c3ZjLXNlYXJjaCBbbW9kZWxdPVwidG9vbGJveC5zZWFyY2hNYW5hZ2VyXCI+PC9zdmMtc2VhcmNoPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXRvb2xib3hfX2NhdGVnb3J5LXNlcGFyYXRvciBzdmMtdG9vbGJveF9fY2F0ZWdvcnktc2VwYXJhdG9yLS1zZWFyY2hcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInRvb2xib3guc2hvd1BsYWNlaG9sZGVyXCIgY2xhc3M9XCJzdmMtdG9vbGJveF9fcGxhY2Vob2xkZXJcIj57e3Rvb2xib3gudG9vbGJveE5vUmVzdWx0c0ZvdW5kfX08L2Rpdj5cbiAgICAgIDxzdi1zY3JvbGw+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdG9vbGJveC5zaG93SW5TaW5nbGVDYXRlZ29yeVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHRvb2xib3guY2F0ZWdvcmllc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwie25hbWU6ICdzdmMtdG9vbGJveC1jYXRlZ29yeScsIGRhdGE6IHsgY2F0ZWdvcnk6IGNhdGVnb3J5LCB0b29sYm94OiB0b29sYm94IH19XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b29sYm94LnNob3dJblNpbmdsZUNhdGVnb3J5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy10b29sYm94X19jYXRlZ29yeVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0b29sYm94LnJlbmRlcmVkQWN0aW9uczsgIHRyYWNrQnk6IHRyYWNrSXRlbUJ5XCI+XG4gICAgICAgICAgICAgIDxzdmMtdG9vbGJveC10b29sIFtjcmVhdG9yXT1cImNyZWF0b3JcIiBbaXRlbV09XCJpdGVtXCIgW3BhcmVudE1vZGVsXT1cInRvb2xib3hcIlxuICAgICAgICAgICAgICAgIFtpc0NvbXBhY3RdPVwidG9vbGJveC5pc0NvbXBhY3RSZW5kZXJlZFwiPjwvc3ZjLXRvb2xib3gtdG9vbD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Ytc2Nyb2xsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19