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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BvcHVwL21vZGFsLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQXNDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBU3RHLE1BQU0sT0FBTyxjQUFjO0lBTXpCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRnRDLG9CQUFlLEdBQVksS0FBSyxDQUFDO0lBR3pDLENBQUM7SUFDRCxVQUFVLENBQUMsYUFBNkIsRUFBRSxXQUF5QjtRQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLHlCQUF5QixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxRixNQUFNLDJCQUEyQixHQUFHLENBQUMsQ0FBcUIsRUFBRSxPQUErQixFQUFFLEVBQUU7WUFDN0YsSUFBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDdEI7UUFDSCxDQUFDLENBQUM7UUFDRixjQUFjLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU1QixRQUFRLENBQUMsVUFBVSxHQUFHLENBQUMsYUFBNkIsRUFBRSxXQUF5QixFQUFFLEVBQUU7WUFDakYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVzs7UUFDVCxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLFFBQVEsQ0FBQyxVQUFVLEdBQVEsU0FBUyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7NEdBbENVLGNBQWM7Z0dBQWQsY0FBYyw2REFKZixFQUFFOzRGQUlELGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJRGlhbG9nT3B0aW9ucywgUG9wdXBCYXNlVmlld01vZGVsLCBjcmVhdGVQb3B1cE1vZGFsVmlld01vZGVsLCBzZXR0aW5ncyB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgUG9wdXBTZXJ2aWNlIH0gZnJvbSBcIi4vcG9wdXAuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctbW9kYWwtY29udGFpbmVyXCIsXG4gIHRlbXBsYXRlOiBcIlwiLFxuICBzdHlsZVVybHM6IFtcIi4uLy4uL2hpZGUtaG9zdC5zY3NzXCJdXG59KVxuXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQge1xuXG4gIHB1YmxpYyBtb2RlbCE6IFBvcHVwQmFzZVZpZXdNb2RlbDtcbiAgcHJpdmF0ZSBwb3J0YWxIb3N0ITogRG9tUG9ydGFsT3V0bGV0O1xuICBwcml2YXRlIGZ1bmN0aW9uRGVmaW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9wdXBTZXJ2aWNlOiBQb3B1cFNlcnZpY2UpIHtcbiAgfVxuICBzaG93RGlhbG9nKGRpYWxvZ09wdGlvbnM6IElEaWFsb2dPcHRpb25zLCByb290RWxlbWVudD86IEhUTUxFbGVtZW50KTogUG9wdXBCYXNlVmlld01vZGVsIHtcbiAgICBjb25zdCBwb3B1cFZpZXdNb2RlbCA9IHRoaXMubW9kZWwgPSBjcmVhdGVQb3B1cE1vZGFsVmlld01vZGVsKGRpYWxvZ09wdGlvbnMsIHJvb3RFbGVtZW50KTtcbiAgICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2sgPSAoXzogUG9wdXBCYXNlVmlld01vZGVsLCBvcHRpb25zOiB7IGlzVmlzaWJsZTogYm9vbGVhbiB9KSA9PiB7XG4gICAgICBpZighb3B0aW9ucy5pc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy5wb3J0YWxIb3N0LmRldGFjaCgpO1xuICAgICAgICB0aGlzLm1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHBvcHVwVmlld01vZGVsLm9uVmlzaWJpbGl0eUNoYW5nZWQuYWRkKG9uVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayk7XG4gICAgdGhpcy5wb3J0YWxIb3N0ID0gdGhpcy5wb3B1cFNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KHRoaXMubW9kZWwpO1xuICAgIHRoaXMubW9kZWwubW9kZWwuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZ1bmN0aW9uRGVmaW5lZCA9IHRydWU7XG5cbiAgICBzZXR0aW5ncy5zaG93RGlhbG9nID0gKGRpYWxvZ09wdGlvbnM6IElEaWFsb2dPcHRpb25zLCByb290RWxlbWVudD86IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zaG93RGlhbG9nKGRpYWxvZ09wdGlvbnMsIHJvb3RFbGVtZW50KTtcbiAgICB9O1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucG9ydGFsSG9zdD8uZGV0YWNoKCk7XG4gICAgdGhpcy5tb2RlbD8uZGlzcG9zZSgpO1xuICAgIGlmICh0aGlzLmZ1bmN0aW9uRGVmaW5lZCkge1xuICAgICAgc2V0dGluZ3Muc2hvd0RpYWxvZyA9IDxhbnk+dW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG4iXX0=