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.

79 lines 13 kB
import { Component, Input } from "@angular/core"; import { PopupSurveyModel } from "survey-core"; import { BaseAngular } from "./base-angular"; import * as i0 from "@angular/core"; import * as i1 from "./components/svg-icon/svg-icon.component"; import * as i2 from "./survey.component"; import * as i3 from "@angular/common"; export class PopupSurveyComponent extends BaseAngular { constructor(changeDetectorRef) { super(changeDetectorRef); changeDetectorRef.detach(); } getModel() { return this.popup; } getShouldReattachChangeDetector() { return false; } getHeaderCss() { let headerCss = this.popup.cssHeaderRoot; if (this.popup.isCollapsed) { headerCss += " " + this.popup.cssRootCollapsedMod; } return headerCss; } closeHandler() { this.popup.hide(); if (!!this.onClose) { this.onClose(); } } ngOnChanges(changes) { var _a, _b; if (((_a = changes["model"]) === null || _a === void 0 ? void 0 : _a.currentValue) !== ((_b = changes["model"]) === null || _b === void 0 ? void 0 : _b.previousValue)) { this.popup = new PopupSurveyModel(null, this.model); } if (this.isExpanded !== undefined) { this.popup.isExpanded = this.isExpanded; } if (this.allowClose !== undefined) { this.popup.allowClose = this.allowClose; } if (this.allowFullScreen !== undefined) { this.popup.allowFullScreen = this.allowFullScreen; } if (this.closeOnCompleteTimeout !== undefined) { this.popup.closeOnCompleteTimeout = this.closeOnCompleteTimeout; } this.popup.isShowing = true; this.changeDetectorRef.detectChanges(); } ngOnDestroy() { super.ngOnDestroy(); this.popup.dispose(); } } PopupSurveyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupSurveyComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); PopupSurveyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PopupSurveyComponent, selector: "popup-survey", inputs: { model: "model", isExpanded: "isExpanded", allowClose: "allowClose", closeOnCompleteTimeout: "closeOnCompleteTimeout", allowFullScreen: "allowFullScreen", onClose: "onClose" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!!popup && popup.isShowing\" [class]=\"popup.cssRoot\" [style.width]=\"popup.renderedWidth\" [style.maxWidth]=\"popup.renderedWidth\" (scroll)=\"popup.onScroll()\">\n <div [class]=\"popup.cssRootContent\">\n <div [class]=\"getHeaderCss()\">\n <div *ngIf=\"popup.isCollapsed && !!popup.locTitle\" [class]=\"popup.cssHeaderTitleCollapsed\">\n {{popup.locTitle.renderedHtml}}\n </div>\n <div [class]=\"popup.cssHeaderButtonsContainer\">\n <div *ngIf=\"popup.allowFullScreen\" [class]=\"popup.cssHeaderFullScreenButton\" (click)=\"popup.toggleFullScreen()\">\n <svg *ngIf=\"popup.isFullScreen\" [iconName]=\"'icon-back-to-panel_16x16'\" [size]=\"16\" sv-ng-svg-icon></svg>\n <svg *ngIf=\"!popup.isFullScreen\" [iconName]=\"'icon-full-screen_16x16'\" [size]=\"16\" sv-ng-svg-icon></svg>\n </div>\n\n <div [class]=\"popup.cssHeaderCollapseButton\" (click)=\"popup.changeExpandCollapse()\">\n <svg *ngIf=\"popup.isExpanded\" [iconName]=\"'icon-minimize_16x16'\" [size]=\"16\" sv-ng-svg-icon></svg>\n <svg *ngIf=\"popup.isCollapsed\" [iconName]=\"'icon-restore_16x16'\" [size]=\"16\" sv-ng-svg-icon></svg>\n </div>\n\n <div *ngIf=\"popup.allowClose\" [class]=\"popup.cssHeaderCloseButton\" (click)=\"closeHandler()\">\n <svg [iconName]=\"'icon-close_16x16'\" [size]=\"16\" sv-ng-svg-icon></svg>\n </div>\n </div>\n </div>\n <div [class]=\"popup.cssBody\">\n <survey [model]=\"popup.survey\"></survey>\n </div>\n </div>\n</div>", styles: [""], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i2.SurveyComponent, selector: "survey", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupSurveyComponent, decorators: [{ type: Component, args: [{ selector: "popup-survey", templateUrl: "./popup.survey.component.html", styleUrls: ["./popup.survey.component.scss"] }] }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{ type: Input }], isExpanded: [{ type: Input }], allowClose: [{ type: Input }], closeOnCompleteTimeout: [{ type: Input }], allowFullScreen: [{ type: Input }], onClose: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuc3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wb3B1cC5zdXJ2ZXkuY29tcG9uZW50LnRzIiwiLi4vLi4vc3JjL3BvcHVwLnN1cnZleS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTTdDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUE2QjtJQVNyRSxZQUFZLGlCQUFvQztRQUM5QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNrQiwrQkFBK0I7UUFDaEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ00sWUFBWTtRQUNqQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzFCLFNBQVMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztTQUNuRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCOztRQUNoQyxJQUFJLENBQUEsTUFBQSxPQUFPLENBQUMsT0FBTyxDQUFDLDBDQUFFLFlBQVksT0FBSyxNQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDdEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDbkQ7UUFDRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7U0FDakU7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2tIQXhEVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiwwUkNSakMsMGhEQTBCTTs0RkRsQk8sb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztpQkFDN0M7d0dBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFBvcHVwU3VydmV5TW9kZWwsIFN1cnZleU1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCIuL2Jhc2UtYW5ndWxhclwiO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInBvcHVwLXN1cnZleVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3BvcHVwLnN1cnZleS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vcG9wdXAuc3VydmV5LmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFBvcHVwU3VydmV5Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXI8UG9wdXBTdXJ2ZXlNb2RlbD4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtb2RlbCE6IFN1cnZleU1vZGVsO1xuICBASW5wdXQoKSBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dDbG9zZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNsb3NlT25Db21wbGV0ZVRpbWVvdXQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGFsbG93RnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgcG9wdXAhOiBQb3B1cFN1cnZleU1vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICBjaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogUG9wdXBTdXJ2ZXlNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMucG9wdXA7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldFNob3VsZFJlYXR0YWNoQ2hhbmdlRGV0ZWN0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXRIZWFkZXJDc3MoKTogc3RyaW5nIHtcbiAgICBsZXQgaGVhZGVyQ3NzID0gdGhpcy5wb3B1cC5jc3NIZWFkZXJSb290O1xuICAgIGlmICh0aGlzLnBvcHVwLmlzQ29sbGFwc2VkKSB7XG4gICAgICBoZWFkZXJDc3MgKz0gXCIgXCIgKyB0aGlzLnBvcHVwLmNzc1Jvb3RDb2xsYXBzZWRNb2Q7XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJDc3M7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VIYW5kbGVyKCkge1xuICAgIHRoaXMucG9wdXAuaGlkZSgpO1xuICAgIGlmICghIXRoaXMub25DbG9zZSkge1xuICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzW1wibW9kZWxcIl0/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1tcIm1vZGVsXCJdPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLnBvcHVwID0gbmV3IFBvcHVwU3VydmV5TW9kZWwobnVsbCwgdGhpcy5tb2RlbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wb3B1cC5pc0V4cGFuZGVkID0gdGhpcy5pc0V4cGFuZGVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5hbGxvd0Nsb3NlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucG9wdXAuYWxsb3dDbG9zZSA9IHRoaXMuYWxsb3dDbG9zZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxsb3dGdWxsU2NyZWVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucG9wdXAuYWxsb3dGdWxsU2NyZWVuID0gdGhpcy5hbGxvd0Z1bGxTY3JlZW47XG4gICAgfVxuICAgIGlmICh0aGlzLmNsb3NlT25Db21wbGV0ZVRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wb3B1cC5jbG9zZU9uQ29tcGxldGVUaW1lb3V0ID0gdGhpcy5jbG9zZU9uQ29tcGxldGVUaW1lb3V0O1xuICAgIH1cbiAgICB0aGlzLnBvcHVwLmlzU2hvd2luZyA9IHRydWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLnBvcHVwLmRpc3Bvc2UoKTtcbiAgfVxufSIsIjxkaXYgKm5nSWY9XCIhIXBvcHVwICYmIHBvcHVwLmlzU2hvd2luZ1wiIFtjbGFzc109XCJwb3B1cC5jc3NSb290XCIgW3N0eWxlLndpZHRoXT1cInBvcHVwLnJlbmRlcmVkV2lkdGhcIiBbc3R5bGUubWF4V2lkdGhdPVwicG9wdXAucmVuZGVyZWRXaWR0aFwiIChzY3JvbGwpPVwicG9wdXAub25TY3JvbGwoKVwiPlxuICA8ZGl2IFtjbGFzc109XCJwb3B1cC5jc3NSb290Q29udGVudFwiPlxuICAgIDxkaXYgW2NsYXNzXT1cImdldEhlYWRlckNzcygpXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwicG9wdXAuaXNDb2xsYXBzZWQgJiYgISFwb3B1cC5sb2NUaXRsZVwiIFtjbGFzc109XCJwb3B1cC5jc3NIZWFkZXJUaXRsZUNvbGxhcHNlZFwiPlxuICAgICAgICB7e3BvcHVwLmxvY1RpdGxlLnJlbmRlcmVkSHRtbH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cInBvcHVwLmNzc0hlYWRlckJ1dHRvbnNDb250YWluZXJcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInBvcHVwLmFsbG93RnVsbFNjcmVlblwiIFtjbGFzc109XCJwb3B1cC5jc3NIZWFkZXJGdWxsU2NyZWVuQnV0dG9uXCIgKGNsaWNrKT1cInBvcHVwLnRvZ2dsZUZ1bGxTY3JlZW4oKVwiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJwb3B1cC5pc0Z1bGxTY3JlZW5cIiBbaWNvbk5hbWVdPVwiJ2ljb24tYmFjay10by1wYW5lbF8xNngxNidcIiBbc2l6ZV09XCIxNlwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhcG9wdXAuaXNGdWxsU2NyZWVuXCIgW2ljb25OYW1lXT1cIidpY29uLWZ1bGwtc2NyZWVuXzE2eDE2J1wiIFtzaXplXT1cIjE2XCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgW2NsYXNzXT1cInBvcHVwLmNzc0hlYWRlckNvbGxhcHNlQnV0dG9uXCIgKGNsaWNrKT1cInBvcHVwLmNoYW5nZUV4cGFuZENvbGxhcHNlKClcIj5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJwb3B1cC5pc0V4cGFuZGVkXCIgW2ljb25OYW1lXT1cIidpY29uLW1pbmltaXplXzE2eDE2J1wiIFtzaXplXT1cIjE2XCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwicG9wdXAuaXNDb2xsYXBzZWRcIiBbaWNvbk5hbWVdPVwiJ2ljb24tcmVzdG9yZV8xNngxNidcIiBbc2l6ZV09XCIxNlwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwicG9wdXAuYWxsb3dDbG9zZVwiIFtjbGFzc109XCJwb3B1cC5jc3NIZWFkZXJDbG9zZUJ1dHRvblwiIChjbGljayk9XCJjbG9zZUhhbmRsZXIoKVwiPlxuICAgICAgICAgIDxzdmcgW2ljb25OYW1lXT1cIidpY29uLWNsb3NlXzE2eDE2J1wiIFtzaXplXT1cIjE2XCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IFtjbGFzc109XCJwb3B1cC5jc3NCb2R5XCI+XG4gICAgPHN1cnZleSBbbW9kZWxdPVwicG9wdXAuc3VydmV5XCI+PC9zdXJ2ZXk+XG4gIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==