survey-creator-angular
Version:
Use SurveyJS Creator to create or edit JSON for SurveyJS Form Library.
40 lines • 4.58 kB
JavaScript
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=