@eqproject/eqp-dynamic-module 0.0.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 (125) hide show
  1. package/README.md +24 -0
  2. package/bundles/eqproject-eqp-dynamic-module.umd.js +3117 -0
  3. package/bundles/eqproject-eqp-dynamic-module.umd.js.map +1 -0
  4. package/bundles/eqproject-eqp-dynamic-module.umd.min.js +17 -0
  5. package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +1 -0
  6. package/eqproject-eqp-dynamic-module.d.ts +5 -0
  7. package/eqproject-eqp-dynamic-module.metadata.json +1 -0
  8. package/esm2015/eqproject-eqp-dynamic-module.js +6 -0
  9. package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +65 -0
  10. package/esm2015/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +534 -0
  11. package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +486 -0
  12. package/esm2015/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +127 -0
  13. package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +181 -0
  14. package/esm2015/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +56 -0
  15. package/esm2015/lib/components/private/field-templates/date-field-template/date-field-template.component.js +71 -0
  16. package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +54 -0
  17. package/esm2015/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +118 -0
  18. package/esm2015/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +63 -0
  19. package/esm2015/lib/components/private/field-templates/text-field-template/text-field-template.component.js +51 -0
  20. package/esm2015/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +51 -0
  21. package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +126 -0
  22. package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +210 -0
  23. package/esm2015/lib/eqp-dynamic-module.module.js +67 -0
  24. package/esm2015/lib/interfaces/iBaseFieldComponent.interface.js +1 -0
  25. package/esm2015/lib/interfaces/iRootObject.interface.js +1 -0
  26. package/esm2015/lib/models/baseField.model.js +36 -0
  27. package/esm2015/lib/models/baseObj.model.js +9 -0
  28. package/esm2015/lib/models/context.model.js +8 -0
  29. package/esm2015/lib/models/entity.model.js +7 -0
  30. package/esm2015/lib/models/fields/attachmentField.model.js +22 -0
  31. package/esm2015/lib/models/fields/booleanField.model.js +12 -0
  32. package/esm2015/lib/models/fields/dateField.model.js +11 -0
  33. package/esm2015/lib/models/fields/imageField.model.js +4 -0
  34. package/esm2015/lib/models/fields/listValueField.model.js +12 -0
  35. package/esm2015/lib/models/fields/lookupField.model.js +5 -0
  36. package/esm2015/lib/models/fields/numericField.model.js +5 -0
  37. package/esm2015/lib/models/fields/testareaField.model.js +4 -0
  38. package/esm2015/lib/models/fields/textField.model.js +5 -0
  39. package/esm2015/lib/models/form.model.js +24 -0
  40. package/esm2015/lib/models/record.model.js +3 -0
  41. package/esm2015/lib/modules/material.module.js +108 -0
  42. package/esm2015/lib/services/custom-form-validators.service.js +19 -0
  43. package/esm2015/lib/services/eqp-dynamic-module-dialog.service.js +104 -0
  44. package/esm2015/lib/services/utilityHelper.services.js +220 -0
  45. package/esm2015/public-api.js +37 -0
  46. package/esm5/eqproject-eqp-dynamic-module.js +6 -0
  47. package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +66 -0
  48. package/esm5/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +546 -0
  49. package/esm5/lib/components/private/add-form-field/add-form-field.component.js +497 -0
  50. package/esm5/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +128 -0
  51. package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +184 -0
  52. package/esm5/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +57 -0
  53. package/esm5/lib/components/private/field-templates/date-field-template/date-field-template.component.js +72 -0
  54. package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +55 -0
  55. package/esm5/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +121 -0
  56. package/esm5/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +64 -0
  57. package/esm5/lib/components/private/field-templates/text-field-template/text-field-template.component.js +52 -0
  58. package/esm5/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +52 -0
  59. package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +129 -0
  60. package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +216 -0
  61. package/esm5/lib/eqp-dynamic-module.module.js +70 -0
  62. package/esm5/lib/interfaces/iBaseFieldComponent.interface.js +1 -0
  63. package/esm5/lib/interfaces/iRootObject.interface.js +1 -0
  64. package/esm5/lib/models/baseField.model.js +43 -0
  65. package/esm5/lib/models/baseObj.model.js +13 -0
  66. package/esm5/lib/models/context.model.js +14 -0
  67. package/esm5/lib/models/entity.model.js +14 -0
  68. package/esm5/lib/models/fields/attachmentField.model.js +29 -0
  69. package/esm5/lib/models/fields/booleanField.model.js +19 -0
  70. package/esm5/lib/models/fields/dateField.model.js +18 -0
  71. package/esm5/lib/models/fields/imageField.model.js +11 -0
  72. package/esm5/lib/models/fields/listValueField.model.js +19 -0
  73. package/esm5/lib/models/fields/lookupField.model.js +12 -0
  74. package/esm5/lib/models/fields/numericField.model.js +12 -0
  75. package/esm5/lib/models/fields/testareaField.model.js +11 -0
  76. package/esm5/lib/models/fields/textField.model.js +12 -0
  77. package/esm5/lib/models/form.model.js +39 -0
  78. package/esm5/lib/models/record.model.js +7 -0
  79. package/esm5/lib/modules/material.module.js +111 -0
  80. package/esm5/lib/services/custom-form-validators.service.js +23 -0
  81. package/esm5/lib/services/eqp-dynamic-module-dialog.service.js +113 -0
  82. package/esm5/lib/services/utilityHelper.services.js +225 -0
  83. package/esm5/public-api.js +37 -0
  84. package/fesm2015/eqproject-eqp-dynamic-module.js +2757 -0
  85. package/fesm2015/eqproject-eqp-dynamic-module.js.map +1 -0
  86. package/fesm5/eqproject-eqp-dynamic-module.js +2902 -0
  87. package/fesm5/eqproject-eqp-dynamic-module.js.map +1 -0
  88. package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +21 -0
  89. package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +186 -0
  90. package/lib/components/private/add-form-field/add-form-field.component.d.ts +160 -0
  91. package/lib/components/private/dynamic-module-field/dynamic-module-field.component.d.ts +55 -0
  92. package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +84 -0
  93. package/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.d.ts +21 -0
  94. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +27 -0
  95. package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +16 -0
  96. package/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.d.ts +59 -0
  97. package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +26 -0
  98. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +20 -0
  99. package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +20 -0
  100. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +50 -0
  101. package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +59 -0
  102. package/lib/eqp-dynamic-module.module.d.ts +2 -0
  103. package/lib/interfaces/iBaseFieldComponent.interface.d.ts +8 -0
  104. package/lib/interfaces/iRootObject.interface.d.ts +10 -0
  105. package/lib/models/baseField.model.d.ts +56 -0
  106. package/lib/models/baseObj.model.d.ts +9 -0
  107. package/lib/models/context.model.d.ts +9 -0
  108. package/lib/models/entity.model.d.ts +10 -0
  109. package/lib/models/fields/attachmentField.model.d.ts +17 -0
  110. package/lib/models/fields/booleanField.model.d.ts +11 -0
  111. package/lib/models/fields/dateField.model.d.ts +12 -0
  112. package/lib/models/fields/imageField.model.d.ts +10 -0
  113. package/lib/models/fields/listValueField.model.d.ts +21 -0
  114. package/lib/models/fields/lookupField.model.d.ts +10 -0
  115. package/lib/models/fields/numericField.model.d.ts +9 -0
  116. package/lib/models/fields/testareaField.model.d.ts +7 -0
  117. package/lib/models/fields/textField.model.d.ts +7 -0
  118. package/lib/models/form.model.d.ts +45 -0
  119. package/lib/models/record.model.d.ts +5 -0
  120. package/lib/modules/material.module.d.ts +2 -0
  121. package/lib/services/custom-form-validators.service.d.ts +5 -0
  122. package/lib/services/eqp-dynamic-module-dialog.service.d.ts +28 -0
  123. package/lib/services/utilityHelper.services.d.ts +48 -0
  124. package/package.json +39 -0
  125. package/public-api.d.ts +35 -0
@@ -0,0 +1,66 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input } from '@angular/core';
3
+ import { Context } from '../../../models/context.model';
4
+ import { Form, FormTypeEnum } from '../../../models/form.model';
5
+ import { UtilityHelperService } from '../../../services/utilityHelper.services';
6
+ var EqpDynamicModuleComponent = /** @class */ (function () {
7
+ function EqpDynamicModuleComponent() {
8
+ this.context = new Context();
9
+ this.form = new Form();
10
+ this.showButtons = true;
11
+ this.viewMode = FormTypeEnum.LIST;
12
+ this.FormTypeEnum = FormTypeEnum;
13
+ }
14
+ EqpDynamicModuleComponent.prototype.ngOnInit = function () {
15
+ UtilityHelperService.SetContext(this.context);
16
+ };
17
+ EqpDynamicModuleComponent.prototype.onAddViewEditRecord = function (event) {
18
+ if (event != null) {
19
+ this.selectedRecord = JSON.parse(JSON.stringify(event.record));
20
+ this.onlyView = event.onlyView;
21
+ }
22
+ else {
23
+ this.selectedRecord = null;
24
+ this.onlyView = false;
25
+ }
26
+ this.viewMode = FormTypeEnum.SCALAR;
27
+ };
28
+ EqpDynamicModuleComponent.prototype.onSaveForm = function (event) {
29
+ //TODO: Salvare il record!
30
+ if (event != null) {
31
+ if (event.ID && this.values.find(function (v) { return v.ID == event.ID; })) {
32
+ this.values[this.values.findIndex(function (v) { return v.ID == event.ID; })] = event;
33
+ }
34
+ else {
35
+ this.values.push(event);
36
+ }
37
+ }
38
+ this.viewMode = FormTypeEnum.LIST;
39
+ console.log(event);
40
+ };
41
+ __decorate([
42
+ Input()
43
+ ], EqpDynamicModuleComponent.prototype, "context", void 0);
44
+ __decorate([
45
+ Input()
46
+ ], EqpDynamicModuleComponent.prototype, "form", void 0);
47
+ __decorate([
48
+ Input()
49
+ ], EqpDynamicModuleComponent.prototype, "values", void 0);
50
+ __decorate([
51
+ Input()
52
+ ], EqpDynamicModuleComponent.prototype, "showButtons", void 0);
53
+ __decorate([
54
+ Input()
55
+ ], EqpDynamicModuleComponent.prototype, "viewMode", void 0);
56
+ EqpDynamicModuleComponent = __decorate([
57
+ Component({
58
+ selector: 'eqp-dynamic-module',
59
+ template: "<add-form-record *ngIf=\"viewMode == FormTypeEnum.SCALAR\" [form]=\"form\" [record]=\"selectedRecord\"\r\n [showButtons]=\"showButtons\" [onlyView]=\"onlyView\" (saveRecordEvent)=\"onSaveForm($event)\">\r\n</add-form-record>\r\n\r\n<list-form-record *ngIf=\"viewMode == FormTypeEnum.LIST\" [form]=\"form\" [values]=\"values\"\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\">\r\n</list-form-record>",
60
+ styles: ["::ng-deep mat-form-field{width:100%}"]
61
+ })
62
+ ], EqpDynamicModuleComponent);
63
+ return EqpDynamicModuleComponent;
64
+ }());
65
+ export { EqpDynamicModuleComponent };
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlcXByb2plY3QvZXFwLWR5bmFtaWMtbW9kdWxlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZXhwb3J0ZWQvZXFwLWR5bmFtaWMtbW9kdWxlL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFPaEY7SUFZRTtRQVZTLFlBQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLFNBQUksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBaUIsWUFBWSxDQUFDLElBQUksQ0FBQztRQUVwRCxpQkFBWSxHQUFHLFlBQVksQ0FBQztJQUt4QixDQUFDO0lBRUwsNENBQVEsR0FBUjtRQUNFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELHVEQUFtQixHQUFuQixVQUFvQixLQUE0QztRQUM5RCxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1NBQ2hDO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQsOENBQVUsR0FBVixVQUFXLEtBQWE7UUFDdEIsMEJBQTBCO1FBRTFCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixJQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQWhCLENBQWdCLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBaEIsQ0FBZ0IsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ25FO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBeENRO1FBQVIsS0FBSyxFQUFFOzhEQUFrQztJQUNqQztRQUFSLEtBQUssRUFBRTsyREFBeUI7SUFDeEI7UUFBUixLQUFLLEVBQUU7NkRBQXVCO0lBQ3RCO1FBQVIsS0FBSyxFQUFFO2tFQUFvQjtJQUNuQjtRQUFSLEtBQUssRUFBRTsrREFBNEM7SUFOekMseUJBQXlCO1FBTHJDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIseWFBQWtEOztTQUVuRCxDQUFDO09BQ1cseUJBQXlCLENBMkNyQztJQUFELGdDQUFDO0NBQUEsQUEzQ0QsSUEyQ0M7U0EzQ1kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NvbnRleHQubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtLCBGb3JtVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlcXAtZHluYW1pYy1tb2R1bGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lcXAtZHluYW1pYy1tb2R1bGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFcXBEeW5hbWljTW9kdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgY29udGV4dDogQ29udGV4dCA9IG5ldyBDb250ZXh0KCk7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybSA9IG5ldyBGb3JtKCk7XHJcbiAgQElucHV0KCkgdmFsdWVzOiBBcnJheTxSZWNvcmQ+O1xyXG4gIEBJbnB1dCgpIHNob3dCdXR0b25zID0gdHJ1ZTtcclxuICBASW5wdXQoKSB2aWV3TW9kZTogRm9ybVR5cGVFbnVtID0gRm9ybVR5cGVFbnVtLkxJU1Q7XHJcblxyXG4gIEZvcm1UeXBlRW51bSA9IEZvcm1UeXBlRW51bTtcclxuICBzZWxlY3RlZFJlY29yZDogUmVjb3JkO1xyXG4gIG9ubHlWaWV3OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFV0aWxpdHlIZWxwZXJTZXJ2aWNlLlNldENvbnRleHQodGhpcy5jb250ZXh0KTtcclxuICB9XHJcblxyXG4gIG9uQWRkVmlld0VkaXRSZWNvcmQoZXZlbnQ6IHsgcmVjb3JkOiBSZWNvcmQsIG9ubHlWaWV3OiBib29sZWFuIH0pIHtcclxuICAgIGlmIChldmVudCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGV2ZW50LnJlY29yZCkpO1xyXG4gICAgICB0aGlzLm9ubHlWaWV3ID0gZXZlbnQub25seVZpZXc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkID0gbnVsbDtcclxuICAgICAgdGhpcy5vbmx5VmlldyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3TW9kZSA9IEZvcm1UeXBlRW51bS5TQ0FMQVI7XHJcbiAgfVxyXG5cclxuICBvblNhdmVGb3JtKGV2ZW50OiBSZWNvcmQpIHtcclxuICAgIC8vVE9ETzogU2FsdmFyZSBpbCByZWNvcmQhXHJcbiAgICBcclxuICAgIGlmIChldmVudCAhPSBudWxsKSB7XHJcbiAgICAgIGlmIChldmVudC5JRCAmJiB0aGlzLnZhbHVlcy5maW5kKHYgPT4gdi5JRCA9PSBldmVudC5JRCkpIHtcclxuICAgICAgICB0aGlzLnZhbHVlc1t0aGlzLnZhbHVlcy5maW5kSW5kZXgodiA9PiB2LklEID09IGV2ZW50LklEKV0gPSBldmVudDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbHVlcy5wdXNoKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3TW9kZSA9IEZvcm1UeXBlRW51bS5MSVNUO1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=