@techextensor/tab-sdk 0.0.3 → 0.0.6
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/auth/auth.service.mjs +95 -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 +52 -18
- package/esm2022/lib/ui/form.service.mjs +58 -76
- package/esm2022/lib/ui/ui.service.mjs +297 -2
- package/esm2022/lib/util/util.service.mjs +53 -0
- package/esm2022/lib/workflow/transition.service.mjs +40 -0
- package/fesm2022/techextensor-tab-sdk.mjs +1855 -341
- 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/auth/auth.service.d.ts +58 -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 +24 -8
- package/lib/ui/form.service.d.ts +35 -44
- package/lib/ui/ui.service.d.ts +154 -0
- package/lib/util/util.service.d.ts +14 -0
- package/lib/workflow/transition.service.d.ts +21 -0
- package/package.json +2 -2
- package/esm2022/lib/common/utils.service.mjs +0 -163
- package/esm2022/lib/core/auth.service.mjs +0 -48
- package/esm2022/lib/data/data.service.mjs +0 -81
- package/lib/common/utils.service.d.ts +0 -58
- package/lib/core/auth.service.d.ts +0 -28
- package/lib/data/data.service.d.ts +0 -36
|
@@ -1,42 +1,76 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { MetadataHelper } from '@techextensor/tab-core-utility';
|
|
3
3
|
import { UiService } from './ui/ui.service';
|
|
4
|
+
import { AuthUtilService } from './auth/auth.service';
|
|
4
5
|
import { FormService } from './ui/form.service';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { TransitionService } from './workflow/transition.service';
|
|
7
|
+
import { AppService } from './app/app.service';
|
|
8
|
+
import { FileService } from './app/file.service';
|
|
9
|
+
import { ReportService } from './app/report.service';
|
|
10
|
+
import { ReleaseService } from './app/release.service';
|
|
11
|
+
import { AnalyticsService } from './app/analytics.service';
|
|
12
|
+
import { TranslatorService } from './app/translator.service';
|
|
13
|
+
import { CrudService } from './crud/crud.service';
|
|
14
|
+
import { HttpService } from './http/http.service';
|
|
15
|
+
import { StoreService } from './store/store.service';
|
|
16
|
+
import { UtilService } from './util/util.service';
|
|
8
17
|
import * as i0 from "@angular/core";
|
|
9
18
|
export class TabSdk {
|
|
10
|
-
static
|
|
19
|
+
static app;
|
|
20
|
+
static auth;
|
|
11
21
|
static ui;
|
|
12
22
|
static form;
|
|
13
|
-
static
|
|
14
|
-
static utils;
|
|
23
|
+
static transition;
|
|
15
24
|
static metadataUtils;
|
|
16
|
-
static
|
|
25
|
+
static file;
|
|
26
|
+
static report;
|
|
27
|
+
static release;
|
|
28
|
+
static analytics;
|
|
29
|
+
static translator;
|
|
30
|
+
static crud;
|
|
31
|
+
static http;
|
|
32
|
+
static store;
|
|
33
|
+
static util;
|
|
17
34
|
/**
|
|
18
35
|
* Initialize the SDK with necessary services
|
|
19
36
|
*/
|
|
20
37
|
static init(injector, context) {
|
|
21
38
|
// Expose to window for global access if needed
|
|
22
39
|
window.TabSdk = TabSdk;
|
|
23
|
-
// external services
|
|
24
|
-
this.context = context;
|
|
25
40
|
// Initialize services
|
|
26
|
-
this.
|
|
41
|
+
this.app = injector.get(AppService);
|
|
42
|
+
this.auth = injector.get(AuthUtilService);
|
|
27
43
|
this.ui = injector.get(UiService);
|
|
28
44
|
this.form = injector.get(FormService);
|
|
29
|
-
this.
|
|
30
|
-
this.utils = injector.get(UtilsService);
|
|
45
|
+
this.transition = injector.get(TransitionService);
|
|
31
46
|
this.metadataUtils = injector.get(MetadataHelper);
|
|
47
|
+
this.file = injector.get(FileService);
|
|
48
|
+
this.report = injector.get(ReportService);
|
|
49
|
+
this.release = injector.get(ReleaseService);
|
|
50
|
+
this.analytics = injector.get(AnalyticsService);
|
|
51
|
+
this.translator = injector.get(TranslatorService);
|
|
52
|
+
this.crud = injector.get(CrudService);
|
|
53
|
+
this.http = injector.get(HttpService);
|
|
54
|
+
this.store = injector.get(StoreService);
|
|
55
|
+
// Initialize util service with context
|
|
56
|
+
const utilService = injector.get(UtilService);
|
|
57
|
+
this.util = utilService.init(context);
|
|
32
58
|
// Freeze the global object to prevent modifications
|
|
33
59
|
Object.freeze(this);
|
|
34
|
-
Object.freeze(this.
|
|
35
|
-
Object.freeze(this.
|
|
60
|
+
Object.freeze(this.app);
|
|
61
|
+
Object.freeze(this.auth);
|
|
36
62
|
Object.freeze(this.ui);
|
|
37
63
|
Object.freeze(this.form);
|
|
38
|
-
Object.freeze(this.
|
|
39
|
-
Object.freeze(this.
|
|
64
|
+
Object.freeze(this.transition);
|
|
65
|
+
Object.freeze(this.file);
|
|
66
|
+
Object.freeze(this.report);
|
|
67
|
+
Object.freeze(this.release);
|
|
68
|
+
Object.freeze(this.analytics);
|
|
69
|
+
Object.freeze(this.translator);
|
|
70
|
+
Object.freeze(this.crud);
|
|
71
|
+
Object.freeze(this.http);
|
|
72
|
+
Object.freeze(this.store);
|
|
73
|
+
Object.freeze(this.util);
|
|
40
74
|
}
|
|
41
75
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabSdk, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
76
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabSdk, providedIn: 'root' });
|
|
@@ -47,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
47
81
|
providedIn: 'root'
|
|
48
82
|
}]
|
|
49
83
|
}] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXNkay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3RhYi1zZGsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtsRCxNQUFNLE9BQU8sTUFBTTtJQUNWLE1BQU0sQ0FBQyxHQUFHLENBQWE7SUFDdkIsTUFBTSxD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QUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzt3R0E5RFUsTUFBTTs0R0FBTixNQUFNLGNBRkwsTUFBTTs7NEZBRVAsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YWRhdGFIZWxwZXIgfSBmcm9tICdAdGVjaGV4dGVuc29yL3RhYi1jb3JlLXV0aWxpdHknO1xuaW1wb3J0IHsgVWlTZXJ2aWNlIH0gZnJvbSAnLi91aS91aS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhVdGlsU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuL3VpL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2l0aW9uU2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3cvdHJhbnNpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICcuL2FwcC9hcHAuc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4vYXBwL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9hcHAvcmVwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVsZWFzZVNlcnZpY2UgfSBmcm9tICcuL2FwcC9yZWxlYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYXBwL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi9hcHAvdHJhbnNsYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi9jcnVkL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS9zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi91dGlsL3V0aWwuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhYlNkayB7XG4gIHB1YmxpYyBzdGF0aWMgYXBwOiBBcHBTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGF1dGg6IEF1dGhVdGlsU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyB1aTogVWlTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGZvcm06IEZvcm1TZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIHRyYW5zaXRpb246IFRyYW5zaXRpb25TZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIG1ldGFkYXRhVXRpbHM6IE1ldGFkYXRhSGVscGVyO1xuICBwdWJsaWMgc3RhdGljIGZpbGU6IEZpbGVTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIHJlcG9ydDogUmVwb3J0U2VydmljZTtcbiAgcHVibGljIHN0YXRpYyByZWxlYXNlOiBSZWxlYXNlU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyBhbmFseXRpY3M6IEFuYWx5dGljc1NlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgdHJhbnNsYXRvcjogVHJhbnNsYXRvclNlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgY3J1ZDogQ3J1ZFNlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgaHR0cDogSHR0cFNlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgc3RvcmU6IFN0b3JlU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyB1dGlsOiBhbnk7XG5cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgU0RLIHdpdGggbmVjZXNzYXJ5IHNlcnZpY2VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGluaXQoaW5qZWN0b3I6IEluamVjdG9yLCBjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICAvLyBFeHBvc2UgdG8gd2luZG93IGZvciBnbG9iYWwgYWNjZXNzIGlmIG5lZWRlZFxuICAgICh3aW5kb3cgYXMgYW55KS5UYWJTZGsgPSBUYWJTZGs7XG5cbiAgICAvLyBJbml0aWFsaXplIHNlcnZpY2VzXG4gICAgdGhpcy5hcHAgPSBpbmplY3Rvci5nZXQoQXBwU2VydmljZSk7XG4gICAgdGhpcy5hdXRoID0gaW5qZWN0b3IuZ2V0KEF1dGhVdGlsU2VydmljZSk7XG4gICAgdGhpcy51aSA9IGluamVjdG9yLmdldChVaVNlcnZpY2UpO1xuICAgIHRoaXMuZm9ybSA9IGluamVjdG9yLmdldChGb3JtU2VydmljZSk7XG4gICAgdGhpcy50cmFuc2l0aW9uID0gaW5qZWN0b3IuZ2V0KFRyYW5zaXRpb25TZXJ2aWNlKTtcbiAgICB0aGlzLm1ldGFkYXRhVXRpbHMgPSBpbmplY3Rvci5nZXQoTWV0YWRhdGFIZWxwZXIpO1xuICAgIHRoaXMuZmlsZSA9IGluamVjdG9yLmdldChGaWxlU2VydmljZSk7XG4gICAgdGhpcy5yZXBvcnQgPSBpbmplY3Rvci5nZXQoUmVwb3J0U2VydmljZSk7XG4gICAgdGhpcy5yZWxlYXNlID0gaW5qZWN0b3IuZ2V0KFJlbGVhc2VTZXJ2aWNlKTtcbiAgICB0aGlzLmFuYWx5dGljcyA9IGluamVjdG9yLmdldChBbmFseXRpY3NTZXJ2aWNlKTtcbiAgICB0aGlzLnRyYW5zbGF0b3IgPSBpbmplY3Rvci5nZXQoVHJhbnNsYXRvclNlcnZpY2UpO1xuICAgIHRoaXMuY3J1ZCA9IGluamVjdG9yLmdldChDcnVkU2VydmljZSk7XG4gICAgdGhpcy5odHRwID0gaW5qZWN0b3IuZ2V0KEh0dHBTZXJ2aWNlKTtcbiAgICB0aGlzLnN0b3JlID0gaW5qZWN0b3IuZ2V0KFN0b3JlU2VydmljZSk7XG5cbiAgICAvLyBJbml0aWFsaXplIHV0aWwgc2VydmljZSB3aXRoIGNvbnRleHRcbiAgICBjb25zdCB1dGlsU2VydmljZSA9IGluamVjdG9yLmdldChVdGlsU2VydmljZSk7XG4gICAgdGhpcy51dGlsID0gdXRpbFNlcnZpY2UuaW5pdChjb250ZXh0KTtcblxuICAgIC8vIEZyZWV6ZSB0aGUgZ2xvYmFsIG9iamVjdCB0byBwcmV2ZW50IG1vZGlmaWNhdGlvbnNcbiAgICBPYmplY3QuZnJlZXplKHRoaXMpO1xuICAgIFxuICAgIE9iamVjdC5mcmVlemUodGhpcy5hcHApO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5hdXRoKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudWkpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5mb3JtKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudHJhbnNpdGlvbik7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmZpbGUpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5yZXBvcnQpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5yZWxlYXNlKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMuYW5hbHl0aWNzKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudHJhbnNsYXRvcik7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmNydWQpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5odHRwKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMuc3RvcmUpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy51dGlsKTtcbiAgfVxufSJdfQ==
|
|
@@ -1,89 +1,71 @@
|
|
|
1
|
-
import { Injectable } from
|
|
2
|
-
import {
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { TabFormioService, TemplateHelper } from '@techextensor/tab-core-utility';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class FormService {
|
|
5
|
-
|
|
6
|
+
_tabFormioService = inject(TabFormioService);
|
|
7
|
+
_templateHelper = inject(TemplateHelper);
|
|
6
8
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
processor.action(component);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
9
|
+
* Retrieves a screen by its ID.
|
|
10
|
+
*
|
|
11
|
+
* @param screenId The ID of the screen to retrieve.
|
|
12
|
+
* @param config Optional configuration object for the request.
|
|
13
|
+
* @returns A promise of the response from the server.
|
|
14
|
+
*/
|
|
15
|
+
async getScreen(screenId, config) {
|
|
16
|
+
const response = await firstValueFrom(this._tabFormioService.getScreen(screenId, config));
|
|
17
|
+
return response;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves the data for a screen by its ID.
|
|
21
|
+
*
|
|
22
|
+
* @param screenId The ID of the screen to retrieve the data for.
|
|
23
|
+
* @param requestPayload The request payload to send to the server.
|
|
24
|
+
* @returns A promise of the response from the server.
|
|
25
|
+
*/
|
|
26
|
+
async getScreenData(screenId, requestPayload) {
|
|
27
|
+
// Send the request to the server and get the response.
|
|
28
|
+
const response = await firstValueFrom(this._tabFormioService.getScreenData(screenId, requestPayload));
|
|
29
|
+
// Return the response from the server.
|
|
30
|
+
return response;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Processes a request using the provided request payload.
|
|
34
|
+
*
|
|
35
|
+
* @param requestPayload The payload to be processed.
|
|
36
|
+
* @returns A promise of the response from the server.
|
|
37
|
+
*/
|
|
38
|
+
async processRequest(requestPayload) {
|
|
39
|
+
// Send the request payload to the server and await the response.
|
|
40
|
+
const response = await firstValueFrom(this._tabFormioService.processRequest(requestPayload));
|
|
41
|
+
// Return the server's response.
|
|
42
|
+
return response;
|
|
44
43
|
}
|
|
45
44
|
/**
|
|
46
|
-
*
|
|
45
|
+
* Builds Form.io components for the specified app object ID and type.
|
|
47
46
|
*
|
|
48
|
-
* @
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* {
|
|
52
|
-
* 'documentDetails': false,
|
|
53
|
-
* 'documentComments': true
|
|
54
|
-
* }
|
|
55
|
-
* );
|
|
47
|
+
* @param appObjectId The ID of the app object to build the components for.
|
|
48
|
+
* @param type The type of components to build.
|
|
49
|
+
* @returns A promise of the response from the server.
|
|
56
50
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
component.hidden = visibilityMap[key];
|
|
63
|
-
}
|
|
64
|
-
})));
|
|
51
|
+
async buildFormIOComponents(appObjectId, type) {
|
|
52
|
+
// Send the request to the server to build the components.
|
|
53
|
+
const response = await firstValueFrom(this._tabFormioService.buildFormIOComponents(appObjectId, type));
|
|
54
|
+
// Return the response from the server.
|
|
55
|
+
return response;
|
|
65
56
|
}
|
|
66
57
|
/**
|
|
67
|
-
*
|
|
58
|
+
* Parses a template using the provided request payload.
|
|
68
59
|
*
|
|
69
|
-
* @
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* ['documentDetails', 'documentPreview', 'documentComments']
|
|
73
|
-
* );
|
|
60
|
+
* @param requestPayload The payload containing the template to be parsed.
|
|
61
|
+
* @param onFailedParseOnServer If the parsing should be done on the server.
|
|
62
|
+
* @returns A promise of the response from the server.
|
|
74
63
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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;
|
|
64
|
+
async parseTemplate(requestPayload, onFailedParseOnServer = false) {
|
|
65
|
+
// Send the request to the server to parse the template.
|
|
66
|
+
const response = await firstValueFrom(this._templateHelper.templateParseUniversal(requestPayload, onFailedParseOnServer));
|
|
67
|
+
// Return the response from the server.
|
|
68
|
+
return response;
|
|
87
69
|
}
|
|
88
70
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
89
71
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormService, providedIn: 'root' });
|
|
@@ -94,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
94
76
|
providedIn: 'root'
|
|
95
77
|
}]
|
|
96
78
|
}] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3VpL2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQXFGLGdCQUFnQixFQUFFLGNBQWMsRUFBd0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzTCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt0QyxNQUFNLE9BQU8sV0FBVztJQUNILGlCQUFpQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUxRTs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWdCLEVBQUUsTUFBd0I7UUFDdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUNyRCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0IsRUFBRSxjQUFtQjtRQUNyRCx1REFBdUQ7UUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUNqRSxDQUFDO1FBRUYsdUNBQXVDO1FBQ3ZDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsY0FBcUM7UUFDdEQsaUVBQWlFO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUN4RCxDQUFDO1FBRUYsZ0NBQWdDO1FBQ2hDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsV0FBbUIsRUFBRSxJQUE0QjtRQUN6RSwwREFBMEQ7UUFDMUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQ2xFLENBQUM7UUFFRix1Q0FBdUM7UUFDdkMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBb0MsRUFBRSxxQkFBcUIsR0FBRyxLQUFLO1FBQ25GLHdEQUF3RDtRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUMsQ0FDckYsQ0FBQztRQUVGLHVDQUF1QztRQUN2QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO3dHQW5GUSxXQUFXOzRHQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnVpbGRGb3JtQ29tcG9uZW50VHlwZSwgQ29tbW9uQXBpUmVzcG9uc2UsIEdldFNjcmVlbkNvbmZpZywgUHJvY2Vzc1JlcXVlc3RQYXlsb2FkLCBUYWJGb3JtaW9TZXJ2aWNlLCBUZW1wbGF0ZUhlbHBlciwgVGVtcGxhdGVQYXJzZVBheWxvYWQgfSBmcm9tICdAdGVjaGV4dGVuc29yL3RhYi1jb3JlLXV0aWxpdHknO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiRm9ybWlvU2VydmljZTogVGFiRm9ybWlvU2VydmljZSA9IGluamVjdChUYWJGb3JtaW9TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90ZW1wbGF0ZUhlbHBlcjogVGVtcGxhdGVIZWxwZXIgPSBpbmplY3QoVGVtcGxhdGVIZWxwZXIpO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGEgc2NyZWVuIGJ5IGl0cyBJRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzY3JlZW5JZCBUaGUgSUQgb2YgdGhlIHNjcmVlbiB0byByZXRyaWV2ZS5cbiAgICAgKiBAcGFyYW0gY29uZmlnIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTY3JlZW4oc2NyZWVuSWQ6IHN0cmluZywgY29uZmlnPzogR2V0U2NyZWVuQ29uZmlnKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGFiRm9ybWlvU2VydmljZS5nZXRTY3JlZW4oc2NyZWVuSWQsIGNvbmZpZylcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgZGF0YSBmb3IgYSBzY3JlZW4gYnkgaXRzIElELlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjcmVlbklkIFRoZSBJRCBvZiB0aGUgc2NyZWVuIHRvIHJldHJpZXZlIHRoZSBkYXRhIGZvci5cbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBheWxvYWQgVGhlIHJlcXVlc3QgcGF5bG9hZCB0byBzZW5kIHRvIHRoZSBzZXJ2ZXIuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0U2NyZWVuRGF0YShzY3JlZW5JZDogc3RyaW5nLCByZXF1ZXN0UGF5bG9hZDogYW55KTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgYW5kIGdldCB0aGUgcmVzcG9uc2UuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl90YWJGb3JtaW9TZXJ2aWNlLmdldFNjcmVlbkRhdGEoc2NyZWVuSWQsIHJlcXVlc3RQYXlsb2FkKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGEgcmVxdWVzdCB1c2luZyB0aGUgcHJvdmlkZWQgcmVxdWVzdCBwYXlsb2FkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXlsb2FkIFRoZSBwYXlsb2FkIHRvIGJlIHByb2Nlc3NlZC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBhc3luYyBwcm9jZXNzUmVxdWVzdChyZXF1ZXN0UGF5bG9hZDogUHJvY2Vzc1JlcXVlc3RQYXlsb2FkKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IHBheWxvYWQgdG8gdGhlIHNlcnZlciBhbmQgYXdhaXQgdGhlIHJlc3BvbnNlLlxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGFiRm9ybWlvU2VydmljZS5wcm9jZXNzUmVxdWVzdChyZXF1ZXN0UGF5bG9hZClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIHNlcnZlcidzIHJlc3BvbnNlLlxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQnVpbGRzIEZvcm0uaW8gY29tcG9uZW50cyBmb3IgdGhlIHNwZWNpZmllZCBhcHAgb2JqZWN0IElEIGFuZCB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE9iamVjdElkIFRoZSBJRCBvZiB0aGUgYXBwIG9iamVjdCB0byBidWlsZCB0aGUgY29tcG9uZW50cyBmb3IuXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgY29tcG9uZW50cyB0byBidWlsZC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBhc3luYyBidWlsZEZvcm1JT0NvbXBvbmVudHMoYXBwT2JqZWN0SWQ6IHN0cmluZywgdHlwZTogQnVpbGRGb3JtQ29tcG9uZW50VHlwZSk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIGJ1aWxkIHRoZSBjb21wb25lbnRzLlxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGFiRm9ybWlvU2VydmljZS5idWlsZEZvcm1JT0NvbXBvbmVudHMoYXBwT2JqZWN0SWQsIHR5cGUpXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgYSB0ZW1wbGF0ZSB1c2luZyB0aGUgcHJvdmlkZWQgcmVxdWVzdCBwYXlsb2FkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHRlbXBsYXRlIHRvIGJlIHBhcnNlZC5cbiAgICAgKiBAcGFyYW0gb25GYWlsZWRQYXJzZU9uU2VydmVyIElmIHRoZSBwYXJzaW5nIHNob3VsZCBiZSBkb25lIG9uIHRoZSBzZXJ2ZXIuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICovXG4gICAgYXN5bmMgcGFyc2VUZW1wbGF0ZShyZXF1ZXN0UGF5bG9hZDogVGVtcGxhdGVQYXJzZVBheWxvYWQsIG9uRmFpbGVkUGFyc2VPblNlcnZlciA9IGZhbHNlKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdG8gcGFyc2UgdGhlIHRlbXBsYXRlLlxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGVIZWxwZXIudGVtcGxhdGVQYXJzZVVuaXZlcnNhbChyZXF1ZXN0UGF5bG9hZCwgb25GYWlsZWRQYXJzZU9uU2VydmVyKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxufSJdfQ==
|