@techextensor/tab-sdk 0.0.2 → 0.0.3
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/common/utils.service.mjs +163 -0
- package/esm2022/lib/core/auth.service.mjs +48 -0
- package/esm2022/lib/data/data.service.mjs +81 -0
- package/esm2022/lib/tab-sdk.service.mjs +50 -0
- package/esm2022/lib/ui/form.service.mjs +97 -0
- package/esm2022/lib/ui/ui.service.mjs +13 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/techextensor-tab-sdk.mjs +5 -0
- package/fesm2022/techextensor-tab-sdk.mjs +443 -0
- package/fesm2022/techextensor-tab-sdk.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/common/utils.service.d.ts +58 -0
- package/lib/core/auth.service.d.ts +28 -0
- package/lib/data/data.service.d.ts +36 -0
- package/lib/tab-sdk.service.d.ts +23 -0
- package/lib/ui/form.service.d.ts +56 -0
- package/lib/ui/ui.service.d.ts +5 -0
- package/package.json +16 -6
- package/public-api.d.ts +1 -0
- package/ng-package.json +0 -7
- package/project.json +0 -37
- package/src/lib/common/utils.service.ts +0 -184
- package/src/lib/core/auth.service.ts +0 -46
- package/src/lib/data/data.service.ts +0 -75
- package/src/lib/tab-sdk.service.ts +0 -45
- package/src/lib/ui/form.service.ts +0 -118
- package/src/lib/ui/ui.service.ts +0 -6
- package/src/public-api.ts +0 -5
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -15
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { inject, Injectable } from "@angular/core";
|
|
2
|
+
import { AuthService } from "../core/auth.service";
|
|
3
|
+
import { TabSdk } from "../tab-sdk.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class UtilsService {
|
|
6
|
+
_authService = inject(AuthService);
|
|
7
|
+
_helperFunctionService = TabSdk.context?.HelperFunctionService;
|
|
8
|
+
/**
|
|
9
|
+
* Extracts the event name from various event parameter structures
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const eventName = sdk.utils.extractEventName(screenParameters.event);
|
|
13
|
+
* if (eventName === 'deleteDocument') {
|
|
14
|
+
* // Handle delete document event
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
extractEventName(event) {
|
|
18
|
+
if (!event)
|
|
19
|
+
return '';
|
|
20
|
+
// Check common patterns for event names
|
|
21
|
+
return event.event?.component?.configuration?.configScreen?.componentValue?.eventName ??
|
|
22
|
+
event.detail?.type ??
|
|
23
|
+
event.type ??
|
|
24
|
+
event.name ??
|
|
25
|
+
'';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Builds an application URL with the specified path and parameters
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // Get full URL with protocol
|
|
32
|
+
* const fullUrl = sdk.utils.buildAppUrl('screen/12345', { id: '12345' });
|
|
33
|
+
*/
|
|
34
|
+
buildAppUrl(path, parameters, includeProtocol = true) {
|
|
35
|
+
const appCode = this._authService.getAppCode();
|
|
36
|
+
const params = new URLSearchParams();
|
|
37
|
+
// Add parameters to the URL
|
|
38
|
+
if (parameters) {
|
|
39
|
+
Object.entries(parameters).forEach(([key, value]) => {
|
|
40
|
+
if (value !== undefined && value !== null) {
|
|
41
|
+
params.append(key, String(value));
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// Build query string
|
|
46
|
+
const queryString = params.toString() ? `?${params.toString()}` : '';
|
|
47
|
+
// Build URL
|
|
48
|
+
if (includeProtocol) {
|
|
49
|
+
const host = window.location.host;
|
|
50
|
+
return `http://${host}/${appCode}/${path}${queryString}`;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
return `/${appCode}/${path}${queryString}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Generates and copies a screen URL to the clipboard
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* // Copy URL to clipboard
|
|
61
|
+
* sdk.utils.copyScreenLink('12345', { id: '12345' });
|
|
62
|
+
*/
|
|
63
|
+
copyScreenLinkToClipboard(screenId, parameters) {
|
|
64
|
+
const url = this.buildAppUrl(`screen/${screenId}`, parameters);
|
|
65
|
+
return this._helperFunctionService.copyToClipboard(url);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Downloads a blob as a file
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* // Download a blob as 'report.pdf'
|
|
72
|
+
* const pdfBlob = new Blob([pdfContent], { type: 'application/pdf' });
|
|
73
|
+
* sdk.utils.downloadBlob(pdfBlob, 'report.pdf');
|
|
74
|
+
*/
|
|
75
|
+
downloadBlob(blob, filename) {
|
|
76
|
+
// Create object URL
|
|
77
|
+
const url = URL.createObjectURL(blob);
|
|
78
|
+
// Create download link
|
|
79
|
+
const downloadLink = document.createElement('a');
|
|
80
|
+
downloadLink.href = url;
|
|
81
|
+
downloadLink.download = filename;
|
|
82
|
+
// Append to body, click, and remove
|
|
83
|
+
document.body.appendChild(downloadLink);
|
|
84
|
+
downloadLink.click();
|
|
85
|
+
document.body.removeChild(downloadLink);
|
|
86
|
+
// Release object URL after a short delay to ensure download starts
|
|
87
|
+
setTimeout(() => URL.revokeObjectURL(url), 100);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Exports HTML content as a Word document (.doc)
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // Export editor content as Word document
|
|
94
|
+
* sdk.utils.exportAsWord(editorContent, 'report');
|
|
95
|
+
*/
|
|
96
|
+
exportAsWord(content, filename = 'document') {
|
|
97
|
+
// Format content with Word-compatible namespaces
|
|
98
|
+
const docContent = `
|
|
99
|
+
<html xmlns:o="urn:schemas-microsoft-com:office:office"
|
|
100
|
+
xmlns:w="urn:schemas-microsoft-com:office:word"
|
|
101
|
+
xmlns="http://www.w3.org/TR/REC-html40">
|
|
102
|
+
<head>
|
|
103
|
+
<meta charset="utf-8">
|
|
104
|
+
<title>${filename}</title>
|
|
105
|
+
</head>
|
|
106
|
+
<body>${content}</body>
|
|
107
|
+
</html>`;
|
|
108
|
+
// Create blob with BOM for Word compatibility
|
|
109
|
+
const blob = new Blob(['\ufeff', docContent], {
|
|
110
|
+
type: 'application/msword'
|
|
111
|
+
});
|
|
112
|
+
// Use the downloadBlob utility
|
|
113
|
+
this.downloadBlob(blob, `${filename}.doc`);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Exports HTML content as PDF using browser print functionality
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* // Export content as PDF
|
|
120
|
+
* sdk.utils.exportAsPdf(documentContent, 'Invoice');
|
|
121
|
+
*/
|
|
122
|
+
exportAsPdf(content, title = 'Document') {
|
|
123
|
+
// Open new window
|
|
124
|
+
const printWindow = window.open('', '', 'width=800,height=600');
|
|
125
|
+
// Add content with basic styling
|
|
126
|
+
printWindow.document?.write(`
|
|
127
|
+
<html>
|
|
128
|
+
<head>
|
|
129
|
+
<title>${title}</title>
|
|
130
|
+
<style>
|
|
131
|
+
body { font-family: Arial, sans-serif; margin: 20px; }
|
|
132
|
+
@media print {
|
|
133
|
+
body { margin: 0mm; }
|
|
134
|
+
}
|
|
135
|
+
</style>
|
|
136
|
+
</head>
|
|
137
|
+
<body>
|
|
138
|
+
${content}
|
|
139
|
+
</body>
|
|
140
|
+
</html>
|
|
141
|
+
`);
|
|
142
|
+
// Prepare for printing
|
|
143
|
+
printWindow.document.close();
|
|
144
|
+
printWindow.focus();
|
|
145
|
+
// Use timeout to ensure content is rendered before printing
|
|
146
|
+
setTimeout(() => {
|
|
147
|
+
printWindow.print();
|
|
148
|
+
// Close window after print dialog is closed or printing is complete
|
|
149
|
+
printWindow.addEventListener('afterprint', () => {
|
|
150
|
+
printWindow.close();
|
|
151
|
+
});
|
|
152
|
+
}, 300);
|
|
153
|
+
}
|
|
154
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
155
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UtilsService, providedIn: 'root' });
|
|
156
|
+
}
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UtilsService, decorators: [{
|
|
158
|
+
type: Injectable,
|
|
159
|
+
args: [{
|
|
160
|
+
providedIn: 'root'
|
|
161
|
+
}]
|
|
162
|
+
}] });
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhYi1zZGsvc3JjL2xpYi9jb21tb24vdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUs1QyxNQUFNLE9BQU8sWUFBWTtJQUNKLFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELHNCQUFzQixHQUFRLE1BQU0sQ0FBQyxPQUFPLEVBQUUscUJBQXFCLENBQUM7SUFHckY7Ozs7Ozs7O09BUUc7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdEIsd0NBQXdDO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsU0FBUztZQUNqRixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUk7WUFDbEIsS0FBSyxDQUFDLElBQUk7WUFDVixLQUFLLENBQUMsSUFBSTtZQUNWLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFHRDs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQ1AsSUFBWSxFQUNaLFVBQWdDLEVBQ2hDLGtCQUEyQixJQUFJO1FBRS9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUVyQyw0QkFBNEI7UUFDNUIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFB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LEtBQUssQ0FBQzs7O3lCQUdYLEtBQUs7Ozs7Ozs7OztrQkFTWixPQUFPOzs7U0FHaEIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBCLDREQUE0RDtRQUM1RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLG9FQUFvRTtZQUNwRSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtnQkFDNUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQzt3R0EvS1EsWUFBWTs0R0FBWixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vY29yZS9hdXRoLnNlcnZpY2VcIjtcbmltcG9ydCB7IFRhYlNkayB9IGZyb20gXCIuLi90YWItc2RrLnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfaGVscGVyRnVuY3Rpb25TZXJ2aWNlOiBhbnkgPSBUYWJTZGsuY29udGV4dD8uSGVscGVyRnVuY3Rpb25TZXJ2aWNlO1xuICAgIFxuXG4gICAgLyoqXG4gICAgICogRXh0cmFjdHMgdGhlIGV2ZW50IG5hbWUgZnJvbSB2YXJpb3VzIGV2ZW50IHBhcmFtZXRlciBzdHJ1Y3R1cmVzXG4gICAgICogXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBldmVudE5hbWUgPSBzZGsudXRpbHMuZXh0cmFjdEV2ZW50TmFtZShzY3JlZW5QYXJhbWV0ZXJzLmV2ZW50KTtcbiAgICAgKiBpZiAoZXZlbnROYW1lID09PSAnZGVsZXRlRG9jdW1lbnQnKSB7XG4gICAgICogICAvLyBIYW5kbGUgZGVsZXRlIGRvY3VtZW50IGV2ZW50XG4gICAgICogfVxuICAgICAqL1xuICAgIGV4dHJhY3RFdmVudE5hbWUoZXZlbnQ6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZXZlbnQpIHJldHVybiAnJztcblxuICAgICAgICAvLyBDaGVjayBjb21tb24gcGF0dGVybnMgZm9yIGV2ZW50IG5hbWVzXG4gICAgICAgIHJldHVybiBldmVudC5ldmVudD8uY29tcG9uZW50Py5jb25maWd1cmF0aW9uPy5jb25maWdTY3JlZW4/LmNvbXBvbmVudFZhbHVlPy5ldmVudE5hbWUgPz9cbiAgICAgICAgICAgIGV2ZW50LmRldGFpbD8udHlwZSA/P1xuICAgICAgICAgICAgZXZlbnQudHlwZSA/P1xuICAgICAgICAgICAgZXZlbnQubmFtZSA/P1xuICAgICAgICAgICAgJyc7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBCdWlsZHMgYW4gYXBwbGljYXRpb24gVVJMIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoIGFuZCBwYXJhbWV0ZXJzXG4gICAgICogXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiAvLyBHZXQgZnVsbCBVUkwgd2l0aCBwcm90b2NvbFxuICAgICAqIGNvbnN0IGZ1bGxVcmwgPSBzZGsudXRpbHMuYnVpbGRBcHBVcmwoJ3NjcmVlbi8xMjM0NScsIHsgaWQ6ICcxMjM0NScgfSk7XG4gICAgICovXG4gICAgYnVpbGRBcHBVcmwoXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgcGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgIGluY2x1ZGVQcm90b2NvbDogYm9vbGVhbiA9IHRydWVcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBhcHBDb2RlID0gdGhpcy5fYXV0aFNlcnZpY2UuZ2V0QXBwQ29kZSgpO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG5cbiAgICAgICAgLy8gQWRkIHBhcmFtZXRlcnMgdG8gdGhlIFVSTFxuICAgICAgICBpZiAocGFyYW1ldGVycykge1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocGFyYW1ldGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChrZXksIFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQnVpbGQgcXVlcnkgc3RyaW5nXG4gICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcGFyYW1zLnRvU3RyaW5nKCkgPyBgPyR7cGFyYW1zLnRvU3RyaW5nKCl9YCA6ICcnO1xuXG4gICAgICAgIC8vIEJ1aWxkIFVSTFxuICAgICAgICBpZiAoaW5jbHVkZVByb3RvY29sKSB7XG4gICAgICAgICAgICBjb25zdCBob3N0ID0gd2luZG93LmxvY2F0aW9uLmhvc3Q7XG4gICAgICAgICAgICByZXR1cm4gYGh0dHA6Ly8ke2hvc3R9LyR7YXBwQ29kZX0vJHtwYXRofSR7cXVlcnlTdHJpbmd9YDtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGAvJHthcHBDb2RlfS8ke3BhdGh9JHtxdWVyeVN0cmluZ31gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGFuZCBjb3BpZXMgYSBzY3JlZW4gVVJMIHRvIHRoZSBjbGlwYm9hcmRcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIC8vIENvcHkgVVJMIHRvIGNsaXBib2FyZFxuICAgICAqIHNkay51dGlscy5jb3B5U2NyZWVuTGluaygnMTIzNDUnLCB7IGlkOiAnMTIzNDUnIH0pO1xuICAgICAqL1xuICAgIGNvcHlTY3JlZW5MaW5rVG9DbGlwYm9hcmQoXG4gICAgICAgIHNjcmVlbklkOiBzdHJpbmcsXG4gICAgICAgIHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKTogYW55IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5idWlsZEFwcFVybChgc2NyZWVuLyR7c2NyZWVuSWR9YCwgcGFyYW1ldGVycyk7ICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlbHBlckZ1bmN0aW9uU2VydmljZS5jb3B5VG9DbGlwYm9hcmQodXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb3dubG9hZHMgYSBibG9iIGFzIGEgZmlsZVxuICAgICAqIFxuICAgICAqIEBleGFtcGxlXG4gICAgICogLy8gRG93bmxvYWQgYSBibG9iIGFzICdyZXBvcnQucGRmJ1xuICAgICAqIGNvbnN0IHBkZkJsb2IgPSBuZXcgQmxvYihbcGRmQ29udGVudF0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XG4gICAgICogc2RrLnV0aWxzLmRvd25sb2FkQmxvYihwZGZCbG9iLCAncmVwb3J0LnBkZicpO1xuICAgICAqL1xuICAgIGRvd25sb2FkQmxvYihibG9iOiBCbG9iLCBmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIENyZWF0ZSBvYmplY3QgVVJMXG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGRvd25sb2FkIGxpbmtcbiAgICAgICAgY29uc3QgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBkb3dubG9hZExpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgZG93bmxvYWRMaW5rLmRvd25sb2FkID0gZmlsZW5hbWU7XG5cbiAgICAgICAgLy8gQXBwZW5kIHRvIGJvZHksIGNsaWNrLCBhbmQgcmVtb3ZlXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcbiAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG93bmxvYWRMaW5rKTtcblxuICAgICAgICAvLyBSZWxlYXNlIG9iamVjdCBVUkwgYWZ0ZXIgYSBzaG9ydCBkZWxheSB0byBlbnN1cmUgZG93bmxvYWQgc3RhcnRzXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpLCAxMDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgSFRNTCBjb250ZW50IGFzIGEgV29yZCBkb2N1bWVudCAoLmRvYylcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIC8vIEV4cG9ydCBlZGl0b3IgY29udGVudCBhcyBXb3JkIGRvY3VtZW50XG4gICAgICogc2RrLnV0aWxzLmV4cG9ydEFzV29yZChlZGl0b3JDb250ZW50LCAncmVwb3J0Jyk7XG4gICAgICovXG4gICAgZXhwb3J0QXNXb3JkKGNvbnRlbnQ6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyA9ICdkb2N1bWVudCcpOiB2b2lkIHtcbiAgICAgICAgLy8gRm9ybWF0IGNvbnRlbnQgd2l0aCBXb3JkLWNvbXBhdGlibGUgbmFtZXNwYWNlc1xuICAgICAgICBjb25zdCBkb2NDb250ZW50ID0gYFxuICAgICAgICA8aHRtbCB4bWxuczpvPVwidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlXCIgXG4gICAgICAgICAgICB4bWxuczp3PVwidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZFwiIFxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwXCI+XG4gICAgICAgIDxoZWFkPlxuICAgICAgICAgICAgPG1ldGEgY2hhcnNldD1cInV0Zi04XCI+XG4gICAgICAgICAgICA8dGl0bGU+JHtmaWxlbmFtZX08L3RpdGxlPlxuICAgICAgICA8L2hlYWQ+XG4gICAgICAgIDxib2R5PiR7Y29udGVudH08L2JvZHk+XG4gICAgICAgIDwvaHRtbD5gO1xuXG4gICAgICAgIC8vIENyZWF0ZSBibG9iIHdpdGggQk9NIGZvciBXb3JkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFsnXFx1ZmVmZicsIGRvY0NvbnRlbnRdLCB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vbXN3b3JkJ1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBVc2UgdGhlIGRvd25sb2FkQmxvYiB1dGlsaXR5XG4gICAgICAgIHRoaXMuZG93bmxvYWRCbG9iKGJsb2IsIGAke2ZpbGVuYW1lfS5kb2NgKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgSFRNTCBjb250ZW50IGFzIFBERiB1c2luZyBicm93c2VyIHByaW50IGZ1bmN0aW9uYWxpdHlcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIC8vIEV4cG9ydCBjb250ZW50IGFzIFBERlxuICAgICAqIHNkay51dGlscy5leHBvcnRBc1BkZihkb2N1bWVudENvbnRlbnQsICdJbnZvaWNlJyk7XG4gICAgICovXG4gICAgZXhwb3J0QXNQZGYoY29udGVudDogc3RyaW5nLCB0aXRsZTogc3RyaW5nID0gJ0RvY3VtZW50Jyk6IHZvaWQge1xuICAgICAgICAvLyBPcGVuIG5ldyB3aW5kb3dcbiAgICAgICAgY29uc3QgcHJpbnRXaW5kb3c6IGFueSA9IHdpbmRvdy5vcGVuKCcnLCAnJywgJ3dpZHRoPTgwMCxoZWlnaHQ9NjAwJyk7XG5cbiAgICAgICAgLy8gQWRkIGNvbnRlbnQgd2l0aCBiYXNpYyBzdHlsaW5nXG4gICAgICAgIHByaW50V2luZG93LmRvY3VtZW50Py53cml0ZShgXG4gICAgICAgICAgICA8aHRtbD5cbiAgICAgICAgICAgIDxoZWFkPlxuICAgICAgICAgICAgICAgIDx0aXRsZT4ke3RpdGxlfTwvdGl0bGU+XG4gICAgICAgICAgICAgICAgPHN0eWxlPlxuICAgICAgICAgICAgICAgIGJvZHkgeyBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IG1hcmdpbjogMjBweDsgfVxuICAgICAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDBtbTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3N0eWxlPlxuICAgICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgICAgPGJvZHk+XG4gICAgICAgICAgICAgICAgJHtjb250ZW50fVxuICAgICAgICAgICAgPC9ib2R5PlxuICAgICAgICAgICAgPC9odG1sPlxuICAgICAgICBgKTtcblxuICAgICAgICAvLyBQcmVwYXJlIGZvciBwcmludGluZ1xuICAgICAgICBwcmludFdpbmRvdy5kb2N1bWVudC5jbG9zZSgpO1xuICAgICAgICBwcmludFdpbmRvdy5mb2N1cygpO1xuXG4gICAgICAgIC8vIFVzZSB0aW1lb3V0IHRvIGVuc3VyZSBjb250ZW50IGlzIHJlbmRlcmVkIGJlZm9yZSBwcmludGluZ1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHByaW50V2luZG93LnByaW50KCk7XG4gICAgICAgICAgICAvLyBDbG9zZSB3aW5kb3cgYWZ0ZXIgcHJpbnQgZGlhbG9nIGlzIGNsb3NlZCBvciBwcmludGluZyBpcyBjb21wbGV0ZVxuICAgICAgICAgICAgcHJpbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYWZ0ZXJwcmludCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBwcmludFdpbmRvdy5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { inject, Injectable } from "@angular/core";
|
|
2
|
+
import { LocalStorageService, SessionStorageService, StorageConstants } from "@techextensor/tab-core-utility";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AuthService {
|
|
5
|
+
_sessionStorageService = inject(SessionStorageService);
|
|
6
|
+
_localStorageService = inject(LocalStorageService);
|
|
7
|
+
/**
|
|
8
|
+
* Get the current application code/identifier
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const appCode = sdk.config.getAppCode();
|
|
12
|
+
*/
|
|
13
|
+
getAppCode() {
|
|
14
|
+
return this._sessionStorageService.getSessionStorage(StorageConstants.applicationCode) ?? '';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the current user ID
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* const userId = sdk.auth.getCurrentUserId();
|
|
21
|
+
*/
|
|
22
|
+
getCurrentUserId() {
|
|
23
|
+
const userInfo = this.getCurrentUser();
|
|
24
|
+
return userInfo?.user?.Id ?? '';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the current user information
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const user = sdk.auth.getCurrentUser();
|
|
31
|
+
*/
|
|
32
|
+
getCurrentUser() {
|
|
33
|
+
const userInfoStr = this._localStorageService.getLocalStorage(StorageConstants.userInfo);
|
|
34
|
+
if (userInfoStr) {
|
|
35
|
+
return JSON.parse(userInfoStr);
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthService, decorators: [{
|
|
43
|
+
type: Injectable,
|
|
44
|
+
args: [{
|
|
45
|
+
providedIn: 'root'
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL2NvcmUvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUs5RyxNQUFNLE9BQU8sV0FBVztJQUNILHNCQUFzQixHQUEwQixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM5RSxvQkFBb0IsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFekY7Ozs7O09BS0c7SUFDSCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQjtRQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QyxPQUFPLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjO1FBQ1YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO3dHQXRDUSxXQUFXOzRHQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIFN0b3JhZ2VDb25zdGFudHMgfSBmcm9tIFwiQHRlY2hleHRlbnNvci90YWItY29yZS11dGlsaXR5XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Nlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KFNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBjb2RlL2lkZW50aWZpZXJcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IGFwcENvZGUgPSBzZGsuY29uZmlnLmdldEFwcENvZGUoKTtcbiAgICAgKi9cbiAgICBnZXRBcHBDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5hcHBsaWNhdGlvbkNvZGUpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgY3VycmVudCB1c2VyIElEXG4gICAgICogXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCB1c2VySWQgPSBzZGsuYXV0aC5nZXRDdXJyZW50VXNlcklkKCk7XG4gICAgICovXG4gICAgZ2V0Q3VycmVudFVzZXJJZCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1c2VySW5mbyA9IHRoaXMuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHVzZXJJbmZvPy51c2VyPy5JZCA/PyAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdXNlciBpbmZvcm1hdGlvblxuICAgICAqIFxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgdXNlciA9IHNkay5hdXRoLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgICovXG4gICAgZ2V0Q3VycmVudFVzZXIoKTogYW55IHtcbiAgICAgICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLl9sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldExvY2FsU3RvcmFnZShTdG9yYWdlQ29uc3RhbnRzLnVzZXJJbmZvKTtcbiAgICAgICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { inject, Injectable } from "@angular/core";
|
|
2
|
+
import { TabDeleteService, TabInsertService, TabUpdateService } from '@techextensor/tab-core-utility';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DataService {
|
|
5
|
+
_tabInsertService = inject(TabInsertService);
|
|
6
|
+
_tabUpdateService = inject(TabUpdateService);
|
|
7
|
+
_tabDeleteService = inject(TabDeleteService);
|
|
8
|
+
/**
|
|
9
|
+
* Insert a new record
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const newRecord = await sdk.data.insert('123456', {
|
|
13
|
+
* name: 'ACME Corp',
|
|
14
|
+
* email: 'contact@acme.com'
|
|
15
|
+
* });
|
|
16
|
+
*/
|
|
17
|
+
insert(objectId, data) {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
this._tabInsertService.insertByObjectId(objectId, { data })
|
|
20
|
+
?.subscribe((response) => {
|
|
21
|
+
if (response?.StatusCode == 200 && response?.Result) {
|
|
22
|
+
resolve(response.Result);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
reject(new Error('Failed to insert record'));
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Update an existing record
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* await sdk.data.update('12345', {
|
|
35
|
+
* Id: '12345',
|
|
36
|
+
* name: 'ACME Corporation',
|
|
37
|
+
* status: 'active'
|
|
38
|
+
* });
|
|
39
|
+
*/
|
|
40
|
+
update(objectId, data) {
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
this._tabUpdateService.updateByObjectId(objectId, { data })
|
|
43
|
+
?.subscribe((response) => {
|
|
44
|
+
if (response?.StatusCode == 200 && response?.Result) {
|
|
45
|
+
resolve(response.Result);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
reject(new Error('Failed to update record'));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Delete a record
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* await sdk.data.delete('12345', {Id: '12345'});
|
|
58
|
+
*/
|
|
59
|
+
delete(objectId, data) {
|
|
60
|
+
return new Promise((resolve, reject) => {
|
|
61
|
+
this._tabDeleteService.deleteRecord('', { data }, objectId)
|
|
62
|
+
?.subscribe((response) => {
|
|
63
|
+
if (response?.StatusCode == 200) {
|
|
64
|
+
resolve();
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
reject(new Error('Failed to delete record'));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
73
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataService, providedIn: 'root' });
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataService, decorators: [{
|
|
76
|
+
type: Injectable,
|
|
77
|
+
args: [{
|
|
78
|
+
providedIn: 'root'
|
|
79
|
+
}]
|
|
80
|
+
}] });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL2RhdGEvZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUt0RyxNQUFNLE9BQU8sV0FBVztJQUNILGlCQUFpQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRCxpQkFBaUIsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0QsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRWhGOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLFFBQWdCLEVBQUUsSUFBUztRQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDdkQsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxRQUFRLEVBQUUsVUFBVSxJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2xELE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsUUFBZ0IsRUFBRSxJQUFTO1FBQzlCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN2RCxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUMxQixJQUFJLFFBQVEsRUFBRSxVQUFVLElBQUksR0FBRyxJQUFJLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFFBQWdCLEVBQUUsSUFBUztRQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUUsUUFBUSxDQUFDO2dCQUNyRCxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUMxQixJQUFJLFFBQVEsRUFBRSxVQUFVLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDO2dCQUNkLENBQUM7cUJBQU0sQ0FBQztvQkFDSixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBbkVRLFdBQVc7NEdBQVgsV0FBVyxjQUZSLE1BQU07OzRGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRhYkRlbGV0ZVNlcnZpY2UsIFRhYkluc2VydFNlcnZpY2UsIFRhYlVwZGF0ZVNlcnZpY2UgfSBmcm9tICdAdGVjaGV4dGVuc29yL3RhYi1jb3JlLXV0aWxpdHknO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJJbnNlcnRTZXJ2aWNlOiBUYWJJbnNlcnRTZXJ2aWNlID0gaW5qZWN0KFRhYkluc2VydFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYlVwZGF0ZVNlcnZpY2U6IFRhYlVwZGF0ZVNlcnZpY2UgPSBpbmplY3QoVGFiVXBkYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiRGVsZXRlU2VydmljZTogVGFiRGVsZXRlU2VydmljZSA9IGluamVjdChUYWJEZWxldGVTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIEluc2VydCBhIG5ldyByZWNvcmRcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IG5ld1JlY29yZCA9IGF3YWl0IHNkay5kYXRhLmluc2VydCgnMTIzNDU2Jywge1xuICAgICAqICAgbmFtZTogJ0FDTUUgQ29ycCcsXG4gICAgICogICBlbWFpbDogJ2NvbnRhY3RAYWNtZS5jb20nXG4gICAgICogfSk7XG4gICAgICovXG4gICAgaW5zZXJ0KG9iamVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFiSW5zZXJ0U2VydmljZS5pbnNlcnRCeU9iamVjdElkKG9iamVjdElkLCB7IGRhdGEgfSlcbiAgICAgICAgICAgICAgICA/LnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2U/LlN0YXR1c0NvZGUgPT0gMjAwICYmIHJlc3BvbnNlPy5SZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0ZhaWxlZCB0byBpbnNlcnQgcmVjb3JkJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhbiBleGlzdGluZyByZWNvcmRcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGF3YWl0IHNkay5kYXRhLnVwZGF0ZSgnMTIzNDUnLCB7XG4gICAgICogICBJZDogJzEyMzQ1JyxcbiAgICAgKiAgIG5hbWU6ICdBQ01FIENvcnBvcmF0aW9uJyxcbiAgICAgKiAgIHN0YXR1czogJ2FjdGl2ZSdcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICB1cGRhdGUob2JqZWN0SWQ6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YWJVcGRhdGVTZXJ2aWNlLnVwZGF0ZUJ5T2JqZWN0SWQob2JqZWN0SWQsIHsgZGF0YSB9KVxuICAgICAgICAgICAgICAgID8uc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZT8uU3RhdHVzQ29kZSA9PSAyMDAgJiYgcmVzcG9uc2U/LlJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5SZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignRmFpbGVkIHRvIHVwZGF0ZSByZWNvcmQnKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGEgcmVjb3JkXG4gICAgICogXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhd2FpdCBzZGsuZGF0YS5kZWxldGUoJzEyMzQ1Jywge0lkOiAnMTIzNDUnfSk7XG4gICAgICovXG4gICAgZGVsZXRlKG9iamVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFiRGVsZXRlU2VydmljZS5kZWxldGVSZWNvcmQoJycsIHtkYXRhfSwgb2JqZWN0SWQpXG4gICAgICAgICAgICAgICAgPy5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlPy5TdGF0dXNDb2RlID09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignRmFpbGVkIHRvIGRlbGV0ZSByZWNvcmQnKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DataService } from './data/data.service';
|
|
3
|
+
import { UiService } from './ui/ui.service';
|
|
4
|
+
import { FormService } from './ui/form.service';
|
|
5
|
+
import { AuthService } from './core/auth.service';
|
|
6
|
+
import { UtilsService } from './common/utils.service';
|
|
7
|
+
import { MetadataHelper } from '@techextensor/tab-core-utility';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class TabSdk {
|
|
10
|
+
static data;
|
|
11
|
+
static ui;
|
|
12
|
+
static form;
|
|
13
|
+
static auth;
|
|
14
|
+
static utils;
|
|
15
|
+
static metadataUtils;
|
|
16
|
+
static context;
|
|
17
|
+
/**
|
|
18
|
+
* Initialize the SDK with necessary services
|
|
19
|
+
*/
|
|
20
|
+
static init(injector, context) {
|
|
21
|
+
// Expose to window for global access if needed
|
|
22
|
+
window.TabSdk = TabSdk;
|
|
23
|
+
// external services
|
|
24
|
+
this.context = context;
|
|
25
|
+
// Initialize services
|
|
26
|
+
this.data = injector.get(DataService);
|
|
27
|
+
this.ui = injector.get(UiService);
|
|
28
|
+
this.form = injector.get(FormService);
|
|
29
|
+
this.auth = injector.get(AuthService);
|
|
30
|
+
this.utils = injector.get(UtilsService);
|
|
31
|
+
this.metadataUtils = injector.get(MetadataHelper);
|
|
32
|
+
// Freeze the global object to prevent modifications
|
|
33
|
+
Object.freeze(this);
|
|
34
|
+
Object.freeze(this.context);
|
|
35
|
+
Object.freeze(this.data);
|
|
36
|
+
Object.freeze(this.ui);
|
|
37
|
+
Object.freeze(this.form);
|
|
38
|
+
Object.freeze(this.auth);
|
|
39
|
+
Object.freeze(this.utils);
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabSdk, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabSdk, providedIn: 'root' });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabSdk, decorators: [{
|
|
45
|
+
type: Injectable,
|
|
46
|
+
args: [{
|
|
47
|
+
providedIn: 'root'
|
|
48
|
+
}]
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXNkay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3RhYi1zZGsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUtoRSxNQUFNLE9BQU8sTUFBTTtJQUNWLE1BQU0sQ0FBQyxJQUFJLENBQWM7SUFDekIsTUFBTSxDQUFDLEVBQUUsQ0FBWTtJQUNyQixNQUFNLENBQUMsSUFBSSxDQUFjO0lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQWM7SUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBZTtJQUMzQixNQUFNLENBQUMsYUFBYSxDQUFpQjtJQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFNO0lBRTNCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFrQixFQUFFLE9BQVk7UUFDakQsK0NBQStDO1FBQzlDLE1BQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRWhDLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEQsb0RBQW9EO1FBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzt3R0FuQ1UsTUFBTTs0R0FBTixNQUFNLGNBRkwsTUFBTTs7NEZBRVAsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFVpU2VydmljZSB9IGZyb20gJy4vdWkvdWkuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4vdWkvZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuL2NvbW1vbi91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGFkYXRhSGVscGVyIH0gZnJvbSAnQHRlY2hleHRlbnNvci90YWItY29yZS11dGlsaXR5JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGFiU2RrIHtcbiAgcHVibGljIHN0YXRpYyBkYXRhOiBEYXRhU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyB1aTogVWlTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGZvcm06IEZvcm1TZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGF1dGg6IEF1dGhTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIHV0aWxzOiBVdGlsc1NlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgbWV0YWRhdGFVdGlsczogTWV0YWRhdGFIZWxwZXI7XG4gIHB1YmxpYyBzdGF0aWMgY29udGV4dDogYW55O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBTREsgd2l0aCBuZWNlc3Nhcnkgc2VydmljZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5pdChpbmplY3RvcjogSW5qZWN0b3IsIGNvbnRleHQ6IGFueSk6IHZvaWQge1xuICAgIC8vIEV4cG9zZSB0byB3aW5kb3cgZm9yIGdsb2JhbCBhY2Nlc3MgaWYgbmVlZGVkXG4gICAgKHdpbmRvdyBhcyBhbnkpLlRhYlNkayA9IFRhYlNkaztcblxuICAgIC8vIGV4dGVybmFsIHNlcnZpY2VzXG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcblxuICAgIC8vIEluaXRpYWxpemUgc2VydmljZXNcbiAgICB0aGlzLmRhdGEgPSBpbmplY3Rvci5nZXQoRGF0YVNlcnZpY2UpO1xuICAgIHRoaXMudWkgPSBpbmplY3Rvci5nZXQoVWlTZXJ2aWNlKTtcbiAgICB0aGlzLmZvcm0gPSBpbmplY3Rvci5nZXQoRm9ybVNlcnZpY2UpO1xuICAgIHRoaXMuYXV0aCA9IGluamVjdG9yLmdldChBdXRoU2VydmljZSk7XG4gICAgdGhpcy51dGlscyA9IGluamVjdG9yLmdldChVdGlsc1NlcnZpY2UpO1xuICAgIHRoaXMubWV0YWRhdGFVdGlscyA9IGluamVjdG9yLmdldChNZXRhZGF0YUhlbHBlcik7XG5cbiAgICAvLyBGcmVlemUgdGhlIGdsb2JhbCBvYmplY3QgdG8gcHJldmVudCBtb2RpZmljYXRpb25zXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMuY29udGV4dCk7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmRhdGEpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy51aSk7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmZvcm0pO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5hdXRoKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudXRpbHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { TabSdk } from "../tab-sdk.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormService {
|
|
5
|
+
_helperFunctionService = TabSdk.context?.HelperFunctionService;
|
|
6
|
+
/**
|
|
7
|
+
* Processes form components with individual actions in a single pass
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* // Process multiple components with different actions in one pass
|
|
11
|
+
* sdk.form.processComponents(
|
|
12
|
+
* screenParameters.rendererInstance.form.components,
|
|
13
|
+
* [
|
|
14
|
+
* {
|
|
15
|
+
* keys: 'documentDetails', // Single key
|
|
16
|
+
* action: (component) => component.hidden = true,
|
|
17
|
+
* type: 'columns' // Optional type filter
|
|
18
|
+
* },
|
|
19
|
+
* {
|
|
20
|
+
* keys: 'documentPreview,documentComments', // Multiple keys as comma-separated string
|
|
21
|
+
* action: (component) => component.hidden = false
|
|
22
|
+
* }
|
|
23
|
+
* ]
|
|
24
|
+
* );
|
|
25
|
+
*/
|
|
26
|
+
processComponents(components, processors) {
|
|
27
|
+
if (!components || !Array.isArray(components) || !processors?.length) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this._helperFunctionService?.eachComponent(components, (component) => {
|
|
31
|
+
processors.forEach(processor => {
|
|
32
|
+
// Split the keys string into an array
|
|
33
|
+
const keyList = processor.keys.split(',').map(k => k.trim());
|
|
34
|
+
// Check if component key is in the list of keys to process
|
|
35
|
+
if (!keyList.includes(component.key))
|
|
36
|
+
return;
|
|
37
|
+
// Check type match if specified
|
|
38
|
+
if (processor.type && component.type !== processor.type)
|
|
39
|
+
return;
|
|
40
|
+
// All criteria matched, execute the action
|
|
41
|
+
processor.action(component);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Updates visibility of multiple form components at once
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* sdk.form.setComponentsVisibility(
|
|
50
|
+
* screenParameters.rendererInstance.form.components,
|
|
51
|
+
* {
|
|
52
|
+
* 'documentDetails': false,
|
|
53
|
+
* 'documentComments': true
|
|
54
|
+
* }
|
|
55
|
+
* );
|
|
56
|
+
*/
|
|
57
|
+
setComponentsVisibility(components, visibilityMap) {
|
|
58
|
+
const keys = Object.keys(visibilityMap);
|
|
59
|
+
this.processComponents(components, keys.map(key => ({
|
|
60
|
+
keys: key,
|
|
61
|
+
action: (component) => {
|
|
62
|
+
component.hidden = visibilityMap[key];
|
|
63
|
+
}
|
|
64
|
+
})));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Finds components by key and returns them in a structured object
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* const components = sdk.form.findComponentsByKeys(
|
|
71
|
+
* form.components,
|
|
72
|
+
* ['documentDetails', 'documentPreview', 'documentComments']
|
|
73
|
+
* );
|
|
74
|
+
*/
|
|
75
|
+
findComponentsByKeys(components, keys, options) {
|
|
76
|
+
const result = {};
|
|
77
|
+
if (!components || !Array.isArray(components) || !keys?.length) {
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
// Use the existing eachComponent helper
|
|
81
|
+
this._helperFunctionService.eachComponent(components, (component) => {
|
|
82
|
+
if (!options?.type || component.type === options.type) {
|
|
83
|
+
result[component.key] = component;
|
|
84
|
+
}
|
|
85
|
+
}, keys);
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
89
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormService, providedIn: 'root' });
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormService, decorators: [{
|
|
92
|
+
type: Injectable,
|
|
93
|
+
args: [{
|
|
94
|
+
providedIn: 'root'
|
|
95
|
+
}]
|
|
96
|
+
}] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3VpL2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLFdBQVc7SUFDSCxzQkFBc0IsR0FBUSxNQUFNLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDO0lBRXJGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJFO0lBQ0YsaUJBQWlCLENBQ2IsVUFBaUIsRUFDakIsVUFJRTtRQUVGLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25FLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUN0RSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUMzQixzQ0FBc0M7Z0JBQ3RDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUU3RCwyREFBMkQ7Z0JBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7b0JBQUUsT0FBTztnQkFFN0MsZ0NBQWdDO2dCQUNoQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSTtvQkFBRSxPQUFPO2dCQUVoRSwyQ0FBMkM7Z0JBQzNDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILHVCQUF1QixDQUNuQixVQUFpQixFQUNqQixhQUFzQztRQUV0QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2IsSUFBSSxFQUFFLEdBQUc7WUFDVCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDbEIsU0FBUyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUMsQ0FBQztTQUNKLENBQUMsQ0FBQyxDQUNOLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxvQkFBb0IsQ0FDaEIsVUFBaUIsRUFDakIsSUFBYyxFQUNkLE9BRUM7UUFFRCxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzdELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFFRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUNyRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDdEMsQ0FBQztRQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVULE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7d0dBOUdRLFdBQVc7NEdBQVgsV0FBVyxjQUZSLE1BQU07OzRGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUYWJTZGsgfSBmcm9tIFwiLi4vdGFiLXNkay5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hlbHBlckZ1bmN0aW9uU2VydmljZTogYW55ID0gVGFiU2RrLmNvbnRleHQ/LkhlbHBlckZ1bmN0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICogUHJvY2Vzc2VzIGZvcm0gY29tcG9uZW50cyB3aXRoIGluZGl2aWR1YWwgYWN0aW9ucyBpbiBhIHNpbmdsZSBwYXNzXG4gICAgKiBcbiAgICAqIEBleGFtcGxlXG4gICAgKiAvLyBQcm9jZXNzIG11bHRpcGxlIGNvbXBvbmVudHMgd2l0aCBkaWZmZXJlbnQgYWN0aW9ucyBpbiBvbmUgcGFzc1xuICAgICogc2RrLmZvcm0ucHJvY2Vzc0NvbXBvbmVudHMoXG4gICAgKiAgIHNjcmVlblBhcmFtZXRlcnMucmVuZGVyZXJJbnN0YW5jZS5mb3JtLmNvbXBvbmVudHMsXG4gICAgKiAgIFtcbiAgICAqICAgICB7IFxuICAgICogICAgICAga2V5czogJ2RvY3VtZW50RGV0YWlscycsIC8vIFNpbmdsZSBrZXlcbiAgICAqICAgICAgIGFjdGlvbjogKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LmhpZGRlbiA9IHRydWUsXG4gICAgKiAgICAgICB0eXBlOiAnY29sdW1ucycgLy8gT3B0aW9uYWwgdHlwZSBmaWx0ZXJcbiAgICAqICAgICB9LFxuICAgICogICAgIHsgXG4gICAgKiAgICAgICBrZXlzOiAnZG9jdW1lbnRQcmV2aWV3LGRvY3VtZW50Q29tbWVudHMnLCAvLyBNdWx0aXBsZSBrZXlzIGFzIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmdcbiAgICAqICAgICAgIGFjdGlvbjogKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LmhpZGRlbiA9IGZhbHNlIFxuICAgICogICAgIH1cbiAgICAqICAgXVxuICAgICogKTtcbiAgICAqL1xuICAgIHByb2Nlc3NDb21wb25lbnRzKFxuICAgICAgICBjb21wb25lbnRzOiBhbnlbXSxcbiAgICAgICAgcHJvY2Vzc29yczogQXJyYXk8e1xuICAgICAgICAgICAga2V5czogc3RyaW5nLCAvLyBSZXF1aXJlZDogQ29tcG9uZW50IGtleShzKSB0byBtYXRjaCAoY29tbWEtc2VwYXJhdGVkIGZvciBtdWx0aXBsZSlcbiAgICAgICAgICAgIHR5cGU/OiBzdHJpbmcsIC8vIE9wdGlvbmFsOiBDb21wb25lbnQgdHlwZSB0byBtYXRjaFxuICAgICAgICAgICAgYWN0aW9uOiAoY29tcG9uZW50OiBhbnkpID0+IHZvaWQgLy8gQWN0aW9uIHRvIHBlcmZvcm0gb24gbWF0Y2hlZCBjb21wb25lbnRcbiAgICAgICAgfT5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb21wb25lbnRzIHx8ICFBcnJheS5pc0FycmF5KGNvbXBvbmVudHMpIHx8ICFwcm9jZXNzb3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2hlbHBlckZ1bmN0aW9uU2VydmljZT8uZWFjaENvbXBvbmVudChjb21wb25lbnRzLCAoY29tcG9uZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHByb2Nlc3NvcnMuZm9yRWFjaChwcm9jZXNzb3IgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFNwbGl0IHRoZSBrZXlzIHN0cmluZyBpbnRvIGFuIGFycmF5XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5TGlzdCA9IHByb2Nlc3Nvci5rZXlzLnNwbGl0KCcsJykubWFwKGsgPT4gay50cmltKCkpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgY29tcG9uZW50IGtleSBpcyBpbiB0aGUgbGlzdCBvZiBrZXlzIHRvIHByb2Nlc3NcbiAgICAgICAgICAgICAgICBpZiAoIWtleUxpc3QuaW5jbHVkZXMoY29tcG9uZW50LmtleSkpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIC8vIENoZWNrIHR5cGUgbWF0Y2ggaWYgc3BlY2lmaWVkXG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3Nvci50eXBlICYmIGNvbXBvbmVudC50eXBlICE9PSBwcm9jZXNzb3IudHlwZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgLy8gQWxsIGNyaXRlcmlhIG1hdGNoZWQsIGV4ZWN1dGUgdGhlIGFjdGlvblxuICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5hY3Rpb24oY29tcG9uZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHZpc2liaWxpdHkgb2YgbXVsdGlwbGUgZm9ybSBjb21wb25lbnRzIGF0IG9uY2VcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHNkay5mb3JtLnNldENvbXBvbmVudHNWaXNpYmlsaXR5KFxuICAgICAqICAgc2NyZWVuUGFyYW1ldGVycy5yZW5kZXJlckluc3RhbmNlLmZvcm0uY29tcG9uZW50cywgXG4gICAgICogICB7XG4gICAgICogICAgICdkb2N1bWVudERldGFpbHMnOiBmYWxzZSxcbiAgICAgKiAgICAgJ2RvY3VtZW50Q29tbWVudHMnOiB0cnVlXG4gICAgICogICB9XG4gICAgICogKTtcbiAgICAgKi9cbiAgICBzZXRDb21wb25lbnRzVmlzaWJpbGl0eShcbiAgICAgICAgY29tcG9uZW50czogYW55W10sXG4gICAgICAgIHZpc2liaWxpdHlNYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+XG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2aXNpYmlsaXR5TWFwKTtcblxuICAgICAgICB0aGlzLnByb2Nlc3NDb21wb25lbnRzKGNvbXBvbmVudHMsXG4gICAgICAgICAgICBrZXlzLm1hcChrZXkgPT4gKHtcbiAgICAgICAgICAgICAgICBrZXlzOiBrZXksXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5oaWRkZW4gPSB2aXNpYmlsaXR5TWFwW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgY29tcG9uZW50cyBieSBrZXkgYW5kIHJldHVybnMgdGhlbSBpbiBhIHN0cnVjdHVyZWQgb2JqZWN0XG4gICAgICogXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBjb21wb25lbnRzID0gc2RrLmZvcm0uZmluZENvbXBvbmVudHNCeUtleXMoXG4gICAgICogICBmb3JtLmNvbXBvbmVudHMsXG4gICAgICogICBbJ2RvY3VtZW50RGV0YWlscycsICdkb2N1bWVudFByZXZpZXcnLCAnZG9jdW1lbnRDb21tZW50cyddXG4gICAgICogKTtcbiAgICAgKi9cbiAgICBmaW5kQ29tcG9uZW50c0J5S2V5cyhcbiAgICAgICAgY29tcG9uZW50czogYW55W10sXG4gICAgICAgIGtleXM6IHN0cmluZ1tdLFxuICAgICAgICBvcHRpb25zPzoge1xuICAgICAgICAgICAgdHlwZT86IHN0cmluZ1xuICAgICAgICB9XG4gICAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gICAgICAgIGlmICghY29tcG9uZW50cyB8fCAhQXJyYXkuaXNBcnJheShjb21wb25lbnRzKSB8fCAha2V5cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlIHRoZSBleGlzdGluZyBlYWNoQ29tcG9uZW50IGhlbHBlciBcbiAgICAgICAgdGhpcy5faGVscGVyRnVuY3Rpb25TZXJ2aWNlLmVhY2hDb21wb25lbnQoY29tcG9uZW50cywgKGNvbXBvbmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnM/LnR5cGUgfHwgY29tcG9uZW50LnR5cGUgPT09IG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtjb21wb25lbnQua2V5XSA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwga2V5cyk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class UiService {
|
|
4
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UiService, providedIn: 'root' });
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UiService, decorators: [{
|
|
8
|
+
type: Injectable,
|
|
9
|
+
args: [{
|
|
10
|
+
providedIn: 'root'
|
|
11
|
+
}]
|
|
12
|
+
}] });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhYi1zZGsvc3JjL2xpYi91aS91aS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxTQUFTO3dHQUFULFNBQVM7NEdBQVQsU0FBUyxjQUZOLE1BQU07OzRGQUVULFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVWlTZXJ2aWNlIHt9Il19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of tab-sdk
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/tab-sdk.service';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RhYi1zZGsvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0YWItc2RrXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLXNkay5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGV4dGVuc29yLXRhYi1zZGsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy90YWItc2RrL3NyYy90ZWNoZXh0ZW5zb3ItdGFiLXNkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|