@rangertechnologies/ngnxt 2.1.174 → 2.1.177

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 (86) hide show
  1. package/esm2022/environments/version.mjs +2 -2
  2. package/esm2022/lib/components/button/nxt-button.component.mjs +42 -39
  3. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +48 -7
  4. package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +41 -4
  5. package/esm2022/lib/components/datatable/datatable.component.mjs +20 -16
  6. package/esm2022/lib/components/file-upload/file-upload.component.mjs +24 -59
  7. package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +2822 -0
  8. package/esm2022/lib/components/pick-location/pick-location.component.mjs +19 -5
  9. package/esm2022/lib/components/search-box/search-box.component.mjs +19 -13
  10. package/esm2022/lib/nxt-app.module.mjs +13 -292
  11. package/esm2022/lib/pages/booklet/booklet.component.mjs +20 -7
  12. package/esm2022/lib/pages/builder/element/element.component.mjs +8 -5
  13. package/esm2022/lib/pages/builder/form/form.component.mjs +6 -5
  14. package/esm2022/lib/pages/builder/properties/properties.component.mjs +7 -5
  15. package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +264 -35
  16. package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +7 -7
  17. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +14 -30
  18. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +21 -40
  19. package/esm2022/lib/services/pdf-designer.service.mjs +43 -28
  20. package/esm2022/public-api.mjs +2 -11
  21. package/fesm2022/rangertechnologies-ngnxt.mjs +16144 -14721
  22. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  23. package/lib/components/button/nxt-button.component.d.ts +13 -12
  24. package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +11 -4
  25. package/lib/components/custom-radio/custom-radio.component.d.ts +14 -3
  26. package/lib/components/datatable/datatable.component.d.ts +4 -3
  27. package/lib/components/file-upload/file-upload.component.d.ts +6 -5
  28. package/lib/components/nxt-input/nxt-input.component.d.ts +159 -0
  29. package/lib/components/pick-location/pick-location.component.d.ts +5 -3
  30. package/lib/components/search-box/search-box.component.d.ts +3 -2
  31. package/lib/nxt-app.module.d.ts +30 -55
  32. package/lib/pages/booklet/booklet.component.d.ts +3 -1
  33. package/lib/pages/builder/element/element.component.d.ts +1 -1
  34. package/lib/pages/builder/form/form.component.d.ts +1 -1
  35. package/lib/pages/builder/properties/properties.component.d.ts +1 -1
  36. package/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.d.ts +43 -3
  37. package/lib/pages/questionbook/questionbook.component.d.ts +3 -3
  38. package/lib/pages/questionnaire/questionnaire.component.d.ts +6 -10
  39. package/lib/services/pdf-designer.service.d.ts +1 -1
  40. package/package.json +1 -1
  41. package/public-api.d.ts +1 -9
  42. package/rangertechnologies-ngnxt-2.1.177.tgz +0 -0
  43. package/src/lib/style.css +0 -1
  44. package/esm2022/lib/components/cards/group-card/group-card.component.mjs +0 -36
  45. package/esm2022/lib/components/cards/group-info/group-info.component.mjs +0 -102
  46. package/esm2022/lib/components/cards/image-card/image-card.component.mjs +0 -83
  47. package/esm2022/lib/components/cards/info-card/info-card.component.mjs +0 -109
  48. package/esm2022/lib/components/custom-button/custom-button.component.mjs +0 -42
  49. package/esm2022/lib/components/custom-date/custom-date.component.mjs +0 -48
  50. package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +0 -53
  51. package/esm2022/lib/components/custom-image/custom-image.component.mjs +0 -34
  52. package/esm2022/lib/components/custom-input/custom-input.component.mjs +0 -101
  53. package/esm2022/lib/components/custom-label/custom-label.component.mjs +0 -24
  54. package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +0 -182
  55. package/esm2022/lib/components/custom-table/custom-table.component.mjs +0 -252
  56. package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +0 -71
  57. package/esm2022/lib/components/custom-time/custom-time.component.mjs +0 -66
  58. package/esm2022/lib/components/dependent-table/dependent-table.component.mjs +0 -45
  59. package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +0 -44
  60. package/esm2022/lib/components/file-view/file-view.component.mjs +0 -49
  61. package/esm2022/lib/components/loader/loader.component.mjs +0 -23
  62. package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +0 -128
  63. package/esm2022/lib/model/tableWrapper.mjs +0 -20
  64. package/esm2022/lib/pages/summary-page/summary-page.component.mjs +0 -79
  65. package/lib/components/cards/group-card/group-card.component.d.ts +0 -13
  66. package/lib/components/cards/group-info/group-info.component.d.ts +0 -47
  67. package/lib/components/cards/image-card/image-card.component.d.ts +0 -34
  68. package/lib/components/cards/info-card/info-card.component.d.ts +0 -39
  69. package/lib/components/custom-button/custom-button.component.d.ts +0 -16
  70. package/lib/components/custom-date/custom-date.component.d.ts +0 -16
  71. package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +0 -20
  72. package/lib/components/custom-image/custom-image.component.d.ts +0 -13
  73. package/lib/components/custom-input/custom-input.component.d.ts +0 -28
  74. package/lib/components/custom-label/custom-label.component.d.ts +0 -10
  75. package/lib/components/custom-rich-text/custom-rich-text.component.d.ts +0 -29
  76. package/lib/components/custom-table/custom-table.component.d.ts +0 -53
  77. package/lib/components/custom-text-area/custom-text-area.component.d.ts +0 -22
  78. package/lib/components/custom-time/custom-time.component.d.ts +0 -18
  79. package/lib/components/dependent-table/dependent-table.component.d.ts +0 -15
  80. package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +0 -16
  81. package/lib/components/file-view/file-view.component.d.ts +0 -16
  82. package/lib/components/loader/loader.component.d.ts +0 -11
  83. package/lib/components/table-appendix/table-appendix.component.d.ts +0 -30
  84. package/lib/model/tableWrapper.d.ts +0 -18
  85. package/lib/pages/summary-page/summary-page.component.d.ts +0 -20
  86. package/rangertechnologies-ngnxt-2.1.174.tgz +0 -0
@@ -1,8 +1,9 @@
1
1
  // AP-29JAN25
2
+ import { CommonModule } from '@angular/common';
2
3
  import { Component, EventEmitter, Input, Output } from '@angular/core';
4
+ import { PropertiesComponent } from '../properties/properties.component';
5
+ import { ElementComponent } from '../element/element.component';
3
6
  import * as i0 from "@angular/core";
4
- import * as i1 from "../element/element.component";
5
- import * as i2 from "../properties/properties.component";
6
7
  export class FormComponent {
7
8
  // Input data for app-element
8
9
  // bookletJson: any = {}; // Replace with your actual JSON object
@@ -27,11 +28,11 @@ export class FormComponent {
27
28
  this.templateSaveHandler.emit(event);
28
29
  }
29
30
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormComponent, selector: "app-form-builder", inputs: { bookletJSON: "bookletJSON", bookletId: "bookletId" }, outputs: { formButtonHandler: "formButtonHandler", templateSaveHandler: "templateSaveHandler" }, ngImport: i0, template: "<!-- AP-29JAN25 -->\n<div class=\"form-container \">\n <!-- app-element Component -->\n <!--AP-08APR25 Passes a boolean to indicate if a template is selected -->\n <app-element \n [bookletJSON]=\"bookletJSON\" \n [bookletId]=\"bookletId\"\n (templateMode)=\"onTemplateModeChange($event)\">\n </app-element>\n <!-- app-properties Component -->\n <!-- AP-08APR25 Emits an event when the template mode -->\n <app-properties \n (formButtonHandler)=\"formButtonHandlerClick($event)\"\n (templateSaveHandler)=\"saveTemplate($event)\"\n [templateSelected]=\"isTemplateSelected\">\n </app-properties>\n \n ", styles: [".form-container{display:flex;flex-wrap:wrap;border:10px solid #86A8CD}app-element{width:75%}app-properties{border-left:10px solid #86A8CD;width:25%}:host ::ng-deep .questiondiv1{padding-left:0!important;padding-right:0!important}:host ::ng-deep .form-group.content-box{padding-bottom:0!important}\n"], dependencies: [{ kind: "component", type: i1.ElementComponent, selector: "app-element", inputs: ["bookletJSON", "bookletId"], outputs: ["templateMode"] }, { kind: "component", type: i2.PropertiesComponent, selector: "app-properties", inputs: ["selectedElementType", "templateSelected"], outputs: ["formButtonHandler", "templateSaveHandler"] }] });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormComponent, isStandalone: true, selector: "app-form-builder", inputs: { bookletJSON: "bookletJSON", bookletId: "bookletId" }, outputs: { formButtonHandler: "formButtonHandler", templateSaveHandler: "templateSaveHandler" }, ngImport: i0, template: "<!-- AP-29JAN25 -->\n<div class=\"form-container \">\n <!-- app-element Component -->\n <!--AP-08APR25 Passes a boolean to indicate if a template is selected -->\n <app-element \n [bookletJSON]=\"bookletJSON\" \n [bookletId]=\"bookletId\"\n (templateMode)=\"onTemplateModeChange($event)\">\n </app-element>\n <!-- app-properties Component -->\n <!-- AP-08APR25 Emits an event when the template mode -->\n <app-properties \n (formButtonHandler)=\"formButtonHandlerClick($event)\"\n (templateSaveHandler)=\"saveTemplate($event)\"\n [templateSelected]=\"isTemplateSelected\">\n </app-properties>\n \n ", styles: [".form-container{display:flex;flex-wrap:wrap;border:10px solid #86A8CD}app-element{width:75%}app-properties{border-left:10px solid #86A8CD;width:25%}:host ::ng-deep .questiondiv1{padding-left:0!important;padding-right:0!important}:host ::ng-deep .form-group.content-box{padding-bottom:0!important}\n"], dependencies: [{ kind: "component", type: PropertiesComponent, selector: "app-properties", inputs: ["selectedElementType", "templateSelected"], outputs: ["formButtonHandler", "templateSaveHandler"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: ElementComponent, selector: "app-element", inputs: ["bookletJSON", "bookletId"], outputs: ["templateMode"] }] });
31
32
  }
32
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormComponent, decorators: [{
33
34
  type: Component,
34
- args: [{ selector: 'app-form-builder', template: "<!-- AP-29JAN25 -->\n<div class=\"form-container \">\n <!-- app-element Component -->\n <!--AP-08APR25 Passes a boolean to indicate if a template is selected -->\n <app-element \n [bookletJSON]=\"bookletJSON\" \n [bookletId]=\"bookletId\"\n (templateMode)=\"onTemplateModeChange($event)\">\n </app-element>\n <!-- app-properties Component -->\n <!-- AP-08APR25 Emits an event when the template mode -->\n <app-properties \n (formButtonHandler)=\"formButtonHandlerClick($event)\"\n (templateSaveHandler)=\"saveTemplate($event)\"\n [templateSelected]=\"isTemplateSelected\">\n </app-properties>\n \n ", styles: [".form-container{display:flex;flex-wrap:wrap;border:10px solid #86A8CD}app-element{width:75%}app-properties{border-left:10px solid #86A8CD;width:25%}:host ::ng-deep .questiondiv1{padding-left:0!important;padding-right:0!important}:host ::ng-deep .form-group.content-box{padding-bottom:0!important}\n"] }]
35
+ args: [{ selector: 'app-form-builder', standalone: true, imports: [PropertiesComponent, CommonModule, ElementComponent], template: "<!-- AP-29JAN25 -->\n<div class=\"form-container \">\n <!-- app-element Component -->\n <!--AP-08APR25 Passes a boolean to indicate if a template is selected -->\n <app-element \n [bookletJSON]=\"bookletJSON\" \n [bookletId]=\"bookletId\"\n (templateMode)=\"onTemplateModeChange($event)\">\n </app-element>\n <!-- app-properties Component -->\n <!-- AP-08APR25 Emits an event when the template mode -->\n <app-properties \n (formButtonHandler)=\"formButtonHandlerClick($event)\"\n (templateSaveHandler)=\"saveTemplate($event)\"\n [templateSelected]=\"isTemplateSelected\">\n </app-properties>\n \n ", styles: [".form-container{display:flex;flex-wrap:wrap;border:10px solid #86A8CD}app-element{width:75%}app-properties{border-left:10px solid #86A8CD;width:25%}:host ::ng-deep .questiondiv1{padding-left:0!important;padding-right:0!important}:host ::ng-deep .form-group.content-box{padding-bottom:0!important}\n"] }]
35
36
  }], propDecorators: { bookletJSON: [{
36
37
  type: Input
37
38
  }], bookletId: [{
@@ -41,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41
42
  }], templateSaveHandler: [{
42
43
  type: Output
43
44
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGFnZXMvYnVpbGRlci9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL3BhZ2VzL2J1aWxkZXIvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3ZFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLDZCQUE2QjtJQUM3QixpRUFBaUU7SUFDakUsb0VBQW9FO0lBQ3pELFdBQVcsQ0FBTTtJQUNqQixTQUFTLENBQU07SUFDZCxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQy9DLG1CQUFtQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFN0QsZ0NBQWdDO0lBQ2hDLG9GQUFvRjtJQUNwRixvRUFBb0U7SUFDcEUsbUJBQW1CLEdBQVcsUUFBUSxDQUFDLENBQUMsaURBQWlEO0lBQ3pGLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUU3QixvQkFBb0IsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVDLGdDQUFnQztJQUNoQyxzQkFBc0IsQ0FBQyxLQUFLO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0ExQlUsYUFBYTs0RkFBYixhQUFhLHlOQ1IxQixxbkJBaUJFOzs0RkRUVyxhQUFhO2tCQUx6QixTQUFTOytCQUNFLGtCQUFrQjs4QkFRakIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBUC0yOUpBTjI1IFxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm0tYnVpbGRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQge1xuICAvLyBJbnB1dCBkYXRhIGZvciBhcHAtZWxlbWVudFxuICAvLyBib29rbGV0SnNvbjogYW55ID0ge307IC8vIFJlcGxhY2Ugd2l0aCB5b3VyIGFjdHVhbCBKU09OIG9iamVjdFxuICAvLyBib29rbGV0SWQ6IHN0cmluZyA9ICcxMjMnOyAvLyBSZXBsYWNlIHdpdGggeW91ciBhY3R1YWwgYm9va2xldCBJRFxuICAgIEBJbnB1dCgpIGJvb2tsZXRKU09OOiBhbnk7XG4gICAgQElucHV0KCkgYm9va2xldElkOiBhbnk7XG4gICAgQE91dHB1dCgpIGZvcm1CdXR0b25IYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIHRlbXBsYXRlU2F2ZUhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvLyBJbnB1dCBkYXRhIGZvciBhcHAtcHJvcGVydGllc1xuICAvLyBhcGk6IHN0cmluZyA9ICdodHRwczovL2V4YW1wbGUuY29tL2FwaSc7IC8vIFJlcGxhY2Ugd2l0aCB5b3VyIGFjdHVhbCBBUEkgZW5kcG9pbnRcbiAgLy8gYXBpTWV0aG9kOiBzdHJpbmcgPSAnR0VUJzsgLy8gUmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIEFQSSBtZXRob2RcbiAgc2VsZWN0ZWRFbGVtZW50VHlwZTogc3RyaW5nID0gJ2J1dHRvbic7IC8vIFJlcGxhY2Ugd2l0aCB0aGUgZGVmYXVsdCBzZWxlY3RlZCBlbGVtZW50IHR5cGVcbiAgaXNUZW1wbGF0ZVNlbGVjdGVkID0gZmFsc2U7XG5cbm9uVGVtcGxhdGVNb2RlQ2hhbmdlKHN0YXR1czogYm9vbGVhbikge1xuICB0aGlzLmlzVGVtcGxhdGVTZWxlY3RlZCA9IHN0YXR1cztcbn1cblxuICAvLyBFdmVudCBoYW5kbGVyIGZvciBhcHAtZWxlbWVudFxuICBmb3JtQnV0dG9uSGFuZGxlckNsaWNrKGV2ZW50KXtcbiAgICB0aGlzLmZvcm1CdXR0b25IYW5kbGVyLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgc2F2ZVRlbXBsYXRlKGV2ZW50OiBhbnkpIHsgIFxuICAgIHRoaXMudGVtcGxhdGVTYXZlSGFuZGxlci5lbWl0KGV2ZW50KTtcbiAgfSAgXG4gIFxufVxuIiwiPCEtLSBBUC0yOUpBTjI1IC0tPlxuPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyIFwiPlxuICAgIDwhLS0gYXBwLWVsZW1lbnQgQ29tcG9uZW50IC0tPlxuICAgICA8IS0tQVAtMDhBUFIyNSBQYXNzZXMgYSBib29sZWFuIHRvIGluZGljYXRlIGlmIGEgdGVtcGxhdGUgaXMgc2VsZWN0ZWQgLS0+XG4gICAgPGFwcC1lbGVtZW50IFxuICAgIFtib29rbGV0SlNPTl09XCJib29rbGV0SlNPTlwiIFxuICAgIFtib29rbGV0SWRdPVwiYm9va2xldElkXCJcbiAgICAodGVtcGxhdGVNb2RlKT1cIm9uVGVtcGxhdGVNb2RlQ2hhbmdlKCRldmVudClcIj5cbiAgPC9hcHAtZWxlbWVudD5cbiAgIDwhLS0gYXBwLXByb3BlcnRpZXMgQ29tcG9uZW50IC0tPlxuICA8IS0tIEFQLTA4QVBSMjUgRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgdGVtcGxhdGUgbW9kZSAtLT5cbiAgPGFwcC1wcm9wZXJ0aWVzIFxuICAoZm9ybUJ1dHRvbkhhbmRsZXIpPVwiZm9ybUJ1dHRvbkhhbmRsZXJDbGljaygkZXZlbnQpXCJcbiAgKHRlbXBsYXRlU2F2ZUhhbmRsZXIpPVwic2F2ZVRlbXBsYXRlKCRldmVudClcIlxuICBbdGVtcGxhdGVTZWxlY3RlZF09XCJpc1RlbXBsYXRlU2VsZWN0ZWRcIj5cbiA8L2FwcC1wcm9wZXJ0aWVzPlxuICBcbiAgIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGFnZXMvYnVpbGRlci9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL3BhZ2VzL2J1aWxkZXIvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFTaEUsTUFBTSxPQUFPLGFBQWE7SUFDeEIsNkJBQTZCO0lBQzdCLGlFQUFpRTtJQUNqRSxvRUFBb0U7SUFDekQsV0FBVyxDQUFNO0lBQ2pCLFNBQVMsQ0FBTTtJQUNkLGlCQUFpQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDL0MsbUJBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUU3RCxnQ0FBZ0M7SUFDaEMsb0ZBQW9GO0lBQ3BGLG9FQUFvRTtJQUNwRSxtQkFBbUIsR0FBVyxRQUFRLENBQUMsQ0FBQyxpREFBaUQ7SUFDekYsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBRTdCLG9CQUFvQixDQUFDLE1BQWU7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBRUMsZ0NBQWdDO0lBQ2hDLHNCQUFzQixDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO3dHQTFCVSxhQUFhOzRGQUFiLGFBQWEsNk9DYjFCLHFuQkFpQkUsb1dEUlcsbUJBQW1CLHNLQUFFLFlBQVksK0JBQUUsZ0JBQWdCOzs0RkFJbkQsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDOzhCQVFwRCxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFQLTI5SkFOMjUgXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuLi9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm0tYnVpbGRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgUHJvcGVydGllc0NvbXBvbmVudCwgQ29tbW9uTW9kdWxlLCBFbGVtZW50Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCB7XG4gIC8vIElucHV0IGRhdGEgZm9yIGFwcC1lbGVtZW50XG4gIC8vIGJvb2tsZXRKc29uOiBhbnkgPSB7fTsgLy8gUmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIEpTT04gb2JqZWN0XG4gIC8vIGJvb2tsZXRJZDogc3RyaW5nID0gJzEyMyc7IC8vIFJlcGxhY2Ugd2l0aCB5b3VyIGFjdHVhbCBib29rbGV0IElEXG4gICAgQElucHV0KCkgYm9va2xldEpTT046IGFueTtcbiAgICBASW5wdXQoKSBib29rbGV0SWQ6IGFueTtcbiAgICBAT3V0cHV0KCkgZm9ybUJ1dHRvbkhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgdGVtcGxhdGVTYXZlSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIElucHV0IGRhdGEgZm9yIGFwcC1wcm9wZXJ0aWVzXG4gIC8vIGFwaTogc3RyaW5nID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vYXBpJzsgLy8gUmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIEFQSSBlbmRwb2ludFxuICAvLyBhcGlNZXRob2Q6IHN0cmluZyA9ICdHRVQnOyAvLyBSZXBsYWNlIHdpdGggeW91ciBhY3R1YWwgQVBJIG1ldGhvZFxuICBzZWxlY3RlZEVsZW1lbnRUeXBlOiBzdHJpbmcgPSAnYnV0dG9uJzsgLy8gUmVwbGFjZSB3aXRoIHRoZSBkZWZhdWx0IHNlbGVjdGVkIGVsZW1lbnQgdHlwZVxuICBpc1RlbXBsYXRlU2VsZWN0ZWQgPSBmYWxzZTtcblxub25UZW1wbGF0ZU1vZGVDaGFuZ2Uoc3RhdHVzOiBib29sZWFuKSB7XG4gIHRoaXMuaXNUZW1wbGF0ZVNlbGVjdGVkID0gc3RhdHVzO1xufVxuXG4gIC8vIEV2ZW50IGhhbmRsZXIgZm9yIGFwcC1lbGVtZW50XG4gIGZvcm1CdXR0b25IYW5kbGVyQ2xpY2soZXZlbnQpe1xuICAgIHRoaXMuZm9ybUJ1dHRvbkhhbmRsZXIuZW1pdChldmVudCk7XG4gIH1cblxuICBzYXZlVGVtcGxhdGUoZXZlbnQ6IGFueSkgeyAgXG4gICAgdGhpcy50ZW1wbGF0ZVNhdmVIYW5kbGVyLmVtaXQoZXZlbnQpO1xuICB9ICBcbiAgXG59XG4iLCI8IS0tIEFQLTI5SkFOMjUgLS0+XG48ZGl2IGNsYXNzPVwiZm9ybS1jb250YWluZXIgXCI+XG4gICAgPCEtLSBhcHAtZWxlbWVudCBDb21wb25lbnQgLS0+XG4gICAgIDwhLS1BUC0wOEFQUjI1IFBhc3NlcyBhIGJvb2xlYW4gdG8gaW5kaWNhdGUgaWYgYSB0ZW1wbGF0ZSBpcyBzZWxlY3RlZCAtLT5cbiAgICA8YXBwLWVsZW1lbnQgXG4gICAgW2Jvb2tsZXRKU09OXT1cImJvb2tsZXRKU09OXCIgXG4gICAgW2Jvb2tsZXRJZF09XCJib29rbGV0SWRcIlxuICAgICh0ZW1wbGF0ZU1vZGUpPVwib25UZW1wbGF0ZU1vZGVDaGFuZ2UoJGV2ZW50KVwiPlxuICA8L2FwcC1lbGVtZW50PlxuICAgPCEtLSBhcHAtcHJvcGVydGllcyBDb21wb25lbnQgLS0+XG4gIDwhLS0gQVAtMDhBUFIyNSBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSB0ZW1wbGF0ZSBtb2RlIC0tPlxuICA8YXBwLXByb3BlcnRpZXMgXG4gIChmb3JtQnV0dG9uSGFuZGxlcik9XCJmb3JtQnV0dG9uSGFuZGxlckNsaWNrKCRldmVudClcIlxuICAodGVtcGxhdGVTYXZlSGFuZGxlcik9XCJzYXZlVGVtcGxhdGUoJGV2ZW50KVwiXG4gIFt0ZW1wbGF0ZVNlbGVjdGVkXT1cImlzVGVtcGxhdGVTZWxlY3RlZFwiPlxuIDwvYXBwLXByb3BlcnRpZXM+XG4gIFxuICAiXX0=