@meshmakers/shared-services 0.0.0-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.
- package/README.md +28 -0
- package/esm2020/lib/dataSources/autoCompleteDataSource.mjs +2 -0
- package/esm2020/lib/dataSources/dataSourceBase.mjs +31 -0
- package/esm2020/lib/dataSources/entitySelectDataSource.mjs +2 -0
- package/esm2020/lib/dataSources/genericDataSource.mjs +18 -0
- package/esm2020/lib/models/autoCompleteResult.mjs +3 -0
- package/esm2020/lib/models/errorMessage.mjs +3 -0
- package/esm2020/lib/models/pagedResultDto.mjs +9 -0
- package/esm2020/lib/services/message.service.mjs +43 -0
- package/esm2020/lib/shared/enumReader.mjs +19 -0
- package/esm2020/lib/shared/isoDateTime.mjs +19 -0
- package/esm2020/lib/shared/objectCloner.mjs +21 -0
- package/esm2020/lib/shared-services.module.mjs +25 -0
- package/esm2020/meshmakers-shared-services.mjs +5 -0
- package/esm2020/public-api.mjs +16 -0
- package/fesm2015/meshmakers-shared-services.mjs +197 -0
- package/fesm2015/meshmakers-shared-services.mjs.map +1 -0
- package/fesm2020/meshmakers-shared-services.mjs +197 -0
- package/fesm2020/meshmakers-shared-services.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/dataSources/autoCompleteDataSource.d.ts +6 -0
- package/lib/dataSources/dataSourceBase.d.ts +16 -0
- package/lib/dataSources/entitySelectDataSource.d.ts +6 -0
- package/lib/dataSources/genericDataSource.d.ts +10 -0
- package/lib/models/autoCompleteResult.d.ts +4 -0
- package/lib/models/errorMessage.d.ts +4 -0
- package/lib/models/pagedResultDto.d.ts +7 -0
- package/lib/services/message.service.d.ts +17 -0
- package/lib/shared/enumReader.d.ts +11 -0
- package/lib/shared/isoDateTime.d.ts +5 -0
- package/lib/shared/objectCloner.d.ts +4 -0
- package/lib/shared-services.module.d.ts +8 -0
- package/package.json +27 -0
- package/public-api.d.ts +12 -0
package/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# SharedServices
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project shared-services` to generate a new component. You can also
|
|
8
|
+
use `ng generate directive|pipe|service|class|guard|interface|enum|module --project shared-services`.
|
|
9
|
+
> Note: Don't forget to add `--project shared-services` or else it will be added to the default project in
|
|
10
|
+
> your `angular.json` file.
|
|
11
|
+
|
|
12
|
+
## Build
|
|
13
|
+
|
|
14
|
+
Run `ng build shared-services` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
15
|
+
|
|
16
|
+
## Publishing
|
|
17
|
+
|
|
18
|
+
After building your library with `ng build shared-services`, go to the dist folder `cd dist/shared-services` and
|
|
19
|
+
run `npm publish`.
|
|
20
|
+
|
|
21
|
+
## Running unit tests
|
|
22
|
+
|
|
23
|
+
Run `ng test shared-services` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
24
|
+
|
|
25
|
+
## Further help
|
|
26
|
+
|
|
27
|
+
To get more help on the Angular CLI use `ng help` or go check out
|
|
28
|
+
the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b0NvbXBsZXRlRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzL3NyYy9saWIvZGF0YVNvdXJjZXMvYXV0b0NvbXBsZXRlRGF0YVNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtBdXRvQ29tcGxldGVSZXN1bHR9IGZyb20gXCIuLi9tb2RlbHMvYXV0b0NvbXBsZXRlUmVzdWx0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0NvbXBsZXRlRGF0YVNvdXJjZSB7XG4gIG9uRmlsdGVyKGZpbHRlcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRvQ29tcGxldGVSZXN1bHQ+O1xuXG4gIG9uUHJlcHJvY2Vzc1NlYXJjaFN0cmluZyhzZWFyY2g6IHN0cmluZyk6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BehaviorSubject } from "rxjs";
|
|
2
|
+
export class DataSourceBase {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.dataSubject = new BehaviorSubject([]);
|
|
5
|
+
this.loadingSubject = new BehaviorSubject(false);
|
|
6
|
+
this.loading$ = this.loadingSubject.asObservable();
|
|
7
|
+
this.totalCountSubject = new BehaviorSubject(0);
|
|
8
|
+
this.totalCount$ = this.totalCountSubject.asObservable();
|
|
9
|
+
}
|
|
10
|
+
connect(collectionViewer) {
|
|
11
|
+
return this.dataSubject.asObservable();
|
|
12
|
+
}
|
|
13
|
+
disconnect(collectionViewer) {
|
|
14
|
+
this.dataSubject.complete();
|
|
15
|
+
this.loadingSubject.complete();
|
|
16
|
+
}
|
|
17
|
+
clear() {
|
|
18
|
+
this.loadingSubject.next(false);
|
|
19
|
+
this.dataSubject.next([]);
|
|
20
|
+
this.totalCountSubject.next(0);
|
|
21
|
+
}
|
|
22
|
+
onBeginLoad() {
|
|
23
|
+
this.loadingSubject.next(true);
|
|
24
|
+
}
|
|
25
|
+
onCompleteLoad(pagedResult) {
|
|
26
|
+
this.loadingSubject.next(false);
|
|
27
|
+
this.dataSubject.next(pagedResult.list);
|
|
28
|
+
this.totalCountSubject.next(pagedResult.totalCount);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YVNvdXJjZUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcy9zcmMvbGliL2RhdGFTb3VyY2VzL2RhdGFTb3VyY2VCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFJakQsTUFBTSxPQUFPLGNBQWM7SUFPekI7UUFOUSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDN0MsYUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsZ0JBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFHcEUsQ0FBQztJQUVELE9BQU8sQ0FBQyxnQkFBa0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxVQUFVLENBQUMsZ0JBQWtDO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVTLFdBQVc7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxXQUFpQztRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0NvbGxlY3Rpb25WaWV3ZXIsIERhdGFTb3VyY2V9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcbmltcG9ydCB7UGFnZWRSZXN1bHREdG99IGZyb20gXCIuLi9tb2RlbHMvcGFnZWRSZXN1bHREdG9cIjtcblxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VCYXNlPFREdG8+IGltcGxlbWVudHMgRGF0YVNvdXJjZTxURHRvPiB7XG4gIHByaXZhdGUgZGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PFREdG8+PihbXSk7XG4gIHByaXZhdGUgbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgcHJpdmF0ZSB0b3RhbENvdW50U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIHJlYWRvbmx5IHRvdGFsQ291bnQkID0gdGhpcy50b3RhbENvdW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGNvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VER0b1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBkaXNjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoW10pO1xuICAgIHRoaXMudG90YWxDb3VudFN1YmplY3QubmV4dCgwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJlZ2luTG9hZCgpIHtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Db21wbGV0ZUxvYWQocGFnZWRSZXN1bHQ6IFBhZ2VkUmVzdWx0RHRvPFREdG8+KSB7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQocGFnZWRSZXN1bHQubGlzdCk7XG4gICAgdGhpcy50b3RhbENvdW50U3ViamVjdC5uZXh0KHBhZ2VkUmVzdWx0LnRvdGFsQ291bnQpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5U2VsZWN0RGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzL3NyYy9saWIvZGF0YVNvdXJjZXMvZW50aXR5U2VsZWN0RGF0YVNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtQYWdlZFJlc3VsdER0b30gZnJvbSBcIi4uL21vZGVscy9wYWdlZFJlc3VsdER0b1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNlbGVjdERhdGFTb3VyY2U8VD4ge1xuXG4gIG9uRmlsdGVyKGZpbHRlcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxQYWdlZFJlc3VsdER0bzxUPj47XG5cbiAgb25EaXNwbGF5RW50aXR5KGVudGl0eTogVCk6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BehaviorSubject } from "rxjs";
|
|
2
|
+
export class GenericDataSource {
|
|
3
|
+
constructor(data) {
|
|
4
|
+
this.data = data;
|
|
5
|
+
this.dataSubject = new BehaviorSubject([]);
|
|
6
|
+
this.dataSubject.next(data);
|
|
7
|
+
}
|
|
8
|
+
emitChanged() {
|
|
9
|
+
this.dataSubject.next(this.data);
|
|
10
|
+
}
|
|
11
|
+
connect(collectionViewer) {
|
|
12
|
+
return this.dataSubject.asObservable();
|
|
13
|
+
}
|
|
14
|
+
disconnect(collectionViewer) {
|
|
15
|
+
this.dataSubject.complete();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY0RhdGFTb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcy9zcmMvbGliL2RhdGFTb3VyY2VzL2dlbmVyaWNEYXRhU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFHakQsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFtQixJQUFvQjtRQUFwQixTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUYvQixnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQUk1RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU5QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR0QsT0FBTyxDQUFDLGdCQUFrQztRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxnQkFBa0M7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Q29sbGVjdGlvblZpZXdlciwgRGF0YVNvdXJjZX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJpY0RhdGFTb3VyY2U8VEVudGl0eT4gaW1wbGVtZW50cyBEYXRhU291cmNlPFRFbnRpdHk+IHtcbiAgcHJpdmF0ZSBkYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8VEVudGl0eT4+KFtdKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogQXJyYXk8VEVudGl0eT4pIHtcblxuICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcblxuICB9XG5cbiAgZW1pdENoYW5nZWQoKSB7XG4gICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KHRoaXMuZGF0YSk7XG4gIH1cblxuXG4gIGNvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBkaXNjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class AutoCompleteResult {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b0NvbXBsZXRlUmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXMvc3JjL2xpYi9tb2RlbHMvYXV0b0NvbXBsZXRlUmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxrQkFBa0I7Q0FLOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlUmVzdWx0IHtcblxuICBzZWFyY2hUZXJtOiBzdHJpbmc7XG5cbiAgbGlzdDogQXJyYXk8c3RyaW5nPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class ErrorMessage {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JNZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXMvc3JjL2xpYi9tb2RlbHMvZXJyb3JNZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFZO0NBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVycm9yTWVzc2FnZSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class PagedResultDto {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.skip = 0;
|
|
4
|
+
this.take = 0;
|
|
5
|
+
this.totalCount = 0;
|
|
6
|
+
this.list = new Array();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZWRSZXN1bHREdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcy9zcmMvbGliL21vZGVscy9wYWdlZFJlc3VsdER0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztJQU96QjtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFBhZ2VkUmVzdWx0RHRvPFQ+IHtcblxuICBza2lwOiBudW1iZXI7XG4gIHRha2U6IG51bWJlcjtcbiAgdG90YWxDb3VudDogbnVtYmVyO1xuICBsaXN0OiBBcnJheTxUPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNraXAgPSAwO1xuICAgIHRoaXMudGFrZSA9IDA7XG4gICAgdGhpcy50b3RhbENvdW50ID0gMDtcbiAgICB0aGlzLmxpc3QgPSBuZXcgQXJyYXk8VD4oKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from "rxjs";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/snack-bar";
|
|
5
|
+
export class MessageService {
|
|
6
|
+
constructor(snackBar) {
|
|
7
|
+
this.snackBar = snackBar;
|
|
8
|
+
this.latestErrorMessage = new BehaviorSubject(null);
|
|
9
|
+
this.errorMessages = new Array();
|
|
10
|
+
}
|
|
11
|
+
getErrorMessageCount() {
|
|
12
|
+
return this.errorMessages.length;
|
|
13
|
+
}
|
|
14
|
+
getErrorMessage(index) {
|
|
15
|
+
return this.errorMessages[index];
|
|
16
|
+
}
|
|
17
|
+
getLatestErrorMessage() {
|
|
18
|
+
return this.latestErrorMessage.asObservable();
|
|
19
|
+
}
|
|
20
|
+
showError(message, title) {
|
|
21
|
+
console.error(message);
|
|
22
|
+
const errorMessage = {
|
|
23
|
+
title: title,
|
|
24
|
+
message: message
|
|
25
|
+
};
|
|
26
|
+
this.errorMessages.push(errorMessage);
|
|
27
|
+
this.latestErrorMessage.next(errorMessage);
|
|
28
|
+
}
|
|
29
|
+
showInformation(message) {
|
|
30
|
+
this.snackBar.open(message, null, {
|
|
31
|
+
duration: 3000,
|
|
32
|
+
// here specify the position
|
|
33
|
+
horizontalPosition: "center",
|
|
34
|
+
verticalPosition: 'bottom'
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
MessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
+
MessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService, decorators: [{
|
|
41
|
+
type: Injectable
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.MatSnackBar }]; } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7QUFJakQsTUFBTSxPQUFPLGNBQWM7SUFPekIsWUFBb0IsUUFBcUI7UUFBckIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUV2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssRUFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTLENBQUMsT0FBZSxFQUFFLEtBQWE7UUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2QixNQUFNLFlBQVksR0FBaUI7WUFDakMsS0FBSyxFQUFFLEtBQUs7WUFDWixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUNoQyxRQUFRLEVBQUUsSUFBSTtZQUNkLDRCQUE0QjtZQUM1QixrQkFBa0IsRUFBRSxRQUFRO1lBQzVCLGdCQUFnQixFQUFFLFFBQVE7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBNUNVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0U25hY2tCYXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtFcnJvck1lc3NhZ2V9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JNZXNzYWdlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZXNzYWdlU2VydmljZSB7XG5cbiAgbGF0ZXN0RXJyb3JNZXNzYWdlOiBCZWhhdmlvclN1YmplY3Q8RXJyb3JNZXNzYWdlPjtcblxuICBlcnJvck1lc3NhZ2VzOiBBcnJheTxFcnJvck1lc3NhZ2U+O1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIpIHtcblxuICAgIHRoaXMubGF0ZXN0RXJyb3JNZXNzYWdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFcnJvck1lc3NhZ2U+KG51bGwpO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IG5ldyBBcnJheTxFcnJvck1lc3NhZ2U+KCk7XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2VDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2VzLmxlbmd0aDtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZShpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlc1tpbmRleF07XG4gIH1cblxuICBnZXRMYXRlc3RFcnJvck1lc3NhZ2UoKTogT2JzZXJ2YWJsZTxFcnJvck1lc3NhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5sYXRlc3RFcnJvck1lc3NhZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBzaG93RXJyb3IobWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKSB7XG4gICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcblxuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IDxFcnJvck1lc3NhZ2U+e1xuICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZVxuICAgIH07XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goZXJyb3JNZXNzYWdlKTtcblxuICAgIHRoaXMubGF0ZXN0RXJyb3JNZXNzYWdlLm5leHQoZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIHNob3dJbmZvcm1hdGlvbihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNuYWNrQmFyLm9wZW4obWVzc2FnZSwgbnVsbCwge1xuICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAvLyBoZXJlIHNwZWNpZnkgdGhlIHBvc2l0aW9uXG4gICAgICBob3Jpem9udGFsUG9zaXRpb246IFwiY2VudGVyXCIsXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAnYm90dG9tJ1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class EnumTuple {
|
|
2
|
+
}
|
|
3
|
+
export class EnumReader {
|
|
4
|
+
constructor(value) {
|
|
5
|
+
this.value = value;
|
|
6
|
+
}
|
|
7
|
+
getNamesAndValues() {
|
|
8
|
+
return this.getNames().map((n) => {
|
|
9
|
+
return { name: this.value[n], id: n };
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
getNames() {
|
|
13
|
+
return Object.keys(this.value);
|
|
14
|
+
}
|
|
15
|
+
getObjValues() {
|
|
16
|
+
return Object.keys(this.value).map(k => this.value[k]);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bVJlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzL3NyYy9saWIvc2hhcmVkL2VudW1SZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVM7Q0FHckI7QUFFRCxNQUFNLE9BQU8sVUFBVTtJQUdyQixZQUFvQixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUNqQyxDQUFDO0lBRU0saUJBQWlCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLE9BQTBCLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbnVtVHVwbGU8VFZhbHVlID0gbnVtYmVyPiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IFRWYWx1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIEVudW1SZWFkZXI8VFZhbHVlID0gbnVtYmVyPiB7XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlOiBPYmplY3QpIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXROYW1lc0FuZFZhbHVlcygpOiBFbnVtVHVwbGU8VFZhbHVlPltdIHtcblxuICAgIHJldHVybiB0aGlzLmdldE5hbWVzKCkubWFwKChuKSA9PiB7XG4gICAgICByZXR1cm4gPEVudW1UdXBsZTxUVmFsdWU+PntuYW1lOiB0aGlzLnZhbHVlW25dIGFzIFRWYWx1ZSwgaWQ6IG59O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldE5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldE9ialZhbHVlcygpOiBUVmFsdWVbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudmFsdWUpLm1hcChrID0+IHRoaXMudmFsdWVba10pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
export class IsoDateTime {
|
|
3
|
+
static utcToLocalDateTimeIso(utcDateTime) {
|
|
4
|
+
if (!utcDateTime) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
return moment(utcDateTime).local().format("YYYY-MM-DDTHH:mm:ss");
|
|
8
|
+
}
|
|
9
|
+
static localToUtcDateTimeIso(localDateTime) {
|
|
10
|
+
if (!localDateTime) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return moment(localDateTime).toISOString();
|
|
14
|
+
}
|
|
15
|
+
static currentUtcDateTimeIso() {
|
|
16
|
+
return moment(Date.now()).toISOString();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvRGF0ZVRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcy9zcmMvbGliL3NoYXJlZC9pc29EYXRlVGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMscUJBQXFCLENBQUMsV0FBbUI7UUFDckQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFxQjtRQUN2RCxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQjtRQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBJc29EYXRlVGltZSB7XG4gIHB1YmxpYyBzdGF0aWMgdXRjVG9Mb2NhbERhdGVUaW1lSXNvKHV0Y0RhdGVUaW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXV0Y0RhdGVUaW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG1vbWVudCh1dGNEYXRlVGltZSkubG9jYWwoKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBsb2NhbFRvVXRjRGF0ZVRpbWVJc28obG9jYWxEYXRlVGltZTogc3RyaW5nKSB7XG4gICAgaWYgKCFsb2NhbERhdGVUaW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG1vbWVudChsb2NhbERhdGVUaW1lKS50b0lTT1N0cmluZygpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjdXJyZW50VXRjRGF0ZVRpbWVJc28oKSB7XG4gICAgcmV0dXJuIG1vbWVudChEYXRlLm5vdygpKS50b0lTT1N0cmluZygpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class ObjectCloner {
|
|
2
|
+
static cloneObject(source, ignoreProperties = null) {
|
|
3
|
+
let clonedObject = Object.assign({}, source);
|
|
4
|
+
if (ignoreProperties) {
|
|
5
|
+
for (let prop of ignoreProperties) {
|
|
6
|
+
delete clonedObject[prop];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return clonedObject;
|
|
10
|
+
}
|
|
11
|
+
static cloneObject2(source, source2, ignoreProperties = null) {
|
|
12
|
+
let clonedObject = Object.assign({}, source, source2);
|
|
13
|
+
if (ignoreProperties) {
|
|
14
|
+
for (let prop of ignoreProperties) {
|
|
15
|
+
delete clonedObject[prop];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return clonedObject;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0Q2xvbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXMvc3JjL2xpYi9zaGFyZWQvb2JqZWN0Q2xvbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFZO0lBQ2hCLE1BQU0sQ0FBQyxXQUFXLENBQVUsTUFBVyxFQUFFLG1CQUE2QixJQUFJO1FBQy9FLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUssRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWpELElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsS0FBSyxJQUFJLElBQUksSUFBSSxnQkFBZ0IsRUFBRTtnQkFDakMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0I7U0FDRjtRQUNELE9BQVcsWUFBWSxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFlLE1BQVcsRUFBRSxPQUFZLEVBQUUsbUJBQTZCLElBQUk7UUFDbkcsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTFELElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsS0FBSyxJQUFJLElBQUksSUFBSSxnQkFBZ0IsRUFBRTtnQkFDakMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0I7U0FDRjtRQUNELE9BQVcsWUFBWSxDQUFDO0lBQzFCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBPYmplY3RDbG9uZXIge1xuICBwdWJsaWMgc3RhdGljIGNsb25lT2JqZWN0PFRSLCBUUzE+KHNvdXJjZTogVFMxLCBpZ25vcmVQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IG51bGwpOiBUUiB7XG4gICAgbGV0IGNsb25lZE9iamVjdCA9IE9iamVjdC5hc3NpZ24oPFRSPnt9LCBzb3VyY2UpO1xuXG4gICAgaWYgKGlnbm9yZVByb3BlcnRpZXMpIHtcbiAgICAgIGZvciAobGV0IHByb3Agb2YgaWdub3JlUHJvcGVydGllcykge1xuICAgICAgICBkZWxldGUgY2xvbmVkT2JqZWN0W3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gPFRSPmNsb25lZE9iamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2xvbmVPYmplY3QyPFRSLCBUUzEsIFRTMj4oc291cmNlOiBUUzEsIHNvdXJjZTI6IFRTMiwgaWdub3JlUHJvcGVydGllczogc3RyaW5nW10gPSBudWxsKTogVFIge1xuICAgIGxldCBjbG9uZWRPYmplY3QgPSBPYmplY3QuYXNzaWduKDxUUj57fSwgc291cmNlLCBzb3VyY2UyKTtcblxuICAgIGlmIChpZ25vcmVQcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKGxldCBwcm9wIG9mIGlnbm9yZVByb3BlcnRpZXMpIHtcbiAgICAgICAgZGVsZXRlIGNsb25lZE9iamVjdFtwcm9wXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIDxUUj5jbG9uZWRPYmplY3Q7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { MessageService } from "./services/message.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SharedServicesModule {
|
|
5
|
+
static forRoot() {
|
|
6
|
+
return {
|
|
7
|
+
ngModule: SharedServicesModule,
|
|
8
|
+
providers: [
|
|
9
|
+
MessageService
|
|
10
|
+
]
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
SharedServicesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
SharedServicesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule });
|
|
16
|
+
SharedServicesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule, decorators: [{
|
|
18
|
+
type: NgModule,
|
|
19
|
+
args: [{
|
|
20
|
+
declarations: [],
|
|
21
|
+
imports: [],
|
|
22
|
+
exports: []
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXNlcnZpY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzL3NyYy9saWIvc2hhcmVkLXNlcnZpY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7O0FBUTFELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUU7Z0JBQ1QsY0FBYzthQUNmO1NBQ0YsQ0FBQTtJQUNILENBQUM7O2lIQVJVLG9CQUFvQjtrSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWVzc2FnZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZVwiO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRTZXJ2aWNlc01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U2hhcmVkU2VydmljZXNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNoYXJlZFNlcnZpY2VzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1lc3NhZ2VTZXJ2aWNlXG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaG1ha2Vycy1zaGFyZWQtc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcy9zcmMvbWVzaG1ha2Vycy1zaGFyZWQtc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of shared-services
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/shared-services.module';
|
|
5
|
+
export * from './lib/services/message.service';
|
|
6
|
+
export * from './lib/models/autoCompleteResult';
|
|
7
|
+
export * from './lib/models/errorMessage';
|
|
8
|
+
export * from './lib/models/pagedResultDto';
|
|
9
|
+
export * from './lib/dataSources/dataSourceBase';
|
|
10
|
+
export * from './lib/dataSources/genericDataSource';
|
|
11
|
+
export * from './lib/dataSources/entitySelectDataSource';
|
|
12
|
+
export * from './lib/dataSources/autoCompleteDataSource';
|
|
13
|
+
export * from './lib/shared/isoDateTime';
|
|
14
|
+
export * from './lib/shared/enumReader';
|
|
15
|
+
export * from './lib/shared/objectCloner';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNoYXJlZC1zZXJ2aWNlc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hdXRvQ29tcGxldGVSZXN1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2Vycm9yTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcGFnZWRSZXN1bHREdG8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YVNvdXJjZXMvZGF0YVNvdXJjZUJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YVNvdXJjZXMvZ2VuZXJpY0RhdGFTb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YVNvdXJjZXMvZW50aXR5U2VsZWN0RGF0YVNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhU291cmNlcy9hdXRvQ29tcGxldGVEYXRhU291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9pc29EYXRlVGltZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZW51bVJlYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvb2JqZWN0Q2xvbmVyJztcbiJdfQ==
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import * as i1 from '@angular/material/snack-bar';
|
|
5
|
+
import moment from 'moment';
|
|
6
|
+
|
|
7
|
+
class MessageService {
|
|
8
|
+
constructor(snackBar) {
|
|
9
|
+
this.snackBar = snackBar;
|
|
10
|
+
this.latestErrorMessage = new BehaviorSubject(null);
|
|
11
|
+
this.errorMessages = new Array();
|
|
12
|
+
}
|
|
13
|
+
getErrorMessageCount() {
|
|
14
|
+
return this.errorMessages.length;
|
|
15
|
+
}
|
|
16
|
+
getErrorMessage(index) {
|
|
17
|
+
return this.errorMessages[index];
|
|
18
|
+
}
|
|
19
|
+
getLatestErrorMessage() {
|
|
20
|
+
return this.latestErrorMessage.asObservable();
|
|
21
|
+
}
|
|
22
|
+
showError(message, title) {
|
|
23
|
+
console.error(message);
|
|
24
|
+
const errorMessage = {
|
|
25
|
+
title: title,
|
|
26
|
+
message: message
|
|
27
|
+
};
|
|
28
|
+
this.errorMessages.push(errorMessage);
|
|
29
|
+
this.latestErrorMessage.next(errorMessage);
|
|
30
|
+
}
|
|
31
|
+
showInformation(message) {
|
|
32
|
+
this.snackBar.open(message, null, {
|
|
33
|
+
duration: 3000,
|
|
34
|
+
// here specify the position
|
|
35
|
+
horizontalPosition: "center",
|
|
36
|
+
verticalPosition: 'bottom'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
MessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
41
|
+
MessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService, decorators: [{
|
|
43
|
+
type: Injectable
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.MatSnackBar }]; } });
|
|
45
|
+
|
|
46
|
+
class SharedServicesModule {
|
|
47
|
+
static forRoot() {
|
|
48
|
+
return {
|
|
49
|
+
ngModule: SharedServicesModule,
|
|
50
|
+
providers: [
|
|
51
|
+
MessageService
|
|
52
|
+
]
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
SharedServicesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
57
|
+
SharedServicesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule });
|
|
58
|
+
SharedServicesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule, decorators: [{
|
|
60
|
+
type: NgModule,
|
|
61
|
+
args: [{
|
|
62
|
+
declarations: [],
|
|
63
|
+
imports: [],
|
|
64
|
+
exports: []
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
67
|
+
|
|
68
|
+
class AutoCompleteResult {
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
class ErrorMessage {
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
class PagedResultDto {
|
|
75
|
+
constructor() {
|
|
76
|
+
this.skip = 0;
|
|
77
|
+
this.take = 0;
|
|
78
|
+
this.totalCount = 0;
|
|
79
|
+
this.list = new Array();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
class DataSourceBase {
|
|
84
|
+
constructor() {
|
|
85
|
+
this.dataSubject = new BehaviorSubject([]);
|
|
86
|
+
this.loadingSubject = new BehaviorSubject(false);
|
|
87
|
+
this.loading$ = this.loadingSubject.asObservable();
|
|
88
|
+
this.totalCountSubject = new BehaviorSubject(0);
|
|
89
|
+
this.totalCount$ = this.totalCountSubject.asObservable();
|
|
90
|
+
}
|
|
91
|
+
connect(collectionViewer) {
|
|
92
|
+
return this.dataSubject.asObservable();
|
|
93
|
+
}
|
|
94
|
+
disconnect(collectionViewer) {
|
|
95
|
+
this.dataSubject.complete();
|
|
96
|
+
this.loadingSubject.complete();
|
|
97
|
+
}
|
|
98
|
+
clear() {
|
|
99
|
+
this.loadingSubject.next(false);
|
|
100
|
+
this.dataSubject.next([]);
|
|
101
|
+
this.totalCountSubject.next(0);
|
|
102
|
+
}
|
|
103
|
+
onBeginLoad() {
|
|
104
|
+
this.loadingSubject.next(true);
|
|
105
|
+
}
|
|
106
|
+
onCompleteLoad(pagedResult) {
|
|
107
|
+
this.loadingSubject.next(false);
|
|
108
|
+
this.dataSubject.next(pagedResult.list);
|
|
109
|
+
this.totalCountSubject.next(pagedResult.totalCount);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
class GenericDataSource {
|
|
114
|
+
constructor(data) {
|
|
115
|
+
this.data = data;
|
|
116
|
+
this.dataSubject = new BehaviorSubject([]);
|
|
117
|
+
this.dataSubject.next(data);
|
|
118
|
+
}
|
|
119
|
+
emitChanged() {
|
|
120
|
+
this.dataSubject.next(this.data);
|
|
121
|
+
}
|
|
122
|
+
connect(collectionViewer) {
|
|
123
|
+
return this.dataSubject.asObservable();
|
|
124
|
+
}
|
|
125
|
+
disconnect(collectionViewer) {
|
|
126
|
+
this.dataSubject.complete();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
class IsoDateTime {
|
|
131
|
+
static utcToLocalDateTimeIso(utcDateTime) {
|
|
132
|
+
if (!utcDateTime) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
return moment(utcDateTime).local().format("YYYY-MM-DDTHH:mm:ss");
|
|
136
|
+
}
|
|
137
|
+
static localToUtcDateTimeIso(localDateTime) {
|
|
138
|
+
if (!localDateTime) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
return moment(localDateTime).toISOString();
|
|
142
|
+
}
|
|
143
|
+
static currentUtcDateTimeIso() {
|
|
144
|
+
return moment(Date.now()).toISOString();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
class EnumTuple {
|
|
149
|
+
}
|
|
150
|
+
class EnumReader {
|
|
151
|
+
constructor(value) {
|
|
152
|
+
this.value = value;
|
|
153
|
+
}
|
|
154
|
+
getNamesAndValues() {
|
|
155
|
+
return this.getNames().map((n) => {
|
|
156
|
+
return { name: this.value[n], id: n };
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
getNames() {
|
|
160
|
+
return Object.keys(this.value);
|
|
161
|
+
}
|
|
162
|
+
getObjValues() {
|
|
163
|
+
return Object.keys(this.value).map(k => this.value[k]);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
class ObjectCloner {
|
|
168
|
+
static cloneObject(source, ignoreProperties = null) {
|
|
169
|
+
let clonedObject = Object.assign({}, source);
|
|
170
|
+
if (ignoreProperties) {
|
|
171
|
+
for (let prop of ignoreProperties) {
|
|
172
|
+
delete clonedObject[prop];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return clonedObject;
|
|
176
|
+
}
|
|
177
|
+
static cloneObject2(source, source2, ignoreProperties = null) {
|
|
178
|
+
let clonedObject = Object.assign({}, source, source2);
|
|
179
|
+
if (ignoreProperties) {
|
|
180
|
+
for (let prop of ignoreProperties) {
|
|
181
|
+
delete clonedObject[prop];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return clonedObject;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/*
|
|
189
|
+
* Public API Surface of shared-services
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Generated bundle index. Do not edit.
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
export { AutoCompleteResult, DataSourceBase, EnumReader, EnumTuple, ErrorMessage, GenericDataSource, IsoDateTime, MessageService, ObjectCloner, PagedResultDto, SharedServicesModule };
|
|
197
|
+
//# sourceMappingURL=meshmakers-shared-services.mjs.map
|
|
@@ -0,0 +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/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\n latestErrorMessage: BehaviorSubject<ErrorMessage>;\n\n errorMessages: Array<ErrorMessage>;\n\n\n constructor(private snackBar: MatSnackBar) {\n\n this.latestErrorMessage = new BehaviorSubject<ErrorMessage>(null);\n this.errorMessages = new Array<ErrorMessage>();\n }\n\n getErrorMessageCount() {\n return this.errorMessages.length;\n }\n\n getErrorMessage(index: number) {\n return this.errorMessages[index];\n }\n\n getLatestErrorMessage(): Observable<ErrorMessage> {\n return this.latestErrorMessage.asObservable();\n }\n\n showError(message: string, title: string) {\n console.error(message);\n\n const errorMessage = <ErrorMessage>{\n title: title,\n message: message\n };\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showInformation(message: string) {\n this.snackBar.open(message, null, {\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\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class SharedServicesModule {\n static forRoot(): ModuleWithProviders<SharedServicesModule> {\n return {\n ngModule: SharedServicesModule,\n providers: [\n MessageService\n ]\n }\n }\n}\n","export class AutoCompleteResult {\n\n searchTerm: string;\n\n list: Array<string>;\n}\n","export class ErrorMessage {\n title: string;\n message: string;\n}\n","export class PagedResultDto<T> {\n\n skip: number;\n take: number;\n totalCount: number;\n list: Array<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 dataSubject = new BehaviorSubject<Array<TDto>>([]);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n public readonly loading$ = this.loadingSubject.asObservable();\n private totalCountSubject = new BehaviorSubject<number>(0);\n public readonly totalCount$ = this.totalCountSubject.asObservable();\n\n constructor() {\n }\n\n connect(collectionViewer: CollectionViewer): Observable<TDto[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.dataSubject.complete();\n this.loadingSubject.complete();\n }\n\n clear() {\n this.loadingSubject.next(false);\n this.dataSubject.next([]);\n this.totalCountSubject.next(0);\n }\n\n protected onBeginLoad() {\n this.loadingSubject.next(true);\n }\n\n protected onCompleteLoad(pagedResult: PagedResultDto<TDto>) {\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 dataSubject = new BehaviorSubject<Array<TEntity>>([]);\n\n constructor(public data: Array<TEntity>) {\n\n this.dataSubject.next(data);\n\n }\n\n emitChanged() {\n this.dataSubject.next(this.data);\n }\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 moment from 'moment';\n\nexport class IsoDateTime {\n public static utcToLocalDateTimeIso(utcDateTime: string) {\n if (!utcDateTime) {\n return null;\n }\n return moment(utcDateTime).local().format(\"YYYY-MM-DDTHH:mm:ss\");\n }\n\n public static localToUtcDateTimeIso(localDateTime: string) {\n if (!localDateTime) {\n return null;\n }\n return moment(localDateTime).toISOString();\n }\n\n public static currentUtcDateTimeIso() {\n return moment(Date.now()).toISOString();\n }\n}\n","export class EnumTuple<TValue = number> {\n id: string;\n name: TValue;\n}\n\nexport class EnumReader<TValue = number> {\n\n\n constructor(private value: Object) {\n }\n\n public getNamesAndValues(): EnumTuple<TValue>[] {\n\n return this.getNames().map((n) => {\n return <EnumTuple<TValue>>{name: this.value[n] as TValue, id: n};\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): TR {\n let clonedObject = Object.assign(<TR>{}, source);\n\n if (ignoreProperties) {\n for (let prop of ignoreProperties) {\n delete clonedObject[prop];\n }\n }\n return <TR>clonedObject;\n }\n\n public static cloneObject2<TR, TS1, TS2>(source: TS1, source2: TS2, ignoreProperties: string[] = null): TR {\n let clonedObject = Object.assign(<TR>{}, source, source2);\n\n if (ignoreProperties) {\n for (let prop of ignoreProperties) {\n delete clonedObject[prop];\n }\n }\n return <TR>clonedObject;\n }\n\n}\n","/*\n * Public API Surface of shared-services\n */\n\nexport * from './lib/shared-services.module';\nexport * from './lib/services/message.service';\nexport * from './lib/models/autoCompleteResult';\nexport * from './lib/models/errorMessage';\nexport * from './lib/models/pagedResultDto';\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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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import * as i1 from '@angular/material/snack-bar';
|
|
5
|
+
import moment from 'moment';
|
|
6
|
+
|
|
7
|
+
class MessageService {
|
|
8
|
+
constructor(snackBar) {
|
|
9
|
+
this.snackBar = snackBar;
|
|
10
|
+
this.latestErrorMessage = new BehaviorSubject(null);
|
|
11
|
+
this.errorMessages = new Array();
|
|
12
|
+
}
|
|
13
|
+
getErrorMessageCount() {
|
|
14
|
+
return this.errorMessages.length;
|
|
15
|
+
}
|
|
16
|
+
getErrorMessage(index) {
|
|
17
|
+
return this.errorMessages[index];
|
|
18
|
+
}
|
|
19
|
+
getLatestErrorMessage() {
|
|
20
|
+
return this.latestErrorMessage.asObservable();
|
|
21
|
+
}
|
|
22
|
+
showError(message, title) {
|
|
23
|
+
console.error(message);
|
|
24
|
+
const errorMessage = {
|
|
25
|
+
title: title,
|
|
26
|
+
message: message
|
|
27
|
+
};
|
|
28
|
+
this.errorMessages.push(errorMessage);
|
|
29
|
+
this.latestErrorMessage.next(errorMessage);
|
|
30
|
+
}
|
|
31
|
+
showInformation(message) {
|
|
32
|
+
this.snackBar.open(message, null, {
|
|
33
|
+
duration: 3000,
|
|
34
|
+
// here specify the position
|
|
35
|
+
horizontalPosition: "center",
|
|
36
|
+
verticalPosition: 'bottom'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
MessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
41
|
+
MessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageService, decorators: [{
|
|
43
|
+
type: Injectable
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.MatSnackBar }]; } });
|
|
45
|
+
|
|
46
|
+
class SharedServicesModule {
|
|
47
|
+
static forRoot() {
|
|
48
|
+
return {
|
|
49
|
+
ngModule: SharedServicesModule,
|
|
50
|
+
providers: [
|
|
51
|
+
MessageService
|
|
52
|
+
]
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
SharedServicesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
57
|
+
SharedServicesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule });
|
|
58
|
+
SharedServicesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: SharedServicesModule, decorators: [{
|
|
60
|
+
type: NgModule,
|
|
61
|
+
args: [{
|
|
62
|
+
declarations: [],
|
|
63
|
+
imports: [],
|
|
64
|
+
exports: []
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
67
|
+
|
|
68
|
+
class AutoCompleteResult {
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
class ErrorMessage {
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
class PagedResultDto {
|
|
75
|
+
constructor() {
|
|
76
|
+
this.skip = 0;
|
|
77
|
+
this.take = 0;
|
|
78
|
+
this.totalCount = 0;
|
|
79
|
+
this.list = new Array();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
class DataSourceBase {
|
|
84
|
+
constructor() {
|
|
85
|
+
this.dataSubject = new BehaviorSubject([]);
|
|
86
|
+
this.loadingSubject = new BehaviorSubject(false);
|
|
87
|
+
this.loading$ = this.loadingSubject.asObservable();
|
|
88
|
+
this.totalCountSubject = new BehaviorSubject(0);
|
|
89
|
+
this.totalCount$ = this.totalCountSubject.asObservable();
|
|
90
|
+
}
|
|
91
|
+
connect(collectionViewer) {
|
|
92
|
+
return this.dataSubject.asObservable();
|
|
93
|
+
}
|
|
94
|
+
disconnect(collectionViewer) {
|
|
95
|
+
this.dataSubject.complete();
|
|
96
|
+
this.loadingSubject.complete();
|
|
97
|
+
}
|
|
98
|
+
clear() {
|
|
99
|
+
this.loadingSubject.next(false);
|
|
100
|
+
this.dataSubject.next([]);
|
|
101
|
+
this.totalCountSubject.next(0);
|
|
102
|
+
}
|
|
103
|
+
onBeginLoad() {
|
|
104
|
+
this.loadingSubject.next(true);
|
|
105
|
+
}
|
|
106
|
+
onCompleteLoad(pagedResult) {
|
|
107
|
+
this.loadingSubject.next(false);
|
|
108
|
+
this.dataSubject.next(pagedResult.list);
|
|
109
|
+
this.totalCountSubject.next(pagedResult.totalCount);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
class GenericDataSource {
|
|
114
|
+
constructor(data) {
|
|
115
|
+
this.data = data;
|
|
116
|
+
this.dataSubject = new BehaviorSubject([]);
|
|
117
|
+
this.dataSubject.next(data);
|
|
118
|
+
}
|
|
119
|
+
emitChanged() {
|
|
120
|
+
this.dataSubject.next(this.data);
|
|
121
|
+
}
|
|
122
|
+
connect(collectionViewer) {
|
|
123
|
+
return this.dataSubject.asObservable();
|
|
124
|
+
}
|
|
125
|
+
disconnect(collectionViewer) {
|
|
126
|
+
this.dataSubject.complete();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
class IsoDateTime {
|
|
131
|
+
static utcToLocalDateTimeIso(utcDateTime) {
|
|
132
|
+
if (!utcDateTime) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
return moment(utcDateTime).local().format("YYYY-MM-DDTHH:mm:ss");
|
|
136
|
+
}
|
|
137
|
+
static localToUtcDateTimeIso(localDateTime) {
|
|
138
|
+
if (!localDateTime) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
return moment(localDateTime).toISOString();
|
|
142
|
+
}
|
|
143
|
+
static currentUtcDateTimeIso() {
|
|
144
|
+
return moment(Date.now()).toISOString();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
class EnumTuple {
|
|
149
|
+
}
|
|
150
|
+
class EnumReader {
|
|
151
|
+
constructor(value) {
|
|
152
|
+
this.value = value;
|
|
153
|
+
}
|
|
154
|
+
getNamesAndValues() {
|
|
155
|
+
return this.getNames().map((n) => {
|
|
156
|
+
return { name: this.value[n], id: n };
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
getNames() {
|
|
160
|
+
return Object.keys(this.value);
|
|
161
|
+
}
|
|
162
|
+
getObjValues() {
|
|
163
|
+
return Object.keys(this.value).map(k => this.value[k]);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
class ObjectCloner {
|
|
168
|
+
static cloneObject(source, ignoreProperties = null) {
|
|
169
|
+
let clonedObject = Object.assign({}, source);
|
|
170
|
+
if (ignoreProperties) {
|
|
171
|
+
for (let prop of ignoreProperties) {
|
|
172
|
+
delete clonedObject[prop];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return clonedObject;
|
|
176
|
+
}
|
|
177
|
+
static cloneObject2(source, source2, ignoreProperties = null) {
|
|
178
|
+
let clonedObject = Object.assign({}, source, source2);
|
|
179
|
+
if (ignoreProperties) {
|
|
180
|
+
for (let prop of ignoreProperties) {
|
|
181
|
+
delete clonedObject[prop];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return clonedObject;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/*
|
|
189
|
+
* Public API Surface of shared-services
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Generated bundle index. Do not edit.
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
export { AutoCompleteResult, DataSourceBase, EnumReader, EnumTuple, ErrorMessage, GenericDataSource, IsoDateTime, MessageService, ObjectCloner, PagedResultDto, SharedServicesModule };
|
|
197
|
+
//# sourceMappingURL=meshmakers-shared-services.mjs.map
|
|
@@ -0,0 +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/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\n latestErrorMessage: BehaviorSubject<ErrorMessage>;\n\n errorMessages: Array<ErrorMessage>;\n\n\n constructor(private snackBar: MatSnackBar) {\n\n this.latestErrorMessage = new BehaviorSubject<ErrorMessage>(null);\n this.errorMessages = new Array<ErrorMessage>();\n }\n\n getErrorMessageCount() {\n return this.errorMessages.length;\n }\n\n getErrorMessage(index: number) {\n return this.errorMessages[index];\n }\n\n getLatestErrorMessage(): Observable<ErrorMessage> {\n return this.latestErrorMessage.asObservable();\n }\n\n showError(message: string, title: string) {\n console.error(message);\n\n const errorMessage = <ErrorMessage>{\n title: title,\n message: message\n };\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showInformation(message: string) {\n this.snackBar.open(message, null, {\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\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class SharedServicesModule {\n static forRoot(): ModuleWithProviders<SharedServicesModule> {\n return {\n ngModule: SharedServicesModule,\n providers: [\n MessageService\n ]\n }\n }\n}\n","export class AutoCompleteResult {\n\n searchTerm: string;\n\n list: Array<string>;\n}\n","export class ErrorMessage {\n title: string;\n message: string;\n}\n","export class PagedResultDto<T> {\n\n skip: number;\n take: number;\n totalCount: number;\n list: Array<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 dataSubject = new BehaviorSubject<Array<TDto>>([]);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n public readonly loading$ = this.loadingSubject.asObservable();\n private totalCountSubject = new BehaviorSubject<number>(0);\n public readonly totalCount$ = this.totalCountSubject.asObservable();\n\n constructor() {\n }\n\n connect(collectionViewer: CollectionViewer): Observable<TDto[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.dataSubject.complete();\n this.loadingSubject.complete();\n }\n\n clear() {\n this.loadingSubject.next(false);\n this.dataSubject.next([]);\n this.totalCountSubject.next(0);\n }\n\n protected onBeginLoad() {\n this.loadingSubject.next(true);\n }\n\n protected onCompleteLoad(pagedResult: PagedResultDto<TDto>) {\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 dataSubject = new BehaviorSubject<Array<TEntity>>([]);\n\n constructor(public data: Array<TEntity>) {\n\n this.dataSubject.next(data);\n\n }\n\n emitChanged() {\n this.dataSubject.next(this.data);\n }\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 moment from 'moment';\n\nexport class IsoDateTime {\n public static utcToLocalDateTimeIso(utcDateTime: string) {\n if (!utcDateTime) {\n return null;\n }\n return moment(utcDateTime).local().format(\"YYYY-MM-DDTHH:mm:ss\");\n }\n\n public static localToUtcDateTimeIso(localDateTime: string) {\n if (!localDateTime) {\n return null;\n }\n return moment(localDateTime).toISOString();\n }\n\n public static currentUtcDateTimeIso() {\n return moment(Date.now()).toISOString();\n }\n}\n","export class EnumTuple<TValue = number> {\n id: string;\n name: TValue;\n}\n\nexport class EnumReader<TValue = number> {\n\n\n constructor(private value: Object) {\n }\n\n public getNamesAndValues(): EnumTuple<TValue>[] {\n\n return this.getNames().map((n) => {\n return <EnumTuple<TValue>>{name: this.value[n] as TValue, id: n};\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): TR {\n let clonedObject = Object.assign(<TR>{}, source);\n\n if (ignoreProperties) {\n for (let prop of ignoreProperties) {\n delete clonedObject[prop];\n }\n }\n return <TR>clonedObject;\n }\n\n public static cloneObject2<TR, TS1, TS2>(source: TS1, source2: TS2, ignoreProperties: string[] = null): TR {\n let clonedObject = Object.assign(<TR>{}, source, source2);\n\n if (ignoreProperties) {\n for (let prop of ignoreProperties) {\n delete clonedObject[prop];\n }\n }\n return <TR>clonedObject;\n }\n\n}\n","/*\n * Public API Surface of shared-services\n */\n\nexport * from './lib/shared-services.module';\nexport * from './lib/services/message.service';\nexport * from './lib/models/autoCompleteResult';\nexport * from './lib/models/errorMessage';\nexport * from './lib/models/pagedResultDto';\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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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import { CollectionViewer, DataSource } from "@angular/cdk/collections";
|
|
3
|
+
import { PagedResultDto } from "../models/pagedResultDto";
|
|
4
|
+
export declare class DataSourceBase<TDto> implements DataSource<TDto> {
|
|
5
|
+
private dataSubject;
|
|
6
|
+
private loadingSubject;
|
|
7
|
+
readonly loading$: Observable<boolean>;
|
|
8
|
+
private totalCountSubject;
|
|
9
|
+
readonly totalCount$: Observable<number>;
|
|
10
|
+
constructor();
|
|
11
|
+
connect(collectionViewer: CollectionViewer): Observable<TDto[]>;
|
|
12
|
+
disconnect(collectionViewer: CollectionViewer): void;
|
|
13
|
+
clear(): void;
|
|
14
|
+
protected onBeginLoad(): void;
|
|
15
|
+
protected onCompleteLoad(pagedResult: PagedResultDto<TDto>): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import { CollectionViewer, DataSource } from "@angular/cdk/collections";
|
|
3
|
+
export declare class GenericDataSource<TEntity> implements DataSource<TEntity> {
|
|
4
|
+
data: Array<TEntity>;
|
|
5
|
+
private dataSubject;
|
|
6
|
+
constructor(data: Array<TEntity>);
|
|
7
|
+
emitChanged(): void;
|
|
8
|
+
connect(collectionViewer: CollectionViewer): Observable<TEntity[]>;
|
|
9
|
+
disconnect(collectionViewer: CollectionViewer): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MatSnackBar } from "@angular/material/snack-bar";
|
|
2
|
+
import { BehaviorSubject, Observable } from "rxjs";
|
|
3
|
+
import { ErrorMessage } from "../models/errorMessage";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class MessageService {
|
|
6
|
+
private snackBar;
|
|
7
|
+
latestErrorMessage: BehaviorSubject<ErrorMessage>;
|
|
8
|
+
errorMessages: Array<ErrorMessage>;
|
|
9
|
+
constructor(snackBar: MatSnackBar);
|
|
10
|
+
getErrorMessageCount(): number;
|
|
11
|
+
getErrorMessage(index: number): ErrorMessage;
|
|
12
|
+
getLatestErrorMessage(): Observable<ErrorMessage>;
|
|
13
|
+
showError(message: string, title: string): void;
|
|
14
|
+
showInformation(message: string): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MessageService, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MessageService>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class EnumTuple<TValue = number> {
|
|
2
|
+
id: string;
|
|
3
|
+
name: TValue;
|
|
4
|
+
}
|
|
5
|
+
export declare class EnumReader<TValue = number> {
|
|
6
|
+
private value;
|
|
7
|
+
constructor(value: Object);
|
|
8
|
+
getNamesAndValues(): EnumTuple<TValue>[];
|
|
9
|
+
getNames(): string[];
|
|
10
|
+
private getObjValues;
|
|
11
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class SharedServicesModule {
|
|
4
|
+
static forRoot(): ModuleWithProviders<SharedServicesModule>;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SharedServicesModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedServicesModule, never, never, never>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<SharedServicesModule>;
|
|
8
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@meshmakers/shared-services",
|
|
3
|
+
"version": "0.0.0-0",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"tslib": "^2.4.0"
|
|
6
|
+
},
|
|
7
|
+
"module": "fesm2015/meshmakers-shared-services.mjs",
|
|
8
|
+
"es2020": "fesm2020/meshmakers-shared-services.mjs",
|
|
9
|
+
"esm2020": "esm2020/meshmakers-shared-services.mjs",
|
|
10
|
+
"fesm2020": "fesm2020/meshmakers-shared-services.mjs",
|
|
11
|
+
"fesm2015": "fesm2015/meshmakers-shared-services.mjs",
|
|
12
|
+
"typings": "index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
"./package.json": {
|
|
15
|
+
"default": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./index.d.ts",
|
|
19
|
+
"esm2020": "./esm2020/meshmakers-shared-services.mjs",
|
|
20
|
+
"es2020": "./fesm2020/meshmakers-shared-services.mjs",
|
|
21
|
+
"es2015": "./fesm2015/meshmakers-shared-services.mjs",
|
|
22
|
+
"node": "./fesm2015/meshmakers-shared-services.mjs",
|
|
23
|
+
"default": "./fesm2020/meshmakers-shared-services.mjs"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"sideEffects": false
|
|
27
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './lib/shared-services.module';
|
|
2
|
+
export * from './lib/services/message.service';
|
|
3
|
+
export * from './lib/models/autoCompleteResult';
|
|
4
|
+
export * from './lib/models/errorMessage';
|
|
5
|
+
export * from './lib/models/pagedResultDto';
|
|
6
|
+
export * from './lib/dataSources/dataSourceBase';
|
|
7
|
+
export * from './lib/dataSources/genericDataSource';
|
|
8
|
+
export * from './lib/dataSources/entitySelectDataSource';
|
|
9
|
+
export * from './lib/dataSources/autoCompleteDataSource';
|
|
10
|
+
export * from './lib/shared/isoDateTime';
|
|
11
|
+
export * from './lib/shared/enumReader';
|
|
12
|
+
export * from './lib/shared/objectCloner';
|