@stemy/ngx-dynamic-form 19.1.14 → 19.2.1

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 (98) hide show
  1. package/fesm2022/stemy-ngx-dynamic-form-ui-nebular.mjs +4 -4
  2. package/fesm2022/stemy-ngx-dynamic-form-ui-nebular.mjs.map +1 -1
  3. package/fesm2022/stemy-ngx-dynamic-form.mjs +858 -1661
  4. package/fesm2022/stemy-ngx-dynamic-form.mjs.map +1 -1
  5. package/ngx-dynamic-form/common-types.d.ts +109 -26
  6. package/ngx-dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +21 -0
  7. package/ngx-dynamic-form/components/dynamic-form-array/dynamic-form-array.component.d.ts +9 -0
  8. package/ngx-dynamic-form/components/dynamic-form-chips/dynamic-form-chips.component.d.ts +7 -0
  9. package/ngx-dynamic-form/components/dynamic-form-field/dynamic-form-field.component.d.ts +6 -0
  10. package/ngx-dynamic-form/components/dynamic-form-fieldset/dynamic-form-fieldset.component.d.ts +7 -0
  11. package/ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component.d.ts +6 -0
  12. package/ngx-dynamic-form/components/dynamic-form-upload/dynamic-form-upload.component.d.ts +7 -0
  13. package/ngx-dynamic-form/directives/async-submit.directive.d.ts +17 -23
  14. package/ngx-dynamic-form/ngx-dynamic-form.imports.d.ts +5 -9
  15. package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +13 -11
  16. package/ngx-dynamic-form/services/dynamic-form-builder.service.d.ts +27 -0
  17. package/ngx-dynamic-form/services/dynamic-form.service.d.ts +28 -46
  18. package/ngx-dynamic-form/utils/customizer.d.ts +5 -12
  19. package/ngx-dynamic-form/utils/decorators.d.ts +10 -0
  20. package/ngx-dynamic-form/utils/misc.d.ts +2 -4
  21. package/ngx-dynamic-form/utils/validation.d.ts +13 -0
  22. package/package.json +21 -16
  23. package/public_api.d.ts +13 -18
  24. package/ui-nebular/index.d.ts +1 -5
  25. package/common-types.d.ts +0 -37
  26. package/components/base/dynamic-base-form-array.component.d.ts +0 -38
  27. package/components/base/dynamic-base-form-control-container.component.d.ts +0 -39
  28. package/components/base/dynamic-base-form-control.component.d.ts +0 -26
  29. package/components/base/dynamic-base-form-group.component.d.ts +0 -25
  30. package/components/base/dynamic-base-form.component.d.ts +0 -46
  31. package/components/base/dynamic-base-select.component.d.ts +0 -15
  32. package/directives/async-submit.directive.d.ts +0 -31
  33. package/esm2020/ngx-dynamic-form/common-types.mjs +0 -2
  34. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-array.component.mjs +0 -104
  35. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.mjs +0 -127
  36. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control.component.mjs +0 -57
  37. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-group.component.mjs +0 -75
  38. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form.component.mjs +0 -182
  39. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-select.component.mjs +0 -66
  40. package/esm2020/ngx-dynamic-form/directives/async-submit.directive.mjs +0 -116
  41. package/esm2020/ngx-dynamic-form/ngx-dynamic-form.imports.mjs +0 -26
  42. package/esm2020/ngx-dynamic-form/ngx-dynamic-form.module.mjs +0 -116
  43. package/esm2020/ngx-dynamic-form/services/dynamic-form.service.mjs +0 -615
  44. package/esm2020/ngx-dynamic-form/utils/creators.mjs +0 -67
  45. package/esm2020/ngx-dynamic-form/utils/customizer.mjs +0 -28
  46. package/esm2020/ngx-dynamic-form/utils/dynamic-editor.model.mjs +0 -14
  47. package/esm2020/ngx-dynamic-form/utils/dynamic-form-array.model.mjs +0 -128
  48. package/esm2020/ngx-dynamic-form/utils/dynamic-form-group.model.mjs +0 -26
  49. package/esm2020/ngx-dynamic-form/utils/dynamic-select.model.mjs +0 -59
  50. package/esm2020/ngx-dynamic-form/utils/form-select-subject.mjs +0 -26
  51. package/esm2020/ngx-dynamic-form/utils/form-subject.mjs +0 -29
  52. package/esm2020/ngx-dynamic-form/utils/misc.mjs +0 -47
  53. package/esm2020/ngx-dynamic-form/utils/validation-errors.mjs +0 -22
  54. package/esm2020/ngx-dynamic-form/utils/validators.mjs +0 -56
  55. package/esm2020/public_api.mjs +0 -21
  56. package/esm2020/stemy-ngx-dynamic-form.mjs +0 -5
  57. package/fesm2015/stemy-ngx-dynamic-form.mjs +0 -1927
  58. package/fesm2015/stemy-ngx-dynamic-form.mjs.map +0 -1
  59. package/fesm2020/stemy-ngx-dynamic-form.mjs +0 -1893
  60. package/fesm2020/stemy-ngx-dynamic-form.mjs.map +0 -1
  61. package/fesm2022/stemy-ngx-dynamic-form-src-ngx-dynamic-form-nebular.mjs +0 -50
  62. package/fesm2022/stemy-ngx-dynamic-form-src-ngx-dynamic-form-nebular.mjs.map +0 -1
  63. package/imports.d.ts +0 -12
  64. package/ngx-dynamic-form/components/base/dynamic-base-form-array.component.d.ts +0 -38
  65. package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +0 -39
  66. package/ngx-dynamic-form/components/base/dynamic-base-form-control.component.d.ts +0 -26
  67. package/ngx-dynamic-form/components/base/dynamic-base-form-group.component.d.ts +0 -25
  68. package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +0 -46
  69. package/ngx-dynamic-form/components/base/dynamic-base-select.component.d.ts +0 -15
  70. package/ngx-dynamic-form/services/dynamic-form-layout.service.d.ts +0 -7
  71. package/ngx-dynamic-form/utils/creators.d.ts +0 -18
  72. package/ngx-dynamic-form/utils/dynamic-editor.model.d.ts +0 -11
  73. package/ngx-dynamic-form/utils/dynamic-form-array.model.d.ts +0 -69
  74. package/ngx-dynamic-form/utils/dynamic-form-group.model.d.ts +0 -14
  75. package/ngx-dynamic-form/utils/dynamic-select.model.d.ts +0 -39
  76. package/ngx-dynamic-form/utils/form-select-subject.d.ts +0 -6
  77. package/ngx-dynamic-form/utils/form-subject.d.ts +0 -10
  78. package/ngx-dynamic-form/utils/validators.d.ts +0 -8
  79. package/ngx-dynamic-form.imports.d.ts +0 -12
  80. package/ngx-dynamic-form.module.d.ts +0 -21
  81. package/services/dynamic-form.service.d.ts +0 -61
  82. package/src/ngx-dynamic-form/nebular/imports.d.ts +0 -4
  83. package/src/ngx-dynamic-form/nebular/index.d.ts +0 -5
  84. package/src/ngx-dynamic-form/nebular/ngx-dynamic-form.nebular.module.d.ts +0 -9
  85. package/src/ngx-dynamic-form/nebular/public_api.d.ts +0 -1
  86. package/stemy-ngx-dynamic-form.d.ts +0 -5
  87. package/ui-nebular/public_api.d.ts +0 -1
  88. package/utils/creators.d.ts +0 -18
  89. package/utils/customizer.d.ts +0 -14
  90. package/utils/dynamic-editor.model.d.ts +0 -11
  91. package/utils/dynamic-form-array.model.d.ts +0 -69
  92. package/utils/dynamic-form-group.model.d.ts +0 -14
  93. package/utils/dynamic-select.model.d.ts +0 -39
  94. package/utils/form-select-subject.d.ts +0 -6
  95. package/utils/form-subject.d.ts +0 -10
  96. package/utils/misc.d.ts +0 -11
  97. package/utils/validation-errors.d.ts +0 -11
  98. package/utils/validators.d.ts +0 -8
@@ -1,116 +0,0 @@
1
- import { Injector, NgModule } from "@angular/core";
2
- import { CommonModule } from "@angular/common";
3
- import { FormsModule, NG_VALIDATORS, ReactiveFormsModule } from "@angular/forms";
4
- import { DYNAMIC_FORM_CONTROL_MAP_FN, DYNAMIC_VALIDATORS, DynamicFormService as BaseDynamicFormService } from "@ng-dynamic-forms/core";
5
- import { NgxUtilsModule } from "@stemy/ngx-utils";
6
- import { validateItemsMaxLength, validateItemsMaxValue, validateItemsMinLength, validateItemsMinValue, validateJSON, validatePhone, validateRequiredTranslation } from "./utils/validators";
7
- import { DynamicFormService } from "./services/dynamic-form.service";
8
- import { components, defaultFormControlProvider, directives, pipes } from "./ngx-dynamic-form.imports";
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./components/base/dynamic-base-form.component";
11
- import * as i2 from "./components/base/dynamic-base-form-array.component";
12
- import * as i3 from "./components/base/dynamic-base-form-control.component";
13
- import * as i4 from "./components/base/dynamic-base-form-control-container.component";
14
- import * as i5 from "./components/base/dynamic-base-form-group.component";
15
- import * as i6 from "./components/base/dynamic-base-select.component";
16
- import * as i7 from "./directives/async-submit.directive";
17
- export class NgxDynamicFormModule {
18
- static forRoot(config) {
19
- return {
20
- ngModule: NgxDynamicFormModule,
21
- providers: [
22
- DynamicFormService,
23
- {
24
- provide: BaseDynamicFormService,
25
- useExisting: DynamicFormService
26
- },
27
- {
28
- provide: DYNAMIC_FORM_CONTROL_MAP_FN,
29
- useFactory: (config?.controlProvider || defaultFormControlProvider),
30
- deps: [Injector]
31
- }
32
- ]
33
- };
34
- }
35
- }
36
- NgxDynamicFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxDynamicFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
37
- NgxDynamicFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxDynamicFormModule, declarations: [i1.DynamicBaseFormComponent, i2.DynamicBaseFormArrayComponent, i3.DynamicBaseFormControlComponent, i4.DynamicBaseFormControlContainerComponent, i5.DynamicBaseFormGroupComponent, i6.DynamicBaseSelectComponent, i7.AsyncSubmitDirective], imports: [CommonModule,
38
- FormsModule,
39
- ReactiveFormsModule,
40
- NgxUtilsModule], exports: [i1.DynamicBaseFormComponent, i2.DynamicBaseFormArrayComponent, i3.DynamicBaseFormControlComponent, i4.DynamicBaseFormControlContainerComponent, i5.DynamicBaseFormGroupComponent, i6.DynamicBaseSelectComponent, i7.AsyncSubmitDirective, FormsModule,
41
- ReactiveFormsModule,
42
- NgxUtilsModule] });
43
- NgxDynamicFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxDynamicFormModule, providers: [
44
- ...pipes,
45
- { provide: NG_VALIDATORS, useValue: validateJSON, multi: true },
46
- { provide: NG_VALIDATORS, useValue: validateRequiredTranslation, multi: true },
47
- { provide: NG_VALIDATORS, useValue: validateItemsMinLength, multi: true },
48
- { provide: NG_VALIDATORS, useValue: validateItemsMaxLength, multi: true },
49
- { provide: NG_VALIDATORS, useValue: validateItemsMinValue, multi: true },
50
- { provide: NG_VALIDATORS, useValue: validateItemsMaxValue, multi: true },
51
- {
52
- provide: DYNAMIC_VALIDATORS,
53
- useValue: new Map([
54
- ["json", validateJSON],
55
- ["requiredTranslation", validateRequiredTranslation],
56
- ["phone", validatePhone],
57
- ["itemsMinLength", validateItemsMinLength],
58
- ["itemsMaxLength", validateItemsMaxLength],
59
- ["itemsMinValue", validateItemsMinValue],
60
- ["itemsMaxValue", validateItemsMaxValue],
61
- ])
62
- }
63
- ], imports: [[
64
- CommonModule,
65
- FormsModule,
66
- ReactiveFormsModule,
67
- NgxUtilsModule
68
- ], FormsModule,
69
- ReactiveFormsModule,
70
- NgxUtilsModule] });
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxDynamicFormModule, decorators: [{
72
- type: NgModule,
73
- args: [{
74
- declarations: [
75
- ...components,
76
- ...directives,
77
- ...pipes
78
- ],
79
- imports: [
80
- CommonModule,
81
- FormsModule,
82
- ReactiveFormsModule,
83
- NgxUtilsModule
84
- ],
85
- exports: [
86
- ...components,
87
- ...directives,
88
- ...pipes,
89
- FormsModule,
90
- ReactiveFormsModule,
91
- NgxUtilsModule
92
- ],
93
- providers: [
94
- ...pipes,
95
- { provide: NG_VALIDATORS, useValue: validateJSON, multi: true },
96
- { provide: NG_VALIDATORS, useValue: validateRequiredTranslation, multi: true },
97
- { provide: NG_VALIDATORS, useValue: validateItemsMinLength, multi: true },
98
- { provide: NG_VALIDATORS, useValue: validateItemsMaxLength, multi: true },
99
- { provide: NG_VALIDATORS, useValue: validateItemsMinValue, multi: true },
100
- { provide: NG_VALIDATORS, useValue: validateItemsMaxValue, multi: true },
101
- {
102
- provide: DYNAMIC_VALIDATORS,
103
- useValue: new Map([
104
- ["json", validateJSON],
105
- ["requiredTranslation", validateRequiredTranslation],
106
- ["phone", validatePhone],
107
- ["itemsMinLength", validateItemsMinLength],
108
- ["itemsMaxLength", validateItemsMaxLength],
109
- ["itemsMinValue", validateItemsMinValue],
110
- ["itemsMaxValue", validateItemsMaxValue],
111
- ])
112
- }
113
- ]
114
- }]
115
- }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWR5bmFtaWMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9uZ3gtZHluYW1pYy1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUF1QixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUNILDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsa0JBQWtCLElBQUksc0JBQXNCLEVBRy9DLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGFBQWEsRUFDYiwyQkFBMkIsRUFDOUIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsVUFBVSxFQUFFLDBCQUEwQixFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBNkNyRyxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBaUM7UUFDNUMsT0FBTztZQUNILFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNQLGtCQUFrQjtnQkFDbEI7b0JBQ0ksT0FBTyxFQUFFLHNCQUFzQjtvQkFDL0IsV0FBVyxFQUFFLGtCQUFrQjtpQkFDbEM7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtv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TyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQzt3QkFDdEU7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsUUFBUSxFQUFFLElBQUksR0FBRyxDQUF1QztnQ0FDcEQsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO2dDQUN0QixDQUFDLHFCQUFxQixFQUFFLDJCQUEyQixDQUFDO2dDQUNwRCxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7Z0NBQ3hCLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUM7Z0NBQzFDLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUM7Z0NBQzFDLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO2dDQUN4QyxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQzs2QkFDM0MsQ0FBQzt5QkFDTDtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBOR19WQUxJREFUT1JTLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtcclxuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTixcclxuICAgIERZTkFNSUNfVkFMSURBVE9SUyxcclxuICAgIER5bmFtaWNGb3JtU2VydmljZSBhcyBCYXNlRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgVmFsaWRhdG9yLFxyXG4gICAgVmFsaWRhdG9yRmFjdG9yeVxyXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XHJcbmltcG9ydCB7Tmd4VXRpbHNNb2R1bGV9IGZyb20gXCJAc3RlbXkvbmd4LXV0aWxzXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgdmFsaWRhdGVJdGVtc01heExlbmd0aCxcclxuICAgIHZhbGlkYXRlSXRlbXNNYXhWYWx1ZSxcclxuICAgIHZhbGlkYXRlSXRlbXNNaW5MZW5ndGgsXHJcbiAgICB2YWxpZGF0ZUl0ZW1zTWluVmFsdWUsXHJcbiAgICB2YWxpZGF0ZUpTT04sXHJcbiAgICB2YWxpZGF0ZVBob25lLFxyXG4gICAgdmFsaWRhdGVSZXF1aXJlZFRyYW5zbGF0aW9uXHJcbn0gZnJvbSBcIi4vdXRpbHMvdmFsaWRhdG9yc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtjb21wb25lbnRzLCBkZWZhdWx0Rm9ybUNvbnRyb2xQcm92aWRlciwgZGlyZWN0aXZlcywgcGlwZXN9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0uaW1wb3J0c1wiO1xyXG5pbXBvcnQge0lEeW5hbWljRm9ybU1vZHVsZUNvbmZpZ30gZnJvbSBcIi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgLi4uY29tcG9uZW50cyxcclxuICAgICAgICAuLi5kaXJlY3RpdmVzLFxyXG4gICAgICAgIC4uLnBpcGVzXHJcbiAgICBdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE5neFV0aWxzTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIC4uLmNvbXBvbmVudHMsXHJcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcclxuICAgICAgICAuLi5waXBlcyxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE5neFV0aWxzTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgLi4ucGlwZXMsXHJcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZVZhbHVlOiB2YWxpZGF0ZUpTT04sIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlVmFsdWU6IHZhbGlkYXRlUmVxdWlyZWRUcmFuc2xhdGlvbiwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01pbkxlbmd0aCwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01heExlbmd0aCwgbXVsdGk6IHRydWV9LFxyXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VWYWx1ZTogdmFsaWRhdGVJdGVtc01pblZhbHVlLCBtdWx0aTogdHJ1ZX0sXHJcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZVZhbHVlOiB2YWxpZGF0ZUl0ZW1zTWF4VmFsdWUsIG11bHRpOiB0cnVlfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IERZTkFNSUNfVkFMSURBVE9SUyxcclxuICAgICAgICAgICAgdXNlVmFsdWU6IG5ldyBNYXA8c3RyaW5nLCBWYWxpZGF0b3IgfCBWYWxpZGF0b3JGYWN0b3J5PihbXHJcbiAgICAgICAgICAgICAgICBbXCJqc29uXCIsIHZhbGlkYXRlSlNPTl0sXHJcbiAgICAgICAgICAgICAgICBbXCJyZXF1aXJlZFRyYW5zbGF0aW9uXCIsIHZhbGlkYXRlUmVxdWlyZWRUcmFuc2xhdGlvbl0sXHJcbiAgICAgICAgICAgICAgICBbXCJwaG9uZVwiLCB2YWxpZGF0ZVBob25lXSxcclxuICAgICAgICAgICAgICAgIFtcIml0ZW1zTWluTGVuZ3RoXCIsIHZhbGlkYXRlSXRlbXNNaW5MZW5ndGhdLFxyXG4gICAgICAgICAgICAgICAgW1wiaXRlbXNNYXhMZW5ndGhcIiwgdmFsaWRhdGVJdGVtc01heExlbmd0aF0sXHJcbiAgICAgICAgICAgICAgICBbXCJpdGVtc01pblZhbHVlXCIsIHZhbGlkYXRlSXRlbXNNaW5WYWx1ZV0sXHJcbiAgICAgICAgICAgICAgICBbXCJpdGVtc01heFZhbHVlXCIsIHZhbGlkYXRlSXRlbXNNYXhWYWx1ZV0sXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RHluYW1pY0Zvcm1Nb2R1bGUge1xyXG5cclxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IElEeW5hbWljRm9ybU1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4RHluYW1pY0Zvcm1Nb2R1bGU+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZ01vZHVsZTogTmd4RHluYW1pY0Zvcm1Nb2R1bGUsXHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEJhc2VEeW5hbWljRm9ybVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNGb3JtU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk4sXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKGNvbmZpZz8uY29udHJvbFByb3ZpZGVyIHx8IGRlZmF1bHRGb3JtQ29udHJvbFByb3ZpZGVyKSxcclxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19