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.
45 lines • 6.6 kB
JavaScript
import { Component, Input, ViewChild } from "@angular/core";
import { BaseAngular } from "../../base-angular";
import { AngularComponentFactory } from "../../component-factory";
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../../utils/dynamic.directive";
export class ActionComponent extends BaseAngular {
getModel() {
return this.model;
}
get id() {
return this.model.uniqueId + "" || "";
}
ngOnDestroy() {
super.ngOnDestroy();
this.model.updateModeCallback = undefined;
}
ngAfterViewInit() {
this.model.updateModeCallback = (mode, callback) => {
this.model.mode = mode;
queueMicrotask(() => {
var _a;
callback(mode, (_a = this.containerRef) === null || _a === void 0 ? void 0 : _a.nativeElement);
});
};
this.model.afterRender();
}
}
ActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
ActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ActionComponent, selector: "sv-ng-action", inputs: { model: "model" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.getActionRootCss()\" [id]=\"id\" #container>\n <div class=\"sv-action__content\">\n <ng-container *ngIf=\"model.needSeparator\">\n <div class=\"sv-action-bar-separator\"></div>\n </ng-container>\n <ng-template [component]=\"{ name: model.component, data: { model }, default: 'sv-action-bar-item'}\"></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: ActionComponent, decorators: [{
type: Component,
args: [{
selector: "sv-ng-action",
templateUrl: "./action.component.html",
styles: [":host { display: none; }"],
}]
}], propDecorators: { model: [{
type: Input
}], containerRef: [{
type: ViewChild,
args: ["container"]
}] } });
AngularComponentFactory.Instance.registerComponent("sv-action", ActionComponent);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQVFsRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBRzlDLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ2UsV0FBVztRQUN6QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxTQUFnQixDQUFDO0lBQ25ELENBQUM7SUFDTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLGNBQWMsQ0FBQyxHQUFHLEVBQUU7O2dCQUNsQixRQUFRLENBQUMsSUFBSSxFQUFFLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsYUFBYSxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzZHQXJCVSxlQUFlO2lHQUFmLGVBQWUsa05DVjVCLDBhQVNjOzRGRENELGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUNyQzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2tCLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVzs7QUFzQnhCLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmFzZUFuZ3VsYXIgfSBmcm9tIFwiLi4vLi4vYmFzZS1hbmd1bGFyXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1hY3Rpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9hY3Rpb24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl0sXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG1vZGVsITogQWN0aW9uO1xuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLnVuaXF1ZUlkICsgXCJcIiB8fCBcIlwiO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMubW9kZWwudXBkYXRlTW9kZUNhbGxiYWNrID0gdW5kZWZpbmVkIGFzIGFueTtcbiAgfVxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwudXBkYXRlTW9kZUNhbGxiYWNrID0gKG1vZGUsIGNhbGxiYWNrKSA9PiB7XG4gICAgICB0aGlzLm1vZGVsLm1vZGUgPSBtb2RlO1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICBjYWxsYmFjayhtb2RlLCB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudCk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHRoaXMubW9kZWwuYWZ0ZXJSZW5kZXIoKTtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2LWFjdGlvblwiLCBBY3Rpb25Db21wb25lbnQpOyIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmdldEFjdGlvblJvb3RDc3MoKVwiIFtpZF09XCJpZFwiICNjb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cInN2LWFjdGlvbl9fY29udGVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsLm5lZWRTZXBhcmF0b3JcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2LWFjdGlvbi1iYXItc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50XT1cInsgbmFtZTogbW9kZWwuY29tcG9uZW50LCBkYXRhOiB7IG1vZGVsIH0sIGRlZmF1bHQ6ICdzdi1hY3Rpb24tYmFyLWl0ZW0nfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=