@meshmakers/shared-services 3.2.137-0 → 3.2.144-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable, NgModule } from '@angular/core';
|
|
3
3
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
4
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { BehaviorSubject, throwError } from 'rxjs';
|
|
5
|
+
import { retry, catchError } from 'rxjs/operators';
|
|
5
6
|
import { parseISO, formatISO } from 'date-fns';
|
|
6
7
|
|
|
7
8
|
class MessageService {
|
|
@@ -47,7 +48,7 @@ class MessageService {
|
|
|
47
48
|
showErrorMessage(message) {
|
|
48
49
|
console.error(message);
|
|
49
50
|
const errorMessage = {
|
|
50
|
-
title:
|
|
51
|
+
title: message,
|
|
51
52
|
message
|
|
52
53
|
};
|
|
53
54
|
this.errorMessages.push(errorMessage);
|
|
@@ -61,10 +62,17 @@ class MessageService {
|
|
|
61
62
|
verticalPosition: 'bottom'
|
|
62
63
|
});
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
clearCurrentError() {
|
|
66
|
+
this.latestErrorMessage.next(null);
|
|
67
|
+
}
|
|
68
|
+
clearAllErrors() {
|
|
69
|
+
this.errorMessages = [];
|
|
70
|
+
this.latestErrorMessage.next(null);
|
|
71
|
+
}
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
73
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MessageService });
|
|
66
74
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MessageService, decorators: [{
|
|
68
76
|
type: Injectable
|
|
69
77
|
}], ctorParameters: () => [] });
|
|
70
78
|
|
|
@@ -131,10 +139,10 @@ class NfcReaderService {
|
|
|
131
139
|
this.nfcStatusSubject.next('NFC scan stopped.');
|
|
132
140
|
}
|
|
133
141
|
}
|
|
134
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
135
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.
|
|
142
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: NfcReaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
143
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: NfcReaderService });
|
|
136
144
|
}
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: NfcReaderService, decorators: [{
|
|
138
146
|
type: Injectable
|
|
139
147
|
}], ctorParameters: () => [] });
|
|
140
148
|
|
|
@@ -187,10 +195,10 @@ class QrCodeScannerService {
|
|
|
187
195
|
this.stream = null;
|
|
188
196
|
}
|
|
189
197
|
}
|
|
190
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
191
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.
|
|
198
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: QrCodeScannerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
199
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: QrCodeScannerService });
|
|
192
200
|
}
|
|
193
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: QrCodeScannerService, decorators: [{
|
|
194
202
|
type: Injectable
|
|
195
203
|
}] });
|
|
196
204
|
|
|
@@ -255,10 +263,39 @@ class MacoSchemeDecoderService {
|
|
|
255
263
|
}
|
|
256
264
|
};
|
|
257
265
|
}
|
|
258
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
259
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.
|
|
266
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MacoSchemeDecoderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
267
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MacoSchemeDecoderService });
|
|
268
|
+
}
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MacoSchemeDecoderService, decorators: [{
|
|
270
|
+
type: Injectable
|
|
271
|
+
}] });
|
|
272
|
+
|
|
273
|
+
class MmHttpErrorInterceptor {
|
|
274
|
+
messageService = inject(MessageService);
|
|
275
|
+
intercept(request, next) {
|
|
276
|
+
return next.handle(request).pipe(retry(0), catchError((error) => {
|
|
277
|
+
if (error.status === 0) {
|
|
278
|
+
this.messageService.showError('Cannot connect to server. Please check your network connection or if the server is down.', 'Connection Error');
|
|
279
|
+
}
|
|
280
|
+
if (error.status === 400 && error.error.statusCode) {
|
|
281
|
+
const apiError = error.error;
|
|
282
|
+
let details = '';
|
|
283
|
+
if (apiError.details && apiError.details.length > 0) {
|
|
284
|
+
for (const detail of apiError.details) {
|
|
285
|
+
if (detail.description) {
|
|
286
|
+
details += `\n✗ ${detail.description}`;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
this.messageService.showError(details, apiError.message);
|
|
291
|
+
}
|
|
292
|
+
return throwError(() => error);
|
|
293
|
+
}));
|
|
294
|
+
}
|
|
295
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmHttpErrorInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
296
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmHttpErrorInterceptor });
|
|
260
297
|
}
|
|
261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmHttpErrorInterceptor, decorators: [{
|
|
262
299
|
type: Injectable
|
|
263
300
|
}] });
|
|
264
301
|
|
|
@@ -266,14 +303,14 @@ class SharedServicesModule {
|
|
|
266
303
|
static forRoot() {
|
|
267
304
|
return {
|
|
268
305
|
ngModule: SharedServicesModule,
|
|
269
|
-
providers: [MessageService, NfcReaderService, QrCodeScannerService, MacoSchemeDecoderService]
|
|
306
|
+
providers: [MessageService, NfcReaderService, QrCodeScannerService, MacoSchemeDecoderService, MmHttpErrorInterceptor],
|
|
270
307
|
};
|
|
271
308
|
}
|
|
272
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
273
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.
|
|
274
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.
|
|
309
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: SharedServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
310
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: SharedServicesModule });
|
|
311
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: SharedServicesModule });
|
|
275
312
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: SharedServicesModule, decorators: [{
|
|
277
314
|
type: NgModule,
|
|
278
315
|
args: [{
|
|
279
316
|
declarations: [],
|
|
@@ -301,10 +338,10 @@ class BreadcrumbService {
|
|
|
301
338
|
updateBreadcrumb(newBreadcrumb) {
|
|
302
339
|
this.newBreadcrumb.next(newBreadcrumb);
|
|
303
340
|
}
|
|
304
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
305
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.
|
|
341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
342
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
|
|
306
343
|
}
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BreadcrumbService, decorators: [{
|
|
308
345
|
type: Injectable,
|
|
309
346
|
args: [{
|
|
310
347
|
providedIn: 'root'
|
|
@@ -511,5 +548,5 @@ class ObjectCloner {
|
|
|
511
548
|
* Generated bundle index. Do not edit.
|
|
512
549
|
*/
|
|
513
550
|
|
|
514
|
-
export { AutoCompleteResult, BreadcrumbService, DataSourceBase, EnumReader, EnumTuple, ErrorMessage, GenericDataSource, IsoDateTime, MacoSchemeDecoderService, MessageService, NfcReaderService, ObjectCloner, PagedResultDto, QrCodeScannerService, SharedServicesModule };
|
|
551
|
+
export { AutoCompleteResult, BreadcrumbService, DataSourceBase, EnumReader, EnumTuple, ErrorMessage, GenericDataSource, IsoDateTime, MacoSchemeDecoderService, MessageService, MmHttpErrorInterceptor, NfcReaderService, ObjectCloner, PagedResultDto, QrCodeScannerService, SharedServicesModule };
|
|
515
552
|
//# sourceMappingURL=meshmakers-shared-services.mjs.map
|
|
@@ -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/services/nfcReader.service.ts","../../../../projects/meshmakers/shared-services/src/lib/services/qrCodeScanner.service.ts","../../../../projects/meshmakers/shared-services/src/lib/services/macoSchemeDecoder.service.ts","../../../../projects/meshmakers/shared-services/src/lib/shared-services.module.ts","../../../../projects/meshmakers/shared-services/src/lib/services/breadcrumb.service.ts","../../../../projects/meshmakers/shared-services/src/lib/models/autoCompleteResult.ts","../../../../projects/meshmakers/shared-services/src/lib/models/errorMessage.ts","../../../../projects/meshmakers/shared-services/src/lib/models/pagedResultDto.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/dataSourceBase.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/genericDataSource.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/isoDateTime.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/enumReader.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/objectCloner.ts","../../../../projects/meshmakers/shared-services/src/public-api.ts","../../../../projects/meshmakers/shared-services/src/meshmakers-shared-services.ts"],"sourcesContent":["import { Injectable, inject } 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 private readonly snackBar = inject(MatSnackBar);\n\n latestErrorMessage: BehaviorSubject<ErrorMessage | null>;\n\n errorMessages: ErrorMessage[];\n\n constructor() {\n this.latestErrorMessage = new BehaviorSubject<ErrorMessage | null>(null);\n this.errorMessages = new Array<ErrorMessage>();\n }\n\n getErrorMessageCount(): number {\n return this.errorMessages.length;\n }\n\n getErrorMessage(index: number): ErrorMessage {\n return this.errorMessages[index];\n }\n\n getLatestErrorMessage(): Observable<ErrorMessage | null> {\n return this.latestErrorMessage.asObservable();\n }\n\n showError(message: string, title: string): void {\n console.error(message);\n\n const errorMessage = {\n title,\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showErrorWithDetails(error: any): void {\n if (error instanceof Error) {\n this.showError(error.message, 'Error');\n } else if (error === 'string') {\n this.showError(error, 'Error');\n } else if (error instanceof Object) {\n this.showError(JSON.stringify(error), 'Error');\n } else {\n this.showError('Unknown error', 'Error');\n }\n }\n\n showErrorMessage(message: string): void {\n console.error(message);\n\n const errorMessage = {\n title: 'Error',\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showInformation(message: string): void {\n this.snackBar.open(message, undefined, {\n duration: 3000,\n // here specify the position\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class NfcReaderService {\n private ndef: NDEFReader | null = null;\n private abortController: AbortController | null = null;\n\n // Emits NFC status updates to subscribers\n private nfcStatusSubject = new BehaviorSubject<string>('');\n nfcStatus$ = this.nfcStatusSubject.asObservable();\n\n constructor() {}\n\n private convertSerialToEmployeeNumber(serial: string): string {\n if (!serial) return '';\n\n const cleanHex = serial.replace(/:/g, '');\n const bytes = cleanHex.match(/.{1,2}/g) ?? [];\n const reversedHex = bytes.reverse().join('');\n const decimalValue = BigInt('0x' + reversedHex);\n\n return decimalValue.toString();\n }\n\n async startScan(\n onSuccess: (serial: string, employeeNumber: string, messages: string[]) => void,\n onError: (error: string) => void\n ): Promise<void> {\n if (!('NDEFReader' in window)) {\n this.nfcStatusSubject.next('Web NFC is not supported in this browser.');\n onError('Web NFC is not supported in this browser.');\n return;\n }\n\n this.abortController = new AbortController();\n this.ndef = new NDEFReader();\n\n try {\n await this.ndef.scan({ signal: this.abortController.signal });\n\n this.nfcStatusSubject.next('NFC scan started. Waiting for a tag...');\n onSuccess('', '', []); // Optional: Notify scan started\n\n this.ndef.onreading = (event: NDEFReadingEvent) => {\n console.log('Tag read event fired', event);\n\n const serial = event.serialNumber ?? 'Unknown Serial';\n const employeeNumber = this.convertSerialToEmployeeNumber(serial);\n\n const messages: string[] = [];\n\n if (event.message.records && event.message.records.length > 0) {\n for (const record of event.message.records) {\n if (record.data) {\n const text = new TextDecoder().decode(record.data.buffer);\n messages.push(`Type: ${record.recordType}, MIME: ${record.mediaType ?? 'n/a'}, Text: ${text}`);\n }\n }\n }\n\n this.nfcStatusSubject.next('NFC tag read successfully.');\n onSuccess(serial, employeeNumber, messages);\n };\n\n this.ndef.onreadingerror = () => {\n this.nfcStatusSubject.next('Error reading NFC tag.');\n onError('Error reading NFC tag.');\n };\n } catch (err) {\n console.error('Error reading NFC tag: ', err);\n this.nfcStatusSubject.next('Error starting NFC scan.');\n onError('Error starting NFC scan.');\n }\n }\n\n stopScan(): void {\n if (this.abortController) {\n this.abortController.abort();\n this.abortController = null;\n this.ndef = null;\n this.nfcStatusSubject.next('NFC scan stopped.');\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n\n@Injectable()\nexport class QrCodeScannerService {\n private stream: MediaStream | null = null;\n\n async isSupported(): Promise<boolean> {\n const BarcodeDetectorClass = (window as any).BarcodeDetector;\n return !!BarcodeDetectorClass &&\n await BarcodeDetectorClass.getSupportedFormats().then(\n (formats: string[]) => formats.includes(\"qr_code\")\n );\n }\n\n async scan(video: HTMLVideoElement): Promise<string> {\n const BarcodeDetectorClass = (window as any).BarcodeDetector;\n const detector = new BarcodeDetectorClass({ formats: ['qr_code'] });\n\n try {\n this.stream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: 'environment' }\n });\n\n video.srcObject = this.stream;\n\n // Ensure video is playing before scanning\n await video.play();\n\n return new Promise((resolve, reject) => {\n const detectLoop = async () => {\n try {\n const barcodes = await detector.detect(video);\n if (barcodes.length > 0) {\n this.stop();\n resolve(barcodes[0].rawValue);\n return;\n }\n } catch (err) {\n this.stop();\n reject(err);\n return;\n }\n\n requestAnimationFrame(detectLoop);\n };\n\n detectLoop();\n });\n } catch (err) {\n console.error(\"Camera access or scan error\", err);\n this.stop();\n throw err;\n }\n }\n\n stop(): void {\n if (this.stream) {\n this.stream.getTracks().forEach(track => track.stop());\n this.stream = null;\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface ParseResult {\n location: string;\n machineId: string;\n}\n\nexport interface ParseResponse {\n success: boolean;\n message: string;\n data?: ParseResult;\n}\n\n@Injectable()\nexport class MacoSchemeDecoderService {\n private locationMap: Record<string, string> = {\n AT10: 'ATSA',\n AT20: 'ATTR',\n AT30: 'ATMA',\n DE20: 'DEHE',\n PL91: 'POGL',\n };\n\n /**\n * Parses a MACO scheme URL and extracts a mapped location code and machine ID from the last URL segment.\n *\n * @param url - The URL to parse.\n * @returns A `ParseResponse` containing:\n * - `success: true` with extracted location and machine ID if parsing is successful.\n * - `success: false` with an error message if the input is invalid or cannot be parsed.\n */\n parseUrl(url: string): ParseResponse {\n if (!url || url.trim() === '') {\n return {\n success: false,\n message: 'The URL is empty. Please enter a valid URL.'\n };\n }\n\n // Extract last path segment\n const parts = url.split('/');\n const lastSegment = parts.pop() || '';\n\n if (!lastSegment) {\n return {\n success: false,\n message: 'URL does not contain a valid last segment.'\n };\n }\n\n if (lastSegment.length < 4) {\n return {\n success: false,\n message: 'The last segment format is invalid or too short.'\n };\n }\n\n const locationCode = lastSegment.substring(0, 4); // e.g. 'AT10'\n const machineCode = lastSegment.substring(4); // e.g. 'MAFEB2'\n\n if (!this.locationMap[locationCode]) {\n return {\n success: false,\n message: 'Location code is not recognized or supported.'\n };\n }\n\n if (!machineCode || machineCode.trim() === '') {\n return {\n success: false,\n message: 'Machine identifier is missing.'\n };\n }\n\n return {\n success: true,\n message: `Successfully parsed URL: location=${this.locationMap[locationCode]}, machine=${machineCode}`,\n data: {\n location: this.locationMap[locationCode],\n machineId: machineCode,\n }\n };\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MessageService } from './services/message.service';\nimport { NfcReaderService } from \"./services/nfcReader.service\";\nimport { QrCodeScannerService } from \"./services/qrCodeScanner.service\";\nimport { MacoSchemeDecoderService } from \"./services/macoSchemeDecoder.service\";\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class SharedServicesModule {\n static forRoot(): ModuleWithProviders<SharedServicesModule> {\n return {\n ngModule: SharedServicesModule,\n providers: [MessageService, NfcReaderService, QrCodeScannerService, MacoSchemeDecoderService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {Breadcrumb} from \"../models/breadcrumb\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreadcrumbService {\n private readonly _breadcrumbLabels: BehaviorSubject<any>;\n private readonly _newBreadcrumb: BehaviorSubject<Breadcrumb[]>;\n\n constructor() {\n this._breadcrumbLabels = new BehaviorSubject<any>([]);\n this._newBreadcrumb = new BehaviorSubject<Breadcrumb[]>([]);\n }\n\n public get breadcrumbLabels() : BehaviorSubject<any> {\n return this._breadcrumbLabels;\n }\n\n public get newBreadcrumb() : BehaviorSubject<Breadcrumb[]> {\n return this._newBreadcrumb;\n }\n\n public updateBreadcrumbLabels(labels: any): void {\n this.breadcrumbLabels.next(labels);\n }\n\n public updateBreadcrumb(newBreadcrumb: Breadcrumb[]): void {\n this.newBreadcrumb.next(newBreadcrumb);\n }\n}\n","export class AutoCompleteResult {\n searchTerm?: string;\n\n list?: string[];\n}\n","export class ErrorMessage {\n title?: string;\n message?: string;\n}\n","export class PagedResultDto<T> {\n skip: number;\n take: number;\n totalCount: number;\n list: T[];\n\n constructor() {\n this.skip = 0;\n this.take = 0;\n this.totalCount = 0;\n this.list = new Array<T>();\n }\n}\n","import { BehaviorSubject, Observable } from \"rxjs\";\nimport { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\nimport { PagedResultDto } from \"../models/pagedResultDto\";\n\nexport class DataSourceBase<TDto> implements DataSource<TDto> {\n private readonly dataSubject = new BehaviorSubject<TDto[]>([]);\n private readonly loadingSubject = new BehaviorSubject<boolean>(false);\n private readonly totalCountSubject = new BehaviorSubject<number>(0);\n\n public readonly loading$ = this.loadingSubject.asObservable();\n public readonly totalCount$ = this.totalCountSubject.asObservable();\n\n private readonly addedDtoList: TDto[] = new Array<TDto>();\n private readonly removedDtoList: TDto[] = new Array<TDto>();\n private lastPagedResult: PagedResultDto<TDto> | null = null;\n\n public get totalCount(): Observable<number> {\n return this.totalCount$;\n }\n\n public reset(): void {\n this.addedDtoList.length = 0;\n this.removedDtoList.length = 0;\n }\n\n public addTemporaryDto(dto: TDto): void {\n\n const index = this.removedDtoList.indexOf(dto);\n if (index !== -1) {\n this.removedDtoList.splice(index, 1);\n } else {\n this.addedDtoList.push(dto);\n }\n\n this.onEndLoad();\n }\n\n public removeTemporaryDto(dto: TDto): void {\n\n const index = this.addedDtoList.indexOf(dto);\n if (index !== -1) {\n this.addedDtoList.splice(index, 1);\n } else {\n this.removedDtoList.push(dto);\n }\n\n this.onEndLoad();\n }\n\n public get addedTemporaryDtos(): TDto[] {\n return this.addedDtoList;\n }\n\n public get removedTemporaryDtos(): TDto[] {\n return this.removedDtoList;\n }\n\n\n connect(_: CollectionViewer): Observable<readonly TDto[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(_: CollectionViewer): void {\n this.clear();\n }\n\n clear(): void {\n this.loadingSubject?.next(false);\n this.dataSubject?.next([]);\n this.totalCountSubject?.next(0);\n }\n\n protected onBeginLoad(): void {\n this.loadingSubject?.next(true);\n }\n\n protected onCompleteLoad(pagedResult: PagedResultDto<TDto>): void {\n\n this.lastPagedResult = pagedResult;\n\n this.onEndLoad();\n }\n\n private onEndLoad(): void {\n\n if (this.lastPagedResult !== null) {\n\n const totalCount = this.lastPagedResult?.totalCount + this.addedDtoList.length - this.removedDtoList.length;\n const list = this.lastPagedResult.list.concat(this.addedDtoList).filter((x) => !this.removedDtoList.includes(x));\n\n this.loadingSubject?.next(false);\n this.dataSubject?.next(list);\n this.totalCountSubject?.next(totalCount);\n }\n else {\n const totalCount = this.addedDtoList.length;\n const list = this.addedDtoList;\n\n this.loadingSubject?.next(false);\n this.dataSubject?.next(list);\n this.totalCountSubject?.next(totalCount);\n }\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\n\nexport class GenericDataSource<TEntity> implements DataSource<TEntity> {\n private readonly dataSubject = new BehaviorSubject<TEntity[]>([]);\n\n constructor(public data: TEntity[]) {\n this.dataSubject.next(data);\n }\n\n emitChanged(): void {\n this.dataSubject.next(this.data);\n }\n\n connect(_: CollectionViewer): Observable<TEntity[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(_: CollectionViewer): void {\n this.dataSubject.complete();\n }\n}\n","import { formatISO, parseISO } from 'date-fns';\n\nexport class IsoDateTime {\n public static utcToLocalDateTimeIso(utcDateTime: string): string | null {\n if (!utcDateTime) {\n return null;\n }\n\n return parseISO(utcDateTime).toISOString();\n }\n\n public static localToUtcDateTimeIso(localDateTime: string): string | null {\n if (!localDateTime) {\n return null;\n }\n return formatISO(localDateTime);\n }\n\n public static currentUtcDateTimeIso(): string {\n return formatISO(Date.now());\n }\n}\n","export class EnumTuple<TValue = number> {\n id: string | undefined;\n name: TValue | undefined;\n}\n\nexport class EnumReader<TValue = number> {\n constructor(private readonly value: Record<string, TValue>) {}\n\n public getNamesAndValues(): EnumTuple<TValue>[] {\n return this.getNames().map((n) => {\n return { name: this.value[n], id: n } as EnumTuple<TValue>;\n });\n }\n\n public getNames(): string[] {\n return Object.keys(this.value);\n }\n\n private getObjValues(): TValue[] {\n return Object.keys(this.value).map((k) => this.value[k]);\n }\n}\n","export class ObjectCloner {\n\n public static cloneArray<TR, TS1>(source: TS1[], ignoreProperties: string[] | null = null): TR[] {\n // Klone das Array\n let clonedArray = [...source] as TR as TR[];\n\n if (ignoreProperties && typeof clonedArray[0] === 'object') {\n clonedArray = clonedArray.map(item => {\n const clonedItem = { ...item } as any;\n ignoreProperties.forEach(prop => delete clonedItem[prop]);\n return clonedItem as TR;\n }) as unknown as TR[];\n }\n\n return clonedArray;\n }\n\n public static cloneObject<TR, TS1>(source: TS1, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n\n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n\n\n public static cloneObject2<TR, TS1, TS2>(source: TS1, source2: TS2, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source, source2);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n\n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n}\n","/*\n * Public API Surface of shared-services\n */\n\nexport * from './lib/shared-services.module';\nexport * from './lib/services/breadcrumb.service';\nexport * from './lib/services/message.service';\nexport * from './lib/models/autoCompleteResult';\nexport * from './lib/models/errorMessage';\nexport * from './lib/models/pagedResultDto';\nexport * from './lib/models/breadcrumb';\nexport * from './lib/dataSources/dataSourceBase';\nexport * from './lib/dataSources/genericDataSource';\nexport * from './lib/dataSources/entitySelectDataSource';\nexport * from './lib/dataSources/autoCompleteDataSource';\nexport * from './lib/shared/isoDateTime';\nexport * from './lib/shared/enumReader';\nexport * from './lib/shared/objectCloner';\nexport * from './lib/services/nfcReader.service';\nexport * from './lib/services/qrCodeScanner.service';\nexport * from './lib/services/macoSchemeDecoder.service';\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/services/nfcReader.service.ts","../../../../projects/meshmakers/shared-services/src/lib/services/qrCodeScanner.service.ts","../../../../projects/meshmakers/shared-services/src/lib/services/macoSchemeDecoder.service.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/mm-http-error-interceptor.service.ts","../../../../projects/meshmakers/shared-services/src/lib/shared-services.module.ts","../../../../projects/meshmakers/shared-services/src/lib/services/breadcrumb.service.ts","../../../../projects/meshmakers/shared-services/src/lib/models/autoCompleteResult.ts","../../../../projects/meshmakers/shared-services/src/lib/models/errorMessage.ts","../../../../projects/meshmakers/shared-services/src/lib/models/pagedResultDto.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/dataSourceBase.ts","../../../../projects/meshmakers/shared-services/src/lib/dataSources/genericDataSource.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/isoDateTime.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/enumReader.ts","../../../../projects/meshmakers/shared-services/src/lib/shared/objectCloner.ts","../../../../projects/meshmakers/shared-services/src/public-api.ts","../../../../projects/meshmakers/shared-services/src/meshmakers-shared-services.ts"],"sourcesContent":["import { Injectable, inject } 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 private readonly snackBar = inject(MatSnackBar);\n\n latestErrorMessage: BehaviorSubject<ErrorMessage | null>;\n\n errorMessages: ErrorMessage[];\n\n constructor() {\n this.latestErrorMessage = new BehaviorSubject<ErrorMessage | null>(null);\n this.errorMessages = new Array<ErrorMessage>();\n }\n\n getErrorMessageCount(): number {\n return this.errorMessages.length;\n }\n\n getErrorMessage(index: number): ErrorMessage {\n return this.errorMessages[index];\n }\n\n getLatestErrorMessage(): Observable<ErrorMessage | null> {\n return this.latestErrorMessage.asObservable();\n }\n\n showError(message: string, title: string): void {\n console.error(message);\n\n const errorMessage = {\n title,\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showErrorWithDetails(error: any): void {\n if (error instanceof Error) {\n this.showError(error.message, 'Error');\n } else if (error === 'string') {\n this.showError(error, 'Error');\n } else if (error instanceof Object) {\n this.showError(JSON.stringify(error), 'Error');\n } else {\n this.showError('Unknown error', 'Error');\n }\n }\n\n showErrorMessage(message: string): void {\n console.error(message);\n\n const errorMessage = {\n title: message,\n message\n } as ErrorMessage;\n this.errorMessages.push(errorMessage);\n\n this.latestErrorMessage.next(errorMessage);\n }\n\n showInformation(message: string): void {\n this.snackBar.open(message, undefined, {\n duration: 3000,\n // here specify the position\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n });\n }\n\n clearCurrentError(): void {\n this.latestErrorMessage.next(null);\n }\n\n clearAllErrors(): void {\n this.errorMessages = [];\n this.latestErrorMessage.next(null);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class NfcReaderService {\n private ndef: NDEFReader | null = null;\n private abortController: AbortController | null = null;\n\n // Emits NFC status updates to subscribers\n private nfcStatusSubject = new BehaviorSubject<string>('');\n nfcStatus$ = this.nfcStatusSubject.asObservable();\n\n constructor() {}\n\n private convertSerialToEmployeeNumber(serial: string): string {\n if (!serial) return '';\n\n const cleanHex = serial.replace(/:/g, '');\n const bytes = cleanHex.match(/.{1,2}/g) ?? [];\n const reversedHex = bytes.reverse().join('');\n const decimalValue = BigInt('0x' + reversedHex);\n\n return decimalValue.toString();\n }\n\n async startScan(\n onSuccess: (serial: string, employeeNumber: string, messages: string[]) => void,\n onError: (error: string) => void\n ): Promise<void> {\n if (!('NDEFReader' in window)) {\n this.nfcStatusSubject.next('Web NFC is not supported in this browser.');\n onError('Web NFC is not supported in this browser.');\n return;\n }\n\n this.abortController = new AbortController();\n this.ndef = new NDEFReader();\n\n try {\n await this.ndef.scan({ signal: this.abortController.signal });\n\n this.nfcStatusSubject.next('NFC scan started. Waiting for a tag...');\n onSuccess('', '', []); // Optional: Notify scan started\n\n this.ndef.onreading = (event: NDEFReadingEvent) => {\n console.log('Tag read event fired', event);\n\n const serial = event.serialNumber ?? 'Unknown Serial';\n const employeeNumber = this.convertSerialToEmployeeNumber(serial);\n\n const messages: string[] = [];\n\n if (event.message.records && event.message.records.length > 0) {\n for (const record of event.message.records) {\n if (record.data) {\n const text = new TextDecoder().decode(record.data.buffer);\n messages.push(`Type: ${record.recordType}, MIME: ${record.mediaType ?? 'n/a'}, Text: ${text}`);\n }\n }\n }\n\n this.nfcStatusSubject.next('NFC tag read successfully.');\n onSuccess(serial, employeeNumber, messages);\n };\n\n this.ndef.onreadingerror = () => {\n this.nfcStatusSubject.next('Error reading NFC tag.');\n onError('Error reading NFC tag.');\n };\n } catch (err) {\n console.error('Error reading NFC tag: ', err);\n this.nfcStatusSubject.next('Error starting NFC scan.');\n onError('Error starting NFC scan.');\n }\n }\n\n stopScan(): void {\n if (this.abortController) {\n this.abortController.abort();\n this.abortController = null;\n this.ndef = null;\n this.nfcStatusSubject.next('NFC scan stopped.');\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n\n@Injectable()\nexport class QrCodeScannerService {\n private stream: MediaStream | null = null;\n\n async isSupported(): Promise<boolean> {\n const BarcodeDetectorClass = (window as any).BarcodeDetector;\n return !!BarcodeDetectorClass &&\n await BarcodeDetectorClass.getSupportedFormats().then(\n (formats: string[]) => formats.includes(\"qr_code\")\n );\n }\n\n async scan(video: HTMLVideoElement): Promise<string> {\n const BarcodeDetectorClass = (window as any).BarcodeDetector;\n const detector = new BarcodeDetectorClass({ formats: ['qr_code'] });\n\n try {\n this.stream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: 'environment' }\n });\n\n video.srcObject = this.stream;\n\n // Ensure video is playing before scanning\n await video.play();\n\n return new Promise((resolve, reject) => {\n const detectLoop = async () => {\n try {\n const barcodes = await detector.detect(video);\n if (barcodes.length > 0) {\n this.stop();\n resolve(barcodes[0].rawValue);\n return;\n }\n } catch (err) {\n this.stop();\n reject(err);\n return;\n }\n\n requestAnimationFrame(detectLoop);\n };\n\n detectLoop();\n });\n } catch (err) {\n console.error(\"Camera access or scan error\", err);\n this.stop();\n throw err;\n }\n }\n\n stop(): void {\n if (this.stream) {\n this.stream.getTracks().forEach(track => track.stop());\n this.stream = null;\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface ParseResult {\n location: string;\n machineId: string;\n}\n\nexport interface ParseResponse {\n success: boolean;\n message: string;\n data?: ParseResult;\n}\n\n@Injectable()\nexport class MacoSchemeDecoderService {\n private locationMap: Record<string, string> = {\n AT10: 'ATSA',\n AT20: 'ATTR',\n AT30: 'ATMA',\n DE20: 'DEHE',\n PL91: 'POGL',\n };\n\n /**\n * Parses a MACO scheme URL and extracts a mapped location code and machine ID from the last URL segment.\n *\n * @param url - The URL to parse.\n * @returns A `ParseResponse` containing:\n * - `success: true` with extracted location and machine ID if parsing is successful.\n * - `success: false` with an error message if the input is invalid or cannot be parsed.\n */\n parseUrl(url: string): ParseResponse {\n if (!url || url.trim() === '') {\n return {\n success: false,\n message: 'The URL is empty. Please enter a valid URL.'\n };\n }\n\n // Extract last path segment\n const parts = url.split('/');\n const lastSegment = parts.pop() || '';\n\n if (!lastSegment) {\n return {\n success: false,\n message: 'URL does not contain a valid last segment.'\n };\n }\n\n if (lastSegment.length < 4) {\n return {\n success: false,\n message: 'The last segment format is invalid or too short.'\n };\n }\n\n const locationCode = lastSegment.substring(0, 4); // e.g. 'AT10'\n const machineCode = lastSegment.substring(4); // e.g. 'MAFEB2'\n\n if (!this.locationMap[locationCode]) {\n return {\n success: false,\n message: 'Location code is not recognized or supported.'\n };\n }\n\n if (!machineCode || machineCode.trim() === '') {\n return {\n success: false,\n message: 'Machine identifier is missing.'\n };\n }\n\n return {\n success: true,\n message: `Successfully parsed URL: location=${this.locationMap[locationCode]}, machine=${machineCode}`,\n data: {\n location: this.locationMap[locationCode],\n machineId: machineCode,\n }\n };\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, retry } from 'rxjs/operators';\nimport { inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"../services/message.service\";\nimport { ApiErrorDto } from \"../models/apiErrorDto\";\n\n@Injectable()\nexport class MmHttpErrorInterceptor implements HttpInterceptor {\n\n private readonly messageService = inject(MessageService);\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n retry(0),\n catchError((error: HttpErrorResponse) => {\n\n if (error.status === 0) {\n this.messageService.showError('Cannot connect to server. Please check your network connection or if the server is down.', 'Connection Error');\n }\n\n if (error.status === 400 && error.error.statusCode) {\n const apiError = error.error as ApiErrorDto;\n\n let details = '';\n if (apiError.details && apiError.details.length > 0) {\n for (const detail of apiError.details) {\n if (detail.description) {\n details += `\\n✗ ${detail.description}`;\n }\n }\n }\n\n this.messageService.showError(details, apiError.message);\n }\n\n return throwError(() => error);\n })\n );\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MessageService } from './services/message.service';\nimport { NfcReaderService } from \"./services/nfcReader.service\";\nimport { QrCodeScannerService } from \"./services/qrCodeScanner.service\";\nimport { MacoSchemeDecoderService } from \"./services/macoSchemeDecoder.service\";\nimport { MmHttpErrorInterceptor } from \"./shared/mm-http-error-interceptor.service\";\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class SharedServicesModule {\n static forRoot(): ModuleWithProviders<SharedServicesModule> {\n return {\n ngModule: SharedServicesModule,\n providers: [MessageService, NfcReaderService, QrCodeScannerService, MacoSchemeDecoderService, MmHttpErrorInterceptor],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {Breadcrumb} from \"../models/breadcrumb\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreadcrumbService {\n private readonly _breadcrumbLabels: BehaviorSubject<any>;\n private readonly _newBreadcrumb: BehaviorSubject<Breadcrumb[]>;\n\n constructor() {\n this._breadcrumbLabels = new BehaviorSubject<any>([]);\n this._newBreadcrumb = new BehaviorSubject<Breadcrumb[]>([]);\n }\n\n public get breadcrumbLabels() : BehaviorSubject<any> {\n return this._breadcrumbLabels;\n }\n\n public get newBreadcrumb() : BehaviorSubject<Breadcrumb[]> {\n return this._newBreadcrumb;\n }\n\n public updateBreadcrumbLabels(labels: any): void {\n this.breadcrumbLabels.next(labels);\n }\n\n public updateBreadcrumb(newBreadcrumb: Breadcrumb[]): void {\n this.newBreadcrumb.next(newBreadcrumb);\n }\n}\n","export class AutoCompleteResult {\n searchTerm?: string;\n\n list?: string[];\n}\n","export class ErrorMessage {\n title?: string;\n message?: string;\n}\n","export class PagedResultDto<T> {\n skip: number;\n take: number;\n totalCount: number;\n list: T[];\n\n constructor() {\n this.skip = 0;\n this.take = 0;\n this.totalCount = 0;\n this.list = new Array<T>();\n }\n}\n","import { BehaviorSubject, Observable } from \"rxjs\";\nimport { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\nimport { PagedResultDto } from \"../models/pagedResultDto\";\n\nexport class DataSourceBase<TDto> implements DataSource<TDto> {\n private readonly dataSubject = new BehaviorSubject<TDto[]>([]);\n private readonly loadingSubject = new BehaviorSubject<boolean>(false);\n private readonly totalCountSubject = new BehaviorSubject<number>(0);\n\n public readonly loading$ = this.loadingSubject.asObservable();\n public readonly totalCount$ = this.totalCountSubject.asObservable();\n\n private readonly addedDtoList: TDto[] = new Array<TDto>();\n private readonly removedDtoList: TDto[] = new Array<TDto>();\n private lastPagedResult: PagedResultDto<TDto> | null = null;\n\n public get totalCount(): Observable<number> {\n return this.totalCount$;\n }\n\n public reset(): void {\n this.addedDtoList.length = 0;\n this.removedDtoList.length = 0;\n }\n\n public addTemporaryDto(dto: TDto): void {\n\n const index = this.removedDtoList.indexOf(dto);\n if (index !== -1) {\n this.removedDtoList.splice(index, 1);\n } else {\n this.addedDtoList.push(dto);\n }\n\n this.onEndLoad();\n }\n\n public removeTemporaryDto(dto: TDto): void {\n\n const index = this.addedDtoList.indexOf(dto);\n if (index !== -1) {\n this.addedDtoList.splice(index, 1);\n } else {\n this.removedDtoList.push(dto);\n }\n\n this.onEndLoad();\n }\n\n public get addedTemporaryDtos(): TDto[] {\n return this.addedDtoList;\n }\n\n public get removedTemporaryDtos(): TDto[] {\n return this.removedDtoList;\n }\n\n\n connect(_: CollectionViewer): Observable<readonly TDto[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(_: CollectionViewer): void {\n this.clear();\n }\n\n clear(): void {\n this.loadingSubject?.next(false);\n this.dataSubject?.next([]);\n this.totalCountSubject?.next(0);\n }\n\n protected onBeginLoad(): void {\n this.loadingSubject?.next(true);\n }\n\n protected onCompleteLoad(pagedResult: PagedResultDto<TDto>): void {\n\n this.lastPagedResult = pagedResult;\n\n this.onEndLoad();\n }\n\n private onEndLoad(): void {\n\n if (this.lastPagedResult !== null) {\n\n const totalCount = this.lastPagedResult?.totalCount + this.addedDtoList.length - this.removedDtoList.length;\n const list = this.lastPagedResult.list.concat(this.addedDtoList).filter((x) => !this.removedDtoList.includes(x));\n\n this.loadingSubject?.next(false);\n this.dataSubject?.next(list);\n this.totalCountSubject?.next(totalCount);\n }\n else {\n const totalCount = this.addedDtoList.length;\n const list = this.addedDtoList;\n\n this.loadingSubject?.next(false);\n this.dataSubject?.next(list);\n this.totalCountSubject?.next(totalCount);\n }\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\n\nexport class GenericDataSource<TEntity> implements DataSource<TEntity> {\n private readonly dataSubject = new BehaviorSubject<TEntity[]>([]);\n\n constructor(public data: TEntity[]) {\n this.dataSubject.next(data);\n }\n\n emitChanged(): void {\n this.dataSubject.next(this.data);\n }\n\n connect(_: CollectionViewer): Observable<TEntity[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(_: CollectionViewer): void {\n this.dataSubject.complete();\n }\n}\n","import { formatISO, parseISO } from 'date-fns';\n\nexport class IsoDateTime {\n public static utcToLocalDateTimeIso(utcDateTime: string): string | null {\n if (!utcDateTime) {\n return null;\n }\n\n return parseISO(utcDateTime).toISOString();\n }\n\n public static localToUtcDateTimeIso(localDateTime: string): string | null {\n if (!localDateTime) {\n return null;\n }\n return formatISO(localDateTime);\n }\n\n public static currentUtcDateTimeIso(): string {\n return formatISO(Date.now());\n }\n}\n","export class EnumTuple<TValue = number> {\n id: string | undefined;\n name: TValue | undefined;\n}\n\nexport class EnumReader<TValue = number> {\n constructor(private readonly value: Record<string, TValue>) {}\n\n public getNamesAndValues(): EnumTuple<TValue>[] {\n return this.getNames().map((n) => {\n return { name: this.value[n], id: n } as EnumTuple<TValue>;\n });\n }\n\n public getNames(): string[] {\n return Object.keys(this.value);\n }\n\n private getObjValues(): TValue[] {\n return Object.keys(this.value).map((k) => this.value[k]);\n }\n}\n","export class ObjectCloner {\n\n public static cloneArray<TR, TS1>(source: TS1[], ignoreProperties: string[] | null = null): TR[] {\n // Klone das Array\n let clonedArray = [...source] as TR as TR[];\n\n if (ignoreProperties && typeof clonedArray[0] === 'object') {\n clonedArray = clonedArray.map(item => {\n const clonedItem = { ...item } as any;\n ignoreProperties.forEach(prop => delete clonedItem[prop]);\n return clonedItem as TR;\n }) as unknown as TR[];\n }\n\n return clonedArray;\n }\n\n public static cloneObject<TR, TS1>(source: TS1, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n\n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n\n\n public static cloneObject2<TR, TS1, TS2>(source: TS1, source2: TS2, ignoreProperties: string[] | null = null): TR {\n const clonedObject = Object.assign({} as any, source, source2);\n\n if (ignoreProperties != null) {\n for (const prop of ignoreProperties) {\n\n delete clonedObject[prop];\n }\n }\n return clonedObject as TR;\n }\n}\n","/*\n * Public API Surface of shared-services\n */\n\nexport * from './lib/shared-services.module';\nexport * from './lib/services/breadcrumb.service';\nexport * from './lib/services/message.service';\nexport * from './lib/models/autoCompleteResult';\nexport * from './lib/models/errorMessage';\nexport * from './lib/models/pagedResultDto';\nexport * from './lib/models/breadcrumb';\nexport * from './lib/dataSources/dataSourceBase';\nexport * from './lib/dataSources/genericDataSource';\nexport * from './lib/dataSources/entitySelectDataSource';\nexport * from './lib/dataSources/autoCompleteDataSource';\nexport * from './lib/shared/isoDateTime';\nexport * from './lib/shared/enumReader';\nexport * from './lib/shared/objectCloner';\nexport * from './lib/services/nfcReader.service';\nexport * from './lib/services/qrCodeScanner.service';\nexport * from './lib/services/macoSchemeDecoder.service';\nexport * from './lib/shared/mm-http-error-interceptor.service';\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
CHANGED
|
@@ -3,6 +3,7 @@ import { ModuleWithProviders } from '@angular/core';
|
|
|
3
3
|
import * as rxjs from 'rxjs';
|
|
4
4
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
5
5
|
import { DataSource, CollectionViewer } from '@angular/cdk/collections';
|
|
6
|
+
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
|
|
6
7
|
|
|
7
8
|
declare class SharedServicesModule {
|
|
8
9
|
static forRoot(): ModuleWithProviders<SharedServicesModule>;
|
|
@@ -45,6 +46,8 @@ declare class MessageService {
|
|
|
45
46
|
showErrorWithDetails(error: any): void;
|
|
46
47
|
showErrorMessage(message: string): void;
|
|
47
48
|
showInformation(message: string): void;
|
|
49
|
+
clearCurrentError(): void;
|
|
50
|
+
clearAllErrors(): void;
|
|
48
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageService, never>;
|
|
49
52
|
static ɵprov: i0.ɵɵInjectableDeclaration<MessageService>;
|
|
50
53
|
}
|
|
@@ -175,5 +178,12 @@ declare class MacoSchemeDecoderService {
|
|
|
175
178
|
static ɵprov: i0.ɵɵInjectableDeclaration<MacoSchemeDecoderService>;
|
|
176
179
|
}
|
|
177
180
|
|
|
178
|
-
|
|
181
|
+
declare class MmHttpErrorInterceptor implements HttpInterceptor {
|
|
182
|
+
private readonly messageService;
|
|
183
|
+
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
|
184
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MmHttpErrorInterceptor, never>;
|
|
185
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MmHttpErrorInterceptor>;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export { AutoCompleteResult, BreadcrumbService, DataSourceBase, EnumReader, EnumTuple, ErrorMessage, GenericDataSource, IsoDateTime, MacoSchemeDecoderService, MessageService, MmHttpErrorInterceptor, NfcReaderService, ObjectCloner, PagedResultDto, QrCodeScannerService, SharedServicesModule };
|
|
179
189
|
export type { AutoCompleteDataSource, Breadcrumb, EntitySelectDataSource, ParseResponse, ParseResult };
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshmakers/shared-services",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.144-0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^20.
|
|
6
|
-
"@angular/core": "^20.
|
|
5
|
+
"@angular/common": "^20.2.3",
|
|
6
|
+
"@angular/core": "^20.2.3"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.8.1"
|