kwikid-forms 0.4.1 → 0.5.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 (104) hide show
  1. package/bundles/kwikid-forms.umd.js +1868 -3663
  2. package/bundles/kwikid-forms.umd.js.map +1 -1
  3. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.component.js +403 -0
  4. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.definitions.js +6 -0
  5. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.helper.js +29 -0
  6. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.module.js +39 -0
  7. package/esm2015/lib/builder/builder-form-editor/builder.form-editor.constants.js +189 -0
  8. package/esm2015/lib/builder/builder-form-editor/builder.form-editor.service.js +43 -0
  9. package/esm2015/lib/builder/builder-form-list/builder-forms-list.component.js +99 -0
  10. package/esm2015/lib/builder/builder-form-list/builder-forms-list.module.js +40 -0
  11. package/esm2015/lib/builder/builder.component.js +111 -258
  12. package/esm2015/lib/builder/builder.helper.js +78 -0
  13. package/esm2015/lib/builder/builder.module.js +15 -72
  14. package/esm2015/lib/kwikid-forms.module.js +4 -16
  15. package/esm2015/lib/renderer/config-converter/config-converter.constants.js +74 -0
  16. package/esm2015/lib/renderer/config-converter/config-converter.helper.js +49 -0
  17. package/esm2015/lib/renderer/config-converter/config-converter.js +514 -0
  18. package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +2 -1
  19. package/esm2015/lib/renderer/form-view/form-view.component.js +4 -33
  20. package/esm2015/lib/renderer/form-view/form-view.module.js +7 -6
  21. package/esm2015/lib/renderer/forms-list/forms-list.component.js +3 -5
  22. package/esm2015/lib/renderer/forms-list/forms-list.module.js +7 -5
  23. package/esm2015/lib/renderer/renderer.component.js +4 -6
  24. package/esm2015/public_api.js +1 -3
  25. package/fesm2015/kwikid-forms.js +1452 -5045
  26. package/fesm2015/kwikid-forms.js.map +1 -1
  27. package/lib/builder/builder-form-editor/builder-form-editor.component.d.ts +108 -0
  28. package/lib/builder/builder-form-editor/builder-form-editor.definitions.d.ts +5 -0
  29. package/lib/builder/builder-form-editor/builder-form-editor.helper.d.ts +3 -0
  30. package/lib/builder/builder-form-editor/builder-form-editor.module.d.ts +11 -0
  31. package/lib/{builder2 → builder}/builder-form-editor/builder.form-editor.constants.d.ts +76 -0
  32. package/lib/builder/builder-form-editor/builder.form-editor.service.d.ts +7 -0
  33. package/lib/{builder2 → builder}/builder-form-list/builder-forms-list.component.d.ts +2 -1
  34. package/lib/{builder2 → builder}/builder-form-list/builder-forms-list.module.d.ts +1 -1
  35. package/lib/builder/builder.component.d.ts +15 -34
  36. package/lib/builder/builder.helper.d.ts +1 -0
  37. package/lib/builder/builder.module.d.ts +7 -21
  38. package/lib/kwikid-forms.module.d.ts +2 -3
  39. package/lib/renderer/config-converter/config-converter.constants.d.ts +73 -0
  40. package/lib/renderer/config-converter/config-converter.d.ts +5 -0
  41. package/lib/renderer/config-converter/config-converter.helper.d.ts +7 -0
  42. package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +1 -0
  43. package/lib/renderer/form-view/form-view.component.d.ts +0 -4
  44. package/lib/renderer/form-view/form-view.module.d.ts +7 -9
  45. package/lib/renderer/forms-list/forms-list.module.d.ts +5 -6
  46. package/package.json +3 -3
  47. package/public_api.d.ts +0 -2
  48. package/esm2015/lib/builder/element-config-editor/editors/basic/checkbox-config.editor.component.js +0 -72
  49. package/esm2015/lib/builder/element-config-editor/editors/basic/date-config.editor.component.js +0 -72
  50. package/esm2015/lib/builder/element-config-editor/editors/basic/number-config.editor.component.js +0 -72
  51. package/esm2015/lib/builder/element-config-editor/editors/basic/otp-config.editor.component.js +0 -130
  52. package/esm2015/lib/builder/element-config-editor/editors/basic/phone-config.editor.component.js +0 -132
  53. package/esm2015/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.js +0 -396
  54. package/esm2015/lib/builder/element-config-editor/editors/basic/select-config.editor.component.js +0 -302
  55. package/esm2015/lib/builder/element-config-editor/editors/basic/text-config.editor.component.js +0 -132
  56. package/esm2015/lib/builder/element-config-editor/editors/basic-element-config.editor.component.js +0 -698
  57. package/esm2015/lib/builder/element-config-editor/editors/document/aadhaar-number-config.editor.component.js +0 -130
  58. package/esm2015/lib/builder/element-config-editor/editors/document/pan-number-config.editor.component.js +0 -135
  59. package/esm2015/lib/builder/element-config-editor/editors/document-element-config.editor.component.js +0 -610
  60. package/esm2015/lib/builder/element-config-editor/editors/other/html-config.editor.component.js +0 -120
  61. package/esm2015/lib/builder/element-config-editor/editors/other/title-config.editor.component.js +0 -121
  62. package/esm2015/lib/builder/element-config-editor/editors/other-element-config.editor.component.js +0 -214
  63. package/esm2015/lib/builder/element-config-editor/element-config-editor.component.js +0 -97
  64. package/esm2015/lib/builder/shared/elements.js +0 -90
  65. package/esm2015/lib/builder/shared/helpers.js +0 -6
  66. package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.component.js +0 -268
  67. package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.module.js +0 -38
  68. package/esm2015/lib/builder2/builder-form-editor/builder-form-editor.pipe.js +0 -19
  69. package/esm2015/lib/builder2/builder-form-editor/builder.form-editor.constants.js +0 -178
  70. package/esm2015/lib/builder2/builder-form-list/builder-forms-list.component.js +0 -85
  71. package/esm2015/lib/builder2/builder-form-list/builder-forms-list.module.js +0 -37
  72. package/esm2015/lib/builder2/builder2.component.js +0 -169
  73. package/esm2015/lib/builder2/builder2.module.js +0 -46
  74. package/esm2015/lib/renderer/config-converter.helper.js +0 -629
  75. package/esm2015/lib/renderer/form-view/pipes/safe-html.pipe.js +0 -25
  76. package/esm2015/lib/renderer/form-view/pipes/safe-url.pipe.js +0 -25
  77. package/esm2015/lib/renderer/forms-list/pipes/safe-html.pipe.js +0 -25
  78. package/lib/builder/element-config-editor/editors/basic/checkbox-config.editor.component.d.ts +0 -16
  79. package/lib/builder/element-config-editor/editors/basic/date-config.editor.component.d.ts +0 -16
  80. package/lib/builder/element-config-editor/editors/basic/number-config.editor.component.d.ts +0 -16
  81. package/lib/builder/element-config-editor/editors/basic/otp-config.editor.component.d.ts +0 -16
  82. package/lib/builder/element-config-editor/editors/basic/phone-config.editor.component.d.ts +0 -16
  83. package/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.d.ts +0 -25
  84. package/lib/builder/element-config-editor/editors/basic/select-config.editor.component.d.ts +0 -24
  85. package/lib/builder/element-config-editor/editors/basic/text-config.editor.component.d.ts +0 -16
  86. package/lib/builder/element-config-editor/editors/basic-element-config.editor.component.d.ts +0 -20
  87. package/lib/builder/element-config-editor/editors/document/aadhaar-number-config.editor.component.d.ts +0 -16
  88. package/lib/builder/element-config-editor/editors/document/pan-number-config.editor.component.d.ts +0 -16
  89. package/lib/builder/element-config-editor/editors/document-element-config.editor.component.d.ts +0 -20
  90. package/lib/builder/element-config-editor/editors/other/html-config.editor.component.d.ts +0 -16
  91. package/lib/builder/element-config-editor/editors/other/title-config.editor.component.d.ts +0 -16
  92. package/lib/builder/element-config-editor/editors/other-element-config.editor.component.d.ts +0 -20
  93. package/lib/builder/element-config-editor/element-config-editor.component.d.ts +0 -20
  94. package/lib/builder/shared/elements.d.ts +0 -34
  95. package/lib/builder/shared/helpers.d.ts +0 -1
  96. package/lib/builder2/builder-form-editor/builder-form-editor.component.d.ts +0 -48
  97. package/lib/builder2/builder-form-editor/builder-form-editor.module.d.ts +0 -12
  98. package/lib/builder2/builder-form-editor/builder-form-editor.pipe.d.ts +0 -7
  99. package/lib/builder2/builder2.component.d.ts +0 -37
  100. package/lib/builder2/builder2.module.d.ts +0 -13
  101. package/lib/renderer/config-converter.helper.d.ts +0 -9
  102. package/lib/renderer/form-view/pipes/safe-html.pipe.d.ts +0 -15
  103. package/lib/renderer/form-view/pipes/safe-url.pipe.d.ts +0 -15
  104. package/lib/renderer/forms-list/pipes/safe-html.pipe.d.ts +0 -15
@@ -1,130 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, EventEmitter, Input, Output } from "@angular/core";
3
- import { FormControl, FormGroup } from "@angular/forms";
4
- import { logMethod } from "kwikid-toolkit";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "kwikui";
7
- import * as i2 from "@angular/forms";
8
- export class DocumentAadhaarNumberConfigEditor {
9
- constructor() {
10
- this.saveDocumentClickCounter = 0;
11
- this.elementConfig = {
12
- properties: {
13
- mask: "####-####-####"
14
- }
15
- };
16
- this.updateElement = new EventEmitter();
17
- this.documentAadhaarNumberFormGroup = undefined;
18
- }
19
- ngOnInit() {
20
- this.createDocumentAadhaarNumberFormGroup();
21
- }
22
- ngOnChanges(changes) {
23
- var _a;
24
- const verifyChange = (key) => {
25
- return changes.hasOwnProperty(key) && !changes[key].firstChange;
26
- };
27
- if (verifyChange("elementConfig")) {
28
- this.elementConfig = changes.elementConfig.currentValue;
29
- (_a = this.documentAadhaarNumberFormGroup) === null || _a === void 0 ? void 0 : _a.reset(this.elementConfig);
30
- }
31
- if (verifyChange("saveDocumentClickCounter")) {
32
- if (changes.saveDocumentClickCounter.previousValue !==
33
- changes.saveDocumentClickCounter.currentValue) {
34
- this.saveDocumentClickCounter = changes.saveDocumentClickCounter.currentValue;
35
- this.handleOnSave();
36
- }
37
- }
38
- }
39
- createDocumentAadhaarNumberFormGroup() {
40
- this.documentAadhaarNumberFormGroup = new FormGroup({
41
- properties: new FormGroup({
42
- mask: new FormControl(this.elementConfig.properties.mask, {
43
- updateOn: "change"
44
- })
45
- })
46
- });
47
- this.documentAadhaarNumberFormGroup.updateValueAndValidity();
48
- }
49
- handleOnSave() {
50
- let documentElementConfig = this.documentAadhaarNumberFormGroup.getRawValue();
51
- this.updateElement.emit({
52
- documentElementConfig: documentElementConfig
53
- });
54
- }
55
- }
56
- /** @nocollapse */ DocumentAadhaarNumberConfigEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentAadhaarNumberConfigEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- /** @nocollapse */ DocumentAadhaarNumberConfigEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DocumentAadhaarNumberConfigEditor, selector: "document-aadhaar-number-config-editor", inputs: { saveDocumentClickCounter: "saveDocumentClickCounter", elementConfig: "elementConfig" }, outputs: { updateElement: "updateElement" }, usesOnChanges: true, ngImport: i0, template: `
58
- <form [formGroup]="documentAadhaarNumberFormGroup">
59
- <div formGroupName="properties">
60
- <div class="form-group-title">Properties</div>
61
- <div class="form-group">
62
- <kwikui-input
63
- [label]="'Mask'"
64
- [id]="'basic-phone-config-mask'"
65
- [type]="'text'"
66
- [formControlName]="'mask'"
67
- [formControl]="
68
- documentAadhaarNumberFormGroup.controls.properties['controls'].mask
69
- "
70
- [disabled]="false"
71
- [placeholder]="'Please enter your mask'"
72
- [focus]="false"
73
- [invalid]="false"
74
- [case]="'default'"
75
- size="m"
76
- ></kwikui-input>
77
- </div>
78
- </div>
79
- </form>
80
- `, isInline: true, styles: [""], components: [{ type: i1.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "size", "icon", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
81
- __decorate([
82
- logMethod
83
- ], DocumentAadhaarNumberConfigEditor.prototype, "ngOnInit", null);
84
- __decorate([
85
- logMethod
86
- ], DocumentAadhaarNumberConfigEditor.prototype, "ngOnChanges", null);
87
- __decorate([
88
- logMethod
89
- ], DocumentAadhaarNumberConfigEditor.prototype, "createDocumentAadhaarNumberFormGroup", null);
90
- __decorate([
91
- logMethod
92
- ], DocumentAadhaarNumberConfigEditor.prototype, "handleOnSave", null);
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentAadhaarNumberConfigEditor, decorators: [{
94
- type: Component,
95
- args: [{
96
- selector: "document-aadhaar-number-config-editor",
97
- template: `
98
- <form [formGroup]="documentAadhaarNumberFormGroup">
99
- <div formGroupName="properties">
100
- <div class="form-group-title">Properties</div>
101
- <div class="form-group">
102
- <kwikui-input
103
- [label]="'Mask'"
104
- [id]="'basic-phone-config-mask'"
105
- [type]="'text'"
106
- [formControlName]="'mask'"
107
- [formControl]="
108
- documentAadhaarNumberFormGroup.controls.properties['controls'].mask
109
- "
110
- [disabled]="false"
111
- [placeholder]="'Please enter your mask'"
112
- [focus]="false"
113
- [invalid]="false"
114
- [case]="'default'"
115
- size="m"
116
- ></kwikui-input>
117
- </div>
118
- </div>
119
- </form>
120
- `,
121
- styles: [``]
122
- }]
123
- }], ctorParameters: function () { return []; }, propDecorators: { saveDocumentClickCounter: [{
124
- type: Input
125
- }], elementConfig: [{
126
- type: Input
127
- }], updateElement: [{
128
- type: Output
129
- }], ngOnInit: [], ngOnChanges: [], createDocumentAadhaarNumberFormGroup: [], handleOnSave: [] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWFkaGFhci1udW1iZXItY29uZmlnLmVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2VsZW1lbnQtY29uZmlnLWVkaXRvci9lZGl0b3JzL2RvY3VtZW50L2FhZGhhYXItbnVtYmVyLWNvbmZpZy5lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBOEIzQyxNQUFNLE9BQU8saUNBQWlDO0lBZ0I1QztRQWRBLDZCQUF3QixHQUFXLENBQUMsQ0FBQztRQUdyQyxrQkFBYSxHQUFRO1lBQ25CLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsZ0JBQWdCO2FBQ3ZCO1NBQ0YsQ0FBQztRQUdGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4QyxtQ0FBOEIsR0FBYyxTQUFTLENBQUM7SUFFdkMsQ0FBQztJQUdoQixRQUFRO1FBQ04sSUFBSSxDQUFDLG9DQUFvQyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUdELFdBQVcsQ0FBQyxPQUFzQjs7UUFDaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNuQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ2xFLENBQUMsQ0FBQztRQUVGLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDeEQsTUFBQSxJQUFJLENBQUMsOEJBQThCLDBDQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFO1lBQzVDLElBQ0UsT0FBTyxDQUFDLHdCQUF3QixDQUFDLGFBQWE7Z0JBQzlDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLEVBQzdDO2dCQUNBLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDO2dCQUU5RSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7SUFHRCxvQ0FBb0M7UUFDbEMsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksU0FBUyxDQUFDO1lBQ2xELFVBQVUsRUFBRSxJQUFJLFNBQVMsQ0FBQztnQkFDeEIsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtvQkFDeEQsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDhCQUE4QixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUdELFlBQVk7UUFDVixJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU5RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixxQkFBcUIsRUFBRSxxQkFBcUI7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0pBaEVVLGlDQUFpQztzSUFBakMsaUNBQWlDLGlQQTFCbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO0FBc0JEO0lBREMsU0FBUztpRUFHVDtBQUdEO0lBREMsU0FBUztvRUFvQlQ7QUFHRDtJQURDLFNBQVM7NkZBVVQ7QUFHRDtJQURDLFNBQVM7cUVBT1Q7NEZBaEVVLGlDQUFpQztrQkE1QjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVDQUF1QztvQkFDakQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7aUJBQ2I7MEVBR0Msd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFRTixhQUFhO3NCQURaLE1BQU07Z0JBUVAsUUFBUSxNQUtSLFdBQVcsTUFzQlgsb0NBQW9DLE1BWXBDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBsb2dNZXRob2QgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImRvY3VtZW50LWFhZGhhYXItbnVtYmVyLWNvbmZpZy1lZGl0b3JcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRvY3VtZW50QWFkaGFhck51bWJlckZvcm1Hcm91cFwiPlxuICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwicHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC10aXRsZVwiPlByb3BlcnRpZXM8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8a3dpa3VpLWlucHV0XG4gICAgICAgICAgICBbbGFiZWxdPVwiJ01hc2snXCJcbiAgICAgICAgICAgIFtpZF09XCInYmFzaWMtcGhvbmUtY29uZmlnLW1hc2snXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidtYXNrJ1wiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiXG4gICAgICAgICAgICBkb2N1bWVudEFhZGhhYXJOdW1iZXJGb3JtR3JvdXAuY29udHJvbHMucHJvcGVydGllc1snY29udHJvbHMnXS5tYXNrXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUGxlYXNlIGVudGVyIHlvdXIgbWFzaydcIlxuICAgICAgICAgICAgW2ZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtjYXNlXT1cIidkZWZhdWx0J1wiXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgPjwva3dpa3VpLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgYCxcbiAgc3R5bGVzOiBbYGBdXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50QWFkaGFhck51bWJlckNvbmZpZ0VkaXRvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHNhdmVEb2N1bWVudENsaWNrQ291bnRlcjogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBlbGVtZW50Q29uZmlnOiBhbnkgPSB7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgbWFzazogXCIjIyMjLSMjIyMtIyMjI1wiXG4gICAgfVxuICB9O1xuXG4gIEBPdXRwdXQoKVxuICB1cGRhdGVFbGVtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZG9jdW1lbnRBYWRoYWFyTnVtYmVyRm9ybUdyb3VwOiBGb3JtR3JvdXAgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIEBsb2dNZXRob2RcbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVEb2N1bWVudEFhZGhhYXJOdW1iZXJGb3JtR3JvdXAoKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAhY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlO1xuICAgIH07XG5cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwiZWxlbWVudENvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5lbGVtZW50Q29uZmlnID0gY2hhbmdlcy5lbGVtZW50Q29uZmlnLmN1cnJlbnRWYWx1ZTtcbiAgICAgIHRoaXMuZG9jdW1lbnRBYWRoYWFyTnVtYmVyRm9ybUdyb3VwPy5yZXNldCh0aGlzLmVsZW1lbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwic2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyXCIpKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGNoYW5nZXMuc2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyLnByZXZpb3VzVmFsdWUgIT09XG4gICAgICAgIGNoYW5nZXMuc2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyLmN1cnJlbnRWYWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyID0gY2hhbmdlcy5zYXZlRG9jdW1lbnRDbGlja0NvdW50ZXIuY3VycmVudFZhbHVlO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlT25TYXZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBjcmVhdGVEb2N1bWVudEFhZGhhYXJOdW1iZXJGb3JtR3JvdXAoKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudEFhZGhhYXJOdW1iZXJGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIHByb3BlcnRpZXM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBtYXNrOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbGVtZW50Q29uZmlnLnByb3BlcnRpZXMubWFzaywge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pO1xuICAgIHRoaXMuZG9jdW1lbnRBYWRoYWFyTnVtYmVyRm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlT25TYXZlKCkge1xuICAgIGxldCBkb2N1bWVudEVsZW1lbnRDb25maWcgPSB0aGlzLmRvY3VtZW50QWFkaGFhck51bWJlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuXG4gICAgdGhpcy51cGRhdGVFbGVtZW50LmVtaXQoe1xuICAgICAgZG9jdW1lbnRFbGVtZW50Q29uZmlnOiBkb2N1bWVudEVsZW1lbnRDb25maWdcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,135 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, EventEmitter, Input, Output } from "@angular/core";
3
- import { FormControl, FormGroup } from "@angular/forms";
4
- import { logMethod } from "kwikid-toolkit";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "kwikui";
7
- import * as i2 from "@angular/forms";
8
- export class DocumentPanNumberConfigEditor {
9
- constructor() {
10
- this.saveDocumentClickCounter = 0;
11
- this.elementConfig = {
12
- properties: {
13
- case: "upper"
14
- }
15
- };
16
- this.updateElement = new EventEmitter();
17
- this.documentPanNumberFormGroup = undefined;
18
- }
19
- ngOnInit() {
20
- this.createDocumentPanNumberFormGroup();
21
- }
22
- ngOnChanges(changes) {
23
- var _a;
24
- const verifyChange = (key) => {
25
- return changes.hasOwnProperty(key) && !changes[key].firstChange;
26
- };
27
- if (verifyChange("elementConfig")) {
28
- this.elementConfig = changes.elementConfig.currentValue;
29
- (_a = this.documentPanNumberFormGroup) === null || _a === void 0 ? void 0 : _a.reset(this.elementConfig);
30
- }
31
- if (verifyChange("saveDocumentClickCounter")) {
32
- if (changes.saveDocumentClickCounter.previousValue !==
33
- changes.saveDocumentClickCounter.currentValue) {
34
- this.saveDocumentClickCounter =
35
- changes.saveDocumentClickCounter.currentValue;
36
- this.handleOnSave();
37
- }
38
- }
39
- }
40
- createDocumentPanNumberFormGroup() {
41
- this.documentPanNumberFormGroup = new FormGroup({
42
- properties: new FormGroup({
43
- case: new FormControl(this.elementConfig.properties.case, {
44
- updateOn: "change"
45
- })
46
- })
47
- });
48
- this.documentPanNumberFormGroup.updateValueAndValidity();
49
- }
50
- handleOnSave() {
51
- let documentElementConfig = this.documentPanNumberFormGroup.getRawValue();
52
- this.updateElement.emit({
53
- documentElementConfig: documentElementConfig
54
- });
55
- }
56
- }
57
- /** @nocollapse */ DocumentPanNumberConfigEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentPanNumberConfigEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
- /** @nocollapse */ DocumentPanNumberConfigEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DocumentPanNumberConfigEditor, selector: "document-pan-number-config-editor", inputs: { saveDocumentClickCounter: "saveDocumentClickCounter", elementConfig: "elementConfig" }, outputs: { updateElement: "updateElement" }, usesOnChanges: true, ngImport: i0, template: `
59
- <form [formGroup]="documentPanNumberFormGroup">
60
- <div formGroupName="properties">
61
- <fieldset>
62
- <legend class="form-group-title">Miscellaneous</legend>
63
- <div class="form-group">
64
- <kwikui-input-select
65
- [options]="['default', 'upper', 'lower']"
66
- [label]="'case'"
67
- [id]="'document-pan-number-config-case'"
68
- size="m"
69
- [formControlName]="'case'"
70
- [formControl]="
71
- documentPanNumberFormGroup['controls'].properties['controls']
72
- .case
73
- "
74
- [focus]="false"
75
- [disabled]="false"
76
- [invalid]="false"
77
- [placeholder]="'Please select either true or false'"
78
- ></kwikui-input-select>
79
- </div>
80
- </fieldset>
81
- </div>
82
- </form>
83
- `, isInline: true, styles: [""], components: [{ type: i1.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "size", "validators", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
84
- __decorate([
85
- logMethod
86
- ], DocumentPanNumberConfigEditor.prototype, "ngOnInit", null);
87
- __decorate([
88
- logMethod
89
- ], DocumentPanNumberConfigEditor.prototype, "ngOnChanges", null);
90
- __decorate([
91
- logMethod
92
- ], DocumentPanNumberConfigEditor.prototype, "createDocumentPanNumberFormGroup", null);
93
- __decorate([
94
- logMethod
95
- ], DocumentPanNumberConfigEditor.prototype, "handleOnSave", null);
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentPanNumberConfigEditor, decorators: [{
97
- type: Component,
98
- args: [{
99
- selector: "document-pan-number-config-editor",
100
- template: `
101
- <form [formGroup]="documentPanNumberFormGroup">
102
- <div formGroupName="properties">
103
- <fieldset>
104
- <legend class="form-group-title">Miscellaneous</legend>
105
- <div class="form-group">
106
- <kwikui-input-select
107
- [options]="['default', 'upper', 'lower']"
108
- [label]="'case'"
109
- [id]="'document-pan-number-config-case'"
110
- size="m"
111
- [formControlName]="'case'"
112
- [formControl]="
113
- documentPanNumberFormGroup['controls'].properties['controls']
114
- .case
115
- "
116
- [focus]="false"
117
- [disabled]="false"
118
- [invalid]="false"
119
- [placeholder]="'Please select either true or false'"
120
- ></kwikui-input-select>
121
- </div>
122
- </fieldset>
123
- </div>
124
- </form>
125
- `,
126
- styles: [``]
127
- }]
128
- }], ctorParameters: function () { return []; }, propDecorators: { saveDocumentClickCounter: [{
129
- type: Input
130
- }], elementConfig: [{
131
- type: Input
132
- }], updateElement: [{
133
- type: Output
134
- }], ngOnInit: [], ngOnChanges: [], createDocumentPanNumberFormGroup: [], handleOnSave: [] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuLW51bWJlci1jb25maWcuZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL2J1aWxkZXIvZWxlbWVudC1jb25maWctZWRpdG9yL2VkaXRvcnMvZG9jdW1lbnQvcGFuLW51bWJlci1jb25maWcuZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWdDM0MsTUFBTSxPQUFPLDZCQUE2QjtJQWdCeEM7UUFkQSw2QkFBd0IsR0FBVyxDQUFDLENBQUM7UUFHckMsa0JBQWEsR0FBUTtZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGLENBQUM7UUFHRixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsK0JBQTBCLEdBQWMsU0FBUyxDQUFDO0lBRW5DLENBQUM7SUFHaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFHRCxXQUFXLENBQUMsT0FBc0I7O1FBQ2hDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ3hELE1BQUEsSUFBSSxDQUFDLDBCQUEwQiwwQ0FBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxZQUFZLENBQUMsMEJBQTBCLENBQUMsRUFBRTtZQUM1QyxJQUNFLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhO2dCQUM5QyxPQUFPLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUM3QztnQkFDQSxJQUFJLENBQUMsd0JBQXdCO29CQUMzQixPQUFPLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDO2dCQUVoRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7SUFHRCxnQ0FBZ0M7UUFDOUIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksU0FBUyxDQUFDO1lBQzlDLFVBQVUsRUFBRSxJQUFJLFNBQVMsQ0FBQztnQkFDeEIsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtvQkFDeEQsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDBCQUEwQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUdELFlBQVk7UUFDVixJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUxRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixxQkFBcUIsRUFBRSxxQkFBcUI7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OElBakVVLDZCQUE2QjtrSUFBN0IsNkJBQTZCLDZPQTVCOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5QlQ7QUFzQkQ7SUFEQyxTQUFTOzZEQUdUO0FBR0Q7SUFEQyxTQUFTO2dFQXFCVDtBQUdEO0lBREMsU0FBUztxRkFVVDtBQUdEO0lBREMsU0FBUztpRUFPVDs0RkFqRVUsNkJBQTZCO2tCQTlCekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5QlQ7b0JBQ0QsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNiOzBFQUdDLHdCQUF3QjtzQkFEdkIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBUU4sYUFBYTtzQkFEWixNQUFNO2dCQVFQLFFBQVEsTUFLUixXQUFXLE1BdUJYLGdDQUFnQyxNQVloQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgbG9nTWV0aG9kIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJkb2N1bWVudC1wYW4tbnVtYmVyLWNvbmZpZy1lZGl0b3JcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRvY3VtZW50UGFuTnVtYmVyRm9ybUdyb3VwXCI+XG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJwcm9wZXJ0aWVzXCI+XG4gICAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgICA8bGVnZW5kIGNsYXNzPVwiZm9ybS1ncm91cC10aXRsZVwiPk1pc2NlbGxhbmVvdXM8L2xlZ2VuZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGt3aWt1aS1pbnB1dC1zZWxlY3RcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiWydkZWZhdWx0JywgJ3VwcGVyJywgJ2xvd2VyJ11cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2Nhc2UnXCJcbiAgICAgICAgICAgICAgW2lkXT1cIidkb2N1bWVudC1wYW4tbnVtYmVyLWNvbmZpZy1jYXNlJ1wiXG4gICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInY2FzZSdcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRQYW5OdW1iZXJGb3JtR3JvdXBbJ2NvbnRyb2xzJ10ucHJvcGVydGllc1snY29udHJvbHMnXVxuICAgICAgICAgICAgICAgICAgLmNhc2VcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2ZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBzZWxlY3QgZWl0aGVyIHRydWUgb3IgZmFsc2UnXCJcbiAgICAgICAgICAgID48L2t3aWt1aS1pbnB1dC1zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIGAsXG4gIHN0eWxlczogW2BgXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFBhbk51bWJlckNvbmZpZ0VkaXRvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHNhdmVEb2N1bWVudENsaWNrQ291bnRlcjogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBlbGVtZW50Q29uZmlnOiBhbnkgPSB7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgY2FzZTogXCJ1cHBlclwiXG4gICAgfVxuICB9O1xuXG4gIEBPdXRwdXQoKVxuICB1cGRhdGVFbGVtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZG9jdW1lbnRQYW5OdW1iZXJGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgQGxvZ01ldGhvZFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZURvY3VtZW50UGFuTnVtYmVyRm9ybUdyb3VwKCk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCB2ZXJpZnlDaGFuZ2UgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBjaGFuZ2VzLmhhc093blByb3BlcnR5KGtleSkgJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZTtcbiAgICB9O1xuXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImVsZW1lbnRDb25maWdcIikpIHtcbiAgICAgIHRoaXMuZWxlbWVudENvbmZpZyA9IGNoYW5nZXMuZWxlbWVudENvbmZpZy5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLmRvY3VtZW50UGFuTnVtYmVyRm9ybUdyb3VwPy5yZXNldCh0aGlzLmVsZW1lbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwic2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyXCIpKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGNoYW5nZXMuc2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyLnByZXZpb3VzVmFsdWUgIT09XG4gICAgICAgIGNoYW5nZXMuc2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyLmN1cnJlbnRWYWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2F2ZURvY3VtZW50Q2xpY2tDb3VudGVyID1cbiAgICAgICAgICBjaGFuZ2VzLnNhdmVEb2N1bWVudENsaWNrQ291bnRlci5jdXJyZW50VmFsdWU7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVPblNhdmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGNyZWF0ZURvY3VtZW50UGFuTnVtYmVyRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRQYW5OdW1iZXJGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIHByb3BlcnRpZXM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBjYXNlOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbGVtZW50Q29uZmlnLnByb3BlcnRpZXMuY2FzZSwge1xuICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pO1xuICAgIHRoaXMuZG9jdW1lbnRQYW5OdW1iZXJGb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPblNhdmUoKSB7XG4gICAgbGV0IGRvY3VtZW50RWxlbWVudENvbmZpZyA9IHRoaXMuZG9jdW1lbnRQYW5OdW1iZXJGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcblxuICAgIHRoaXMudXBkYXRlRWxlbWVudC5lbWl0KHtcbiAgICAgIGRvY3VtZW50RWxlbWVudENvbmZpZzogZG9jdW1lbnRFbGVtZW50Q29uZmlnXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==