@techextensor/tab-sdk 0.0.4 → 0.0.7
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/esm2022/lib/app/analytics.service.mjs +51 -0
- package/esm2022/lib/app/app.service.mjs +145 -0
- package/esm2022/lib/app/file.service.mjs +41 -0
- package/esm2022/lib/app/release.service.mjs +38 -0
- package/esm2022/lib/app/report.service.mjs +48 -0
- package/esm2022/lib/app/translator.service.mjs +77 -0
- package/esm2022/lib/crud/crud.service.mjs +161 -0
- package/esm2022/lib/enum/store.enum.mjs +6 -0
- package/esm2022/lib/enum/ui.enum.mjs +13 -0
- package/esm2022/lib/http/http.service.mjs +58 -0
- package/esm2022/lib/interface/http.interface.mjs +2 -0
- package/esm2022/lib/interface/ui.interface.mjs +2 -0
- package/esm2022/lib/store/store.service.mjs +719 -0
- package/esm2022/lib/tab-sdk.service.mjs +53 -5
- package/esm2022/lib/ui/form.service.mjs +79 -0
- package/esm2022/lib/ui/ui.service.mjs +215 -22
- package/esm2022/lib/util/util.service.mjs +53 -0
- package/esm2022/lib/workflow/transition.service.mjs +40 -0
- package/esm2022/public-api.mjs +8 -4
- package/fesm2022/techextensor-tab-sdk.mjs +1745 -54
- package/fesm2022/techextensor-tab-sdk.mjs.map +1 -1
- package/lib/app/analytics.service.d.ts +28 -0
- package/lib/app/app.service.d.ts +81 -0
- package/lib/app/file.service.d.ts +22 -0
- package/lib/app/release.service.d.ts +23 -0
- package/lib/app/report.service.d.ts +28 -0
- package/lib/app/translator.service.d.ts +49 -0
- package/lib/crud/crud.service.d.ts +88 -0
- package/lib/enum/store.enum.d.ts +4 -0
- package/lib/enum/ui.enum.d.ts +10 -0
- package/lib/http/http.service.d.ts +35 -0
- package/lib/interface/http.interface.d.ts +8 -0
- package/lib/interface/ui.interface.d.ts +24 -0
- package/lib/store/store.service.d.ts +406 -0
- package/lib/tab-sdk.service.d.ts +23 -1
- package/lib/ui/form.service.d.ts +47 -0
- package/lib/ui/ui.service.d.ts +101 -10
- package/lib/util/util.service.d.ts +14 -0
- package/lib/workflow/transition.service.d.ts +21 -0
- package/package.json +2 -2
- package/public-api.d.ts +4 -0
- package/esm2022/lib/enums/ui.enum.mjs +0 -16
- package/esm2022/lib/interfaces/ui.interface.mjs +0 -2
- package/lib/enums/ui.enum.d.ts +0 -13
- package/lib/interfaces/ui.interface.d.ts +0 -56
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { AppHelper } from '@techextensor/tab-core-utility';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AnalyticsService {
|
|
6
|
+
_appHelper = inject(AppHelper);
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves the summary of performance analytics based on the provided payload.
|
|
9
|
+
*
|
|
10
|
+
* @param payload The performance analytics payload.
|
|
11
|
+
* @returns A promise that resolves to a common API response containing the performance analytics summary.
|
|
12
|
+
*/
|
|
13
|
+
async getSummaryOfPerformance(payload) {
|
|
14
|
+
const response = await firstValueFrom(this._appHelper.getSummaryOfPerformanceAnalytics(payload));
|
|
15
|
+
// Return the response from the server
|
|
16
|
+
return response;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the detail of performance analytics based on the provided payload.
|
|
20
|
+
*
|
|
21
|
+
* @param payload The performance analytics payload.
|
|
22
|
+
* @returns A promise that resolves to a common API response containing the performance analytics detail.
|
|
23
|
+
*/
|
|
24
|
+
async getDetailOfPerformance(payload) {
|
|
25
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
26
|
+
const response = await firstValueFrom(this._appHelper.getDetailOfPerformanceAnalytics(payload));
|
|
27
|
+
// Return the response from the server
|
|
28
|
+
return response;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Inserts the screen performance statistics based on the provided payload.
|
|
32
|
+
*
|
|
33
|
+
* @param payload The screen performance payload containing the statistics to be inserted.
|
|
34
|
+
* @returns A promise that resolves to a common API response containing the result of the insertion.
|
|
35
|
+
*/
|
|
36
|
+
async insertScreenPerformance(payload) {
|
|
37
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
38
|
+
const response = await firstValueFrom(this._appHelper.insertScreenPerformanceStatistics(payload));
|
|
39
|
+
// Return the response from the server
|
|
40
|
+
return response;
|
|
41
|
+
}
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnalyticsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnalyticsService, providedIn: 'root' });
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnalyticsService, decorators: [{
|
|
46
|
+
type: Injectable,
|
|
47
|
+
args: [{
|
|
48
|
+
providedIn: 'root'
|
|
49
|
+
}]
|
|
50
|
+
}] });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YWItc2RrL3NyYy9saWIvYXBwL2FuYWx5dGljcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQTRFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdEMsTUFBTSxPQUFPLGdCQUFnQjtJQUNqQixVQUFVLEdBQWMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWxEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQW9DO1FBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUM1RCxDQUFDO1FBQ0Ysc0NBQXNDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxPQUFvQztRQUM3RCw4RUFBOEU7UUFDOUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQzNELENBQUM7UUFDRixzQ0FBc0M7UUFDdEMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQWlDO1FBQzNELDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxPQUFPLENBQUMsQ0FDN0QsQ0FBQztRQUNGLHNDQUFzQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO3dHQTdDUSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQUZiLE1BQU07OzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcEhlbHBlciwgQ29tbW9uQXBpUmVzcG9uc2UsIFBlcmZvcm1hbmNlQW5hbHl0aWNzUGF5bG9hZCwgU2NyZWVuUGVyZm9ybWFuY2VQYXlsb2FkIH0gZnJvbSAnQHRlY2hleHRlbnNvci90YWItY29yZS11dGlsaXR5JztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfYXBwSGVscGVyOiBBcHBIZWxwZXIgPSBpbmplY3QoQXBwSGVscGVyKTtcblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgc3VtbWFyeSBvZiBwZXJmb3JtYW5jZSBhbmFseXRpY3MgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBheWxvYWQuXG4gICAgICogXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBlcmZvcm1hbmNlIGFuYWx5dGljcyBwYXlsb2FkLlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSBwZXJmb3JtYW5jZSBhbmFseXRpY3Mgc3VtbWFyeS5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZShwYXlsb2FkOiBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl9hcHBIZWxwZXIuZ2V0U3VtbWFyeU9mUGVyZm9ybWFuY2VBbmFseXRpY3MocGF5bG9hZClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgZGV0YWlsIG9mIHBlcmZvcm1hbmNlIGFuYWx5dGljcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGVyZm9ybWFuY2UgYW5hbHl0aWNzIHBheWxvYWQuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBjb21tb24gQVBJIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIHBlcmZvcm1hbmNlIGFuYWx5dGljcyBkZXRhaWwuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0RGV0YWlsT2ZQZXJmb3JtYW5jZShwYXlsb2FkOiBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIC8vIFVzZSB0aGUgZmlyc3RWYWx1ZUZyb20gUnhKcyBvcGVyYXRvciB0byB3YWl0IGZvciB0aGUgb2JzZXJ2YWJsZSB0byBjb21wbGV0ZVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fYXBwSGVscGVyLmdldERldGFpbE9mUGVyZm9ybWFuY2VBbmFseXRpY3MocGF5bG9hZClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc2VydHMgdGhlIHNjcmVlbiBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBzY3JlZW4gcGVyZm9ybWFuY2UgcGF5bG9hZCBjb250YWluaW5nIHRoZSBzdGF0aXN0aWNzIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgdGhlIGluc2VydGlvbi5cbiAgICAgKi9cbiAgICBhc3luYyBpbnNlcnRTY3JlZW5QZXJmb3JtYW5jZShwYXlsb2FkOiBTY3JlZW5QZXJmb3JtYW5jZVBheWxvYWQpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIC8vIFVzZSB0aGUgZmlyc3RWYWx1ZUZyb20gUnhKcyBvcGVyYXRvciB0byB3YWl0IGZvciB0aGUgb2JzZXJ2YWJsZSB0byBjb21wbGV0ZVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fYXBwSGVscGVyLmluc2VydFNjcmVlblBlcmZvcm1hbmNlU3RhdGlzdGljcyhwYXlsb2FkKVxuICAgICAgICApO1xuICAgICAgICAvLyBSZXR1cm4gdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { AppHelper } from '@techextensor/tab-core-utility';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AppService {
|
|
6
|
+
_appHelper = inject(AppHelper);
|
|
7
|
+
/**
|
|
8
|
+
* Rebuilds the current app.
|
|
9
|
+
*
|
|
10
|
+
* @returns A promise that resolves to a common API response.
|
|
11
|
+
*/
|
|
12
|
+
async rebuild() {
|
|
13
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
14
|
+
const response = await firstValueFrom(this._appHelper.rebuildApp());
|
|
15
|
+
// Return the response from the server.
|
|
16
|
+
return response;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the schema for the current app.
|
|
20
|
+
*
|
|
21
|
+
* @returns A promise that resolves to a common API response containing the schema.
|
|
22
|
+
*/
|
|
23
|
+
async getSchema() {
|
|
24
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
25
|
+
const response = await firstValueFrom(this._appHelper.getSchema());
|
|
26
|
+
// Return the response from the server
|
|
27
|
+
return response;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Retrieves the current app's permission.
|
|
31
|
+
*
|
|
32
|
+
* @returns A promise that resolves to a common API response containing the permission information.
|
|
33
|
+
*/
|
|
34
|
+
async getPermission() {
|
|
35
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
36
|
+
const response = await firstValueFrom(this._appHelper.getPermission());
|
|
37
|
+
// Return the response from the server
|
|
38
|
+
return response;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Registers app objects based on the provided payload.
|
|
42
|
+
*
|
|
43
|
+
* @param payload The register app objects payload.
|
|
44
|
+
* @returns A promise that resolves to a common API response.
|
|
45
|
+
*/
|
|
46
|
+
async registerAppObject(payload) {
|
|
47
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
48
|
+
const response = await firstValueFrom(this._appHelper.registerAppObjects(payload));
|
|
49
|
+
// Return the response from the server
|
|
50
|
+
return response;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Clones a data source query (DSQ) based on the provided payload.
|
|
54
|
+
*
|
|
55
|
+
* @param payload The clone DSQ payload.
|
|
56
|
+
* @returns A promise that resolves to a common API response.
|
|
57
|
+
*/
|
|
58
|
+
async cloneDsq(payload) {
|
|
59
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
60
|
+
const response = await firstValueFrom(this._appHelper.cloneDsq(payload));
|
|
61
|
+
// Return the response from the server
|
|
62
|
+
return response;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Retrieves data in JSON format based on the provided payload.
|
|
66
|
+
*
|
|
67
|
+
* @param payload The get data JSON by type payload.
|
|
68
|
+
* @returns A promise that resolves to a common API response containing the data in JSON format.
|
|
69
|
+
*/
|
|
70
|
+
async getDataJsonByType(payload) {
|
|
71
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
72
|
+
const response = await firstValueFrom(this._appHelper.getDataJsonByType(payload));
|
|
73
|
+
// Return the response from the server
|
|
74
|
+
return response;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Synchronizes the current app's fields based on the provided payload.
|
|
78
|
+
*
|
|
79
|
+
* @param payload The sync app fields payload.
|
|
80
|
+
* @returns A promise that resolves to a common API response.
|
|
81
|
+
*/
|
|
82
|
+
async syncAppFields(payload) {
|
|
83
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
84
|
+
const response = await firstValueFrom(this._appHelper.syncAppFields(payload));
|
|
85
|
+
// Return the response from the server
|
|
86
|
+
return response;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Sets the tab components based on the provided connection ID.
|
|
90
|
+
*
|
|
91
|
+
* @param connectionId The ID of the connection to set the components for.
|
|
92
|
+
* @returns A promise that resolves to a common API response.
|
|
93
|
+
*/
|
|
94
|
+
async setTabComponents(connectionId) {
|
|
95
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
96
|
+
const response = await firstValueFrom(this._appHelper.setTabComponents(connectionId));
|
|
97
|
+
// Return the response from the server
|
|
98
|
+
return response;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Performs validation for the connection with the provided ID.
|
|
102
|
+
*
|
|
103
|
+
* @param connectionId The ID of the connection to validate.
|
|
104
|
+
* @returns A promise that resolves to a common API response containing the validation result.
|
|
105
|
+
*/
|
|
106
|
+
async performValidation(connectionId) {
|
|
107
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
108
|
+
const response = await firstValueFrom(this._appHelper.performValidation(connectionId));
|
|
109
|
+
// Return the response from the server
|
|
110
|
+
return response;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Tests the connection with the provided connection ID.
|
|
114
|
+
*
|
|
115
|
+
* @param connectionId The ID of the connection to test.
|
|
116
|
+
* @returns A promise that resolves to a common API response containing the test result.
|
|
117
|
+
*/
|
|
118
|
+
async testConnection(connectionId) {
|
|
119
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
120
|
+
const response = await firstValueFrom(this._appHelper.testConnection(connectionId));
|
|
121
|
+
// Return the response from the server
|
|
122
|
+
return response;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Refreshes the global search data based on the provided payload.
|
|
126
|
+
*
|
|
127
|
+
* @param payload The refresh global search data payload.
|
|
128
|
+
* @returns A promise that resolves to a common API response containing the refreshed global search data.
|
|
129
|
+
*/
|
|
130
|
+
async refreshGlobalSearchData(payload) {
|
|
131
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
132
|
+
const response = await firstValueFrom(this._appHelper.refreshGlobalSearchData(payload));
|
|
133
|
+
// Return the response from the server
|
|
134
|
+
return response;
|
|
135
|
+
}
|
|
136
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
137
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppService, providedIn: 'root' });
|
|
138
|
+
}
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppService, decorators: [{
|
|
140
|
+
type: Injectable,
|
|
141
|
+
args: [{
|
|
142
|
+
providedIn: 'root'
|
|
143
|
+
}]
|
|
144
|
+
}] });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YWItc2RrL3NyYy9saWIvYXBwL2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQWlKLE1BQU0sZ0NBQWdDLENBQUM7QUFDMU0sT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdEMsTUFBTSxPQUFPLFVBQVU7SUFDWCxVQUFVLEdBQWMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWxEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNULDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FDL0IsQ0FBQztRQUNGLHVDQUF1QztRQUN2QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ1gsOEVBQThFO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUM5QixDQUFDO1FBQ0Ysc0NBQXNDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWE7UUFDZiw4RUFBOEU7UUFDOUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQ2xDLENBQUM7UUFDRixzQ0FBc0M7UUFDdEMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWtDO1FBQ3RELDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FDOUMsQ0FBQztRQUNGLHNDQUFzQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQXdCO1FBQ25DLDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQ3BDLENBQUM7UUFDRixzQ0FBc0M7UUFDdEMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWlDO1FBQ3JELDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FDN0MsQ0FBQztRQUNGLHNDQUFzQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQTZCO1FBQzdDLDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQ3pDLENBQUM7UUFDRixzQ0FBc0M7UUFDdEMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQW9CO1FBQ3ZDLDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FDakQsQ0FBQztRQUNGLHNDQUFzQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsWUFBb0I7UUFDeEMsOEVBQThFO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUNsRCxDQUFDO1FBQ0Ysc0NBQXNDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBb0I7UUFDckMsOEVBQThFO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FDL0MsQ0FBQztRQUNGLHNDQUFzQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQUMsT0FBdUM7UUFDakUsOEVBQThFO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUNuRCxDQUFDO1FBQ0Ysc0NBQXNDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7d0dBbktRLFVBQVU7NEdBQVYsVUFBVSxjQUZQLE1BQU07OzRGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBIZWxwZXIsIENsb25lRHNxUGF5bG9hZCwgQ29tbW9uQXBpUmVzcG9uc2UsIEdldERhdGFKc29uQnlUeXBlUGF5bG9hZCwgUmVmcmVzaEdsb2JhbFNlYXJjaERhdGFQYXlsb2FkLCBSZWdpc3RlckFwcE9iamVjdHNQYXlsb2FkLCBTeW5jQXBwRmllbGRzUGF5bG9hZCB9IGZyb20gJ0B0ZWNoZXh0ZW5zb3IvdGFiLWNvcmUtdXRpbGl0eSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2FwcEhlbHBlcjogQXBwSGVscGVyID0gaW5qZWN0KEFwcEhlbHBlcik7XG5cbiAgICAvKipcbiAgICAgKiBSZWJ1aWxkcyB0aGUgY3VycmVudCBhcHAuXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBjb21tb24gQVBJIHJlc3BvbnNlLlxuICAgICAqL1xuICAgIGFzeW5jIHJlYnVpbGQoKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBVc2UgdGhlIGZpcnN0VmFsdWVGcm9tIFJ4SnMgb3BlcmF0b3IgdG8gd2FpdCBmb3IgdGhlIG9ic2VydmFibGUgdG8gY29tcGxldGVcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuX2FwcEhlbHBlci5yZWJ1aWxkQXBwKClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHNjaGVtYSBmb3IgdGhlIGN1cnJlbnQgYXBwLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSBzY2hlbWEuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0U2NoZW1hKCk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gVXNlIHRoZSBmaXJzdFZhbHVlRnJvbSBSeEpzIG9wZXJhdG9yIHRvIHdhaXQgZm9yIHRoZSBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl9hcHBIZWxwZXIuZ2V0U2NoZW1hKClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBhcHAncyBwZXJtaXNzaW9uLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSBwZXJtaXNzaW9uIGluZm9ybWF0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIGdldFBlcm1pc3Npb24oKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBVc2UgdGhlIGZpcnN0VmFsdWVGcm9tIFJ4SnMgb3BlcmF0b3IgdG8gd2FpdCBmb3IgdGhlIG9ic2VydmFibGUgdG8gY29tcGxldGVcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuX2FwcEhlbHBlci5nZXRQZXJtaXNzaW9uKClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhcHAgb2JqZWN0cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcmVnaXN0ZXIgYXBwIG9iamVjdHMgcGF5bG9hZC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGNvbW1vbiBBUEkgcmVzcG9uc2UuXG4gICAgICovXG4gICAgYXN5bmMgcmVnaXN0ZXJBcHBPYmplY3QocGF5bG9hZDogUmVnaXN0ZXJBcHBPYmplY3RzUGF5bG9hZCk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gVXNlIHRoZSBmaXJzdFZhbHVlRnJvbSBSeEpzIG9wZXJhdG9yIHRvIHdhaXQgZm9yIHRoZSBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl9hcHBIZWxwZXIucmVnaXN0ZXJBcHBPYmplY3RzKHBheWxvYWQpXG4gICAgICAgICk7XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9uZXMgYSBkYXRhIHNvdXJjZSBxdWVyeSAoRFNRKSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgY2xvbmUgRFNRIHBheWxvYWQuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBjb21tb24gQVBJIHJlc3BvbnNlLlxuICAgICAqL1xuICAgIGFzeW5jIGNsb25lRHNxKHBheWxvYWQ6IENsb25lRHNxUGF5bG9hZCk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gVXNlIHRoZSBmaXJzdFZhbHVlRnJvbSBSeEpzIG9wZXJhdG9yIHRvIHdhaXQgZm9yIHRoZSBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl9hcHBIZWxwZXIuY2xvbmVEc3EocGF5bG9hZClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBkYXRhIGluIEpTT04gZm9ybWF0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBnZXQgZGF0YSBKU09OIGJ5IHR5cGUgcGF5bG9hZC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGNvbW1vbiBBUEkgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgZGF0YSBpbiBKU09OIGZvcm1hdC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXREYXRhSnNvbkJ5VHlwZShwYXlsb2FkOiBHZXREYXRhSnNvbkJ5VHlwZVBheWxvYWQpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIC8vIFVzZSB0aGUgZmlyc3RWYWx1ZUZyb20gUnhKcyBvcGVyYXRvciB0byB3YWl0IGZvciB0aGUgb2JzZXJ2YWJsZSB0byBjb21wbGV0ZVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fYXBwSGVscGVyLmdldERhdGFKc29uQnlUeXBlKHBheWxvYWQpXG4gICAgICAgICk7XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTeW5jaHJvbml6ZXMgdGhlIGN1cnJlbnQgYXBwJ3MgZmllbGRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBzeW5jIGFwcCBmaWVsZHMgcGF5bG9hZC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGNvbW1vbiBBUEkgcmVzcG9uc2UuXG4gICAgICovXG4gICAgYXN5bmMgc3luY0FwcEZpZWxkcyhwYXlsb2FkOiBTeW5jQXBwRmllbGRzUGF5bG9hZCk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gVXNlIHRoZSBmaXJzdFZhbHVlRnJvbSBSeEpzIG9wZXJhdG9yIHRvIHdhaXQgZm9yIHRoZSBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl9hcHBIZWxwZXIuc3luY0FwcEZpZWxkcyhwYXlsb2FkKVxuICAgICAgICApO1xuICAgICAgICAvLyBSZXR1cm4gdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdGFiIGNvbXBvbmVudHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNvbm5lY3Rpb24gSUQuXG4gICAgICogXG4gICAgICogQHBhcmFtIGNvbm5lY3Rpb25JZCBUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb24gdG8gc2V0IHRoZSBjb21wb25lbnRzIGZvci5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGNvbW1vbiBBUEkgcmVzcG9uc2UuXG4gICAgICovXG4gICAgYXN5bmMgc2V0VGFiQ29tcG9uZW50cyhjb25uZWN0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gVXNlIHRoZSBmaXJzdFZhbHVlRnJvbSBSeEpzIG9wZXJhdG9yIHRvIHdhaXQgZm9yIHRoZSBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl9hcHBIZWxwZXIuc2V0VGFiQ29tcG9uZW50cyhjb25uZWN0aW9uSWQpXG4gICAgICAgICk7XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyB2YWxpZGF0aW9uIGZvciB0aGUgY29ubmVjdGlvbiB3aXRoIHRoZSBwcm92aWRlZCBJRC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY29ubmVjdGlvbklkIFRoZSBJRCBvZiB0aGUgY29ubmVjdGlvbiB0byB2YWxpZGF0ZS5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGNvbW1vbiBBUEkgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgdmFsaWRhdGlvbiByZXN1bHQuXG4gICAgICovXG4gICAgYXN5bmMgcGVyZm9ybVZhbGlkYXRpb24oY29ubmVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIC8vIFVzZSB0aGUgZmlyc3RWYWx1ZUZyb20gUnhKcyBvcGVyYXRvciB0byB3YWl0IGZvciB0aGUgb2JzZXJ2YWJsZSB0byBjb21wbGV0ZVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fYXBwSGVscGVyLnBlcmZvcm1WYWxpZGF0aW9uKGNvbm5lY3Rpb25JZClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlc3RzIHRoZSBjb25uZWN0aW9uIHdpdGggdGhlIHByb3ZpZGVkIGNvbm5lY3Rpb24gSUQuXG4gICAgICogXG4gICAgICogQHBhcmFtIGNvbm5lY3Rpb25JZCBUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb24gdG8gdGVzdC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGNvbW1vbiBBUEkgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgdGVzdCByZXN1bHQuXG4gICAgICovXG4gICAgYXN5bmMgdGVzdENvbm5lY3Rpb24oY29ubmVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIC8vIFVzZSB0aGUgZmlyc3RWYWx1ZUZyb20gUnhKcyBvcGVyYXRvciB0byB3YWl0IGZvciB0aGUgb2JzZXJ2YWJsZSB0byBjb21wbGV0ZVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fYXBwSGVscGVyLnRlc3RDb25uZWN0aW9uKGNvbm5lY3Rpb25JZClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2hlcyB0aGUgZ2xvYmFsIHNlYXJjaCBkYXRhIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSByZWZyZXNoIGdsb2JhbCBzZWFyY2ggZGF0YSBwYXlsb2FkLlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSByZWZyZXNoZWQgZ2xvYmFsIHNlYXJjaCBkYXRhLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhKHBheWxvYWQ6IFJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhUGF5bG9hZCk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gVXNlIHRoZSBmaXJzdFZhbHVlRnJvbSBSeEpzIG9wZXJhdG9yIHRvIHdhaXQgZm9yIHRoZSBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl9hcHBIZWxwZXIucmVmcmVzaEdsb2JhbFNlYXJjaERhdGEocGF5bG9hZClcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbn0iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { MediaUploadHelper } from '@techextensor/tab-core-utility';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class FileService {
|
|
6
|
+
_mediaUploadHelper = inject(MediaUploadHelper);
|
|
7
|
+
/**
|
|
8
|
+
* Uploads media files using the provided payload and optional headers.
|
|
9
|
+
*
|
|
10
|
+
* @param payload The payload containing the media files to upload.
|
|
11
|
+
* @param headers Optional headers to pass to the server.
|
|
12
|
+
* @returns A promise that resolves to a common API response.
|
|
13
|
+
*/
|
|
14
|
+
async uploadMediaFiles(payload, headers) {
|
|
15
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
16
|
+
const response = await firstValueFrom(this._mediaUploadHelper.uploadMediaFiles(payload, headers));
|
|
17
|
+
// Return the response from the server
|
|
18
|
+
return response;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Removes a media file from the server using the provided media ID.
|
|
22
|
+
*
|
|
23
|
+
* @param mediaId The ID of the media file to remove.
|
|
24
|
+
* @returns A promise that resolves to a common API response.
|
|
25
|
+
*/
|
|
26
|
+
async removeMediaFile(mediaId) {
|
|
27
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
28
|
+
const response = await firstValueFrom(this._mediaUploadHelper.removeMediaFile(mediaId));
|
|
29
|
+
// Return the response from the server
|
|
30
|
+
return response;
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileService, providedIn: 'root' });
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileService, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root'
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL2FwcC9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFxQixpQkFBaUIsRUFBMkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt0QyxNQUFNLE9BQU8sV0FBVztJQUNaLGtCQUFrQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUxRTs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBZ0MsRUFBRSxPQUFhO1FBQ2xFLDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FDN0QsQ0FBQztRQUNGLHNDQUFzQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQWU7UUFDakMsOEVBQThFO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUNuRCxDQUFDO1FBQ0Ysc0NBQXNDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7d0dBaENRLFdBQVc7NEdBQVgsV0FBVyxjQUZSLE1BQU07OzRGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25BcGlSZXNwb25zZSwgTWVkaWFVcGxvYWRIZWxwZXIsIFVwbG9hZE1lZGlhRmlsZXNQYXlsb2FkIH0gZnJvbSAnQHRlY2hleHRlbnNvci90YWItY29yZS11dGlsaXR5JztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX21lZGlhVXBsb2FkSGVscGVyOiBNZWRpYVVwbG9hZEhlbHBlciA9IGluamVjdChNZWRpYVVwbG9hZEhlbHBlcik7XG5cbiAgICAvKipcbiAgICAgKiBVcGxvYWRzIG1lZGlhIGZpbGVzIHVzaW5nIHRoZSBwcm92aWRlZCBwYXlsb2FkIGFuZCBvcHRpb25hbCBoZWFkZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgbWVkaWEgZmlsZXMgdG8gdXBsb2FkLlxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgdG8gcGFzcyB0byB0aGUgc2VydmVyLlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZS5cbiAgICAgKi9cbiAgICBhc3luYyB1cGxvYWRNZWRpYUZpbGVzKHBheWxvYWQ6IFVwbG9hZE1lZGlhRmlsZXNQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBVc2UgdGhlIGZpcnN0VmFsdWVGcm9tIFJ4SnMgb3BlcmF0b3IgdG8gd2FpdCBmb3IgdGhlIG9ic2VydmFibGUgdG8gY29tcGxldGVcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuX21lZGlhVXBsb2FkSGVscGVyLnVwbG9hZE1lZGlhRmlsZXMocGF5bG9hZCwgaGVhZGVycylcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSBtZWRpYSBmaWxlIGZyb20gdGhlIHNlcnZlciB1c2luZyB0aGUgcHJvdmlkZWQgbWVkaWEgSUQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVkaWFJZCBUaGUgSUQgb2YgdGhlIG1lZGlhIGZpbGUgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZS5cbiAgICAgKi9cbiAgICBhc3luYyByZW1vdmVNZWRpYUZpbGUobWVkaWFJZDogc3RyaW5nKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBVc2UgdGhlIGZpcnN0VmFsdWVGcm9tIFJ4SnMgb3BlcmF0b3IgdG8gd2FpdCBmb3IgdGhlIG9ic2VydmFibGUgdG8gY29tcGxldGVcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuX21lZGlhVXBsb2FkSGVscGVyLnJlbW92ZU1lZGlhRmlsZShtZWRpYUlkKVxuICAgICAgICApO1xuICAgICAgICAvLyBSZXR1cm4gdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { TabReleaseService } from '@techextensor/tab-core-utility';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ReleaseService {
|
|
6
|
+
_tabReleaseService = inject(TabReleaseService);
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves the data differences between the current app version and the latest
|
|
9
|
+
* released version of the app.
|
|
10
|
+
*
|
|
11
|
+
* @returns A promise that resolves to a common API response containing the data
|
|
12
|
+
* differences in JSON format.
|
|
13
|
+
*/
|
|
14
|
+
async getTabDataDiff() {
|
|
15
|
+
const response = await firstValueFrom(this._tabReleaseService.getDataJsonDiff());
|
|
16
|
+
return response;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the metadata differences between the current app version and the latest
|
|
20
|
+
* released version of the app.
|
|
21
|
+
*
|
|
22
|
+
* @returns A promise that resolves to a common API response containing the metadata
|
|
23
|
+
* differences in JSON format.
|
|
24
|
+
*/
|
|
25
|
+
async getMetaDataDiff() {
|
|
26
|
+
const response = await firstValueFrom(this._tabReleaseService.getMetaDataJsonDiff());
|
|
27
|
+
return response;
|
|
28
|
+
}
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReleaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReleaseService, providedIn: 'root' });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReleaseService, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root'
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL2FwcC9yZWxlYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxjQUFjO0lBQ2Ysa0JBQWtCLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTFFOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxjQUFjO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQzVDLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGVBQWU7UUFDakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUNoRCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzt3R0E3QlEsY0FBYzs0R0FBZCxjQUFjLGNBRlgsTUFBTTs7NEZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbkFwaVJlc3BvbnNlLCBUYWJSZWxlYXNlU2VydmljZSB9IGZyb20gJ0B0ZWNoZXh0ZW5zb3IvdGFiLWNvcmUtdXRpbGl0eSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlbGVhc2VTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF90YWJSZWxlYXNlU2VydmljZTogVGFiUmVsZWFzZVNlcnZpY2UgPSBpbmplY3QoVGFiUmVsZWFzZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBkYXRhIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIGN1cnJlbnQgYXBwIHZlcnNpb24gYW5kIHRoZSBsYXRlc3RcbiAgICAgKiByZWxlYXNlZCB2ZXJzaW9uIG9mIHRoZSBhcHAuXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBjb21tb24gQVBJIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIGRhdGFcbiAgICAgKiBkaWZmZXJlbmNlcyBpbiBKU09OIGZvcm1hdC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRUYWJEYXRhRGlmZigpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl90YWJSZWxlYXNlU2VydmljZS5nZXREYXRhSnNvbkRpZmYoKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBtZXRhZGF0YSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBjdXJyZW50IGFwcCB2ZXJzaW9uIGFuZCB0aGUgbGF0ZXN0XG4gICAgICogcmVsZWFzZWQgdmVyc2lvbiBvZiB0aGUgYXBwLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSBtZXRhZGF0YVxuICAgICAqIGRpZmZlcmVuY2VzIGluIEpTT04gZm9ybWF0LlxuICAgICAqL1xuICAgIGFzeW5jIGdldE1ldGFEYXRhRGlmZigpOiBQcm9taXNlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl90YWJSZWxlYXNlU2VydmljZS5nZXRNZXRhRGF0YUpzb25EaWZmKClcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbn0iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { AppHelper } from '@techextensor/tab-core-utility';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ReportService {
|
|
6
|
+
_appHelper = inject(AppHelper);
|
|
7
|
+
/**
|
|
8
|
+
* Exports a report based on the provided payload.
|
|
9
|
+
*
|
|
10
|
+
* @param payload The payload containing the parameters for the report.
|
|
11
|
+
* @returns A promise that resolves to a common API response containing the report.
|
|
12
|
+
*/
|
|
13
|
+
async export(payload) {
|
|
14
|
+
const response = await firstValueFrom(this._appHelper.exportReport(payload));
|
|
15
|
+
return response;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Downloads a report based on the provided payload.
|
|
19
|
+
*
|
|
20
|
+
* @param payload The payload containing the parameters for the report.
|
|
21
|
+
* @returns A promise that resolves to a common API response containing the report.
|
|
22
|
+
*/
|
|
23
|
+
async download(payload) {
|
|
24
|
+
const response = await firstValueFrom(this._appHelper.downloadReport(payload));
|
|
25
|
+
return response;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Sends a report based on the provided payload.
|
|
29
|
+
*
|
|
30
|
+
* @param payload The payload containing the parameters for the report.
|
|
31
|
+
* @returns A promise that resolves to a common API response containing the report.
|
|
32
|
+
*/
|
|
33
|
+
async send(payload) {
|
|
34
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
35
|
+
const response = await firstValueFrom(this._appHelper.sendReport(payload));
|
|
36
|
+
// Return the response from the server
|
|
37
|
+
return response;
|
|
38
|
+
}
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportService, providedIn: 'root' });
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportService, decorators: [{
|
|
43
|
+
type: Injectable,
|
|
44
|
+
args: [{
|
|
45
|
+
providedIn: 'root'
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YWItc2RrL3NyYy9saWIvYXBwL3JlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQW9DLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdEMsTUFBTSxPQUFPLGFBQWE7SUFDZCxVQUFVLEdBQWMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWxEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFzQjtRQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQ3hDLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQXNCO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FDMUMsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBc0I7UUFDN0IsOEVBQThFO1FBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FDdEMsQ0FBQztRQUNGLHNDQUFzQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO3dHQTFDUSxhQUFhOzRHQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwSGVscGVyLCBDb21tb25BcGlSZXNwb25zZSwgUmVwb3J0UGF5bG9hZCB9IGZyb20gJ0B0ZWNoZXh0ZW5zb3IvdGFiLWNvcmUtdXRpbGl0eSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2FwcEhlbHBlcjogQXBwSGVscGVyID0gaW5qZWN0KEFwcEhlbHBlcik7XG5cbiAgICAvKipcbiAgICAgKiBFeHBvcnRzIGEgcmVwb3J0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSByZXBvcnQuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBjb21tb24gQVBJIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIHJlcG9ydC5cbiAgICAgKi9cbiAgICBhc3luYyBleHBvcnQocGF5bG9hZDogUmVwb3J0UGF5bG9hZCk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuX2FwcEhlbHBlci5leHBvcnRSZXBvcnQocGF5bG9hZClcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERvd25sb2FkcyBhIHJlcG9ydCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVwb3J0LlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSByZXBvcnQuXG4gICAgICovXG4gICAgYXN5bmMgZG93bmxvYWQocGF5bG9hZDogUmVwb3J0UGF5bG9hZCk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fYXBwSGVscGVyLmRvd25sb2FkUmVwb3J0KHBheWxvYWQpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHJlcG9ydCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVwb3J0LlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgY29tbW9uIEFQSSByZXNwb25zZSBjb250YWluaW5nIHRoZSByZXBvcnQuXG4gICAgICovXG4gICAgYXN5bmMgc2VuZChwYXlsb2FkOiBSZXBvcnRQYXlsb2FkKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBVc2UgdGhlIGZpcnN0VmFsdWVGcm9tIFJ4SnMgb3BlcmF0b3IgdG8gd2FpdCBmb3IgdGhlIG9ic2VydmFibGUgdG8gY29tcGxldGVcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuX2FwcEhlbHBlci5zZW5kUmVwb3J0KHBheWxvYWQpXG4gICAgICAgICk7XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { firstValueFrom } from 'rxjs';
|
|
3
|
+
import { TranslationService } from '@techextensor/tab-core-utility';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TranslatorService {
|
|
6
|
+
_translationService = inject(TranslationService);
|
|
7
|
+
/**
|
|
8
|
+
* Gets the current active language
|
|
9
|
+
*
|
|
10
|
+
* @returns The current language code
|
|
11
|
+
*/
|
|
12
|
+
getCurrentLanguage() {
|
|
13
|
+
return this._translationService.getCurrentLanguage();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Gets an observable of the current language changes
|
|
17
|
+
*
|
|
18
|
+
* @returns An observable of the current language code
|
|
19
|
+
*/
|
|
20
|
+
getLanguageChanges() {
|
|
21
|
+
return this._translationService.currentLanguage$;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Changes the application language
|
|
25
|
+
*
|
|
26
|
+
* @param payload The translate payload containing language and languageCode
|
|
27
|
+
* @returns A promise that resolves when the language has been changed
|
|
28
|
+
*/
|
|
29
|
+
async changeLanguage(payload) {
|
|
30
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
31
|
+
const response = await firstValueFrom(this._translationService.changeLanguage(payload));
|
|
32
|
+
// Return the response
|
|
33
|
+
return response;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Translates a key to the current language
|
|
37
|
+
*
|
|
38
|
+
* @param key The translation key
|
|
39
|
+
* @param params Optional parameters for interpolation
|
|
40
|
+
* @returns The translated string
|
|
41
|
+
*/
|
|
42
|
+
translate(key, params) {
|
|
43
|
+
if (!key?.length)
|
|
44
|
+
return key;
|
|
45
|
+
return this._translationService.translate(key, params);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Gets a translation as an observable for async operations
|
|
49
|
+
*
|
|
50
|
+
* @param key The translation key
|
|
51
|
+
* @param params Optional parameters for interpolation
|
|
52
|
+
* @returns An observable of the translated string
|
|
53
|
+
*/
|
|
54
|
+
async getTranslation(key, params) {
|
|
55
|
+
// Use the firstValueFrom RxJs operator to wait for the observable to complete
|
|
56
|
+
const translation = await firstValueFrom(this._translationService.getTranslation(key, params));
|
|
57
|
+
// Return the translated string
|
|
58
|
+
return translation;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Registers an external library integration for translations
|
|
62
|
+
*
|
|
63
|
+
* @param handler Function to handle the integration with language and translations
|
|
64
|
+
*/
|
|
65
|
+
registerIntegration(handler) {
|
|
66
|
+
this._translationService.registerIntegration(handler);
|
|
67
|
+
}
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
69
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatorService, providedIn: 'root' });
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatorService, decorators: [{
|
|
72
|
+
type: Injectable,
|
|
73
|
+
args: [{
|
|
74
|
+
providedIn: 'root'
|
|
75
|
+
}]
|
|
76
|
+
}] });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL2FwcC90cmFuc2xhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFHLGNBQWMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQW9CLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBS3RGLE1BQU0sT0FBTyxpQkFBaUI7SUFDVCxtQkFBbUIsR0FBdUIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFdEY7Ozs7T0FJRztJQUNILGtCQUFrQjtRQUNkLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQkFBa0I7UUFDZCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQXlCO1FBQzFDLDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FDbkQsQ0FBQztRQUNGLHNCQUFzQjtRQUN0QixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFZO1FBQy9CLElBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTTtZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBVyxFQUFFLE1BQVk7UUFDMUMsOEVBQThFO1FBQzlFLE1BQU0sV0FBVyxHQUFHLE1BQU0sY0FBYyxDQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FDdkQsQ0FBQztRQUNGLCtCQUErQjtRQUMvQixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLE9BQWtEO1FBQ2xFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDO3dHQXZFUSxpQkFBaUI7NEdBQWpCLGlCQUFpQixjQUZkLE1BQU07OzRGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ICBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlUGF5bG9hZCwgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHRlY2hleHRlbnNvci90YWItY29yZS11dGlsaXR5JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdG9yU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQgYWN0aXZlIGxhbmd1YWdlXG4gICAgICogXG4gICAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgbGFuZ3VhZ2UgY29kZVxuICAgICAqL1xuICAgIGdldEN1cnJlbnRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRpb25TZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gb2JzZXJ2YWJsZSBvZiB0aGUgY3VycmVudCBsYW5ndWFnZSBjaGFuZ2VzXG4gICAgICogXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgY3VycmVudCBsYW5ndWFnZSBjb2RlXG4gICAgICovXG4gICAgZ2V0TGFuZ3VhZ2VDaGFuZ2VzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGlvblNlcnZpY2UuY3VycmVudExhbmd1YWdlJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBhcHBsaWNhdGlvbiBsYW5ndWFnZVxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSB0cmFuc2xhdGUgcGF5bG9hZCBjb250YWluaW5nIGxhbmd1YWdlIGFuZCBsYW5ndWFnZUNvZGVcbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBsYW5ndWFnZSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAgICovXG4gICAgYXN5bmMgY2hhbmdlTGFuZ3VhZ2UocGF5bG9hZDogdHJhbnNsYXRlUGF5bG9hZCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIFVzZSB0aGUgZmlyc3RWYWx1ZUZyb20gUnhKcyBvcGVyYXRvciB0byB3YWl0IGZvciB0aGUgb2JzZXJ2YWJsZSB0byBjb21wbGV0ZVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRpb25TZXJ2aWNlLmNoYW5nZUxhbmd1YWdlKHBheWxvYWQpXG4gICAgICAgICk7XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2VcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZXMgYSBrZXkgdG8gdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSB0cmFuc2xhdGlvbiBrZXlcbiAgICAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIGludGVycG9sYXRpb25cbiAgICAgKiBAcmV0dXJucyBUaGUgdHJhbnNsYXRlZCBzdHJpbmdcbiAgICAgKi9cbiAgICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmKCFrZXk/Lmxlbmd0aCkgcmV0dXJuIGtleTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoa2V5LCBwYXJhbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSB0cmFuc2xhdGlvbiBhcyBhbiBvYnNlcnZhYmxlIGZvciBhc3luYyBvcGVyYXRpb25zXG4gICAgICogXG4gICAgICogQHBhcmFtIGtleSBUaGUgdHJhbnNsYXRpb24ga2V5XG4gICAgICogQHBhcmFtIHBhcmFtcyBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBpbnRlcnBvbGF0aW9uXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgdHJhbnNsYXRlZCBzdHJpbmdcbiAgICAgKi9cbiAgICBhc3luYyBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgLy8gVXNlIHRoZSBmaXJzdFZhbHVlRnJvbSBSeEpzIG9wZXJhdG9yIHRvIHdhaXQgZm9yIHRoZSBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl90cmFuc2xhdGlvblNlcnZpY2UuZ2V0VHJhbnNsYXRpb24oa2V5LCBwYXJhbXMpXG4gICAgICAgICk7XG4gICAgICAgIC8vIFJldHVybiB0aGUgdHJhbnNsYXRlZCBzdHJpbmdcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhbiBleHRlcm5hbCBsaWJyYXJ5IGludGVncmF0aW9uIGZvciB0cmFuc2xhdGlvbnNcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaGFuZGxlciBGdW5jdGlvbiB0byBoYW5kbGUgdGhlIGludGVncmF0aW9uIHdpdGggbGFuZ3VhZ2UgYW5kIHRyYW5zbGF0aW9uc1xuICAgICAqL1xuICAgIHJlZ2lzdGVySW50ZWdyYXRpb24oaGFuZGxlcjogKGxhbmc6IHN0cmluZywgdHJhbnNsYXRpb25zOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRpb25TZXJ2aWNlLnJlZ2lzdGVySW50ZWdyYXRpb24oaGFuZGxlcik7XG4gICAgfVxufSJdfQ==
|