UNPKG

ontimize-web-ngx

Version:
79 lines 10.8 kB
import { BehaviorSubject, merge, of } from 'rxjs'; export class OTableDao { get data() { return this.dataChange.value; } get sqlTypes() { return this.sqlTypesChange.value; } constructor(dataService, entity, methods) { this.dataService = dataService; this.entity = entity; this.methods = methods; this.usingStaticData = false; this._isLoadingResults = false; this.dataChange = new BehaviorSubject([]); this.sqlTypesChange = new BehaviorSubject({}); } getQuery(queryArgs) { this.isLoadingResults = true; return this.dataService[this.methods.query](this.dataService.requestArgumentAdapter.parseQueryParameters(queryArgs)); } removeQuery(filters, sqlTypes) { const deleteRequests = filters.map((kv => { const id = this.dataService.requestArgumentAdapter.getIdFromFilter(kv); return this.dataService[this.methods.delete](id, this.entity, sqlTypes); })); return merge(...deleteRequests); } insertQuery(av, sqlTypes) { if (this.usingStaticData) { this.data.push(av); return of(this.data); } else { return this.dataService[this.methods.insert](av, this.entity, sqlTypes); } } updateQuery(kv, av, sqlTypes) { if (this.usingStaticData) { return of([]); } else { const id = this.dataService.requestArgumentAdapter.getIdFromFilter(kv); return this.dataService[this.methods.update](id, av, this.entity, sqlTypes); } } setDataArray(data) { this.dataChange.next(data); this.notLoadingResults = false; return of(data); } setAsynchronousColumn(value, rowData) { let index = null; for (let i = 0; i < this.data.length; i++) { if (this.data[i] === rowData) { index = i; break; } } if (index !== null) { Object.assign(this.data[index], value); } } get isLoadingResults() { return this._isLoadingResults; } set isLoadingResults(val) { this.cleanTimer(); this.loadingTimer = setTimeout(() => { this._isLoadingResults = val; }, 500); } set notLoadingResults(val) { this.cleanTimer(); this._isLoadingResults = val; } cleanTimer() { if (this.loadingTimer) { clearTimeout(this.loadingTimer); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS5kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL28tdGFibGUuZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU85RCxNQUFNLE9BQU8sU0FBUztJQVVwQixJQUFJLElBQUksS0FBWSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRCxJQUFJLFFBQVEsS0FBYSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUU1RCxZQUNtQixXQUF5QyxFQUN6QyxNQUFjLEVBQ2QsT0FBWTtRQUZaLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUN6QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQWQvQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUd2QixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHN0MsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7SUFRN0MsQ0FBQztJQUtMLFFBQVEsQ0FBQyxTQUF5QjtRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVksRUFBRSxR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UUFDbEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUMvQixDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9RdWVyeURhdGFBcmdzIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcXVlcnktZGF0YS1hcmdzLnR5cGUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9iYXNlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLXJlc3BvbnNlLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGNsYXNzIE9UYWJsZURhbyB7XG5cbiAgdXNpbmdTdGF0aWNEYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmdUaW1lcjtcbiAgcHJvdGVjdGVkIF9pc0xvYWRpbmdSZXN1bHRzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW5ldmVyIHRoZSBkYXRhIGhhcyBiZWVuIG1vZGlmaWVkLiAqL1xuICBkYXRhQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuICBzcWxUeXBlc0NoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0Pih7fSk7XG4gIGdldCBkYXRhKCk6IGFueVtdIHsgcmV0dXJuIHRoaXMuZGF0YUNoYW5nZS52YWx1ZTsgfVxuICBnZXQgc3FsVHlwZXMoKTogb2JqZWN0IHsgcmV0dXJuIHRoaXMuc3FsVHlwZXNDaGFuZ2UudmFsdWU7IH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTZXJ2aWNlOiBCYXNlU2VydmljZTxTZXJ2aWNlUmVzcG9uc2U+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRob2RzOiBhbnlcbiAgKSB7IH1cblxuICAvKipcbiAgICogQ2FsbCB0aGUgc2VydmljZSBxdWVyeSBhbmQgZW1pdCBkYXRhIGhhcyBiZW4gbW9kaWZpZWRcbiAgICovXG4gIGdldFF1ZXJ5KHF1ZXJ5QXJnczogT1F1ZXJ5RGF0YUFyZ3MpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuaXNMb2FkaW5nUmVzdWx0cyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2VbdGhpcy5tZXRob2RzLnF1ZXJ5XSh0aGlzLmRhdGFTZXJ2aWNlLnJlcXVlc3RBcmd1bWVudEFkYXB0ZXIucGFyc2VRdWVyeVBhcmFtZXRlcnMocXVlcnlBcmdzKSk7XG4gIH1cblxuICByZW1vdmVRdWVyeShmaWx0ZXJzOiBhbnksIHNxbFR5cGVzPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGNvbnN0IGRlbGV0ZVJlcXVlc3RzID0gZmlsdGVycy5tYXAoKGt2ID0+IHtcbiAgICAgIGNvbnN0IGlkID0gdGhpcy5kYXRhU2VydmljZS5yZXF1ZXN0QXJndW1lbnRBZGFwdGVyLmdldElkRnJvbUZpbHRlcihrdik7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZVt0aGlzLm1ldGhvZHMuZGVsZXRlXShpZCwgdGhpcy5lbnRpdHksIHNxbFR5cGVzKTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIG1lcmdlKC4uLmRlbGV0ZVJlcXVlc3RzKTtcbiAgfVxuXG4gIGluc2VydFF1ZXJ5KGF2OiBvYmplY3QsIHNxbFR5cGVzPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy51c2luZ1N0YXRpY0RhdGEpIHtcbiAgICAgIHRoaXMuZGF0YS5wdXNoKGF2KTtcbiAgICAgIHJldHVybiBvZih0aGlzLmRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZVt0aGlzLm1ldGhvZHMuaW5zZXJ0XShhdiwgdGhpcy5lbnRpdHksIHNxbFR5cGVzKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVRdWVyeShrdjogb2JqZWN0LCBhdjogb2JqZWN0LCBzcWxUeXBlcz86IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMudXNpbmdTdGF0aWNEYXRhKSB7XG4gICAgICAvLyBPbmx5IHRvIHNpbXVsYXRlIHRoZSBzZXJ2aWNlIHJlc3BvbnNlLCB0aGUgbW9kZWwgY2hhbmdlIGlzIGRvbmUgaW4gdGhlIGVkaXRvclxuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaWQgPSB0aGlzLmRhdGFTZXJ2aWNlLnJlcXVlc3RBcmd1bWVudEFkYXB0ZXIuZ2V0SWRGcm9tRmlsdGVyKGt2KTtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlW3RoaXMubWV0aG9kcy51cGRhdGVdKGlkLCBhdiwgdGhpcy5lbnRpdHksIHNxbFR5cGVzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRhdGEgYXJyYXkgYW5kIGVtaXQgZGF0YSBoYXMgYmVuIG1vZGlmaWVkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqL1xuICBzZXREYXRhQXJyYXkoZGF0YTogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KGRhdGEpO1xuICAgIHRoaXMubm90TG9hZGluZ1Jlc3VsdHMgPSBmYWxzZTtcbiAgICByZXR1cm4gb2YoZGF0YSk7XG4gIH1cblxuICBzZXRBc3luY2hyb25vdXNDb2x1bW4odmFsdWU6IEFycmF5PGFueT4sIHJvd0RhdGE6IGFueSkge1xuICAgIC8vIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhW3Jvd0luZGV4XSwgdmFsdWUpO1xuICAgIGxldCBpbmRleCA9IG51bGw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmRhdGFbaV0gPT09IHJvd0RhdGEpIHtcbiAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGluZGV4ICE9PSBudWxsKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGF0YVtpbmRleF0sIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNMb2FkaW5nUmVzdWx0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nUmVzdWx0cztcbiAgfVxuXG4gIHNldCBpc0xvYWRpbmdSZXN1bHRzKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuY2xlYW5UaW1lcigpO1xuICAgIHRoaXMubG9hZGluZ1RpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9pc0xvYWRpbmdSZXN1bHRzID0gdmFsO1xuICAgIH0sIDUwMCk7XG5cbiAgfVxuXG4gIHNldCBub3RMb2FkaW5nUmVzdWx0cyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNsZWFuVGltZXIoKTtcbiAgICB0aGlzLl9pc0xvYWRpbmdSZXN1bHRzID0gdmFsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFuVGltZXIoKSB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1RpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5sb2FkaW5nVGltZXIpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=