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.
34 lines • 5.53 kB
JavaScript
import { Injectable, VERSION } from "@angular/core";
import { ComponentPortal, DomPortalOutlet } from "@angular/cdk/portal";
import { PopupBaseContainerComponent } from "./popup-container.component";
import * as i0 from "@angular/core";
export class PopupService {
constructor(injector, applicationRef, componentFactoryResolver) {
this.injector = injector;
this.applicationRef = applicationRef;
this.componentFactoryResolver = componentFactoryResolver;
}
createComponent(popupViewModel) {
let portalHost;
if (Number.parseInt(VERSION.major) > 19) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
//@ts-ignore
portalHost = new DomPortalOutlet(popupViewModel.container, this.applicationRef, this.injector);
}
else {
portalHost = new DomPortalOutlet(popupViewModel.container, this.componentFactoryResolver, this.applicationRef, this.injector);
}
const portal = new ComponentPortal(PopupBaseContainerComponent);
const componentRef = portalHost.attach(portal);
popupViewModel.setComponentElement(popupViewModel.container.children[0]);
componentRef.instance.model = popupViewModel;
componentRef.changeDetectorRef.detectChanges();
return portalHost;
}
}
PopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, deps: [{ token: i0.Injector }, { token: i0.ApplicationRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
PopupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ApplicationRef }, { type: i0.ComponentFactoryResolver }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BvcHVwL3BvcHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxVQUFVLEVBQVksT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRzFFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLHdCQUFrRDtRQUZsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQUcsQ0FBQztJQUUxRSxlQUFlLENBQUMsY0FBa0M7UUFDaEQsSUFBSSxVQUEyQixDQUFDO1FBQ2hDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZDLDZEQUE2RDtZQUM3RCxZQUFZO1lBQ1osVUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDaEc7YUFBTTtZQUNMLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvSDtRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDaEUsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxjQUFjLENBQUMsbUJBQW1CLENBQWMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDN0MsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OzBHQXBCVSxZQUFZOzhHQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUsIEluamVjdG9yLCBWRVJTSU9OIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IFBvcHVwQmFzZVZpZXdNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgUG9wdXBCYXNlQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vcG9wdXAtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9wdXBTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7fVxuXG4gIGNyZWF0ZUNvbXBvbmVudChwb3B1cFZpZXdNb2RlbDogUG9wdXBCYXNlVmlld01vZGVsKTogRG9tUG9ydGFsT3V0bGV0IHtcbiAgICBsZXQgcG9ydGFsSG9zdDogRG9tUG9ydGFsT3V0bGV0O1xuICAgIGlmIChOdW1iZXIucGFyc2VJbnQoVkVSU0lPTi5tYWpvcikgPiAxOSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICBwb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChwb3B1cFZpZXdNb2RlbC5jb250YWluZXIsIHRoaXMuYXBwbGljYXRpb25SZWYsIHRoaXMuaW5qZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChwb3B1cFZpZXdNb2RlbC5jb250YWluZXIsIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCB0aGlzLmFwcGxpY2F0aW9uUmVmLCB0aGlzLmluamVjdG9yKTtcbiAgICB9XG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChQb3B1cEJhc2VDb250YWluZXJDb21wb25lbnQpO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHBvcnRhbEhvc3QuYXR0YWNoKHBvcnRhbCk7XG4gICAgcG9wdXBWaWV3TW9kZWwuc2V0Q29tcG9uZW50RWxlbWVudCg8SFRNTEVsZW1lbnQ+cG9wdXBWaWV3TW9kZWwuY29udGFpbmVyLmNoaWxkcmVuWzBdKTtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubW9kZWwgPSBwb3B1cFZpZXdNb2RlbDtcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiBwb3J0YWxIb3N0O1xuICB9XG59Il19