UNPKG

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.

48 lines 6.4 kB
import { Component } from "@angular/core"; import { createPopupModalViewModel, settings } from "survey-core"; import * as i0 from "@angular/core"; import * as i1 from "./popup.service"; export class ModalComponent { constructor(popupService) { this.popupService = popupService; this.functionDefined = false; } showDialog(dialogOptions, rootElement) { const popupViewModel = this.model = createPopupModalViewModel(dialogOptions, rootElement); const onVisibilityChangedCallback = (_, options) => { if (!options.isVisible) { this.portalHost.detach(); this.model.dispose(); } }; popupViewModel.onVisibilityChanged.add(onVisibilityChangedCallback); this.portalHost = this.popupService.createComponent(this.model); this.model.model.isVisible = true; return this.model; } ngOnInit() { this.functionDefined = true; settings.showDialog = (dialogOptions, rootElement) => { return this.showDialog(dialogOptions, rootElement); }; } ngOnDestroy() { var _a, _b; (_a = this.portalHost) === null || _a === void 0 ? void 0 : _a.detach(); (_b = this.model) === null || _b === void 0 ? void 0 : _b.dispose(); if (this.functionDefined) { settings.showDialog = undefined; } } } ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ModalComponent, deps: [{ token: i1.PopupService }], target: i0.ɵɵFactoryTarget.Component }); ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ModalComponent, selector: "sv-ng-modal-container", ngImport: i0, template: "", isInline: true, styles: [":host{display:none}\n"] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ModalComponent, decorators: [{ type: Component, args: [{ selector: "sv-ng-modal-container", template: "", styleUrls: ["../../hide-host.scss"] }] }], ctorParameters: function () { return [{ type: i1.PopupService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BvcHVwL21vZGFsLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQXNDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBU3RHLE1BQU0sT0FBTyxjQUFjO0lBTXpCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRnRDLG9CQUFlLEdBQVksS0FBSyxDQUFDO0lBR3pDLENBQUM7SUFDRCxVQUFVLENBQUMsYUFBNkIsRUFBRSxXQUF5QjtRQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLHlCQUF5QixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxRixNQUFNLDJCQUEyQixHQUFHLENBQUMsQ0FBcUIsRUFBRSxPQUErQixFQUFFLEVBQUU7WUFDN0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDdEI7UUFDSCxDQUFDLENBQUM7UUFDRixjQUFjLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU1QixRQUFRLENBQUMsVUFBVSxHQUFHLENBQUMsYUFBNkIsRUFBRSxXQUF5QixFQUFFLEVBQUU7WUFDakYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVzs7UUFDVCxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLFFBQVEsQ0FBQyxVQUFVLEdBQVEsU0FBUyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7NEdBbENVLGNBQWM7Z0dBQWQsY0FBYyw2REFKZixFQUFFOzRGQUlELGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJRGlhbG9nT3B0aW9ucywgUG9wdXBCYXNlVmlld01vZGVsLCBjcmVhdGVQb3B1cE1vZGFsVmlld01vZGVsLCBzZXR0aW5ncyB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgUG9wdXBTZXJ2aWNlIH0gZnJvbSBcIi4vcG9wdXAuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctbW9kYWwtY29udGFpbmVyXCIsXG4gIHRlbXBsYXRlOiBcIlwiLFxuICBzdHlsZVVybHM6IFtcIi4uLy4uL2hpZGUtaG9zdC5zY3NzXCJdXG59KVxuXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQge1xuXG4gIHB1YmxpYyBtb2RlbCE6IFBvcHVwQmFzZVZpZXdNb2RlbDtcbiAgcHJpdmF0ZSBwb3J0YWxIb3N0ITogRG9tUG9ydGFsT3V0bGV0O1xuICBwcml2YXRlIGZ1bmN0aW9uRGVmaW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9wdXBTZXJ2aWNlOiBQb3B1cFNlcnZpY2UpIHtcbiAgfVxuICBzaG93RGlhbG9nKGRpYWxvZ09wdGlvbnM6IElEaWFsb2dPcHRpb25zLCByb290RWxlbWVudD86IEhUTUxFbGVtZW50KTogUG9wdXBCYXNlVmlld01vZGVsIHtcbiAgICBjb25zdCBwb3B1cFZpZXdNb2RlbCA9IHRoaXMubW9kZWwgPSBjcmVhdGVQb3B1cE1vZGFsVmlld01vZGVsKGRpYWxvZ09wdGlvbnMsIHJvb3RFbGVtZW50KTtcbiAgICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2sgPSAoXzogUG9wdXBCYXNlVmlld01vZGVsLCBvcHRpb25zOiB7IGlzVmlzaWJsZTogYm9vbGVhbiB9KSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnMuaXNWaXNpYmxlKSB7XG4gICAgICAgIHRoaXMucG9ydGFsSG9zdC5kZXRhY2goKTtcbiAgICAgICAgdGhpcy5tb2RlbC5kaXNwb3NlKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBwb3B1cFZpZXdNb2RlbC5vblZpc2liaWxpdHlDaGFuZ2VkLmFkZChvblZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2spO1xuICAgIHRoaXMucG9ydGFsSG9zdCA9IHRoaXMucG9wdXBTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudCh0aGlzLm1vZGVsKTtcbiAgICB0aGlzLm1vZGVsLm1vZGVsLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mdW5jdGlvbkRlZmluZWQgPSB0cnVlO1xuXG4gICAgc2V0dGluZ3Muc2hvd0RpYWxvZyA9IChkaWFsb2dPcHRpb25zOiBJRGlhbG9nT3B0aW9ucywgcm9vdEVsZW1lbnQ/OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2hvd0RpYWxvZyhkaWFsb2dPcHRpb25zLCByb290RWxlbWVudCk7XG4gICAgfTtcbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBvcnRhbEhvc3Q/LmRldGFjaCgpO1xuICAgIHRoaXMubW9kZWw/LmRpc3Bvc2UoKTtcbiAgICBpZiAodGhpcy5mdW5jdGlvbkRlZmluZWQpIHtcbiAgICAgIHNldHRpbmdzLnNob3dEaWFsb2cgPSA8YW55PnVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuIl19