@meshmakers/shared-services 3.1.149-0 → 3.1.151-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,22 @@
1
- import { BehaviorSubject } from 'rxjs';
1
+ import { BehaviorSubject } from "rxjs";
2
2
  export class DataSourceBase {
3
3
  dataSubject = new BehaviorSubject([]);
4
4
  loadingSubject = new BehaviorSubject(false);
5
5
  totalCountSubject = new BehaviorSubject(0);
6
6
  loading$ = this.loadingSubject.asObservable();
7
7
  totalCount$ = this.totalCountSubject.asObservable();
8
+ addedDtoList = new Array();
9
+ lastPagedResult = null;
8
10
  get totalCount() {
9
11
  return this.totalCount$;
10
12
  }
13
+ addTemporaryDto(dto) {
14
+ this.addedDtoList.push(dto);
15
+ this.onEndLoad();
16
+ }
17
+ get temporaryDtos() {
18
+ return this.addedDtoList;
19
+ }
11
20
  connect(collectionViewer) {
12
21
  return this.dataSubject.asObservable();
13
22
  }
@@ -23,9 +32,17 @@ export class DataSourceBase {
23
32
  this.loadingSubject?.next(true);
24
33
  }
25
34
  onCompleteLoad(pagedResult) {
26
- this.loadingSubject?.next(false);
27
- this.dataSubject?.next(pagedResult.list);
28
- this.totalCountSubject?.next(pagedResult.totalCount);
35
+ this.lastPagedResult = pagedResult;
36
+ this.onEndLoad();
37
+ }
38
+ onEndLoad() {
39
+ if (this.lastPagedResult !== null) {
40
+ const totalCount = this.lastPagedResult?.totalCount + this.addedDtoList.length;
41
+ const list = this.lastPagedResult.list.concat(this.addedDtoList);
42
+ this.loadingSubject?.next(false);
43
+ this.dataSubject?.next(list);
44
+ this.totalCountSubject?.next(totalCount);
45
+ }
29
46
  }
30
47
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YVNvdXJjZUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcy9zcmMvbGliL2RhdGFTb3VyY2VzL2RhdGFTb3VyY2VCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJbkQsTUFBTSxPQUFPLGNBQWM7SUFDUixXQUFXLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUMsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3JELGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXBELFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFcEUsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxDQUFDLGdCQUFrQztRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxnQkFBa0M7UUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFUyxjQUFjLENBQUMsV0FBaUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblZpZXdlciwgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBQYWdlZFJlc3VsdER0byB9IGZyb20gJy4uL21vZGVscy9wYWdlZFJlc3VsdER0byc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlQmFzZTxURHRvPiBpbXBsZW1lbnRzIERhdGFTb3VyY2U8VER0bz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxURHRvW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRvdGFsQ291bnRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJCA9IHRoaXMubG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSB0b3RhbENvdW50JCA9IHRoaXMudG90YWxDb3VudFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHVibGljIGdldCB0b3RhbENvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudG90YWxDb3VudCQ7XG4gIH1cblxuICBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFREdG9bXT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdD8ubmV4dChmYWxzZSk7XG4gICAgdGhpcy5kYXRhU3ViamVjdD8ubmV4dChbXSk7XG4gICAgdGhpcy50b3RhbENvdW50U3ViamVjdD8ubmV4dCgwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJlZ2luTG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Py5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ29tcGxldGVMb2FkKHBhZ2VkUmVzdWx0OiBQYWdlZFJlc3VsdER0bzxURHRvPik6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1N1YmplY3Q/Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuZGF0YVN1YmplY3Q/Lm5leHQocGFnZWRSZXN1bHQubGlzdCk7XG4gICAgdGhpcy50b3RhbENvdW50U3ViamVjdD8ubmV4dChwYWdlZFJlc3VsdC50b3RhbENvdW50KTtcbiAgfVxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YVNvdXJjZUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcy9zcmMvbGliL2RhdGFTb3VyY2VzL2RhdGFTb3VyY2VCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJbkQsTUFBTSxPQUFPLGNBQWM7SUFDUixXQUFXLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUMsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3JELGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXBELFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFbkQsWUFBWSxHQUFXLElBQUksS0FBSyxFQUFRLENBQUM7SUFDbEQsZUFBZSxHQUFnQyxJQUFJLENBQUM7SUFFNUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sZUFBZSxDQUFDLEdBQVM7UUFFOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPLENBQUMsZ0JBQWtDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsVUFBVSxDQUFDLGdCQUFrQztRQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVTLFdBQVc7UUFDbkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxXQUFpQztRQUV4RCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztRQUVuQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLFNBQVM7UUFFZixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7WUFFbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDL0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQ29sbGVjdGlvblZpZXdlciwgRGF0YVNvdXJjZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcbmltcG9ydCB7IFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSBcIi4uL21vZGVscy9wYWdlZFJlc3VsdER0b1wiO1xuXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUJhc2U8VER0bz4gaW1wbGVtZW50cyBEYXRhU291cmNlPFREdG8+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VER0b1tdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0b3RhbENvdW50U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyQgPSB0aGlzLmxvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgcmVhZG9ubHkgdG90YWxDb3VudCQgPSB0aGlzLnRvdGFsQ291bnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWRkZWREdG9MaXN0OiBURHRvW10gPSBuZXcgQXJyYXk8VER0bz4oKTtcbiAgcHJpdmF0ZSBsYXN0UGFnZWRSZXN1bHQ6IFBhZ2VkUmVzdWx0RHRvPFREdG8+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCB0b3RhbENvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudG90YWxDb3VudCQ7XG4gIH1cblxuICBwdWJsaWMgYWRkVGVtcG9yYXJ5RHRvKGR0bzogVER0byk6IHZvaWQge1xuXG4gICAgdGhpcy5hZGRlZER0b0xpc3QucHVzaChkdG8pO1xuICAgIHRoaXMub25FbmRMb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRlbXBvcmFyeUR0b3MoKTogVER0b1tdIHtcbiAgICByZXR1cm4gdGhpcy5hZGRlZER0b0xpc3Q7XG4gIH1cblxuICBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFREdG9bXT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdD8ubmV4dChmYWxzZSk7XG4gICAgdGhpcy5kYXRhU3ViamVjdD8ubmV4dChbXSk7XG4gICAgdGhpcy50b3RhbENvdW50U3ViamVjdD8ubmV4dCgwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJlZ2luTG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Py5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ29tcGxldGVMb2FkKHBhZ2VkUmVzdWx0OiBQYWdlZFJlc3VsdER0bzxURHRvPik6IHZvaWQge1xuXG4gICAgdGhpcy5sYXN0UGFnZWRSZXN1bHQgPSBwYWdlZFJlc3VsdDtcblxuICAgIHRoaXMub25FbmRMb2FkKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRW5kTG9hZCgpOiB2b2lkIHtcblxuICAgIGlmICh0aGlzLmxhc3RQYWdlZFJlc3VsdCAhPT0gbnVsbCkge1xuXG4gICAgICBjb25zdCB0b3RhbENvdW50ID0gdGhpcy5sYXN0UGFnZWRSZXN1bHQ/LnRvdGFsQ291bnQgKyB0aGlzLmFkZGVkRHRvTGlzdC5sZW5ndGg7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5sYXN0UGFnZWRSZXN1bHQubGlzdC5jb25jYXQodGhpcy5hZGRlZER0b0xpc3QpO1xuXG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Py5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuZGF0YVN1YmplY3Q/Lm5leHQobGlzdCk7XG4gICAgICB0aGlzLnRvdGFsQ291bnRTdWJqZWN0Py5uZXh0KHRvdGFsQ291bnQpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -10,10 +10,10 @@ export class BreadcrumbService {
10
10
  updateBreadcrumb(newBreadcrumb) {
11
11
  this.newBreadcrumb.next(newBreadcrumb);
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: BreadcrumbService, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, decorators: [{
17
17
  type: Injectable,
18
18
  args: [{
19
19
  providedIn: 'root'
@@ -46,10 +46,10 @@ export class MessageService {
46
46
  verticalPosition: 'bottom'
47
47
  });
48
48
  }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
50
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: MessageService });
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MessageService });
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: MessageService, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MessageService, decorators: [{
53
53
  type: Injectable
54
54
  }], ctorParameters: () => [{ type: i1.MatSnackBar }] });
55
55
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFJbkQsTUFBTSxPQUFPLGNBQWM7SUFLSTtJQUo3QixrQkFBa0IsQ0FBdUM7SUFFekQsYUFBYSxDQUFpQjtJQUU5QixZQUE2QixRQUFxQjtRQUFyQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssRUFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTLENBQUMsT0FBZSxFQUFFLEtBQWE7UUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2QixNQUFNLFlBQVksR0FBRztZQUNuQixLQUFLO1lBQ0wsT0FBTztTQUNRLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZTtRQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLEtBQUssRUFBRSxPQUFPO1lBQ2QsT0FBTztTQUNRLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRTtZQUNyQyxRQUFRLEVBQUUsSUFBSTtZQUNkLDRCQUE0QjtZQUM1QixrQkFBa0IsRUFBRSxRQUFRO1lBQzVCLGdCQUFnQixFQUFFLFFBQVE7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FyRFUsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi9tb2RlbHMvZXJyb3JNZXNzYWdlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTZXJ2aWNlIHtcbiAgbGF0ZXN0RXJyb3JNZXNzYWdlOiBCZWhhdmlvclN1YmplY3Q8RXJyb3JNZXNzYWdlIHwgbnVsbD47XG5cbiAgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzbmFja0JhcjogTWF0U25hY2tCYXIpIHtcbiAgICB0aGlzLmxhdGVzdEVycm9yTWVzc2FnZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RXJyb3JNZXNzYWdlIHwgbnVsbD4obnVsbCk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gbmV3IEFycmF5PEVycm9yTWVzc2FnZT4oKTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGg7XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UoaW5kZXg6IG51bWJlcik6IEVycm9yTWVzc2FnZSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlc1tpbmRleF07XG4gIH1cblxuICBnZXRMYXRlc3RFcnJvck1lc3NhZ2UoKTogT2JzZXJ2YWJsZTxFcnJvck1lc3NhZ2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubGF0ZXN0RXJyb3JNZXNzYWdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG5cbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB7XG4gICAgICB0aXRsZSxcbiAgICAgIG1lc3NhZ2VcbiAgICB9IGFzIEVycm9yTWVzc2FnZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaChlcnJvck1lc3NhZ2UpO1xuXG4gICAgdGhpcy5sYXRlc3RFcnJvck1lc3NhZ2UubmV4dChlcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgc2hvd0Vycm9yTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0ge1xuICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICBtZXNzYWdlXG4gICAgfSBhcyBFcnJvck1lc3NhZ2U7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goZXJyb3JNZXNzYWdlKTtcblxuICAgIHRoaXMubGF0ZXN0RXJyb3JNZXNzYWdlLm5leHQoZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIHNob3dJbmZvcm1hdGlvbihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNuYWNrQmFyLm9wZW4obWVzc2FnZSwgdW5kZWZpbmVkLCB7XG4gICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIC8vIGhlcmUgc3BlY2lmeSB0aGUgcG9zaXRpb25cbiAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAnYm90dG9tJ1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -8,11 +8,11 @@ export class SharedServicesModule {
8
8
  providers: [MessageService]
9
9
  };
10
10
  }
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule });
13
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule });
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule });
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  declarations: [],
@@ -48,10 +48,10 @@ class MessageService {
48
48
  verticalPosition: 'bottom'
49
49
  });
50
50
  }
51
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
52
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: MessageService });
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
52
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MessageService });
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: MessageService, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MessageService, decorators: [{
55
55
  type: Injectable
56
56
  }], ctorParameters: () => [{ type: i1.MatSnackBar }] });
57
57
 
@@ -62,11 +62,11 @@ class SharedServicesModule {
62
62
  providers: [MessageService]
63
63
  };
64
64
  }
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
66
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule });
67
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule });
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
66
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule });
67
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule });
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: SharedServicesModule, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SharedServicesModule, decorators: [{
70
70
  type: NgModule,
71
71
  args: [{
72
72
  declarations: [],
@@ -84,10 +84,10 @@ class BreadcrumbService {
84
84
  updateBreadcrumb(newBreadcrumb) {
85
85
  this.newBreadcrumb.next(newBreadcrumb);
86
86
  }
87
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
88
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
87
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
88
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
89
89
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: BreadcrumbService, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, decorators: [{
91
91
  type: Injectable,
92
92
  args: [{
93
93
  providedIn: 'root'
@@ -123,9 +123,18 @@ class DataSourceBase {
123
123
  totalCountSubject = new BehaviorSubject(0);
124
124
  loading$ = this.loadingSubject.asObservable();
125
125
  totalCount$ = this.totalCountSubject.asObservable();
126
+ addedDtoList = new Array();
127
+ lastPagedResult = null;
126
128
  get totalCount() {
127
129
  return this.totalCount$;
128
130
  }
131
+ addTemporaryDto(dto) {
132
+ this.addedDtoList.push(dto);
133
+ this.onEndLoad();
134
+ }
135
+ get temporaryDtos() {
136
+ return this.addedDtoList;
137
+ }
129
138
  connect(collectionViewer) {
130
139
  return this.dataSubject.asObservable();
131
140
  }
@@ -141,9 +150,17 @@ class DataSourceBase {
141
150
  this.loadingSubject?.next(true);
142
151
  }
143
152
  onCompleteLoad(pagedResult) {
144
- this.loadingSubject?.next(false);
145
- this.dataSubject?.next(pagedResult.list);
146
- this.totalCountSubject?.next(pagedResult.totalCount);
153
+ this.lastPagedResult = pagedResult;
154
+ this.onEndLoad();
155
+ }
156
+ onEndLoad() {
157
+ if (this.lastPagedResult !== null) {
158
+ const totalCount = this.lastPagedResult?.totalCount + this.addedDtoList.length;
159
+ const list = this.lastPagedResult.list.concat(this.addedDtoList);
160
+ this.loadingSubject?.next(false);
161
+ this.dataSubject?.next(list);
162
+ this.totalCountSubject?.next(totalCount);
163
+ }
147
164
  }
148
165
  }
149
166
 
@@ -1 +1 @@
1
- {"version":3,"file":"meshmakers-shared-services.mjs","sources":["../../../../projects/meshmakers/shared-services/src/lib/services/message.service.ts","../../../../projects/meshmakers/shared-services/src/lib/shared-services.module.ts","../../../../projects/meshmakers/shared-services/src/lib/services/breadcrumb.service.ts","../../../../projects/meshmakers/shared-services/src/lib/models/autoCompleteResult.ts","../../../../projects/meshmakers/shared-services/src/lib/models/errorMessage.ts","../../../../projects/meshmakers/shared-services/src/lib/models/pagedResultDto.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/dataSourceBase.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/genericDataSource.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/isoDateTime.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/enumReader.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/objectCloner.ts","../../../../projects/meshmakers/shared-services/src/public-api.ts","../../../../projects/meshmakers/shared-services/src/meshmakers-shared-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ErrorMessage } from '../models/errorMessage';\n\n@Injectable()\nexport class MessageService {\n latestErrorMessage: BehaviorSubject<ErrorMessage | null>;\n\n errorMessages: ErrorMessage[];\n\n constructor(private readonly snackBar: MatSnackBar) {\n this.latestErrorMessage = new BehaviorSubject<ErrorMessage | null>(null);\n this.errorMessages = new Array<ErrorMessage>();\n }\n\n getErrorMessageCount(): number {\n return this.errorMessages.length;\n }\n\n getErrorMessage(index: number): ErrorMessage {\n return this.errorMessages[index];\n }\n\n getLatestErrorMessage(): Observable<ErrorMessage | null> {\n return this.latestErrorMessage.asObservable();\n }\n\n showError(message: string, title: string): void {\n console.error(message);\n\n const errorMessage = {\n title,\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showErrorMessage(message: string): void {\n console.error(message);\n\n const errorMessage = {\n title: 'Error',\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showInformation(message: string): void {\n this.snackBar.open(message, undefined, {\n duration: 3000,\n // here specify the position\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n });\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MessageService } from './services/message.service';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class SharedServicesModule {\n static forRoot(): ModuleWithProviders<SharedServicesModule> {\n return {\n ngModule: SharedServicesModule,\n providers: [MessageService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {Breadcrumb} from \"../models/breadcrumb\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreadcrumbService {\n public breadcrumbLabels: BehaviorSubject<any> = new BehaviorSubject<any>([]);\n\n public newBreadcrumb: BehaviorSubject<Breadcrumb[]> = new BehaviorSubject<Breadcrumb[]>([]);\n\n updateBreadcrumbLabels(labels: any): void {\n this.breadcrumbLabels.next(labels);\n }\n\n updateBreadcrumb(newBreadcrumb: Breadcrumb[]): void {\n this.newBreadcrumb.next(newBreadcrumb);\n }\n}\n","export class AutoCompleteResult {\n searchTerm?: string;\n\n list?: string[];\n}\n","export class ErrorMessage {\n title?: string;\n message?: string;\n}\n","export class PagedResultDto<T> {\n skip: number;\n take: number;\n totalCount: number;\n list: T[];\n\n constructor() {\n this.skip = 0;\n this.take = 0;\n this.totalCount = 0;\n this.list = new Array<T>();\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { PagedResultDto } from '../models/pagedResultDto';\n\nexport class DataSourceBase<TDto> implements DataSource<TDto> {\n private readonly dataSubject = new BehaviorSubject<TDto[]>([]);\n private readonly loadingSubject = new BehaviorSubject<boolean>(false);\n private readonly totalCountSubject = new BehaviorSubject<number>(0);\n\n public readonly loading$ = this.loadingSubject.asObservable();\n public readonly totalCount$ = this.totalCountSubject.asObservable();\n\n public get totalCount(): Observable<number> {\n return this.totalCount$;\n }\n\n connect(collectionViewer: CollectionViewer): Observable<readonly TDto[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.clear();\n }\n\n clear(): void {\n this.loadingSubject?.next(false);\n this.dataSubject?.next([]);\n this.totalCountSubject?.next(0);\n }\n\n protected onBeginLoad(): void {\n this.loadingSubject?.next(true);\n }\n\n protected onCompleteLoad(pagedResult: PagedResultDto<TDto>): void {\n this.loadingSubject?.next(false);\n this.dataSubject?.next(pagedResult.list);\n this.totalCountSubject?.next(pagedResult.totalCount);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\n\nexport class GenericDataSource<TEntity> implements DataSource<TEntity> {\n private readonly dataSubject = new BehaviorSubject<TEntity[]>([]);\n\n constructor(public data: TEntity[]) {\n this.dataSubject.next(data);\n }\n\n emitChanged(): void {\n this.dataSubject.next(this.data);\n }\n\n connect(collectionViewer: CollectionViewer): Observable<TEntity[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.dataSubject.complete();\n }\n}\n","import { formatISO, parseISO } from 'date-fns';\n\nexport class IsoDateTime {\n public static utcToLocalDateTimeIso(utcDateTime: string): string | null {\n if (!utcDateTime) {\n return null;\n }\n\n return parseISO(utcDateTime).toISOString();\n }\n\n public static localToUtcDateTimeIso(localDateTime: string): string | null {\n if (!localDateTime) {\n return null;\n }\n return formatISO(localDateTime);\n }\n\n public static currentUtcDateTimeIso(): string {\n return formatISO(Date.now());\n }\n}\n","export class EnumTuple<TValue = number> {\n id: string | undefined;\n name: TValue | undefined;\n}\n\nexport class EnumReader<TValue = number> {\n constructor(private readonly value: Record<string, TValue>) {}\n\n public getNamesAndValues(): EnumTuple<TValue>[] {\n return this.getNames().map((n) => {\n return { name: this.value[n], id: n } as EnumTuple<TValue>;\n });\n }\n\n public getNames(): string[] {\n return Object.keys(this.value);\n }\n\n private getObjValues(): TValue[] {\n return Object.keys(this.value).map((k) => this.value[k]);\n }\n}\n","export class ObjectCloner {\n public static cloneObject<TR, TS1>(source: TS1, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n \n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n\n public static cloneObject2<TR, TS1, TS2>(source: TS1, source2: TS2, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source, source2);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n \n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n}\n","/*\n * Public API Surface of shared-services\n */\n\nexport * from './lib/shared-services.module';\nexport * from './lib/services/breadcrumb.service';\nexport * from './lib/services/message.service';\nexport * from './lib/models/autoCompleteResult';\nexport * from './lib/models/errorMessage';\nexport * from './lib/models/pagedResultDto';\nexport * from './lib/models/breadcrumb';\nexport * from './lib/dataSources/dataSourceBase';\nexport * from './lib/dataSources/genericDataSource';\nexport * from './lib/dataSources/entitySelectDataSource';\nexport * from './lib/dataSources/autoCompleteDataSource';\nexport * from './lib/shared/isoDateTime';\nexport * from './lib/shared/enumReader';\nexport * from './lib/shared/objectCloner';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meshmakers-shared-services.mjs","sources":["../../../../projects/meshmakers/shared-services/src/lib/services/message.service.ts","../../../../projects/meshmakers/shared-services/src/lib/shared-services.module.ts","../../../../projects/meshmakers/shared-services/src/lib/services/breadcrumb.service.ts","../../../../projects/meshmakers/shared-services/src/lib/models/autoCompleteResult.ts","../../../../projects/meshmakers/shared-services/src/lib/models/errorMessage.ts","../../../../projects/meshmakers/shared-services/src/lib/models/pagedResultDto.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/dataSourceBase.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/genericDataSource.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/isoDateTime.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/enumReader.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/objectCloner.ts","../../../../projects/meshmakers/shared-services/src/public-api.ts","../../../../projects/meshmakers/shared-services/src/meshmakers-shared-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ErrorMessage } from '../models/errorMessage';\n\n@Injectable()\nexport class MessageService {\n latestErrorMessage: BehaviorSubject<ErrorMessage | null>;\n\n errorMessages: ErrorMessage[];\n\n constructor(private readonly snackBar: MatSnackBar) {\n this.latestErrorMessage = new BehaviorSubject<ErrorMessage | null>(null);\n this.errorMessages = new Array<ErrorMessage>();\n }\n\n getErrorMessageCount(): number {\n return this.errorMessages.length;\n }\n\n getErrorMessage(index: number): ErrorMessage {\n return this.errorMessages[index];\n }\n\n getLatestErrorMessage(): Observable<ErrorMessage | null> {\n return this.latestErrorMessage.asObservable();\n }\n\n showError(message: string, title: string): void {\n console.error(message);\n\n const errorMessage = {\n title,\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showErrorMessage(message: string): void {\n console.error(message);\n\n const errorMessage = {\n title: 'Error',\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showInformation(message: string): void {\n this.snackBar.open(message, undefined, {\n duration: 3000,\n // here specify the position\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n });\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MessageService } from './services/message.service';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class SharedServicesModule {\n static forRoot(): ModuleWithProviders<SharedServicesModule> {\n return {\n ngModule: SharedServicesModule,\n providers: [MessageService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {Breadcrumb} from \"../models/breadcrumb\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreadcrumbService {\n public breadcrumbLabels: BehaviorSubject<any> = new BehaviorSubject<any>([]);\n\n public newBreadcrumb: BehaviorSubject<Breadcrumb[]> = new BehaviorSubject<Breadcrumb[]>([]);\n\n updateBreadcrumbLabels(labels: any): void {\n this.breadcrumbLabels.next(labels);\n }\n\n updateBreadcrumb(newBreadcrumb: Breadcrumb[]): void {\n this.newBreadcrumb.next(newBreadcrumb);\n }\n}\n","export class AutoCompleteResult {\n searchTerm?: string;\n\n list?: string[];\n}\n","export class ErrorMessage {\n title?: string;\n message?: string;\n}\n","export class PagedResultDto<T> {\n skip: number;\n take: number;\n totalCount: number;\n list: T[];\n\n constructor() {\n this.skip = 0;\n this.take = 0;\n this.totalCount = 0;\n this.list = new Array<T>();\n }\n}\n","import { BehaviorSubject, Observable } from \"rxjs\";\nimport { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\nimport { PagedResultDto } from \"../models/pagedResultDto\";\n\nexport class DataSourceBase<TDto> implements DataSource<TDto> {\n private readonly dataSubject = new BehaviorSubject<TDto[]>([]);\n private readonly loadingSubject = new BehaviorSubject<boolean>(false);\n private readonly totalCountSubject = new BehaviorSubject<number>(0);\n\n public readonly loading$ = this.loadingSubject.asObservable();\n public readonly totalCount$ = this.totalCountSubject.asObservable();\n\n private readonly addedDtoList: TDto[] = new Array<TDto>();\n private lastPagedResult: PagedResultDto<TDto> | null = null;\n\n public get totalCount(): Observable<number> {\n return this.totalCount$;\n }\n\n public addTemporaryDto(dto: TDto): void {\n\n this.addedDtoList.push(dto);\n this.onEndLoad();\n }\n\n public get temporaryDtos(): TDto[] {\n return this.addedDtoList;\n }\n\n connect(collectionViewer: CollectionViewer): Observable<readonly TDto[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.clear();\n }\n\n clear(): void {\n this.loadingSubject?.next(false);\n this.dataSubject?.next([]);\n this.totalCountSubject?.next(0);\n }\n\n protected onBeginLoad(): void {\n this.loadingSubject?.next(true);\n }\n\n protected onCompleteLoad(pagedResult: PagedResultDto<TDto>): void {\n\n this.lastPagedResult = pagedResult;\n\n this.onEndLoad();\n }\n\n private onEndLoad(): void {\n\n if (this.lastPagedResult !== null) {\n\n const totalCount = this.lastPagedResult?.totalCount + this.addedDtoList.length;\n const list = this.lastPagedResult.list.concat(this.addedDtoList);\n\n this.loadingSubject?.next(false);\n this.dataSubject?.next(list);\n this.totalCountSubject?.next(totalCount);\n }\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\n\nexport class GenericDataSource<TEntity> implements DataSource<TEntity> {\n private readonly dataSubject = new BehaviorSubject<TEntity[]>([]);\n\n constructor(public data: TEntity[]) {\n this.dataSubject.next(data);\n }\n\n emitChanged(): void {\n this.dataSubject.next(this.data);\n }\n\n connect(collectionViewer: CollectionViewer): Observable<TEntity[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.dataSubject.complete();\n }\n}\n","import { formatISO, parseISO } from 'date-fns';\n\nexport class IsoDateTime {\n public static utcToLocalDateTimeIso(utcDateTime: string): string | null {\n if (!utcDateTime) {\n return null;\n }\n\n return parseISO(utcDateTime).toISOString();\n }\n\n public static localToUtcDateTimeIso(localDateTime: string): string | null {\n if (!localDateTime) {\n return null;\n }\n return formatISO(localDateTime);\n }\n\n public static currentUtcDateTimeIso(): string {\n return formatISO(Date.now());\n }\n}\n","export class EnumTuple<TValue = number> {\n id: string | undefined;\n name: TValue | undefined;\n}\n\nexport class EnumReader<TValue = number> {\n constructor(private readonly value: Record<string, TValue>) {}\n\n public getNamesAndValues(): EnumTuple<TValue>[] {\n return this.getNames().map((n) => {\n return { name: this.value[n], id: n } as EnumTuple<TValue>;\n });\n }\n\n public getNames(): string[] {\n return Object.keys(this.value);\n }\n\n private getObjValues(): TValue[] {\n return Object.keys(this.value).map((k) => this.value[k]);\n }\n}\n","export class ObjectCloner {\n public static cloneObject<TR, TS1>(source: TS1, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n \n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n\n public static cloneObject2<TR, TS1, TS2>(source: TS1, source2: TS2, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source, source2);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n \n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n}\n","/*\n * Public API Surface of shared-services\n */\n\nexport * from './lib/shared-services.module';\nexport * from './lib/services/breadcrumb.service';\nexport * from './lib/services/message.service';\nexport * from './lib/models/autoCompleteResult';\nexport * from './lib/models/errorMessage';\nexport * from './lib/models/pagedResultDto';\nexport * from './lib/models/breadcrumb';\nexport * from './lib/dataSources/dataSourceBase';\nexport * from './lib/dataSources/genericDataSource';\nexport * from './lib/dataSources/entitySelectDataSource';\nexport * from './lib/dataSources/autoCompleteDataSource';\nexport * from './lib/shared/isoDateTime';\nexport * from './lib/shared/enumReader';\nexport * from './lib/shared/objectCloner';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,21 @@
1
- import { Observable } from 'rxjs';
2
- import { CollectionViewer, DataSource } from '@angular/cdk/collections';
3
- import { PagedResultDto } from '../models/pagedResultDto';
1
+ import { Observable } from "rxjs";
2
+ import { CollectionViewer, DataSource } from "@angular/cdk/collections";
3
+ import { PagedResultDto } from "../models/pagedResultDto";
4
4
  export declare class DataSourceBase<TDto> implements DataSource<TDto> {
5
5
  private readonly dataSubject;
6
6
  private readonly loadingSubject;
7
7
  private readonly totalCountSubject;
8
8
  readonly loading$: Observable<boolean>;
9
9
  readonly totalCount$: Observable<number>;
10
+ private readonly addedDtoList;
11
+ private lastPagedResult;
10
12
  get totalCount(): Observable<number>;
13
+ addTemporaryDto(dto: TDto): void;
14
+ get temporaryDtos(): TDto[];
11
15
  connect(collectionViewer: CollectionViewer): Observable<readonly TDto[]>;
12
16
  disconnect(collectionViewer: CollectionViewer): void;
13
17
  clear(): void;
14
18
  protected onBeginLoad(): void;
15
19
  protected onCompleteLoad(pagedResult: PagedResultDto<TDto>): void;
20
+ private onEndLoad;
16
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshmakers/shared-services",
3
- "version": "3.1.149-0",
3
+ "version": "3.1.151-0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.1.2",
6
6
  "@angular/core": "^18.1.2"