ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
76 lines • 9.57 kB
JavaScript
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].apply(this.dataService, queryArgs);
}
removeQuery(filters, sqlTypes) {
return merge(...filters.map((kv => this.dataService[this.methods.delete](kv, this.entity, sqlTypes))));
}
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 {
return this.dataService[this.methods.update](kv, av, this.entity, sqlTypes);
}
}
setDataArray(data) {
this.dataChange.next(data);
this.isLoadingResults = 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) {
if (val) {
this.cleanTimer();
this.loadingTimer = setTimeout(() => {
this._isLoadingResults = val;
}, 500);
}
else {
this.cleanTimer();
this._isLoadingResults = val;
}
}
cleanTimer() {
if (this.loadingTimer) {
clearTimeout(this.loadingTimer);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS5kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL28tdGFibGUuZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs5RCxNQUFNLE9BQU8sU0FBUztJQVVwQixJQUFJLElBQUksS0FBWSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRCxJQUFJLFFBQVEsS0FBYSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUU1RCxZQUNVLFdBQWdCLEVBQ2hCLE1BQWMsRUFDZCxPQUFZO1FBRlosZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFkdEIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFHdkIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBRzdDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUM1QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBUTdDLENBQUM7SUFLTCxRQUFRLENBQUMsU0FBeUI7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVksRUFBRSxRQUFpQjtRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVUsRUFBRSxRQUFpQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsRUFBVSxFQUFFLEVBQVUsRUFBRSxRQUFpQjtRQUNuRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFFeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzdFO0lBQ0gsQ0FBQztJQU1ELFlBQVksQ0FBQyxJQUFnQjtRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFpQixFQUFFLE9BQVk7UUFFbkQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxFQUFFO2dCQUM1QixLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNWLE1BQU07YUFDUDtTQUNGO1FBQ0QsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFZO1FBQy9CLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztZQUMvQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9RdWVyeURhdGFBcmdzIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcXVlcnktZGF0YS1hcmdzLnR5cGUnO1xuXG5cbmV4cG9ydCBjbGFzcyBPVGFibGVEYW8ge1xuXG4gIHVzaW5nU3RhdGljRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nVGltZXI7XG4gIHByb3RlY3RlZCBfaXNMb2FkaW5nUmVzdWx0czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuZXZlciB0aGUgZGF0YSBoYXMgYmVlbiBtb2RpZmllZC4gKi9cbiAgZGF0YUNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcbiAgc3FsVHlwZXNDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG9iamVjdD4oe30pO1xuICBnZXQgZGF0YSgpOiBhbnlbXSB7IHJldHVybiB0aGlzLmRhdGFDaGFuZ2UudmFsdWU7IH1cbiAgZ2V0IHNxbFR5cGVzKCk6IG9iamVjdCB7IHJldHVybiB0aGlzLnNxbFR5cGVzQ2hhbmdlLnZhbHVlOyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogYW55LFxuICAgIHByaXZhdGUgZW50aXR5OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBtZXRob2RzOiBhbnlcbiAgKSB7IH1cblxuICAvKipcbiAgICogQ2FsbCB0aGUgc2VydmljZSBxdWVyeSBhbmQgZW1pdCBkYXRhIGhhcyBiZW4gbW9kaWZpZWRcbiAgICovXG4gIGdldFF1ZXJ5KHF1ZXJ5QXJnczogT1F1ZXJ5RGF0YUFyZ3MpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuaXNMb2FkaW5nUmVzdWx0cyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2VbdGhpcy5tZXRob2RzLnF1ZXJ5XS5hcHBseSh0aGlzLmRhdGFTZXJ2aWNlLCBxdWVyeUFyZ3MpO1xuICB9XG5cbiAgcmVtb3ZlUXVlcnkoZmlsdGVyczogYW55LCBzcWxUeXBlcz86IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG1lcmdlKC4uLmZpbHRlcnMubWFwKChrdiA9PiB0aGlzLmRhdGFTZXJ2aWNlW3RoaXMubWV0aG9kcy5kZWxldGVdKGt2LCB0aGlzLmVudGl0eSwgc3FsVHlwZXMpKSkpO1xuICB9XG5cbiAgaW5zZXJ0UXVlcnkoYXY6IG9iamVjdCwgc3FsVHlwZXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLnVzaW5nU3RhdGljRGF0YSkge1xuICAgICAgdGhpcy5kYXRhLnB1c2goYXYpO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlW3RoaXMubWV0aG9kcy5pbnNlcnRdKGF2LCB0aGlzLmVudGl0eSwgc3FsVHlwZXMpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVF1ZXJ5KGt2OiBvYmplY3QsIGF2OiBvYmplY3QsIHNxbFR5cGVzPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy51c2luZ1N0YXRpY0RhdGEpIHtcbiAgICAgIC8vIE9ubHkgdG8gc2ltdWxhdGUgdGhlIHNlcnZpY2UgcmVzcG9uc2UsIHRoZSBtb2RlbCBjaGFuZ2UgaXMgZG9uZSBpbiB0aGUgZWRpdG9yXG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZVt0aGlzLm1ldGhvZHMudXBkYXRlXShrdiwgYXYsIHRoaXMuZW50aXR5LCBzcWxUeXBlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkYXRhIGFycmF5IGFuZCBlbWl0IGRhdGEgaGFzIGJlbiBtb2RpZmllZFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgc2V0RGF0YUFycmF5KGRhdGE6IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dChkYXRhKTtcbiAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdHMgPSBmYWxzZTtcbiAgICByZXR1cm4gb2YoZGF0YSk7XG4gIH1cblxuICBzZXRBc3luY2hyb25vdXNDb2x1bW4odmFsdWU6IEFycmF5PGFueT4sIHJvd0RhdGE6IGFueSkge1xuICAgIC8vIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhW3Jvd0luZGV4XSwgdmFsdWUpO1xuICAgIGxldCBpbmRleCA9IG51bGw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmRhdGFbaV0gPT09IHJvd0RhdGEpIHtcbiAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGluZGV4ICE9PSBudWxsKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGF0YVtpbmRleF0sIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNMb2FkaW5nUmVzdWx0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nUmVzdWx0cztcbiAgfVxuXG4gIHNldCBpc0xvYWRpbmdSZXN1bHRzKHZhbDogYm9vbGVhbikge1xuICAgIGlmICh2YWwpIHtcbiAgICAgIHRoaXMuY2xlYW5UaW1lcigpO1xuICAgICAgdGhpcy5sb2FkaW5nVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5faXNMb2FkaW5nUmVzdWx0cyA9IHZhbDtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xlYW5UaW1lcigpO1xuICAgICAgdGhpcy5faXNMb2FkaW5nUmVzdWx0cyA9IHZhbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYW5UaW1lcigpIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxvYWRpbmdUaW1lcik7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==