survey-angular-ui
Version:
survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.
26 lines • 4.5 kB
JavaScript
import { Injectable } 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) {
const 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BvcHVwL3BvcHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFHMUUsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsUUFBa0IsRUFDbEIsY0FBOEIsRUFDOUIsd0JBQWtEO1FBRmxELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFBRyxDQUFDO0lBRTFFLGVBQWUsQ0FBQyxjQUFrQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwSSxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsY0FBYyxDQUFDLG1CQUFtQixDQUFjLGNBQWMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQzdDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzswR0FiVSxZQUFZOzhHQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IFBvcHVwQmFzZVZpZXdNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgUG9wdXBCYXNlQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vcG9wdXAtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9wdXBTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7fVxuXG4gIGNyZWF0ZUNvbXBvbmVudChwb3B1cFZpZXdNb2RlbDogUG9wdXBCYXNlVmlld01vZGVsKTogRG9tUG9ydGFsT3V0bGV0IHtcbiAgICBjb25zdCBwb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChwb3B1cFZpZXdNb2RlbC5jb250YWluZXIsIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCB0aGlzLmFwcGxpY2F0aW9uUmVmLCB0aGlzLmluamVjdG9yKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFBvcHVwQmFzZUNvbnRhaW5lckNvbXBvbmVudCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gcG9ydGFsSG9zdC5hdHRhY2gocG9ydGFsKTtcbiAgICBwb3B1cFZpZXdNb2RlbC5zZXRDb21wb25lbnRFbGVtZW50KDxIVE1MRWxlbWVudD5wb3B1cFZpZXdNb2RlbC5jb250YWluZXIuY2hpbGRyZW5bMF0pO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb2RlbCA9IHBvcHVwVmlld01vZGVsO1xuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHBvcnRhbEhvc3Q7XG4gIH1cbn0iXX0=