simpo-component-library 2.1.2 → 2.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/esm2022/lib/components/document/document.component.mjs +34 -0
  2. package/esm2022/lib/components/index.mjs +6 -5
  3. package/esm2022/lib/components/input-fields/input-fields.component.mjs +26 -8
  4. package/esm2022/lib/components/payment-details/payment-details.component.mjs +25 -5
  5. package/esm2022/lib/directive/spacing-around.directive.mjs +73 -0
  6. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +9 -4
  7. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +2 -2
  8. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +2 -2
  9. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +2 -2
  10. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +2 -2
  11. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +2 -2
  12. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +2 -2
  13. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  14. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  15. package/esm2022/lib/elements/index.mjs +6 -5
  16. package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +3 -3
  17. package/esm2022/lib/elements/property/property.component.mjs +41 -0
  18. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  19. package/esm2022/lib/elements/socia-icons/socia-icons.component.mjs +5 -3
  20. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  21. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +16 -6
  22. package/esm2022/lib/sections/banner-section/banner-section.model.mjs +1 -1
  23. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +9 -4
  24. package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +3 -3
  25. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +9 -4
  26. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  27. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +6 -3
  28. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +5 -5
  29. package/esm2022/lib/sections/footer-section/footer-section.component.mjs +12 -8
  30. package/esm2022/lib/sections/footer-section/footer-section.modal.mjs +1 -1
  31. package/esm2022/lib/sections/image-section/image-section.component.mjs +9 -3
  32. package/esm2022/lib/sections/logo-gallery/logo-gallery.component.mjs +34 -9
  33. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  34. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +9 -4
  35. package/esm2022/lib/sections/navbar-section/navbar-section.model.mjs +1 -1
  36. package/esm2022/lib/sections/property-component/property-component.component.mjs +23 -0
  37. package/esm2022/lib/sections/property-component/property-component.modal.mjs +2 -0
  38. package/esm2022/lib/sections/property-list/property-list.component.mjs +116 -0
  39. package/esm2022/lib/sections/property-list/property-list.modal.mjs +2 -0
  40. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +9 -4
  41. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  42. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +205 -27
  43. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +2 -0
  44. package/esm2022/lib/sections/service-section/service-section.component.mjs +14 -6
  45. package/esm2022/lib/sections/text-section/text-section.component.mjs +8 -5
  46. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +68 -0
  47. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +2 -0
  48. package/esm2022/lib/services/image-upload-service.service.mjs +39 -0
  49. package/esm2022/lib/services/rest.service.mjs +19 -9
  50. package/esm2022/lib/styles/style.model.mjs +1 -1
  51. package/esm2022/lib/styles/types.mjs +1 -1
  52. package/esm2022/public-api.mjs +5 -1
  53. package/fesm2022/simpo-component-library.mjs +882 -255
  54. package/fesm2022/simpo-component-library.mjs.map +1 -1
  55. package/lib/components/document/document.component.d.ts +8 -0
  56. package/lib/components/index.d.ts +2 -1
  57. package/lib/components/input-fields/input-fields.component.d.ts +5 -2
  58. package/lib/components/payment-details/payment-details.component.d.ts +3 -1
  59. package/lib/directive/background-directive.d.ts +1 -1
  60. package/lib/directive/button-directive.directive.d.ts +1 -1
  61. package/lib/directive/color.directive.d.ts +1 -1
  62. package/lib/directive/spacing-around.directive.d.ts +18 -0
  63. package/lib/directive/spacing-horizontal.directive.d.ts +2 -1
  64. package/lib/elements/index.d.ts +2 -1
  65. package/lib/elements/property/property.component.d.ts +8 -0
  66. package/lib/elements/socia-icons/socia-icons.component.d.ts +2 -1
  67. package/lib/sections/banner-section/banner-section.component.d.ts +2 -0
  68. package/lib/sections/banner-section/banner-section.model.d.ts +6 -0
  69. package/lib/sections/blog-list/blog-list.component.d.ts +2 -1
  70. package/lib/sections/choose-us-section/choose-us-section.component.d.ts +2 -1
  71. package/lib/sections/choose-us-section/choose-us-section.model.d.ts +2 -1
  72. package/lib/sections/footer-section/footer-section.component.d.ts +2 -1
  73. package/lib/sections/footer-section/footer-section.modal.d.ts +9 -0
  74. package/lib/sections/image-section/image-section.component.d.ts +3 -1
  75. package/lib/sections/logo-gallery/logo-gallery.component.d.ts +10 -2
  76. package/lib/sections/navbar-section/navbar-section.component.d.ts +2 -1
  77. package/lib/sections/navbar-section/navbar-section.model.d.ts +1 -1
  78. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
  79. package/lib/sections/property-component/property-component.component.d.ts +10 -0
  80. package/lib/sections/property-component/property-component.modal.d.ts +28 -0
  81. package/lib/sections/property-list/property-list.component.d.ts +22 -0
  82. package/lib/sections/property-list/property-list.modal.d.ts +14 -0
  83. package/lib/sections/recent-blog-post-section/recent-blog-post-section.component.d.ts +2 -1
  84. package/lib/sections/recent-blog-post-section/recent-blog-post-section.model.d.ts +2 -1
  85. package/lib/sections/registration-form/registration-form.component.d.ts +24 -6
  86. package/lib/sections/registration-form/registrationForm.model.d.ts +8 -0
  87. package/lib/sections/service-section/service-section.component.d.ts +4 -2
  88. package/lib/sections/text-section/text-section.component.d.ts +2 -1
  89. package/lib/sections/usp-video-section/usp-video-section.component.d.ts +22 -0
  90. package/lib/sections/usp-video-section/usp-video-section.model.d.ts +22 -0
  91. package/lib/services/image-upload-service.service.d.ts +7 -0
  92. package/lib/services/rest.service.d.ts +4 -0
  93. package/lib/styles/style.model.d.ts +4 -0
  94. package/lib/styles/types.d.ts +1 -1
  95. package/package.json +1 -1
  96. package/public-api.d.ts +4 -0
  97. package/simpo-component-library-2.1.8.tgz +0 -0
  98. package/simpo-component-library-2.1.2.tgz +0 -0
@@ -0,0 +1,34 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/icon";
7
+ import * as i2 from "@angular/common";
8
+ export class DocumentComponent {
9
+ constructor() {
10
+ this.documentList = [];
11
+ }
12
+ uploadDocument(ev, file) {
13
+ file.file = ev.srcElement.files[0];
14
+ if (file?.file?.type?.includes('video')) {
15
+ file.type = 'VIDEO';
16
+ }
17
+ else if (file?.file?.type?.includes('image')) {
18
+ file.type = 'IMAGE';
19
+ }
20
+ else {
21
+ file.type = 'FILE';
22
+ }
23
+ console.log(file);
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DocumentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: DocumentComponent, isStandalone: true, selector: "simpo-document", inputs: { documentList: "documentList" }, ngImport: i0, template: "<section class=\"main-section p-2\">\r\n <div class=\"list_tabs heading d-flex align-items-center\">\r\n Required Document\r\n </div>\r\n\r\n <div class=\"document-section\">\r\n <div class=\"document\" *ngFor=\"let document of documentList\">\r\n <div class=\"left-side\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/183907c1734627971492pdf.png\" alt=\"\">\r\n <p>{{document.displayText}}</p>\r\n </div>\r\n <div class=\"right-side\" (click)=\"fileInput.click()\" *ngIf=\"!(document.file || document.url)\">\r\n <div>Upload</div>\r\n </div>\r\n <div class=\"right-side\" *ngIf=\"document.file || document.url\">\r\n <mat-icon>delete</mat-icon>\r\n </div>\r\n\r\n <input id=\"vendorImage\" type=\"file\" name=\"myfile\" hidden\r\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\r\n (change)=\"uploadDocument($event, document)\" class=\"pc-btn\"\r\n id=\"browse_contact_image\" #fileInput />\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".list_tabs{border:1px solid #0000001A;background-color:#ffffffe5;padding:10px;border-radius:6px;gap:10px;height:50px}.heading{font-size:18px;font-weight:500}.align-items-center{align-items:center}.p-2{padding:2rem!important}.document-section{padding-right:2rem;margin-top:2rem;padding-left:2rem;display:flex;flex-direction:column;gap:10px}.document{display:flex;justify-content:space-between;background:#eeecec;padding:1.5rem;border-radius:10px}.left-side{display:flex;align-items:center;gap:20px}.left-side p{margin-bottom:0}.right-side{background:#fff;height:35px;padding-left:30px;padding-right:30px;display:flex;align-items:center;border-radius:8px;font-weight:500}@media screen and (max-width: 475px){.p-2{padding:1rem}.document-section{padding-left:0rem;padding-right:0rem}}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DocumentComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'simpo-document', standalone: true, imports: [MatIconModule, CommonModule, FormsModule], template: "<section class=\"main-section p-2\">\r\n <div class=\"list_tabs heading d-flex align-items-center\">\r\n Required Document\r\n </div>\r\n\r\n <div class=\"document-section\">\r\n <div class=\"document\" *ngFor=\"let document of documentList\">\r\n <div class=\"left-side\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/183907c1734627971492pdf.png\" alt=\"\">\r\n <p>{{document.displayText}}</p>\r\n </div>\r\n <div class=\"right-side\" (click)=\"fileInput.click()\" *ngIf=\"!(document.file || document.url)\">\r\n <div>Upload</div>\r\n </div>\r\n <div class=\"right-side\" *ngIf=\"document.file || document.url\">\r\n <mat-icon>delete</mat-icon>\r\n </div>\r\n\r\n <input id=\"vendorImage\" type=\"file\" name=\"myfile\" hidden\r\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\r\n (change)=\"uploadDocument($event, document)\" class=\"pc-btn\"\r\n id=\"browse_contact_image\" #fileInput />\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".list_tabs{border:1px solid #0000001A;background-color:#ffffffe5;padding:10px;border-radius:6px;gap:10px;height:50px}.heading{font-size:18px;font-weight:500}.align-items-center{align-items:center}.p-2{padding:2rem!important}.document-section{padding-right:2rem;margin-top:2rem;padding-left:2rem;display:flex;flex-direction:column;gap:10px}.document{display:flex;justify-content:space-between;background:#eeecec;padding:1.5rem;border-radius:10px}.left-side{display:flex;align-items:center;gap:20px}.left-side p{margin-bottom:0}.right-side{background:#fff;height:35px;padding-left:30px;padding-right:30px;display:flex;align-items:center;border-radius:8px;font-weight:500}@media screen and (max-width: 475px){.p-2{padding:1rem}.document-section{padding-left:0rem;padding-right:0rem}}\n"] }]
31
+ }], ctorParameters: () => [], propDecorators: { documentList: [{
32
+ type: Input
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvY29tcG9uZW50cy9kb2N1bWVudC9kb2N1bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVN2RCxNQUFNLE9BQU8saUJBQWlCO0lBSTVCO1FBRlMsaUJBQVksR0FBVSxFQUFFLENBQUM7SUFFbkIsQ0FBQztJQUVoQixjQUFjLENBQUMsRUFBTyxFQUFFLElBQVM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuQyxJQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFBO1FBQ3JCLENBQUM7YUFBTSxJQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFBO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUE7UUFDcEIsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkIsQ0FBQzs4R0FsQlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsb0hDWjlCLG10Q0F5QkEsdTBCRGpCWSxhQUFhLG1MQUFFLFlBQVksK1BBQUUsV0FBVzs7MkZBSXZDLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQzt3REFNMUMsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tZG9jdW1lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RvY3VtZW50LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGRvY3VtZW50TGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICB1cGxvYWREb2N1bWVudChldjogYW55LCBmaWxlOiBhbnkpIHtcclxuICAgIGZpbGUuZmlsZSA9IGV2LnNyY0VsZW1lbnQuZmlsZXNbMF07XHJcblxyXG4gICAgaWYoZmlsZT8uZmlsZT8udHlwZT8uaW5jbHVkZXMoJ3ZpZGVvJykpIHtcclxuICAgICAgZmlsZS50eXBlID0gJ1ZJREVPJ1xyXG4gICAgfSBlbHNlIGlmKGZpbGU/LmZpbGU/LnR5cGU/LmluY2x1ZGVzKCdpbWFnZScpKSB7XHJcbiAgICAgIGZpbGUudHlwZSA9ICdJTUFHRSdcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbGUudHlwZSA9ICdGSUxFJ1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKGZpbGUpXHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1zZWN0aW9uIHAtMlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJsaXN0X3RhYnMgaGVhZGluZyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICBSZXF1aXJlZCBEb2N1bWVudFxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtc2VjdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImRvY3VtZW50XCIgKm5nRm9yPVwibGV0IGRvY3VtZW50IG9mIGRvY3VtZW50TGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdC1zaWRlXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzE4MzkwN2MxNzM0NjI3OTcxNDkycGRmLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDxwPnt7ZG9jdW1lbnQuZGlzcGxheVRleHR9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1zaWRlXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgKm5nSWY9XCIhKGRvY3VtZW50LmZpbGUgfHwgZG9jdW1lbnQudXJsKVwiPlxyXG4gICAgICAgIDxkaXY+VXBsb2FkPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtc2lkZVwiICpuZ0lmPVwiZG9jdW1lbnQuZmlsZSB8fCBkb2N1bWVudC51cmxcIj5cclxuICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8aW5wdXQgaWQ9XCJ2ZW5kb3JJbWFnZVwiIHR5cGU9XCJmaWxlXCIgbmFtZT1cIm15ZmlsZVwiIGhpZGRlblxyXG4gICAgICAgICAgICBhY2NlcHQ9XCIuZG9jLC5kb2N4LGFwcGxpY2F0aW9uL21zd29yZCxhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCxpbWFnZS94LXBuZyxpbWFnZS9qcGVnLGltYWdlL2pwZywucGRmLCB2aWRlby9tcDQsdmlkZW8veC1tYXRyb3NrYSx2aWRlby94LW1zdmlkZW8sdmlkZW8vcXVpY2t0aW1lXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGxvYWREb2N1bWVudCgkZXZlbnQsIGRvY3VtZW50KVwiIGNsYXNzPVwicGMtYnRuXCJcclxuICAgICAgICAgICAgaWQ9XCJicm93c2VfY29udGFjdF9pbWFnZVwiICNmaWxlSW5wdXQgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
@@ -4,17 +4,18 @@ import { DeleteHoverElementComponent } from './delete-hover-element/delete-hover
4
4
  import { InputFieldsComponent } from './input-fields/input-fields.component';
5
5
  import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
6
6
  import { PaymentDetailsComponent } from './payment-details/payment-details.component';
7
+ import { DocumentComponent } from './document/document.component';
7
8
  import * as i0 from "@angular/core";
8
9
  export class SimpoComponentModule {
9
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent], exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent, NgxSkeletonLoaderModule] }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent, DocumentComponent], exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent, DocumentComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent, DocumentComponent, NgxSkeletonLoaderModule] }); }
12
13
  }
13
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, decorators: [{
14
15
  type: NgModule,
15
16
  args: [{
16
- imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent],
17
- exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent],
17
+ imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent, DocumentComponent],
18
+ exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent, DocumentComponent],
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFLdEYsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsWUFIckIsc0JBQXNCLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLGFBQzNILHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjsrR0FFMUgsb0JBQW9CLFlBSHJCLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCx1QkFBdUI7OzJGQUVqRyxvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUM7b0JBQ3RJLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO2lCQUN2SSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEhvdmVyRWxlbWVudHNDb21wb25lbnQgfSBmcm9tICcuL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLWhvdmVyLWVsZW1lbnQvZGVsZXRlLWhvdmVyLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRGaWVsZHNDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWZpZWxkcy9pbnB1dC1maWVsZHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuaW1wb3J0IHsgUGF5bWVudERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL3BheW1lbnQtZGV0YWlscy9wYXltZW50LWRldGFpbHMuY29tcG9uZW50JztcclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbSG92ZXJFbGVtZW50c0NvbXBvbmVudCwgRGVsZXRlSG92ZXJFbGVtZW50Q29tcG9uZW50LCBJbnB1dEZpZWxkc0NvbXBvbmVudCwgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUsIFBheW1lbnREZXRhaWxzQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbSG92ZXJFbGVtZW50c0NvbXBvbmVudCwgRGVsZXRlSG92ZXJFbGVtZW50Q29tcG9uZW50LCBJbnB1dEZpZWxkc0NvbXBvbmVudCwgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUsIFBheW1lbnREZXRhaWxzQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBvQ29tcG9uZW50TW9kdWxlIHt9XHJcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFLbEUsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsWUFIckIsc0JBQXNCLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLGFBQzlJLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLGlCQUFpQjsrR0FFN0ksb0JBQW9CLFlBSHJCLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUNuRSx1QkFBdUI7OzJGQUVqRyxvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUM7b0JBQ3pKLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDO2lCQUMxSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEhvdmVyRWxlbWVudHNDb21wb25lbnQgfSBmcm9tICcuL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLWhvdmVyLWVsZW1lbnQvZGVsZXRlLWhvdmVyLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRGaWVsZHNDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWZpZWxkcy9pbnB1dC1maWVsZHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuaW1wb3J0IHsgUGF5bWVudERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL3BheW1lbnQtZGV0YWlscy9wYXltZW50LWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG9jdW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudCc7XHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0hvdmVyRWxlbWVudHNDb21wb25lbnQsIERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCwgSW5wdXRGaWVsZHNDb21wb25lbnQsIE5neFNrZWxldG9uTG9hZGVyTW9kdWxlLCBQYXltZW50RGV0YWlsc0NvbXBvbmVudCwgRG9jdW1lbnRDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtIb3ZlckVsZW1lbnRzQ29tcG9uZW50LCBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQsIElucHV0RmllbGRzQ29tcG9uZW50LCBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSwgUGF5bWVudERldGFpbHNDb21wb25lbnQsIERvY3VtZW50Q29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBvQ29tcG9uZW50TW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, Input } from '@angular/core';
2
+ import { Component, HostListener, Input } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { ColorDirective } from '../../directive/color.directive';
5
5
  import { MatIcon } from '@angular/material/icon';
@@ -7,7 +7,8 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
8
  import * as i2 from "@angular/forms";
9
9
  export class InputFieldsComponent {
10
- constructor() {
10
+ constructor(elementRef) {
11
+ this.elementRef = elementRef;
11
12
  this.opacity = 1;
12
13
  this.ratingHoverIndex = null;
13
14
  this.selectedDropdown = null;
@@ -52,19 +53,33 @@ export class InputFieldsComponent {
52
53
  return this.interpolateColor("#000000", "#FFFFFF", factor);
53
54
  }
54
55
  selectDropdown(value) {
55
- this.selectedDropdown = null;
56
56
  this.enteredValue = value;
57
57
  this.feild.inputValue = value;
58
+ this.selectedDropdown = null;
59
+ }
60
+ handleOutsideClick(event) {
61
+ const clickedInside = this.elementRef.nativeElement.contains(event.target);
62
+ if (!clickedInside) {
63
+ this.selectedDropdown = null;
64
+ }
65
+ }
66
+ onCheckboxChange(selectedIndex) {
67
+ this.feild.options.forEach((checkbox, index) => {
68
+ checkbox.status = index === selectedIndex;
69
+ if (selectedIndex === index) {
70
+ this.feild.inputValue = checkbox.value;
71
+ }
72
+ });
58
73
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: InputFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: InputFieldsComponent, isStandalone: true, selector: "simpo-input-fields", inputs: { feild: "feild", opacity: "opacity", bgColor: "bgColor", sectionId: "sectionId" }, usesOnChanges: true, ngImport: i0, template: "<section [ngSwitch]=\"feild.type\" class=\"mt-15\">\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'text'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'address'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'email'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"email\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'password'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"password\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'rating'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex\">\r\n <span class=\"fa fa-star\" *ngFor=\"let _ of [].constructor(5); let idx = index\" [ngClass]=\"{'checked': idx < (ratingHoverIndex ?? feild.value) }\" (mouseenter)=\"ratingHoverIndex = idx +1\" (mouseleave)=\"ratingHoverIndex = null\" (click)=\"feild.value = idx +1\"></span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'date'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"date\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'checkbox'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex align-items-center flex-wrap\" style=\"gap: 10px;\">\r\n <ng-container *ngFor=\"let checkbox of feild.options\">\r\n <div class=\"d-flex align-items-center\" style=\"gap: 5px;\">\r\n <input type=\"checkbox\" [attr.id]=\"checkbox.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"checkbox.status\">\r\n <label [attr.for]=\"checkbox.value\" class=\"mb-0 mt-1 checkboxFont\">{{ checkbox.value }}</label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'number'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"number\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'money'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2\" value=\"\u20B9\" (keydown)=\"handleMoneyInput($event)\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'desc'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <textarea class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"></textarea>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2 position-relative\" *ngSwitchCase=\"'dropdown'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n\r\n <div class=\"position-relative d-flex align-items-center\">\r\n <input type=\"text\" readonly [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [value]=\"enteredValue\" (click)=\"selectedDropdown = feild.value\" [(ngModel)]=\"feild.inputValue\" class=\"w-100\">\r\n <mat-icon class=\"down-arrow\">{{feild.value != selectedDropdown ? 'keyboard_arrow_down' : 'keyboard_arrow_up'}}</mat-icon>\r\n </div>\r\n <div class=\"container-list position-absolute\" [hidden]=\"feild.value != selectedDropdown\">\r\n <ng-container *ngFor=\"let option of feild.options\">\r\n <div class=\"container\" [ngClass]=\"{'container-selected': option.value == selectedDropdown}\" (click)=\"selectDropdown(option.value)\">{{ option.value }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["input,textarea,select{border-radius:5px;padding:8px 8px 8px 10px!important;font-size:large;background-color:#000;font-weight:400;border:1px solid #b9b9b9}.checkboxFont{font-size:16px;font-weight:400}.down-arrow{position:absolute;right:5px}.fa-star{opacity:.3;cursor:pointer;font-size:20px}input[type=checkbox]{height:18px;width:18px}.checked{opacity:1;color:#daa520}.input-field-label{font-size:16px;font-weight:400}.mt-15{margin-top:15px}.container-list{box-shadow:0 0 3px #999;background-color:#fff;border-radius:5px;padding:3px 0;font-weight:400;overflow:hidden;position:absolute;top:70px;width:100%;z-index:1}.container-list .container{cursor:pointer;padding:10px;font-size:18px}.container-list .container-selected{color:#fff;background-color:purple}.container-list .container:hover{color:#fff;background-color:purple;width:100%;font-weight:600!important}sup{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: InputFieldsComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: InputFieldsComponent, isStandalone: true, selector: "simpo-input-fields", inputs: { feild: "feild", opacity: "opacity", bgColor: "bgColor", sectionId: "sectionId" }, host: { listeners: { "document:click": "handleOutsideClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<section [ngSwitch]=\"feild.type\" class=\"mt-15\">\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'text'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'textArea'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <textarea type=\"text\" class=\"p-2 mt-2\" cols=\"12\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\"></textarea>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'address'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'email'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"email\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'password'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"password\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'rating'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex mt-2\">\r\n <span class=\"fa fa-star\" *ngFor=\"let _ of [].constructor(5); let idx = index\" [ngClass]=\"{'checked': idx < (ratingHoverIndex ?? feild.value) }\" (mouseenter)=\"ratingHoverIndex = idx +1\" (mouseleave)=\"ratingHoverIndex = null\" (click)=\"feild.value = idx +1\"></span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'date'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"date\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <!-- <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'checkbox'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex align-items-center flex-wrap mt-2\" style=\"gap: 10px;height:40px\">\r\n <ng-container *ngFor=\"let checkbox of feild.options\">\r\n <div class=\"d-flex align-items-center\" style=\"gap: 5px;\">\r\n <input type=\"checkbox\" [attr.id]=\"checkbox.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"checkbox.status\">\r\n <label [attr.for]=\"checkbox.value\" class=\"mb-0 mt-1 checkboxFont\">{{ checkbox.value }}</label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div> -->\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'checkbox'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">\r\n {{ feild.value }} <sup *ngIf=\"feild.required\">*</sup>\r\n </label>\r\n <div class=\"d-flex align-items-center flex-wrap mt-2\" style=\"gap: 10px; height: 40px;\">\r\n <ng-container *ngFor=\"let checkbox of feild.options; let i = index\">\r\n <div class=\"d-flex align-items-center\" style=\"gap: 5px;\">\r\n <input \r\n type=\"checkbox\" \r\n [attr.id]=\"checkbox.value\" \r\n [style.background]=\"colorCode\" \r\n [style.color]=\"getTextColor\" \r\n [checked]=\"checkbox.status\" \r\n (change)=\"onCheckboxChange(i)\">\r\n <label [attr.for]=\"checkbox.value\" class=\"mb-0 mt-1 checkboxFont\">\r\n {{ checkbox.value }}\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'number'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"number\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'money'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2 mt-2\" value=\"\u20B9\" (keydown)=\"handleMoneyInput($event)\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'desc'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <textarea class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\"></textarea>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2 position-relative\" *ngSwitchCase=\"'dropdown'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n\r\n <div class=\"position-relative mt-2 d-flex align-items-center dropdown-key\" (click)=\"selectedDropdown === feild.value ? selectedDropdown = null : selectedDropdown = feild.value\" \r\n [style.color]=\"getTextColor\" [style.background]=\"colorCode\">\r\n <input type=\"text\" readonly [attr.id]=\"feild.value\" [value]=\"enteredValue\" \r\n [(ngModel)]=\"feild.inputValue\" class=\"w-100\" [style.background]=\"colorCode\" placeholder=\"Select\">\r\n <mat-icon class=\"down-arrow\">{{feild.value != selectedDropdown ? 'keyboard_arrow_down' : 'keyboard_arrow_up'}}</mat-icon>\r\n\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0</div>\r\n <div class=\"container-list position-absolute\" [hidden]=\"feild.value != selectedDropdown\">\r\n <ng-container *ngFor=\"let option of feild.options\">\r\n <div class=\"container\" [ngClass]=\"{'container-selected': option.value == selectedDropdown}\" (click)=\"selectDropdown(option.value)\">{{ option.value }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["input,textarea,select{border-radius:5px;padding:8px 8px 8px 10px!important;font-size:large;background-color:#000;font-weight:400;border:1px solid #b9b9b9}input{height:40px}.checkboxFont{font-size:16px;font-weight:400}.down-arrow{position:absolute;right:5px;color:#000}.fa-star{opacity:.3;cursor:pointer;font-size:20px}input[type=checkbox]{height:18px;width:18px}.checked{opacity:1;color:#daa520}.input-field-label{text-align:start;font-size:16px;font-weight:400}.mt-15{margin-top:15px}.container-list{box-shadow:0 0 3px #999;background-color:#fff;border-radius:5px;padding:3px 0;font-weight:400;overflow:hidden;position:absolute;top:72px;width:100%;z-index:1;max-height:200px;overflow:scroll}.container-list .container{cursor:pointer;padding:10px;font-size:18px;color:#000}.container-list .container-selected{color:#fff;background-color:purple}.container-list .container:hover{color:#fff;background-color:purple;width:100%;font-weight:600!important}sup{color:red}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.dropdown-key{border-radius:5px;border:1px solid #b9b9b9}.dropdown-key input{border:none}.dropdown-key input:focus{outline:none}.container{background:#fff;color:#000!important;width:100%!important}.container:hover{color:#fff!important;background-color:purple}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
61
76
  }
62
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: InputFieldsComponent, decorators: [{
63
78
  type: Component,
64
79
  args: [{ selector: 'simpo-input-fields', standalone: true, imports: [
65
80
  CommonModule, FormsModule, ColorDirective, MatIcon
66
- ], template: "<section [ngSwitch]=\"feild.type\" class=\"mt-15\">\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'text'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'address'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'email'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"email\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'password'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"password\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'rating'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex\">\r\n <span class=\"fa fa-star\" *ngFor=\"let _ of [].constructor(5); let idx = index\" [ngClass]=\"{'checked': idx < (ratingHoverIndex ?? feild.value) }\" (mouseenter)=\"ratingHoverIndex = idx +1\" (mouseleave)=\"ratingHoverIndex = null\" (click)=\"feild.value = idx +1\"></span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'date'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"date\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'checkbox'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex align-items-center flex-wrap\" style=\"gap: 10px;\">\r\n <ng-container *ngFor=\"let checkbox of feild.options\">\r\n <div class=\"d-flex align-items-center\" style=\"gap: 5px;\">\r\n <input type=\"checkbox\" [attr.id]=\"checkbox.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"checkbox.status\">\r\n <label [attr.for]=\"checkbox.value\" class=\"mb-0 mt-1 checkboxFont\">{{ checkbox.value }}</label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'number'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"number\" class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'money'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2\" value=\"\u20B9\" (keydown)=\"handleMoneyInput($event)\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'desc'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <textarea class=\"p-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"></textarea>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2 position-relative\" *ngSwitchCase=\"'dropdown'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n\r\n <div class=\"position-relative d-flex align-items-center\">\r\n <input type=\"text\" readonly [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [value]=\"enteredValue\" (click)=\"selectedDropdown = feild.value\" [(ngModel)]=\"feild.inputValue\" class=\"w-100\">\r\n <mat-icon class=\"down-arrow\">{{feild.value != selectedDropdown ? 'keyboard_arrow_down' : 'keyboard_arrow_up'}}</mat-icon>\r\n </div>\r\n <div class=\"container-list position-absolute\" [hidden]=\"feild.value != selectedDropdown\">\r\n <ng-container *ngFor=\"let option of feild.options\">\r\n <div class=\"container\" [ngClass]=\"{'container-selected': option.value == selectedDropdown}\" (click)=\"selectDropdown(option.value)\">{{ option.value }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["input,textarea,select{border-radius:5px;padding:8px 8px 8px 10px!important;font-size:large;background-color:#000;font-weight:400;border:1px solid #b9b9b9}.checkboxFont{font-size:16px;font-weight:400}.down-arrow{position:absolute;right:5px}.fa-star{opacity:.3;cursor:pointer;font-size:20px}input[type=checkbox]{height:18px;width:18px}.checked{opacity:1;color:#daa520}.input-field-label{font-size:16px;font-weight:400}.mt-15{margin-top:15px}.container-list{box-shadow:0 0 3px #999;background-color:#fff;border-radius:5px;padding:3px 0;font-weight:400;overflow:hidden;position:absolute;top:70px;width:100%;z-index:1}.container-list .container{cursor:pointer;padding:10px;font-size:18px}.container-list .container-selected{color:#fff;background-color:purple}.container-list .container:hover{color:#fff;background-color:purple;width:100%;font-weight:600!important}sup{color:red}\n"] }]
67
- }], ctorParameters: () => [], propDecorators: { feild: [{
81
+ ], template: "<section [ngSwitch]=\"feild.type\" class=\"mt-15\">\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'text'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'textArea'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <textarea type=\"text\" class=\"p-2 mt-2\" cols=\"12\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\"></textarea>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'address'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'email'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"email\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'password'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"password\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'rating'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex mt-2\">\r\n <span class=\"fa fa-star\" *ngFor=\"let _ of [].constructor(5); let idx = index\" [ngClass]=\"{'checked': idx < (ratingHoverIndex ?? feild.value) }\" (mouseenter)=\"ratingHoverIndex = idx +1\" (mouseleave)=\"ratingHoverIndex = null\" (click)=\"feild.value = idx +1\"></span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'date'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"date\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\">\r\n </div>\r\n <!-- <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'checkbox'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <div class=\"d-flex align-items-center flex-wrap mt-2\" style=\"gap: 10px;height:40px\">\r\n <ng-container *ngFor=\"let checkbox of feild.options\">\r\n <div class=\"d-flex align-items-center\" style=\"gap: 5px;\">\r\n <input type=\"checkbox\" [attr.id]=\"checkbox.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"checkbox.status\">\r\n <label [attr.for]=\"checkbox.value\" class=\"mb-0 mt-1 checkboxFont\">{{ checkbox.value }}</label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div> -->\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'checkbox'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">\r\n {{ feild.value }} <sup *ngIf=\"feild.required\">*</sup>\r\n </label>\r\n <div class=\"d-flex align-items-center flex-wrap mt-2\" style=\"gap: 10px; height: 40px;\">\r\n <ng-container *ngFor=\"let checkbox of feild.options; let i = index\">\r\n <div class=\"d-flex align-items-center\" style=\"gap: 5px;\">\r\n <input \r\n type=\"checkbox\" \r\n [attr.id]=\"checkbox.value\" \r\n [style.background]=\"colorCode\" \r\n [style.color]=\"getTextColor\" \r\n [checked]=\"checkbox.status\" \r\n (change)=\"onCheckboxChange(i)\">\r\n <label [attr.for]=\"checkbox.value\" class=\"mb-0 mt-1 checkboxFont\">\r\n {{ checkbox.value }}\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'number'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"number\" class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'money'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <input type=\"text\" class=\"p-2 mt-2\" value=\"\u20B9\" (keydown)=\"handleMoneyInput($event)\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\">\r\n </div>\r\n <div class=\"d-flex flex-column mr-2\" *ngSwitchCase=\"'desc'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n <textarea class=\"p-2 mt-2\" [attr.id]=\"feild.value\" [style.background]=\"colorCode\" [style.color]=\"getTextColor\" [(ngModel)]=\"feild.inputValue\"\r\n [placeholder]=\"'Enter '+feild.label\"></textarea>\r\n </div>\r\n <div class=\"d-flex flex-column mr-2 position-relative\" *ngSwitchCase=\"'dropdown'\">\r\n <label [attr.for]=\"feild.value\" [simpoColor]=\"bgColor\" [id]=\"sectionId\" class=\"input-field-label\">{{ feild.value }} <sup *ngIf=\"feild.required\">*</sup></label>\r\n\r\n <div class=\"position-relative mt-2 d-flex align-items-center dropdown-key\" (click)=\"selectedDropdown === feild.value ? selectedDropdown = null : selectedDropdown = feild.value\" \r\n [style.color]=\"getTextColor\" [style.background]=\"colorCode\">\r\n <input type=\"text\" readonly [attr.id]=\"feild.value\" [value]=\"enteredValue\" \r\n [(ngModel)]=\"feild.inputValue\" class=\"w-100\" [style.background]=\"colorCode\" placeholder=\"Select\">\r\n <mat-icon class=\"down-arrow\">{{feild.value != selectedDropdown ? 'keyboard_arrow_down' : 'keyboard_arrow_up'}}</mat-icon>\r\n\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0</div>\r\n <div class=\"container-list position-absolute\" [hidden]=\"feild.value != selectedDropdown\">\r\n <ng-container *ngFor=\"let option of feild.options\">\r\n <div class=\"container\" [ngClass]=\"{'container-selected': option.value == selectedDropdown}\" (click)=\"selectDropdown(option.value)\">{{ option.value }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["input,textarea,select{border-radius:5px;padding:8px 8px 8px 10px!important;font-size:large;background-color:#000;font-weight:400;border:1px solid #b9b9b9}input{height:40px}.checkboxFont{font-size:16px;font-weight:400}.down-arrow{position:absolute;right:5px;color:#000}.fa-star{opacity:.3;cursor:pointer;font-size:20px}input[type=checkbox]{height:18px;width:18px}.checked{opacity:1;color:#daa520}.input-field-label{text-align:start;font-size:16px;font-weight:400}.mt-15{margin-top:15px}.container-list{box-shadow:0 0 3px #999;background-color:#fff;border-radius:5px;padding:3px 0;font-weight:400;overflow:hidden;position:absolute;top:72px;width:100%;z-index:1;max-height:200px;overflow:scroll}.container-list .container{cursor:pointer;padding:10px;font-size:18px;color:#000}.container-list .container-selected{color:#fff;background-color:purple}.container-list .container:hover{color:#fff;background-color:purple;width:100%;font-weight:600!important}sup{color:red}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.dropdown-key{border-radius:5px;border:1px solid #b9b9b9}.dropdown-key input{border:none}.dropdown-key input:focus{outline:none}.container{background:#fff;color:#000!important;width:100%!important}.container:hover{color:#fff!important;background-color:purple}\n"] }]
82
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { feild: [{
68
83
  type: Input
69
84
  }], opacity: [{
70
85
  type: Input
@@ -72,5 +87,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
72
87
  type: Input
73
88
  }], sectionId: [{
74
89
  type: Input
90
+ }], handleOutsideClick: [{
91
+ type: HostListener,
92
+ args: ['document:click', ['$event']]
75
93
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1maWVsZHMvaW5wdXQtZmllbGRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1maWVsZHMvaW5wdXQtZmllbGRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFZakQsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjtRQVRTLFlBQU8sR0FBdUIsQ0FBQyxDQUFDO1FBSWxDLHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFFdkMscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2QyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFJeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6RixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2pILENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDN0QsSUFBSSxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQ2hDLElBQUksTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUVoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRSxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsRCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUVyRCxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxNQUFjO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3JFLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxNQUFjO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyx1Q0FBdUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQzs4R0FsRVUsb0JBQW9CO2tHQUFwQixvQkFBb0IsK0xDaEJqQyw0cU1BZ0VBLG82QkRyREksWUFBWSx5aEJBQUUsV0FBVyxrOEJBQUUsY0FBYyxpRkFBRSxPQUFPOzsyRkFLekMsb0JBQW9CO2tCQVRoQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsT0FBTztxQkFDbkQ7d0RBS1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8taW5wdXQtZmllbGRzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbG9yRGlyZWN0aXZlLCBNYXRJY29uXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZmllbGRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaW5wdXQtZmllbGRzLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEZpZWxkc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZmVpbGQ6IGFueTtcclxuICBASW5wdXQoKSBvcGFjaXR5OiBudW1iZXIgfCB1bmRlZmluZWQgPSAxO1xyXG4gIEBJbnB1dCgpIGJnQ29sb3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2VjdGlvbklkPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgcmF0aW5nSG92ZXJJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGNvbG9yQ29kZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZWxlY3RlZERyb3Bkb3duOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgZW50ZXJlZFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgdGhpcy5jb2xvckNvZGUgPSB0aGlzLmdlbmVyYXRlQ29sb3JCYXNlZE9uTnVtYmVyKHRoaXMub3BhY2l0eSA/PyAwKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuY29sb3JDb2RlID0gdGhpcy5nZW5lcmF0ZUNvbG9yQmFzZWRPbk51bWJlcih0aGlzLm9wYWNpdHkgPz8gMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb25leUlucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghKGV2ZW50LmNvZGUuaW5jbHVkZXMoXCJEaWdpdFwiKSB8fCBldmVudC5jb2RlLmluY2x1ZGVzKFwiQmFja3NwYWNlXCIpKSB8fCAhZXZlbnQudGFyZ2V0KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSBcIuKCuVwiICsgTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZS5yZXBsYWNlQWxsKFwiLFwiLCBcIlwiKS5yZXBsYWNlQWxsKFwi4oK5XCIsIFwiXCIpKS50b0xvY2FsZVN0cmluZygpO1xyXG4gIH1cclxuICBnZXQgZ2V0VGV4dENvbG9yKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLm9wYWNpdHkgPz8gMCkgPCA1MCA/ICcjRkZGJyA6ICcjMDAwJztcclxuICB9XHJcblxyXG4gIGludGVycG9sYXRlQ29sb3IoY29sb3IxOiBzdHJpbmcsIGNvbG9yMjogc3RyaW5nLCBmYWN0b3I6IG51bWJlcikge1xyXG4gICAgaWYgKGZhY3RvciA9PT0gMCkgcmV0dXJuIGNvbG9yMTtcclxuICAgIGlmIChmYWN0b3IgPT09IDEpIHJldHVybiBjb2xvcjI7XHJcblxyXG4gICAgY29uc3QgaGV4ID0gKHg6IGFueSkgPT4gdGhpcy5wYWRaZXJvKE1hdGgucm91bmQoeCkudG9TdHJpbmcoMTYpLCAyKTtcclxuXHJcbiAgICBjb25zdCByMSA9IHBhcnNlSW50KGNvbG9yMS5zdWJzdHJpbmcoMSwgMyksIDE2KTtcclxuICAgIGNvbnN0IGcxID0gcGFyc2VJbnQoY29sb3IxLnN1YnN0cmluZygzLCA1KSwgMTYpO1xyXG4gICAgY29uc3QgYjEgPSBwYXJzZUludChjb2xvcjEuc3Vic3RyaW5nICAoNSwgNyksIDE2KTtcclxuXHJcbiAgICBjb25zdCByMiA9IHBhcnNlSW50KGNvbG9yMi5zdWJzdHJpbmcoMSwgMyksIDE2KTtcclxuICAgIGNvbnN0IGcyID0gcGFyc2VJbnQoY29sb3IyLnN1YnN0cmluZygzLCA1KSwgMTYpO1xyXG4gICAgY29uc3QgYjIgPSBwYXJzZUludChjb2xvcjIuc3Vic3RyaW5nKDUsIDcpLCAxNik7XHJcblxyXG4gICAgY29uc3QgciA9IE1hdGguY2VpbChyMSAqICgxIC0gZmFjdG9yKSArIHIyICogZmFjdG9yKTtcclxuICAgIGNvbnN0IGcgPSBNYXRoLmNlaWwoZzEgKiAoMSAtIGZhY3RvcikgKyBnMiAqIGZhY3Rvcik7XHJcbiAgICBjb25zdCBiID0gTWF0aC5jZWlsKGIxICogKDEgLSBmYWN0b3IpICsgYjIgKiBmYWN0b3IpO1xyXG5cclxuICAgIHJldHVybiBgIyR7aGV4KHIpfSR7aGV4KGcpfSR7aGV4KGIpfWA7XHJcbiAgfVxyXG5cclxuICBwYWRaZXJvKHN0cjogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gc3RyLmxlbmd0aCA8IGxlbmd0aCA/IHRoaXMucGFkWmVybyhcIjBcIiArIHN0ciwgbGVuZ3RoKSA6IHN0cjtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQ29sb3JCYXNlZE9uTnVtYmVyKG51bWJlcjogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBmYWN0b3IgPSBudW1iZXIgLyAxMDA7IC8vIEFzc3VtaW5nIG51bWJlciByYW5nZXMgZnJvbSAwIHRvIDEwMFxyXG4gICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGVDb2xvcihcIiMwMDAwMDBcIiwgXCIjRkZGRkZGXCIsIGZhY3Rvcik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3REcm9wZG93bih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRHJvcGRvd24gPSBudWxsO1xyXG4gICAgdGhpcy5lbnRlcmVkVmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZmVpbGQuaW5wdXRWYWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBbbmdTd2l0Y2hdPVwiZmVpbGQudHlwZVwiICBjbGFzcz1cIm10LTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1yLTJcIiAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XHJcbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJmZWlsZC52YWx1ZVwiIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwicC0yXCIgW2F0dHIuaWRdPVwiZmVpbGQudmFsdWVcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvckNvZGVcIiBbc3R5bGUuY29sb3JdPVwiZ2V0VGV4dENvbG9yXCIgWyhuZ01vZGVsKV09XCJmZWlsZC5pbnB1dFZhbHVlXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbXItMlwiICpuZ1N3aXRjaENhc2U9XCInYWRkcmVzcydcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwicC0yXCIgW2F0dHIuaWRdPVwiZmVpbGQudmFsdWVcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvckNvZGVcIiBbc3R5bGUuY29sb3JdPVwiZ2V0VGV4dENvbG9yXCIgWyhuZ01vZGVsKV09XCJmZWlsZC5pbnB1dFZhbHVlXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbXItMlwiICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCI+XHJcbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJmZWlsZC52YWx1ZVwiIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cInAtMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiIFsobmdNb2RlbCldPVwiZmVpbGQuaW5wdXRWYWx1ZVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1yLTJcIiAqbmdTd2l0Y2hDYXNlPVwiJ3Bhc3N3b3JkJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiBbc2ltcG9Db2xvcl09XCJiZ0NvbG9yXCIgW2lkXT1cInNlY3Rpb25JZFwiIGNsYXNzPVwiaW5wdXQtZmllbGQtbGFiZWxcIj57eyBmZWlsZC52YWx1ZSB9fSA8c3VwICpuZ0lmPVwiZmVpbGQucmVxdWlyZWRcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3M9XCJwLTJcIiBbYXR0ci5pZF09XCJmZWlsZC52YWx1ZVwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3JcIiBbKG5nTW9kZWwpXT1cImZlaWxkLmlucHV0VmFsdWVcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidyYXRpbmcnXCI+XHJcbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJmZWlsZC52YWx1ZVwiIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1zdGFyXCIgKm5nRm9yPVwibGV0IF8gb2YgW10uY29uc3RydWN0b3IoNSk7IGxldCBpZHggPSBpbmRleFwiIFtuZ0NsYXNzXT1cInsnY2hlY2tlZCc6IGlkeCA8IChyYXRpbmdIb3ZlckluZGV4ID8/IGZlaWxkLnZhbHVlKSAgfVwiIChtb3VzZWVudGVyKT1cInJhdGluZ0hvdmVySW5kZXggPSBpZHggKzFcIiAobW91c2VsZWF2ZSk9XCJyYXRpbmdIb3ZlckluZGV4ID0gbnVsbFwiIChjbGljayk9XCJmZWlsZC52YWx1ZSA9IGlkeCArMVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiBbc2ltcG9Db2xvcl09XCJiZ0NvbG9yXCIgW2lkXT1cInNlY3Rpb25JZFwiIGNsYXNzPVwiaW5wdXQtZmllbGQtbGFiZWxcIj57eyBmZWlsZC52YWx1ZSB9fSA8c3VwICpuZ0lmPVwiZmVpbGQucmVxdWlyZWRcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGVcIiBjbGFzcz1cInAtMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiIFsobmdNb2RlbCldPVwiZmVpbGQuaW5wdXRWYWx1ZVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1yLTJcIiAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiBbc2ltcG9Db2xvcl09XCJiZ0NvbG9yXCIgW2lkXT1cInNlY3Rpb25JZFwiIGNsYXNzPVwiaW5wdXQtZmllbGQtbGFiZWxcIj57eyBmZWlsZC52YWx1ZSB9fSA8c3VwICpuZ0lmPVwiZmVpbGQucmVxdWlyZWRcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXBcIiBzdHlsZT1cImdhcDogMTBweDtcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hlY2tib3ggb2YgZmVpbGQub3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbYXR0ci5pZF09XCJjaGVja2JveC52YWx1ZVwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3JcIiAgWyhuZ01vZGVsKV09XCJjaGVja2JveC5zdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImNoZWNrYm94LnZhbHVlXCIgY2xhc3M9XCJtYi0wIG10LTEgY2hlY2tib3hGb250XCI+e3sgY2hlY2tib3gudmFsdWUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1yLTJcIiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cInAtMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiICBbKG5nTW9kZWwpXT1cImZlaWxkLmlucHV0VmFsdWVcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidtb25leSdcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJwLTJcIiB2YWx1ZT1cIuKCuVwiIChrZXlkb3duKT1cImhhbmRsZU1vbmV5SW5wdXQoJGV2ZW50KVwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiICBbKG5nTW9kZWwpXT1cImZlaWxkLmlucHV0VmFsdWVcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidkZXNjJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiBbc2ltcG9Db2xvcl09XCJiZ0NvbG9yXCIgW2lkXT1cInNlY3Rpb25JZFwiIGNsYXNzPVwiaW5wdXQtZmllbGQtbGFiZWxcIj57eyBmZWlsZC52YWx1ZSB9fSA8c3VwICpuZ0lmPVwiZmVpbGQucmVxdWlyZWRcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJwLTJcIiBbYXR0ci5pZF09XCJmZWlsZC52YWx1ZVwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3JcIiAgWyhuZ01vZGVsKV09XCJmZWlsZC5pbnB1dFZhbHVlXCI+PC90ZXh0YXJlYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yIHBvc2l0aW9uLXJlbGF0aXZlXCIgKm5nU3dpdGNoQ2FzZT1cIidkcm9wZG93bidcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiIFt2YWx1ZV09XCJlbnRlcmVkVmFsdWVcIiAoY2xpY2spPVwic2VsZWN0ZWREcm9wZG93biA9IGZlaWxkLnZhbHVlXCIgIFsobmdNb2RlbCldPVwiZmVpbGQuaW5wdXRWYWx1ZVwiIGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZG93bi1hcnJvd1wiPnt7ZmVpbGQudmFsdWUgIT0gc2VsZWN0ZWREcm9wZG93biA/ICdrZXlib2FyZF9hcnJvd19kb3duJyA6ICdrZXlib2FyZF9hcnJvd191cCd9fTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1saXN0IHBvc2l0aW9uLWFic29sdXRlXCIgW2hpZGRlbl09XCJmZWlsZC52YWx1ZSAhPSBzZWxlY3RlZERyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmZWlsZC5vcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydjb250YWluZXItc2VsZWN0ZWQnOiBvcHRpb24udmFsdWUgPT0gc2VsZWN0ZWREcm9wZG93bn1cIiAoY2xpY2spPVwic2VsZWN0RHJvcGRvd24ob3B0aW9uLnZhbHVlKVwiPnt7IG9wdGlvbi52YWx1ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1maWVsZHMvaW5wdXQtZmllbGRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1maWVsZHMvaW5wdXQtZmllbGRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBWWpELE1BQU0sT0FBTyxvQkFBb0I7SUFXL0IsWUFDVSxVQUF1QjtRQUF2QixlQUFVLEdBQVYsVUFBVSxDQUFhO1FBVnhCLFlBQU8sR0FBdUIsQ0FBQyxDQUFDO1FBSWxDLHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFFdkMscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2QyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFLeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6RixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2pILENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDN0QsSUFBSSxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQ2hDLElBQUksTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUVoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRSxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsRCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUVyRCxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxNQUFjO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3JFLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxNQUFjO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyx1Q0FBdUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUdDLGtCQUFrQixDQUFDLEtBQWlCO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxhQUFxQjtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFZLEVBQUUsS0FBUyxFQUFFLEVBQUU7WUFDckQsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssYUFBYSxDQUFDO1lBQzFDLElBQUcsYUFBYSxLQUFLLEtBQUssRUFBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFBO1lBQ3hDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7OEdBckZVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHdRQ2hCakMsczlRQW9HQSxpNUNEekZJLFlBQVkseWhCQUFFLFdBQVcsaXhCQUFFLGNBQWMsaUZBQUUsT0FBTzs7MkZBS3pDLG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE9BQU87cUJBQ25EOytFQUtRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBa0VOLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1pbnB1dC1maWVsZHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQ29sb3JEaXJlY3RpdmUsIE1hdEljb25cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9pbnB1dC1maWVsZHMuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RmllbGRzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBmZWlsZDogYW55O1xyXG4gIEBJbnB1dCgpIG9wYWNpdHk6IG51bWJlciB8IHVuZGVmaW5lZCA9IDE7XHJcbiAgQElucHV0KCkgYmdDb2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSBzZWN0aW9uSWQ/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyByYXRpbmdIb3ZlckluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgY29sb3JDb2RlOiBzdHJpbmc7XHJcbiAgcHVibGljIHNlbGVjdGVkRHJvcGRvd246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBlbnRlcmVkVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZiA6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHRoaXMuY29sb3JDb2RlID0gdGhpcy5nZW5lcmF0ZUNvbG9yQmFzZWRPbk51bWJlcih0aGlzLm9wYWNpdHkgPz8gMCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmNvbG9yQ29kZSA9IHRoaXMuZ2VuZXJhdGVDb2xvckJhc2VkT25OdW1iZXIodGhpcy5vcGFjaXR5ID8/IDApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTW9uZXlJbnB1dChldmVudDogYW55KSB7XHJcbiAgICBpZiAoIShldmVudC5jb2RlLmluY2x1ZGVzKFwiRGlnaXRcIikgfHwgZXZlbnQuY29kZS5pbmNsdWRlcyhcIkJhY2tzcGFjZVwiKSkgfHwgIWV2ZW50LnRhcmdldCkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gXCLigrlcIiArIE51bWJlcihldmVudC50YXJnZXQudmFsdWUucmVwbGFjZUFsbChcIixcIiwgXCJcIikucmVwbGFjZUFsbChcIuKCuVwiLCBcIlwiKSkudG9Mb2NhbGVTdHJpbmcoKTtcclxuICB9XHJcbiAgZ2V0IGdldFRleHRDb2xvcigpIHtcclxuICAgIHJldHVybiAodGhpcy5vcGFjaXR5ID8/IDApIDwgNTAgPyAnI0ZGRicgOiAnIzAwMCc7XHJcbiAgfVxyXG5cclxuICBpbnRlcnBvbGF0ZUNvbG9yKGNvbG9yMTogc3RyaW5nLCBjb2xvcjI6IHN0cmluZywgZmFjdG9yOiBudW1iZXIpIHtcclxuICAgIGlmIChmYWN0b3IgPT09IDApIHJldHVybiBjb2xvcjE7XHJcbiAgICBpZiAoZmFjdG9yID09PSAxKSByZXR1cm4gY29sb3IyO1xyXG5cclxuICAgIGNvbnN0IGhleCA9ICh4OiBhbnkpID0+IHRoaXMucGFkWmVybyhNYXRoLnJvdW5kKHgpLnRvU3RyaW5nKDE2KSwgMik7XHJcblxyXG4gICAgY29uc3QgcjEgPSBwYXJzZUludChjb2xvcjEuc3Vic3RyaW5nKDEsIDMpLCAxNik7XHJcbiAgICBjb25zdCBnMSA9IHBhcnNlSW50KGNvbG9yMS5zdWJzdHJpbmcoMywgNSksIDE2KTtcclxuICAgIGNvbnN0IGIxID0gcGFyc2VJbnQoY29sb3IxLnN1YnN0cmluZyAgKDUsIDcpLCAxNik7XHJcblxyXG4gICAgY29uc3QgcjIgPSBwYXJzZUludChjb2xvcjIuc3Vic3RyaW5nKDEsIDMpLCAxNik7XHJcbiAgICBjb25zdCBnMiA9IHBhcnNlSW50KGNvbG9yMi5zdWJzdHJpbmcoMywgNSksIDE2KTtcclxuICAgIGNvbnN0IGIyID0gcGFyc2VJbnQoY29sb3IyLnN1YnN0cmluZyg1LCA3KSwgMTYpO1xyXG5cclxuICAgIGNvbnN0IHIgPSBNYXRoLmNlaWwocjEgKiAoMSAtIGZhY3RvcikgKyByMiAqIGZhY3Rvcik7XHJcbiAgICBjb25zdCBnID0gTWF0aC5jZWlsKGcxICogKDEgLSBmYWN0b3IpICsgZzIgKiBmYWN0b3IpO1xyXG4gICAgY29uc3QgYiA9IE1hdGguY2VpbChiMSAqICgxIC0gZmFjdG9yKSArIGIyICogZmFjdG9yKTtcclxuXHJcbiAgICByZXR1cm4gYCMke2hleChyKX0ke2hleChnKX0ke2hleChiKX1gO1xyXG4gIH1cclxuXHJcbiAgcGFkWmVybyhzdHI6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHN0ci5sZW5ndGggPCBsZW5ndGggPyB0aGlzLnBhZFplcm8oXCIwXCIgKyBzdHIsIGxlbmd0aCkgOiBzdHI7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNvbG9yQmFzZWRPbk51bWJlcihudW1iZXI6IG51bWJlcikge1xyXG4gICAgY29uc3QgZmFjdG9yID0gbnVtYmVyIC8gMTAwOyAvLyBBc3N1bWluZyBudW1iZXIgcmFuZ2VzIGZyb20gMCB0byAxMDBcclxuICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlQ29sb3IoXCIjMDAwMDAwXCIsIFwiI0ZGRkZGRlwiLCBmYWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0RHJvcGRvd24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5lbnRlcmVkVmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZmVpbGQuaW5wdXRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZERyb3Bkb3duID0gbnVsbDtcclxufVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlT3V0c2lkZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcclxuICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRHJvcGRvd24gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGVja2JveENoYW5nZShzZWxlY3RlZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZmVpbGQub3B0aW9ucy5mb3JFYWNoKChjaGVja2JveDphbnksIGluZGV4OmFueSkgPT4ge1xyXG4gICAgICBjaGVja2JveC5zdGF0dXMgPSBpbmRleCA9PT0gc2VsZWN0ZWRJbmRleDtcclxuICAgICAgaWYoc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXgpe1xyXG4gICAgICAgIHRoaXMuZmVpbGQuaW5wdXRWYWx1ZSA9IGNoZWNrYm94LnZhbHVlXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPHNlY3Rpb24gW25nU3dpdGNoXT1cImZlaWxkLnR5cGVcIiAgY2xhc3M9XCJtdC0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiBbc2ltcG9Db2xvcl09XCJiZ0NvbG9yXCIgW2lkXT1cInNlY3Rpb25JZFwiIGNsYXNzPVwiaW5wdXQtZmllbGQtbGFiZWxcIj57eyBmZWlsZC52YWx1ZSB9fSA8c3VwICpuZ0lmPVwiZmVpbGQucmVxdWlyZWRcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInAtMiBtdC0yXCIgW2F0dHIuaWRdPVwiZmVpbGQudmFsdWVcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvckNvZGVcIiBbc3R5bGUuY29sb3JdPVwiZ2V0VGV4dENvbG9yXCIgWyhuZ01vZGVsKV09XCJmZWlsZC5pbnB1dFZhbHVlXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0VudGVyICcrZmVpbGQubGFiZWxcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0QXJlYSdcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcbiAgICAgICAgPHRleHRhcmVhIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJwLTIgbXQtMlwiIGNvbHM9XCIxMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiIFsobmdNb2RlbCldPVwiZmVpbGQuaW5wdXRWYWx1ZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidFbnRlciAnK2ZlaWxkLmxhYmVsXCI+PC90ZXh0YXJlYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidhZGRyZXNzJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiAgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJwLTIgbXQtMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiIFsobmdNb2RlbCldPVwiZmVpbGQuaW5wdXRWYWx1ZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidFbnRlciAnK2ZlaWxkLmxhYmVsXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbXItMlwiICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCI+XHJcbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJmZWlsZC52YWx1ZVwiIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cInAtMiBtdC0yXCIgW2F0dHIuaWRdPVwiZmVpbGQudmFsdWVcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvckNvZGVcIiBbc3R5bGUuY29sb3JdPVwiZ2V0VGV4dENvbG9yXCIgWyhuZ01vZGVsKV09XCJmZWlsZC5pbnB1dFZhbHVlXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0VudGVyICcrZmVpbGQubGFiZWxcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidwYXNzd29yZCdcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwicC0yIG10LTJcIiBbYXR0ci5pZF09XCJmZWlsZC52YWx1ZVwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3JcIiBbKG5nTW9kZWwpXT1cImZlaWxkLmlucHV0VmFsdWVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInRW50ZXIgJytmZWlsZC5sYWJlbFwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1yLTJcIiAqbmdTd2l0Y2hDYXNlPVwiJ3JhdGluZydcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtc3RhclwiICpuZ0Zvcj1cImxldCBfIG9mIFtdLmNvbnN0cnVjdG9yKDUpOyBsZXQgaWR4ID0gaW5kZXhcIiBbbmdDbGFzc109XCJ7J2NoZWNrZWQnOiBpZHggPCAocmF0aW5nSG92ZXJJbmRleCA/PyBmZWlsZC52YWx1ZSkgIH1cIiAobW91c2VlbnRlcik9XCJyYXRpbmdIb3ZlckluZGV4ID0gaWR4ICsxXCIgKG1vdXNlbGVhdmUpPVwicmF0aW5nSG92ZXJJbmRleCA9IG51bGxcIiAoY2xpY2spPVwiZmVpbGQudmFsdWUgPSBpZHggKzFcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbXItMlwiICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+e3sgZmVpbGQudmFsdWUgfX0gPHN1cCAqbmdJZj1cImZlaWxkLnJlcXVpcmVkXCI+Kjwvc3VwPjwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRlXCIgY2xhc3M9XCJwLTIgbXQtMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiIFsobmdNb2RlbCldPVwiZmVpbGQuaW5wdXRWYWx1ZVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbXItMlwiICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJmZWlsZC52YWx1ZVwiIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBtdC0yXCIgc3R5bGU9XCJnYXA6IDEwcHg7aGVpZ2h0OjQwcHhcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hlY2tib3ggb2YgZmVpbGQub3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbYXR0ci5pZF09XCJjaGVja2JveC52YWx1ZVwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3JcIiAgWyhuZ01vZGVsKV09XCJjaGVja2JveC5zdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImNoZWNrYm94LnZhbHVlXCIgY2xhc3M9XCJtYi0wIG10LTEgY2hlY2tib3hGb250XCI+e3sgY2hlY2tib3gudmFsdWUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImZlaWxkLnZhbHVlXCIgW3NpbXBvQ29sb3JdPVwiYmdDb2xvclwiIFtpZF09XCJzZWN0aW9uSWRcIiBjbGFzcz1cImlucHV0LWZpZWxkLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBtdC0yXCIgc3R5bGU9XCJnYXA6IDEwcHg7IGhlaWdodDogNDBweDtcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hlY2tib3ggb2YgZmVpbGQub3B0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImNoZWNrYm94LnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZ2V0VGV4dENvbG9yXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2JveC5zdGF0dXNcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJjaGVja2JveC52YWx1ZVwiIGNsYXNzPVwibWItMCBtdC0xIGNoZWNrYm94Rm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjaGVja2JveC52YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XHJcbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJmZWlsZC52YWx1ZVwiIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJwLTIgbXQtMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiICBbKG5nTW9kZWwpXT1cImZlaWxkLmlucHV0VmFsdWVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInRW50ZXIgJytmZWlsZC5sYWJlbFwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1yLTJcIiAqbmdTd2l0Y2hDYXNlPVwiJ21vbmV5J1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiBbc2ltcG9Db2xvcl09XCJiZ0NvbG9yXCIgW2lkXT1cInNlY3Rpb25JZFwiIGNsYXNzPVwiaW5wdXQtZmllbGQtbGFiZWxcIj57eyBmZWlsZC52YWx1ZSB9fSA8c3VwICpuZ0lmPVwiZmVpbGQucmVxdWlyZWRcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInAtMiBtdC0yXCIgdmFsdWU9XCLigrlcIiAoa2V5ZG93bik9XCJoYW5kbGVNb25leUlucHV0KCRldmVudClcIiBbYXR0ci5pZF09XCJmZWlsZC52YWx1ZVwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3JcIiAgWyhuZ01vZGVsKV09XCJmZWlsZC5pbnB1dFZhbHVlXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0VudGVyICcrZmVpbGQubGFiZWxcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtci0yXCIgKm5nU3dpdGNoQ2FzZT1cIidkZXNjJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmVpbGQudmFsdWVcIiBbc2ltcG9Db2xvcl09XCJiZ0NvbG9yXCIgW2lkXT1cInNlY3Rpb25JZFwiIGNsYXNzPVwiaW5wdXQtZmllbGQtbGFiZWxcIj57eyBmZWlsZC52YWx1ZSB9fSA8c3VwICpuZ0lmPVwiZmVpbGQucmVxdWlyZWRcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJwLTIgbXQtMlwiIFthdHRyLmlkXT1cImZlaWxkLnZhbHVlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiICBbKG5nTW9kZWwpXT1cImZlaWxkLmlucHV0VmFsdWVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInRW50ZXIgJytmZWlsZC5sYWJlbFwiPjwvdGV4dGFyZWE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbXItMiBwb3NpdGlvbi1yZWxhdGl2ZVwiICpuZ1N3aXRjaENhc2U9XCInZHJvcGRvd24nXCI+XHJcbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJmZWlsZC52YWx1ZVwiIFtzaW1wb0NvbG9yXT1cImJnQ29sb3JcIiBbaWRdPVwic2VjdGlvbklkXCIgY2xhc3M9XCJpbnB1dC1maWVsZC1sYWJlbFwiPnt7IGZlaWxkLnZhbHVlIH19IDxzdXAgKm5nSWY9XCJmZWlsZC5yZXF1aXJlZFwiPio8L3N1cD48L2xhYmVsPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgbXQtMiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGRyb3Bkb3duLWtleVwiIChjbGljayk9XCJzZWxlY3RlZERyb3Bkb3duID09PSBmZWlsZC52YWx1ZSA/IHNlbGVjdGVkRHJvcGRvd24gPSBudWxsIDogc2VsZWN0ZWREcm9wZG93biA9IGZlaWxkLnZhbHVlXCIgXHJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yQ29kZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seSBbYXR0ci5pZF09XCJmZWlsZC52YWx1ZVwiICAgW3ZhbHVlXT1cImVudGVyZWRWYWx1ZVwiIFxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZlaWxkLmlucHV0VmFsdWVcIiBjbGFzcz1cInctMTAwXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JDb2RlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZG93bi1hcnJvd1wiPnt7ZmVpbGQudmFsdWUgIT0gc2VsZWN0ZWREcm9wZG93biA/ICdrZXlib2FyZF9hcnJvd19kb3duJyA6ICdrZXlib2FyZF9hcnJvd191cCd9fTwvbWF0LWljb24+XHJcbsKgwqDCoMKgwqDCoMKgwqA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxpc3QgcG9zaXRpb24tYWJzb2x1dGVcIiBbaGlkZGVuXT1cImZlaWxkLnZhbHVlICE9IHNlbGVjdGVkRHJvcGRvd25cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZlaWxkLm9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbbmdDbGFzc109XCJ7J2NvbnRhaW5lci1zZWxlY3RlZCc6IG9wdGlvbi52YWx1ZSA9PSBzZWxlY3RlZERyb3Bkb3dufVwiIChjbGljayk9XCJzZWxlY3REcm9wZG93bihvcHRpb24udmFsdWUpXCI+e3sgb3B0aW9uLnZhbHVlIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19