@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.
Files changed (47) hide show
  1. package/esm2022/lib/app/analytics.service.mjs +51 -0
  2. package/esm2022/lib/app/app.service.mjs +145 -0
  3. package/esm2022/lib/app/file.service.mjs +41 -0
  4. package/esm2022/lib/app/release.service.mjs +38 -0
  5. package/esm2022/lib/app/report.service.mjs +48 -0
  6. package/esm2022/lib/app/translator.service.mjs +77 -0
  7. package/esm2022/lib/auth/auth.service.mjs +95 -0
  8. package/esm2022/lib/crud/crud.service.mjs +161 -0
  9. package/esm2022/lib/enum/store.enum.mjs +6 -0
  10. package/esm2022/lib/enum/ui.enum.mjs +13 -0
  11. package/esm2022/lib/http/http.service.mjs +58 -0
  12. package/esm2022/lib/interface/http.interface.mjs +2 -0
  13. package/esm2022/lib/interface/ui.interface.mjs +2 -0
  14. package/esm2022/lib/store/store.service.mjs +719 -0
  15. package/esm2022/lib/tab-sdk.service.mjs +52 -18
  16. package/esm2022/lib/ui/form.service.mjs +58 -76
  17. package/esm2022/lib/ui/ui.service.mjs +297 -2
  18. package/esm2022/lib/util/util.service.mjs +53 -0
  19. package/esm2022/lib/workflow/transition.service.mjs +40 -0
  20. package/fesm2022/techextensor-tab-sdk.mjs +1855 -341
  21. package/fesm2022/techextensor-tab-sdk.mjs.map +1 -1
  22. package/lib/app/analytics.service.d.ts +28 -0
  23. package/lib/app/app.service.d.ts +81 -0
  24. package/lib/app/file.service.d.ts +22 -0
  25. package/lib/app/release.service.d.ts +23 -0
  26. package/lib/app/report.service.d.ts +28 -0
  27. package/lib/app/translator.service.d.ts +49 -0
  28. package/lib/auth/auth.service.d.ts +58 -0
  29. package/lib/crud/crud.service.d.ts +88 -0
  30. package/lib/enum/store.enum.d.ts +4 -0
  31. package/lib/enum/ui.enum.d.ts +10 -0
  32. package/lib/http/http.service.d.ts +35 -0
  33. package/lib/interface/http.interface.d.ts +8 -0
  34. package/lib/interface/ui.interface.d.ts +24 -0
  35. package/lib/store/store.service.d.ts +406 -0
  36. package/lib/tab-sdk.service.d.ts +24 -8
  37. package/lib/ui/form.service.d.ts +35 -44
  38. package/lib/ui/ui.service.d.ts +154 -0
  39. package/lib/util/util.service.d.ts +14 -0
  40. package/lib/workflow/transition.service.d.ts +21 -0
  41. package/package.json +2 -2
  42. package/esm2022/lib/common/utils.service.mjs +0 -163
  43. package/esm2022/lib/core/auth.service.mjs +0 -48
  44. package/esm2022/lib/data/data.service.mjs +0 -81
  45. package/lib/common/utils.service.d.ts +0 -58
  46. package/lib/core/auth.service.d.ts +0 -28
  47. package/lib/data/data.service.d.ts +0 -36
@@ -1,42 +1,76 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { DataService } from './data/data.service';
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 { AuthService } from './core/auth.service';
6
- import { UtilsService } from './common/utils.service';
7
- import { MetadataHelper } from '@techextensor/tab-core-utility';
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 data;
19
+ static app;
20
+ static auth;
11
21
  static ui;
12
22
  static form;
13
- static auth;
14
- static utils;
23
+ static transition;
15
24
  static metadataUtils;
16
- static context;
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.data = injector.get(DataService);
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.auth = injector.get(AuthService);
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.context);
35
- Object.freeze(this.data);
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.auth);
39
- Object.freeze(this.utils);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXNkay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3RhYi1zZGsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUtoRSxNQUFNLE9BQU8sTUFBTTtJQUNWLE1BQU0sQ0FBQyxJQUFJLENBQWM7SUFDekIsTUFBTSxDQUFDLEVBQUUsQ0FBWTtJQUNyQixNQUFNLENBQUMsSUFBSSxDQUFjO0lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQWM7SUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBZTtJQUMzQixNQUFNLENBQUMsYUFBYSxDQUFpQjtJQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFNO0lBRTNCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFrQixFQUFFLE9BQVk7UUFDakQsK0NBQStDO1FBQzlDLE1BQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRWhDLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEQsb0RBQW9EO1FBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzt3R0FuQ1UsTUFBTTs0R0FBTixNQUFNLGNBRkwsTUFBTTs7NEZBRVAsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFVpU2VydmljZSB9IGZyb20gJy4vdWkvdWkuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4vdWkvZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuL2NvbW1vbi91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGFkYXRhSGVscGVyIH0gZnJvbSAnQHRlY2hleHRlbnNvci90YWItY29yZS11dGlsaXR5JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGFiU2RrIHtcbiAgcHVibGljIHN0YXRpYyBkYXRhOiBEYXRhU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyB1aTogVWlTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGZvcm06IEZvcm1TZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGF1dGg6IEF1dGhTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIHV0aWxzOiBVdGlsc1NlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgbWV0YWRhdGFVdGlsczogTWV0YWRhdGFIZWxwZXI7XG4gIHB1YmxpYyBzdGF0aWMgY29udGV4dDogYW55O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBTREsgd2l0aCBuZWNlc3Nhcnkgc2VydmljZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5pdChpbmplY3RvcjogSW5qZWN0b3IsIGNvbnRleHQ6IGFueSk6IHZvaWQge1xuICAgIC8vIEV4cG9zZSB0byB3aW5kb3cgZm9yIGdsb2JhbCBhY2Nlc3MgaWYgbmVlZGVkXG4gICAgKHdpbmRvdyBhcyBhbnkpLlRhYlNkayA9IFRhYlNkaztcblxuICAgIC8vIGV4dGVybmFsIHNlcnZpY2VzXG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcblxuICAgIC8vIEluaXRpYWxpemUgc2VydmljZXNcbiAgICB0aGlzLmRhdGEgPSBpbmplY3Rvci5nZXQoRGF0YVNlcnZpY2UpO1xuICAgIHRoaXMudWkgPSBpbmplY3Rvci5nZXQoVWlTZXJ2aWNlKTtcbiAgICB0aGlzLmZvcm0gPSBpbmplY3Rvci5nZXQoRm9ybVNlcnZpY2UpO1xuICAgIHRoaXMuYXV0aCA9IGluamVjdG9yLmdldChBdXRoU2VydmljZSk7XG4gICAgdGhpcy51dGlscyA9IGluamVjdG9yLmdldChVdGlsc1NlcnZpY2UpO1xuICAgIHRoaXMubWV0YWRhdGFVdGlscyA9IGluamVjdG9yLmdldChNZXRhZGF0YUhlbHBlcik7XG5cbiAgICAvLyBGcmVlemUgdGhlIGdsb2JhbCBvYmplY3QgdG8gcHJldmVudCBtb2RpZmljYXRpb25zXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMuY29udGV4dCk7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmRhdGEpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy51aSk7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmZvcm0pO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5hdXRoKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudXRpbHMpO1xuICB9XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXNkay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3RhYi1zZGsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtsRCxNQUFNLE9BQU8sTUFBTTtJQUNWLE1BQU0sQ0FBQyxHQUFHLENBQWE7SUFDdkIsTUFBTSxD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QUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzt3R0E5RFUsTUFBTTs0R0FBTixNQUFNLGNBRkwsTUFBTTs7NEZBRVAsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YWRhdGFIZWxwZXIgfSBmcm9tICdAdGVjaGV4dGVuc29yL3RhYi1jb3JlLXV0aWxpdHknO1xuaW1wb3J0IHsgVWlTZXJ2aWNlIH0gZnJvbSAnLi91aS91aS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhVdGlsU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuL3VpL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2l0aW9uU2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3cvdHJhbnNpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICcuL2FwcC9hcHAuc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4vYXBwL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9hcHAvcmVwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVsZWFzZVNlcnZpY2UgfSBmcm9tICcuL2FwcC9yZWxlYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYXBwL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi9hcHAvdHJhbnNsYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi9jcnVkL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS9zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi91dGlsL3V0aWwuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhYlNkayB7XG4gIHB1YmxpYyBzdGF0aWMgYXBwOiBBcHBTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGF1dGg6IEF1dGhVdGlsU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyB1aTogVWlTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIGZvcm06IEZvcm1TZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIHRyYW5zaXRpb246IFRyYW5zaXRpb25TZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIG1ldGFkYXRhVXRpbHM6IE1ldGFkYXRhSGVscGVyO1xuICBwdWJsaWMgc3RhdGljIGZpbGU6IEZpbGVTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIHJlcG9ydDogUmVwb3J0U2VydmljZTtcbiAgcHVibGljIHN0YXRpYyByZWxlYXNlOiBSZWxlYXNlU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyBhbmFseXRpY3M6IEFuYWx5dGljc1NlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgdHJhbnNsYXRvcjogVHJhbnNsYXRvclNlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgY3J1ZDogQ3J1ZFNlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgaHR0cDogSHR0cFNlcnZpY2U7XG4gIHB1YmxpYyBzdGF0aWMgc3RvcmU6IFN0b3JlU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyB1dGlsOiBhbnk7XG5cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgU0RLIHdpdGggbmVjZXNzYXJ5IHNlcnZpY2VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGluaXQoaW5qZWN0b3I6IEluamVjdG9yLCBjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICAvLyBFeHBvc2UgdG8gd2luZG93IGZvciBnbG9iYWwgYWNjZXNzIGlmIG5lZWRlZFxuICAgICh3aW5kb3cgYXMgYW55KS5UYWJTZGsgPSBUYWJTZGs7XG5cbiAgICAvLyBJbml0aWFsaXplIHNlcnZpY2VzXG4gICAgdGhpcy5hcHAgPSBpbmplY3Rvci5nZXQoQXBwU2VydmljZSk7XG4gICAgdGhpcy5hdXRoID0gaW5qZWN0b3IuZ2V0KEF1dGhVdGlsU2VydmljZSk7XG4gICAgdGhpcy51aSA9IGluamVjdG9yLmdldChVaVNlcnZpY2UpO1xuICAgIHRoaXMuZm9ybSA9IGluamVjdG9yLmdldChGb3JtU2VydmljZSk7XG4gICAgdGhpcy50cmFuc2l0aW9uID0gaW5qZWN0b3IuZ2V0KFRyYW5zaXRpb25TZXJ2aWNlKTtcbiAgICB0aGlzLm1ldGFkYXRhVXRpbHMgPSBpbmplY3Rvci5nZXQoTWV0YWRhdGFIZWxwZXIpO1xuICAgIHRoaXMuZmlsZSA9IGluamVjdG9yLmdldChGaWxlU2VydmljZSk7XG4gICAgdGhpcy5yZXBvcnQgPSBpbmplY3Rvci5nZXQoUmVwb3J0U2VydmljZSk7XG4gICAgdGhpcy5yZWxlYXNlID0gaW5qZWN0b3IuZ2V0KFJlbGVhc2VTZXJ2aWNlKTtcbiAgICB0aGlzLmFuYWx5dGljcyA9IGluamVjdG9yLmdldChBbmFseXRpY3NTZXJ2aWNlKTtcbiAgICB0aGlzLnRyYW5zbGF0b3IgPSBpbmplY3Rvci5nZXQoVHJhbnNsYXRvclNlcnZpY2UpO1xuICAgIHRoaXMuY3J1ZCA9IGluamVjdG9yLmdldChDcnVkU2VydmljZSk7XG4gICAgdGhpcy5odHRwID0gaW5qZWN0b3IuZ2V0KEh0dHBTZXJ2aWNlKTtcbiAgICB0aGlzLnN0b3JlID0gaW5qZWN0b3IuZ2V0KFN0b3JlU2VydmljZSk7XG5cbiAgICAvLyBJbml0aWFsaXplIHV0aWwgc2VydmljZSB3aXRoIGNvbnRleHRcbiAgICBjb25zdCB1dGlsU2VydmljZSA9IGluamVjdG9yLmdldChVdGlsU2VydmljZSk7XG4gICAgdGhpcy51dGlsID0gdXRpbFNlcnZpY2UuaW5pdChjb250ZXh0KTtcblxuICAgIC8vIEZyZWV6ZSB0aGUgZ2xvYmFsIG9iamVjdCB0byBwcmV2ZW50IG1vZGlmaWNhdGlvbnNcbiAgICBPYmplY3QuZnJlZXplKHRoaXMpO1xuICAgIFxuICAgIE9iamVjdC5mcmVlemUodGhpcy5hcHApO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5hdXRoKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudWkpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5mb3JtKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudHJhbnNpdGlvbik7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmZpbGUpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5yZXBvcnQpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5yZWxlYXNlKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMuYW5hbHl0aWNzKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMudHJhbnNsYXRvcik7XG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLmNydWQpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy5odHRwKTtcbiAgICBPYmplY3QuZnJlZXplKHRoaXMuc3RvcmUpO1xuICAgIE9iamVjdC5mcmVlemUodGhpcy51dGlsKTtcbiAgfVxufSJdfQ==
@@ -1,89 +1,71 @@
1
- import { Injectable } from "@angular/core";
2
- import { TabSdk } from "../tab-sdk.service";
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
- _helperFunctionService = TabSdk.context?.HelperFunctionService;
6
+ _tabFormioService = inject(TabFormioService);
7
+ _templateHelper = inject(TemplateHelper);
6
8
  /**
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
- });
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
- * Updates visibility of multiple form components at once
45
+ * Builds Form.io components for the specified app object ID and type.
47
46
  *
48
- * @example
49
- * sdk.form.setComponentsVisibility(
50
- * screenParameters.rendererInstance.form.components,
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
- 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
- })));
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
- * Finds components by key and returns them in a structured object
58
+ * Parses a template using the provided request payload.
68
59
  *
69
- * @example
70
- * const components = sdk.form.findComponentsByKeys(
71
- * form.components,
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
- 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;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3VpL2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLFdBQVc7SUFDSCxzQkFBc0IsR0FBUSxNQUFNLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDO0lBRXJGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJFO0lBQ0YsaUJBQWlCLENBQ2IsVUFBaUIsRUFDakIsVUFJRTtRQUVGLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25FLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUN0RSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUMzQixzQ0FBc0M7Z0JBQ3RDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUU3RCwyREFBMkQ7Z0JBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7b0JBQUUsT0FBTztnQkFFN0MsZ0NBQWdDO2dCQUNoQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSTtvQkFBRSxPQUFPO2dCQUVoRSwyQ0FBMkM7Z0JBQzNDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILHVCQUF1QixDQUNuQixVQUFpQixFQUNqQixhQUFzQztRQUV0QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2IsSUFBSSxFQUFFLEdBQUc7WUFDVCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDbEIsU0FBUyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUMsQ0FBQztTQUNKLENBQUMsQ0FBQyxDQUNOLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxvQkFBb0IsQ0FDaEIsVUFBaUIsRUFDakIsSUFBYyxFQUNkLE9BRUM7UUFFRCxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzdELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFFRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUNyRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDdEMsQ0FBQztRQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVULE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7d0dBOUdRLFdBQVc7NEdBQVgsV0FBVyxjQUZSLE1BQU07OzRGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUYWJTZGsgfSBmcm9tIFwiLi4vdGFiLXNkay5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hlbHBlckZ1bmN0aW9uU2VydmljZTogYW55ID0gVGFiU2RrLmNvbnRleHQ/LkhlbHBlckZ1bmN0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICogUHJvY2Vzc2VzIGZvcm0gY29tcG9uZW50cyB3aXRoIGluZGl2aWR1YWwgYWN0aW9ucyBpbiBhIHNpbmdsZSBwYXNzXG4gICAgKiBcbiAgICAqIEBleGFtcGxlXG4gICAgKiAvLyBQcm9jZXNzIG11bHRpcGxlIGNvbXBvbmVudHMgd2l0aCBkaWZmZXJlbnQgYWN0aW9ucyBpbiBvbmUgcGFzc1xuICAgICogc2RrLmZvcm0ucHJvY2Vzc0NvbXBvbmVudHMoXG4gICAgKiAgIHNjcmVlblBhcmFtZXRlcnMucmVuZGVyZXJJbnN0YW5jZS5mb3JtLmNvbXBvbmVudHMsXG4gICAgKiAgIFtcbiAgICAqICAgICB7IFxuICAgICogICAgICAga2V5czogJ2RvY3VtZW50RGV0YWlscycsIC8vIFNpbmdsZSBrZXlcbiAgICAqICAgICAgIGFjdGlvbjogKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LmhpZGRlbiA9IHRydWUsXG4gICAgKiAgICAgICB0eXBlOiAnY29sdW1ucycgLy8gT3B0aW9uYWwgdHlwZSBmaWx0ZXJcbiAgICAqICAgICB9LFxuICAgICogICAgIHsgXG4gICAgKiAgICAgICBrZXlzOiAnZG9jdW1lbnRQcmV2aWV3LGRvY3VtZW50Q29tbWVudHMnLCAvLyBNdWx0aXBsZSBrZXlzIGFzIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmdcbiAgICAqICAgICAgIGFjdGlvbjogKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LmhpZGRlbiA9IGZhbHNlIFxuICAgICogICAgIH1cbiAgICAqICAgXVxuICAgICogKTtcbiAgICAqL1xuICAgIHByb2Nlc3NDb21wb25lbnRzKFxuICAgICAgICBjb21wb25lbnRzOiBhbnlbXSxcbiAgICAgICAgcHJvY2Vzc29yczogQXJyYXk8e1xuICAgICAgICAgICAga2V5czogc3RyaW5nLCAvLyBSZXF1aXJlZDogQ29tcG9uZW50IGtleShzKSB0byBtYXRjaCAoY29tbWEtc2VwYXJhdGVkIGZvciBtdWx0aXBsZSlcbiAgICAgICAgICAgIHR5cGU/OiBzdHJpbmcsIC8vIE9wdGlvbmFsOiBDb21wb25lbnQgdHlwZSB0byBtYXRjaFxuICAgICAgICAgICAgYWN0aW9uOiAoY29tcG9uZW50OiBhbnkpID0+IHZvaWQgLy8gQWN0aW9uIHRvIHBlcmZvcm0gb24gbWF0Y2hlZCBjb21wb25lbnRcbiAgICAgICAgfT5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb21wb25lbnRzIHx8ICFBcnJheS5pc0FycmF5KGNvbXBvbmVudHMpIHx8ICFwcm9jZXNzb3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2hlbHBlckZ1bmN0aW9uU2VydmljZT8uZWFjaENvbXBvbmVudChjb21wb25lbnRzLCAoY29tcG9uZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHByb2Nlc3NvcnMuZm9yRWFjaChwcm9jZXNzb3IgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFNwbGl0IHRoZSBrZXlzIHN0cmluZyBpbnRvIGFuIGFycmF5XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5TGlzdCA9IHByb2Nlc3Nvci5rZXlzLnNwbGl0KCcsJykubWFwKGsgPT4gay50cmltKCkpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgY29tcG9uZW50IGtleSBpcyBpbiB0aGUgbGlzdCBvZiBrZXlzIHRvIHByb2Nlc3NcbiAgICAgICAgICAgICAgICBpZiAoIWtleUxpc3QuaW5jbHVkZXMoY29tcG9uZW50LmtleSkpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIC8vIENoZWNrIHR5cGUgbWF0Y2ggaWYgc3BlY2lmaWVkXG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3Nvci50eXBlICYmIGNvbXBvbmVudC50eXBlICE9PSBwcm9jZXNzb3IudHlwZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgLy8gQWxsIGNyaXRlcmlhIG1hdGNoZWQsIGV4ZWN1dGUgdGhlIGFjdGlvblxuICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5hY3Rpb24oY29tcG9uZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHZpc2liaWxpdHkgb2YgbXVsdGlwbGUgZm9ybSBjb21wb25lbnRzIGF0IG9uY2VcbiAgICAgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHNkay5mb3JtLnNldENvbXBvbmVudHNWaXNpYmlsaXR5KFxuICAgICAqICAgc2NyZWVuUGFyYW1ldGVycy5yZW5kZXJlckluc3RhbmNlLmZvcm0uY29tcG9uZW50cywgXG4gICAgICogICB7XG4gICAgICogICAgICdkb2N1bWVudERldGFpbHMnOiBmYWxzZSxcbiAgICAgKiAgICAgJ2RvY3VtZW50Q29tbWVudHMnOiB0cnVlXG4gICAgICogICB9XG4gICAgICogKTtcbiAgICAgKi9cbiAgICBzZXRDb21wb25lbnRzVmlzaWJpbGl0eShcbiAgICAgICAgY29tcG9uZW50czogYW55W10sXG4gICAgICAgIHZpc2liaWxpdHlNYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+XG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2aXNpYmlsaXR5TWFwKTtcblxuICAgICAgICB0aGlzLnByb2Nlc3NDb21wb25lbnRzKGNvbXBvbmVudHMsXG4gICAgICAgICAgICBrZXlzLm1hcChrZXkgPT4gKHtcbiAgICAgICAgICAgICAgICBrZXlzOiBrZXksXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5oaWRkZW4gPSB2aXNpYmlsaXR5TWFwW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgY29tcG9uZW50cyBieSBrZXkgYW5kIHJldHVybnMgdGhlbSBpbiBhIHN0cnVjdHVyZWQgb2JqZWN0XG4gICAgICogXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBjb21wb25lbnRzID0gc2RrLmZvcm0uZmluZENvbXBvbmVudHNCeUtleXMoXG4gICAgICogICBmb3JtLmNvbXBvbmVudHMsXG4gICAgICogICBbJ2RvY3VtZW50RGV0YWlscycsICdkb2N1bWVudFByZXZpZXcnLCAnZG9jdW1lbnRDb21tZW50cyddXG4gICAgICogKTtcbiAgICAgKi9cbiAgICBmaW5kQ29tcG9uZW50c0J5S2V5cyhcbiAgICAgICAgY29tcG9uZW50czogYW55W10sXG4gICAgICAgIGtleXM6IHN0cmluZ1tdLFxuICAgICAgICBvcHRpb25zPzoge1xuICAgICAgICAgICAgdHlwZT86IHN0cmluZ1xuICAgICAgICB9XG4gICAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gICAgICAgIGlmICghY29tcG9uZW50cyB8fCAhQXJyYXkuaXNBcnJheShjb21wb25lbnRzKSB8fCAha2V5cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlIHRoZSBleGlzdGluZyBlYWNoQ29tcG9uZW50IGhlbHBlciBcbiAgICAgICAgdGhpcy5faGVscGVyRnVuY3Rpb25TZXJ2aWNlLmVhY2hDb21wb25lbnQoY29tcG9uZW50cywgKGNvbXBvbmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnM/LnR5cGUgfHwgY29tcG9uZW50LnR5cGUgPT09IG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtjb21wb25lbnQua2V5XSA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwga2V5cyk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59Il19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFiLXNkay9zcmMvbGliL3VpL2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQXFGLGdCQUFnQixFQUFFLGNBQWMsRUFBd0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzTCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt0QyxNQUFNLE9BQU8sV0FBVztJQUNILGlCQUFpQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUxRTs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWdCLEVBQUUsTUFBd0I7UUFDdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUNyRCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0IsRUFBRSxjQUFtQjtRQUNyRCx1REFBdUQ7UUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUNqRSxDQUFDO1FBRUYsdUNBQXVDO1FBQ3ZDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsY0FBcUM7UUFDdEQsaUVBQWlFO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUN4RCxDQUFDO1FBRUYsZ0NBQWdDO1FBQ2hDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsV0FBbUIsRUFBRSxJQUE0QjtRQUN6RSwwREFBMEQ7UUFDMUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQ2xFLENBQUM7UUFFRix1Q0FBdUM7UUFDdkMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBb0MsRUFBRSxxQkFBcUIsR0FBRyxLQUFLO1FBQ25GLHdEQUF3RDtRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUMsQ0FDckYsQ0FBQztRQUVGLHVDQUF1QztRQUN2QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO3dHQW5GUSxXQUFXOzRHQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnVpbGRGb3JtQ29tcG9uZW50VHlwZSwgQ29tbW9uQXBpUmVzcG9uc2UsIEdldFNjcmVlbkNvbmZpZywgUHJvY2Vzc1JlcXVlc3RQYXlsb2FkLCBUYWJGb3JtaW9TZXJ2aWNlLCBUZW1wbGF0ZUhlbHBlciwgVGVtcGxhdGVQYXJzZVBheWxvYWQgfSBmcm9tICdAdGVjaGV4dGVuc29yL3RhYi1jb3JlLXV0aWxpdHknO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiRm9ybWlvU2VydmljZTogVGFiRm9ybWlvU2VydmljZSA9IGluamVjdChUYWJGb3JtaW9TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90ZW1wbGF0ZUhlbHBlcjogVGVtcGxhdGVIZWxwZXIgPSBpbmplY3QoVGVtcGxhdGVIZWxwZXIpO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGEgc2NyZWVuIGJ5IGl0cyBJRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzY3JlZW5JZCBUaGUgSUQgb2YgdGhlIHNjcmVlbiB0byByZXRyaWV2ZS5cbiAgICAgKiBAcGFyYW0gY29uZmlnIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTY3JlZW4oc2NyZWVuSWQ6IHN0cmluZywgY29uZmlnPzogR2V0U2NyZWVuQ29uZmlnKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGFiRm9ybWlvU2VydmljZS5nZXRTY3JlZW4oc2NyZWVuSWQsIGNvbmZpZylcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgZGF0YSBmb3IgYSBzY3JlZW4gYnkgaXRzIElELlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjcmVlbklkIFRoZSBJRCBvZiB0aGUgc2NyZWVuIHRvIHJldHJpZXZlIHRoZSBkYXRhIGZvci5cbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBheWxvYWQgVGhlIHJlcXVlc3QgcGF5bG9hZCB0byBzZW5kIHRvIHRoZSBzZXJ2ZXIuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0U2NyZWVuRGF0YShzY3JlZW5JZDogc3RyaW5nLCByZXF1ZXN0UGF5bG9hZDogYW55KTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgYW5kIGdldCB0aGUgcmVzcG9uc2UuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLl90YWJGb3JtaW9TZXJ2aWNlLmdldFNjcmVlbkRhdGEoc2NyZWVuSWQsIHJlcXVlc3RQYXlsb2FkKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGEgcmVxdWVzdCB1c2luZyB0aGUgcHJvdmlkZWQgcmVxdWVzdCBwYXlsb2FkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXlsb2FkIFRoZSBwYXlsb2FkIHRvIGJlIHByb2Nlc3NlZC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBhc3luYyBwcm9jZXNzUmVxdWVzdChyZXF1ZXN0UGF5bG9hZDogUHJvY2Vzc1JlcXVlc3RQYXlsb2FkKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IHBheWxvYWQgdG8gdGhlIHNlcnZlciBhbmQgYXdhaXQgdGhlIHJlc3BvbnNlLlxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGFiRm9ybWlvU2VydmljZS5wcm9jZXNzUmVxdWVzdChyZXF1ZXN0UGF5bG9hZClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIHNlcnZlcidzIHJlc3BvbnNlLlxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQnVpbGRzIEZvcm0uaW8gY29tcG9uZW50cyBmb3IgdGhlIHNwZWNpZmllZCBhcHAgb2JqZWN0IElEIGFuZCB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE9iamVjdElkIFRoZSBJRCBvZiB0aGUgYXBwIG9iamVjdCB0byBidWlsZCB0aGUgY29tcG9uZW50cyBmb3IuXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgY29tcG9uZW50cyB0byBidWlsZC5cbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBhc3luYyBidWlsZEZvcm1JT0NvbXBvbmVudHMoYXBwT2JqZWN0SWQ6IHN0cmluZywgdHlwZTogQnVpbGRGb3JtQ29tcG9uZW50VHlwZSk6IFByb21pc2U8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIGJ1aWxkIHRoZSBjb21wb25lbnRzLlxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGFiRm9ybWlvU2VydmljZS5idWlsZEZvcm1JT0NvbXBvbmVudHMoYXBwT2JqZWN0SWQsIHR5cGUpXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgYSB0ZW1wbGF0ZSB1c2luZyB0aGUgcHJvdmlkZWQgcmVxdWVzdCBwYXlsb2FkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHRlbXBsYXRlIHRvIGJlIHBhcnNlZC5cbiAgICAgKiBAcGFyYW0gb25GYWlsZWRQYXJzZU9uU2VydmVyIElmIHRoZSBwYXJzaW5nIHNob3VsZCBiZSBkb25lIG9uIHRoZSBzZXJ2ZXIuXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICovXG4gICAgYXN5bmMgcGFyc2VUZW1wbGF0ZShyZXF1ZXN0UGF5bG9hZDogVGVtcGxhdGVQYXJzZVBheWxvYWQsIG9uRmFpbGVkUGFyc2VPblNlcnZlciA9IGZhbHNlKTogUHJvbWlzZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdG8gcGFyc2UgdGhlIHRlbXBsYXRlLlxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGVIZWxwZXIudGVtcGxhdGVQYXJzZVVuaXZlcnNhbChyZXF1ZXN0UGF5bG9hZCwgb25GYWlsZWRQYXJzZU9uU2VydmVyKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxufSJdfQ==