diff --git a/projects/poweredsoft/data/package.json b/projects/poweredsoft/data/package.json index 47c93da..4fadd49 100644 --- a/projects/poweredsoft/data/package.json +++ b/projects/poweredsoft/data/package.json @@ -1,6 +1,6 @@ { "name": "@poweredsoft/data", - "version": "0.0.32", + "version": "0.0.33", "peerDependencies": { "rxjs": "^6.5.3" } diff --git a/projects/poweredsoft/data/src/lib/DataSource.ts b/projects/poweredsoft/data/src/lib/DataSource.ts index 51b2222..29f5f3b 100644 --- a/projects/poweredsoft/data/src/lib/DataSource.ts +++ b/projects/poweredsoft/data/src/lib/DataSource.ts @@ -63,6 +63,38 @@ export class DataSource implements IDataSource this._initCriteria(); } + clear() { + this.data = null; + this._dataSubject.next(null); + } + + updateData(value: IQueryExecutionResult & IQueryExecutionGroupResult) { + this.data = value; + this._dataSubject.next(this.data); + } + + replaceDataWithArray(items: TModel[]) { + this.data = { + totalRecords: items.length, + numberOfPages: null, + groups: null, + aggregates: null, + data: items + }; + this._dataSubject.next(this.data); + } + + replaceDataWithSingle(item: TModel) { + this.data = { + totalRecords: 1, + numberOfPages: null, + groups: null, + aggregates: null, + data: [item] + }; + this._dataSubject.next(this.data); + } + protected _initCriteria() { if (!this.options.defaultCriteria) return; diff --git a/projects/poweredsoft/data/src/lib/IDataSource.ts b/projects/poweredsoft/data/src/lib/IDataSource.ts index ebdeac2..fbc73a2 100644 --- a/projects/poweredsoft/data/src/lib/IDataSource.ts +++ b/projects/poweredsoft/data/src/lib/IDataSource.ts @@ -12,6 +12,10 @@ export interface IDataSource excuteQuery(query: TQuery): Observable & IQueryExecutionGroupResult>; refresh(); resolveIdField(model: TModel) : TKeyType; + clear(); + updateData(value: IQueryExecutionResult & IQueryExecutionGroupResult); + replaceDataWithArray(items: TModel[]); + replaceDataWithSingle(item: TModel); data$: Observable & IQueryExecutionGroupResult>; loading$: Observable;