UNPKG

survey-creator-angular

Version:

Use SurveyJS Creator to create or edit JSON for SurveyJS Form Library.

40 lines 4.58 kB
import { Component } from "@angular/core"; import { BaseAngular } from "survey-angular-ui"; import * as i0 from "@angular/core"; export class CreatorModelComponent extends BaseAngular { createHash() { this.hash = {}; this.getPropertiesToTrack().forEach((prop) => { this.hash[prop] = this[prop]; }); } ngOnInit() { this.createModel(); this.createHash(); super.ngOnInit(); } ngDoCheck() { if (this.needUpdateModel()) this.createModel(); super.ngDoCheck(); } needUpdateModel() { let res = false; Object.keys(this.hash).forEach(key => { if (this.hash[key] != this[key]) { this.hash[key] = this[key]; res = true; } }); return res; } } CreatorModelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorModelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); CreatorModelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorModelComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "", isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorModelComponent, decorators: [{ type: Component, args: [{ template: "" }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvci1tb2RlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlYXRvci1tb2RlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNaEQsTUFBTSxPQUFnQixxQkFBc0MsU0FBUSxXQUFjO0lBTXhFLFVBQVU7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFTLElBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNRLFNBQVM7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBVSxJQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQVMsSUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQyxHQUFHLEdBQUcsSUFBSSxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7bUhBaENtQixxQkFBcUI7dUdBQXJCLHFCQUFxQiwyRUFGL0IsRUFBRTs0RkFFUSxxQkFBcUI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBLZXlWYWx1ZURpZmZlcnMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmFzZUFuZ3VsYXIgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcbmltcG9ydCB7IEJhc2UgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBcIlwiXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENyZWF0b3JNb2RlbENvbXBvbmVudDxUIGV4dGVuZHMgQmFzZT4gZXh0ZW5kcyBCYXNlQW5ndWxhcjxUPiB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRQcm9wZXJ0aWVzVG9UcmFjaygpOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZU1vZGVsKCk6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBoYXNoITogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9O1xuXG4gIHByaXZhdGUgY3JlYXRlSGFzaCgpIHtcbiAgICB0aGlzLmhhc2ggPSB7fTtcbiAgICB0aGlzLmdldFByb3BlcnRpZXNUb1RyYWNrKCkuZm9yRWFjaCgocHJvcDogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmhhc2hbcHJvcF0gPSAoPGFueT50aGlzKVtwcm9wXTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlTW9kZWwoKTtcbiAgICB0aGlzLmNyZWF0ZUhhc2goKTtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG4gIG92ZXJyaWRlIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZWVkVXBkYXRlTW9kZWwoKSlcbiAgICAgIHRoaXMuY3JlYXRlTW9kZWwoKTtcbiAgICBzdXBlci5uZ0RvQ2hlY2soKTtcbiAgfVxuICBuZWVkVXBkYXRlTW9kZWwoKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlcyA9IGZhbHNlO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuaGFzaCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzaFtrZXldICE9ICg8YW55PnRoaXMpW2tleV0pIHtcbiAgICAgICAgdGhpcy5oYXNoW2tleV0gPSAoPGFueT50aGlzKVtrZXldO1xuICAgICAgICByZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXM7XG4gIH1cbn0iXX0=