@meshmakers/shared-services 0.0.0-0 → 2.0.2211-13005

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.
Files changed (34) hide show
  1. package/README.md +28 -28
  2. package/esm2020/lib/dataSources/autoCompleteDataSource.mjs +2 -2
  3. package/esm2020/lib/dataSources/dataSourceBase.mjs +31 -31
  4. package/esm2020/lib/dataSources/entitySelectDataSource.mjs +2 -2
  5. package/esm2020/lib/dataSources/genericDataSource.mjs +18 -18
  6. package/esm2020/lib/models/autoCompleteResult.mjs +3 -3
  7. package/esm2020/lib/models/errorMessage.mjs +3 -3
  8. package/esm2020/lib/models/pagedResultDto.mjs +9 -9
  9. package/esm2020/lib/services/message.service.mjs +43 -43
  10. package/esm2020/lib/shared/enumReader.mjs +19 -19
  11. package/esm2020/lib/shared/isoDateTime.mjs +19 -19
  12. package/esm2020/lib/shared/objectCloner.mjs +21 -21
  13. package/esm2020/lib/shared-services.module.mjs +25 -25
  14. package/esm2020/meshmakers-shared-services.mjs +4 -4
  15. package/esm2020/public-api.mjs +16 -16
  16. package/fesm2015/meshmakers-shared-services.mjs +165 -165
  17. package/fesm2015/meshmakers-shared-services.mjs.map +1 -1
  18. package/fesm2020/meshmakers-shared-services.mjs +165 -165
  19. package/fesm2020/meshmakers-shared-services.mjs.map +1 -1
  20. package/index.d.ts +5 -5
  21. package/lib/dataSources/autoCompleteDataSource.d.ts +6 -6
  22. package/lib/dataSources/dataSourceBase.d.ts +16 -16
  23. package/lib/dataSources/entitySelectDataSource.d.ts +6 -6
  24. package/lib/dataSources/genericDataSource.d.ts +10 -10
  25. package/lib/models/autoCompleteResult.d.ts +4 -4
  26. package/lib/models/errorMessage.d.ts +4 -4
  27. package/lib/models/pagedResultDto.d.ts +7 -7
  28. package/lib/services/message.service.d.ts +17 -17
  29. package/lib/shared/enumReader.d.ts +11 -11
  30. package/lib/shared/isoDateTime.d.ts +5 -5
  31. package/lib/shared/objectCloner.d.ts +4 -4
  32. package/lib/shared-services.module.d.ts +8 -8
  33. package/package.json +1 -1
  34. package/public-api.d.ts +12 -12
@@ -4,193 +4,193 @@ import { BehaviorSubject } from 'rxjs';
4
4
  import * as i1 from '@angular/material/snack-bar';
5
5
  import moment from 'moment';
6
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
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
44
  }], ctorParameters: function () { return [{ type: i1.MatSnackBar }]; } });
45
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
- }]
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
66
  }] });
67
67
 
68
- class AutoCompleteResult {
68
+ class AutoCompleteResult {
69
69
  }
70
70
 
71
- class ErrorMessage {
71
+ class ErrorMessage {
72
72
  }
73
73
 
74
- class PagedResultDto {
75
- constructor() {
76
- this.skip = 0;
77
- this.take = 0;
78
- this.totalCount = 0;
79
- this.list = new Array();
80
- }
74
+ class PagedResultDto {
75
+ constructor() {
76
+ this.skip = 0;
77
+ this.take = 0;
78
+ this.totalCount = 0;
79
+ this.list = new Array();
80
+ }
81
81
  }
82
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
- }
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
111
  }
112
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
- }
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
128
  }
129
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
- }
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
146
  }
147
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
- }
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
165
  }
166
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
- }
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
186
  }
187
187
 
188
- /*
189
- * Public API Surface of shared-services
188
+ /*
189
+ * Public API Surface of shared-services
190
190
  */
191
191
 
192
- /**
193
- * Generated bundle index. Do not edit.
192
+ /**
193
+ * Generated bundle index. Do not edit.
194
194
  */
195
195
 
196
196
  export { AutoCompleteResult, DataSourceBase, EnumReader, EnumTuple, ErrorMessage, GenericDataSource, IsoDateTime, MessageService, ObjectCloner, PagedResultDto, SharedServicesModule };
@@ -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/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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"}
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';\r\nimport {MatSnackBar} from \"@angular/material/snack-bar\";\r\nimport {BehaviorSubject, Observable} from \"rxjs\";\r\nimport {ErrorMessage} from \"../models/errorMessage\";\r\n\r\n@Injectable()\r\nexport class MessageService {\r\n\r\n latestErrorMessage: BehaviorSubject<ErrorMessage>;\r\n\r\n errorMessages: Array<ErrorMessage>;\r\n\r\n\r\n constructor(private snackBar: MatSnackBar) {\r\n\r\n this.latestErrorMessage = new BehaviorSubject<ErrorMessage>(null);\r\n this.errorMessages = new Array<ErrorMessage>();\r\n }\r\n\r\n getErrorMessageCount() {\r\n return this.errorMessages.length;\r\n }\r\n\r\n getErrorMessage(index: number) {\r\n return this.errorMessages[index];\r\n }\r\n\r\n getLatestErrorMessage(): Observable<ErrorMessage> {\r\n return this.latestErrorMessage.asObservable();\r\n }\r\n\r\n showError(message: string, title: string) {\r\n console.error(message);\r\n\r\n const errorMessage = <ErrorMessage>{\r\n title: title,\r\n message: message\r\n };\r\n this.errorMessages.push(errorMessage);\r\n\r\n this.latestErrorMessage.next(errorMessage);\r\n }\r\n\r\n showInformation(message: string) {\r\n this.snackBar.open(message, null, {\r\n duration: 3000,\r\n // here specify the position\r\n horizontalPosition: \"center\",\r\n verticalPosition: 'bottom'\r\n });\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {MessageService} from \"./services/message.service\";\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [],\r\n exports: []\r\n})\r\nexport class SharedServicesModule {\r\n static forRoot(): ModuleWithProviders<SharedServicesModule> {\r\n return {\r\n ngModule: SharedServicesModule,\r\n providers: [\r\n MessageService\r\n ]\r\n }\r\n }\r\n}\r\n","export class AutoCompleteResult {\r\n\r\n searchTerm: string;\r\n\r\n list: Array<string>;\r\n}\r\n","export class ErrorMessage {\r\n title: string;\r\n message: string;\r\n}\r\n","export class PagedResultDto<T> {\r\n\r\n skip: number;\r\n take: number;\r\n totalCount: number;\r\n list: Array<T>;\r\n\r\n constructor() {\r\n this.skip = 0;\r\n this.take = 0;\r\n this.totalCount = 0;\r\n this.list = new Array<T>();\r\n }\r\n}\r\n","import {BehaviorSubject, Observable} from \"rxjs\";\r\nimport {CollectionViewer, DataSource} from \"@angular/cdk/collections\";\r\nimport {PagedResultDto} from \"../models/pagedResultDto\";\r\n\r\nexport class DataSourceBase<TDto> implements DataSource<TDto> {\r\n private dataSubject = new BehaviorSubject<Array<TDto>>([]);\r\n private loadingSubject = new BehaviorSubject<boolean>(false);\r\n public readonly loading$ = this.loadingSubject.asObservable();\r\n private totalCountSubject = new BehaviorSubject<number>(0);\r\n public readonly totalCount$ = this.totalCountSubject.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable<TDto[]> {\r\n return this.dataSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.dataSubject.complete();\r\n this.loadingSubject.complete();\r\n }\r\n\r\n clear() {\r\n this.loadingSubject.next(false);\r\n this.dataSubject.next([]);\r\n this.totalCountSubject.next(0);\r\n }\r\n\r\n protected onBeginLoad() {\r\n this.loadingSubject.next(true);\r\n }\r\n\r\n protected onCompleteLoad(pagedResult: PagedResultDto<TDto>) {\r\n this.loadingSubject.next(false);\r\n this.dataSubject.next(pagedResult.list);\r\n this.totalCountSubject.next(pagedResult.totalCount);\r\n }\r\n}\r\n","import {BehaviorSubject, Observable} from \"rxjs\";\r\nimport {CollectionViewer, DataSource} from \"@angular/cdk/collections\";\r\n\r\nexport class GenericDataSource<TEntity> implements DataSource<TEntity> {\r\n private dataSubject = new BehaviorSubject<Array<TEntity>>([]);\r\n\r\n constructor(public data: Array<TEntity>) {\r\n\r\n this.dataSubject.next(data);\r\n\r\n }\r\n\r\n emitChanged() {\r\n this.dataSubject.next(this.data);\r\n }\r\n\r\n\r\n connect(collectionViewer: CollectionViewer): Observable<TEntity[]> {\r\n return this.dataSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.dataSubject.complete();\r\n }\r\n}\r\n","import moment from 'moment';\r\n\r\nexport class IsoDateTime {\r\n public static utcToLocalDateTimeIso(utcDateTime: string) {\r\n if (!utcDateTime) {\r\n return null;\r\n }\r\n return moment(utcDateTime).local().format(\"YYYY-MM-DDTHH:mm:ss\");\r\n }\r\n\r\n public static localToUtcDateTimeIso(localDateTime: string) {\r\n if (!localDateTime) {\r\n return null;\r\n }\r\n return moment(localDateTime).toISOString();\r\n }\r\n\r\n public static currentUtcDateTimeIso() {\r\n return moment(Date.now()).toISOString();\r\n }\r\n}\r\n","export class EnumTuple<TValue = number> {\r\n id: string;\r\n name: TValue;\r\n}\r\n\r\nexport class EnumReader<TValue = number> {\r\n\r\n\r\n constructor(private value: Object) {\r\n }\r\n\r\n public getNamesAndValues(): EnumTuple<TValue>[] {\r\n\r\n return this.getNames().map((n) => {\r\n return <EnumTuple<TValue>>{name: this.value[n] as TValue, id: n};\r\n });\r\n }\r\n\r\n public getNames(): string[] {\r\n return Object.keys(this.value);\r\n }\r\n\r\n private getObjValues(): TValue[] {\r\n return Object.keys(this.value).map(k => this.value[k]);\r\n }\r\n}\r\n","export class ObjectCloner {\r\n public static cloneObject<TR, TS1>(source: TS1, ignoreProperties: string[] = null): TR {\r\n let clonedObject = Object.assign(<TR>{}, source);\r\n\r\n if (ignoreProperties) {\r\n for (let prop of ignoreProperties) {\r\n delete clonedObject[prop];\r\n }\r\n }\r\n return <TR>clonedObject;\r\n }\r\n\r\n public static cloneObject2<TR, TS1, TS2>(source: TS1, source2: TS2, ignoreProperties: string[] = null): TR {\r\n let clonedObject = Object.assign(<TR>{}, source, source2);\r\n\r\n if (ignoreProperties) {\r\n for (let prop of ignoreProperties) {\r\n delete clonedObject[prop];\r\n }\r\n }\r\n return <TR>clonedObject;\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of shared-services\r\n */\r\n\r\nexport * from './lib/shared-services.module';\r\nexport * from './lib/services/message.service';\r\nexport * from './lib/models/autoCompleteResult';\r\nexport * from './lib/models/errorMessage';\r\nexport * from './lib/models/pagedResultDto';\r\nexport * from './lib/dataSources/dataSourceBase';\r\nexport * from './lib/dataSources/genericDataSource';\r\nexport * from './lib/dataSources/entitySelectDataSource';\r\nexport * from './lib/dataSources/autoCompleteDataSource';\r\nexport * from './lib/shared/isoDateTime';\r\nexport * from './lib/shared/enumReader';\r\nexport * from './lib/shared/objectCloner';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}