simpo-component-library 3.2.46 → 3.2.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/esm2022/lib/directive/button-editor.directive.mjs +48 -0
  2. package/esm2022/lib/directive/image-editor.directive.mjs +34 -24
  3. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +2 -2
  4. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +4 -3
  5. package/esm2022/lib/elements/editor-service.service.mjs +5 -1
  6. package/esm2022/lib/elements/image-editor/image-editor.component.mjs +3 -3
  7. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +7 -7
  8. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +8 -4
  9. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +7 -3
  10. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +2 -2
  11. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +2 -2
  12. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  13. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  14. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +5 -5
  15. package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +2 -2
  16. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +1 -1
  17. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +1 -1
  18. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  19. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  20. package/esm2022/lib/sections/footer/footer.component.mjs +2 -2
  21. package/esm2022/lib/sections/footer-section/footer-section.component.mjs +2 -2
  22. package/esm2022/lib/sections/header-text/header-text.component.mjs +2 -2
  23. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  24. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  25. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  26. package/esm2022/lib/sections/location-section/location-section.component.mjs +1 -1
  27. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  28. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +2 -2
  29. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  30. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +5 -4
  31. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  32. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +1 -1
  33. package/esm2022/lib/sections/service-section/service-section.component.mjs +2 -2
  34. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +1 -1
  35. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  36. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +4 -4
  37. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +1 -1
  38. package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +3 -3
  39. package/esm2022/lib/sections/text-section/text-section.component.mjs +2 -2
  40. package/esm2022/lib/sections/video-section/video-section.component.mjs +1 -1
  41. package/fesm2022/simpo-component-library.mjs +300 -235
  42. package/fesm2022/simpo-component-library.mjs.map +1 -1
  43. package/lib/directive/button-editor.directive.d.ts +16 -0
  44. package/lib/directive/image-editor.directive.d.ts +3 -5
  45. package/lib/elements/editor-service.service.d.ts +1 -0
  46. package/lib/elements/link-editor/link-editor.component.d.ts +3 -3
  47. package/lib/elements/simpo-button/simpo-button.component.d.ts +2 -1
  48. package/lib/elements/text-editor/text-editor.component.d.ts +3 -2
  49. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +3 -3
  50. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  51. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  52. package/package.json +1 -1
  53. package/simpo-component-library-3.2.47.tgz +0 -0
  54. package/simpo-component-library-3.2.46.tgz +0 -0
@@ -8,14 +8,14 @@ import { MatSelectModule } from '@angular/material/select';
8
8
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
9
9
  import { MatIconModule } from '@angular/material/icon';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../services/rest.service";
11
+ import * as i1 from "../editor-service.service";
12
12
  import * as i2 from "@angular/material/dialog";
13
13
  import * as i3 from "@angular/common";
14
14
  import * as i4 from "@angular/forms";
15
15
  import * as i5 from "@angular/material/icon";
16
16
  export class LinkEditorComponent {
17
- constructor(restService, dialogRef, data) {
18
- this.restService = restService;
17
+ constructor(editorService, dialogRef, data) {
18
+ this.editorService = editorService;
19
19
  this.dialogRef = dialogRef;
20
20
  this.data = data;
21
21
  this.link = {
@@ -68,7 +68,7 @@ export class LinkEditorComponent {
68
68
  this.dialogRef.close();
69
69
  }
70
70
  getTemplatePage() {
71
- this.restService.getTemplate().subscribe((res) => {
71
+ this.editorService.getTemplate().subscribe((res) => {
72
72
  this.templatePage = res.data;
73
73
  });
74
74
  }
@@ -79,14 +79,14 @@ export class LinkEditorComponent {
79
79
  addNewLink() {
80
80
  this.dialogRef.close({ link: this.link });
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LinkEditorComponent, deps: [{ token: i1.RestService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LinkEditorComponent, deps: [{ token: i1.ElementServiceService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
83
83
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: LinkEditorComponent, isStandalone: true, selector: "simpo-link-editor", ngImport: i0, template: "<section>\r\n <div class=\"header\">\r\n <p>Link Settings</p>\r\n <mat-icon (click)=\"closeDialog()\" class=\"f-18 d-flex align-items-center justify-content-center cp\">close</mat-icon>\r\n </div>\r\n\r\n <div class=\"body\">\r\n <div>\r\n <label class=\"link-text\">Link Text</label><br>\r\n <input type=\"text\" class=\"input-text link-text-input\" [(ngModel)]=\"link.label\">\r\n <p class=\"desc\">This is the text that will be displayed to users</p>\r\n </div>\r\n\r\n <hr>\r\n\r\n <div class=\"groups cp\">\r\n <div *ngFor=\"let type of linkType\" [ngClass]=\"{'selectedType' : type.type === selectedType}\"\r\n (click)=\"changeType(type.type)\">{{type.type}}</div>\r\n </div>\r\n\r\n <div class=\"field-container mt-3\">\r\n <div *ngIf=\"link.linkType === RedirectionLink.Page\">\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Page</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let page of templatePage\" [value]=\"page.id\" (click)=\"link.redirectionUrl=page.path\"\r\n style=\"padding: 10px;\">\r\n {{page.pageName}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <!-- <div class=\"sub-text\">Select from your existing pages</div> -->\r\n </div>\r\n\r\n <div *ngIf=\"link.linkType === RedirectionLink.section\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Section</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\">\r\n <option value=\"\" selected>Select the Section</option>\r\n <option *ngFor=\"let section of templatePage[0].components\" [value]=\"section.id\">{{section.sectionName}}\r\n </option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"link.linkType === RedirectionLink.External || link.linkType === RedirectionLink.Email || link.linkType === RedirectionLink.Phone\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Select type</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.linkType\">\r\n <option value=\"\" selected>Select the Type</option>\r\n <option *ngFor=\"let type of externalLinkType\" [value]=\"type.type\">{{type.type}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <label class=\"input-label mb-2\">{{link.linkType === RedirectionLink.External ? 'Website' : link.linkType ===\r\n RedirectionLink.Email ? 'Email Address' : 'Phone Number'}}</label>\r\n <input type=\"text\" class=\"input-text\" [(ngModel)]=\"link.redirectionUrl\"\r\n [placeholder]=\"link.linkType === RedirectionLink.External ? 'example : https://facebook.com': ''\">\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <label class=\"input-label-2\">Open in a new browser tab</label>\r\n <div class=\"form-check form-switch ml-auto\">\r\n <input class=\"form-check-input switch-btn\" type=\"checkbox\" [(ngModel)]=\"link.newTab\" role=\"switch\">\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"footer w-100 align-items-center justify-content-center\">\r\n <button *ngIf=\"addLink\" (click)=\"addNewLink()\">Update Link</button>\r\n </div>\r\n\r\n </div>\r\n\r\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}:host{--grey-color: rgba(250, 250, 250, 1)}.header{height:45px;display:flex;justify-content:space-between;border-bottom:2px solid #F0F0F0;align-items:center;padding-left:15px;padding-right:15px}.header p{font-size:16px;font-weight:600;font-family:var(--primary-font-family)}.body{padding:15px}.footer{height:45px;position:absolute;bottom:0;left:0;padding:0 15px}.footer button{border:unset;border-radius:10px;font-size:15px;font-weight:500;padding:5px;color:#fff;text-align:center;background:var(--primary-bg-color)}p{margin-bottom:0!important}.link-text{font-size:15px;font-weight:600;font-family:var(--primary-font-family);color:#434343;margin-bottom:10px}.input-text{height:37px;width:100%;border:1px solid var(--grey-color);border-radius:5px;outline:none;font-size:14px;padding:10px 20px;font-weight:400;color:#090909e6}.link-text-input{background-color:var(--grey-color)}.desc{margin-top:10px;font-size:13px;color:#09090980;font-weight:400;font-family:Inter;margin-bottom:25px!important}hr{border:1px solid rgba(116,116,116,.2)}.groups{display:flex;justify-content:space-between;margin-top:25px}.groups div{font-size:15px;font-weight:600;color:#2c2c2c99;padding:6px 30px;cursor:pointer}.selectedType{position:relative;display:inline-block;text-align:center;background:var(--primary-bg-color);background-clip:text;box-shadow:0 0 4px #00000040;border-radius:10px}.selectedType:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.f-18{font-size:18px}.mt-10{margin-top:10px}.drop-down-container{padding:10px;border-radius:8px;background:#fff}.drop-down-container select{width:90%;appearance:none;position:relative;outline:unset;border:unset;border-right:3px solid rgba(230,230,230,1);background:#fff;font-size:14px;padding:0 10px;border-radius:unset}.drop-down-container .down-arrow{width:10%;padding:0 6px}select option{padding:10px;background:#fff;color:#000}.field-container{background:var(--grey-color);border-radius:13px;padding:10px}.sub-text{font-size:13px;color:#09090980}.input-label-1{font-size:16px;font-weight:600}.input-label-2{color:#09090980}option:hover{background:var(--primary-bg-color)}.cp{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.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: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
84
84
  }
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LinkEditorComponent, decorators: [{
86
86
  type: Component,
87
87
  args: [{ selector: 'simpo-link-editor', standalone: true, imports: [CommonModule, FormsModule, MatOptionModule, MatInputModule, MatSelectModule, MatIconModule], template: "<section>\r\n <div class=\"header\">\r\n <p>Link Settings</p>\r\n <mat-icon (click)=\"closeDialog()\" class=\"f-18 d-flex align-items-center justify-content-center cp\">close</mat-icon>\r\n </div>\r\n\r\n <div class=\"body\">\r\n <div>\r\n <label class=\"link-text\">Link Text</label><br>\r\n <input type=\"text\" class=\"input-text link-text-input\" [(ngModel)]=\"link.label\">\r\n <p class=\"desc\">This is the text that will be displayed to users</p>\r\n </div>\r\n\r\n <hr>\r\n\r\n <div class=\"groups cp\">\r\n <div *ngFor=\"let type of linkType\" [ngClass]=\"{'selectedType' : type.type === selectedType}\"\r\n (click)=\"changeType(type.type)\">{{type.type}}</div>\r\n </div>\r\n\r\n <div class=\"field-container mt-3\">\r\n <div *ngIf=\"link.linkType === RedirectionLink.Page\">\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Page</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let page of templatePage\" [value]=\"page.id\" (click)=\"link.redirectionUrl=page.path\"\r\n style=\"padding: 10px;\">\r\n {{page.pageName}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <!-- <div class=\"sub-text\">Select from your existing pages</div> -->\r\n </div>\r\n\r\n <div *ngIf=\"link.linkType === RedirectionLink.section\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Section</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\">\r\n <option value=\"\" selected>Select the Section</option>\r\n <option *ngFor=\"let section of templatePage[0].components\" [value]=\"section.id\">{{section.sectionName}}\r\n </option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"link.linkType === RedirectionLink.External || link.linkType === RedirectionLink.Email || link.linkType === RedirectionLink.Phone\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Select type</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.linkType\">\r\n <option value=\"\" selected>Select the Type</option>\r\n <option *ngFor=\"let type of externalLinkType\" [value]=\"type.type\">{{type.type}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <label class=\"input-label mb-2\">{{link.linkType === RedirectionLink.External ? 'Website' : link.linkType ===\r\n RedirectionLink.Email ? 'Email Address' : 'Phone Number'}}</label>\r\n <input type=\"text\" class=\"input-text\" [(ngModel)]=\"link.redirectionUrl\"\r\n [placeholder]=\"link.linkType === RedirectionLink.External ? 'example : https://facebook.com': ''\">\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <label class=\"input-label-2\">Open in a new browser tab</label>\r\n <div class=\"form-check form-switch ml-auto\">\r\n <input class=\"form-check-input switch-btn\" type=\"checkbox\" [(ngModel)]=\"link.newTab\" role=\"switch\">\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"footer w-100 align-items-center justify-content-center\">\r\n <button *ngIf=\"addLink\" (click)=\"addNewLink()\">Update Link</button>\r\n </div>\r\n\r\n </div>\r\n\r\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}:host{--grey-color: rgba(250, 250, 250, 1)}.header{height:45px;display:flex;justify-content:space-between;border-bottom:2px solid #F0F0F0;align-items:center;padding-left:15px;padding-right:15px}.header p{font-size:16px;font-weight:600;font-family:var(--primary-font-family)}.body{padding:15px}.footer{height:45px;position:absolute;bottom:0;left:0;padding:0 15px}.footer button{border:unset;border-radius:10px;font-size:15px;font-weight:500;padding:5px;color:#fff;text-align:center;background:var(--primary-bg-color)}p{margin-bottom:0!important}.link-text{font-size:15px;font-weight:600;font-family:var(--primary-font-family);color:#434343;margin-bottom:10px}.input-text{height:37px;width:100%;border:1px solid var(--grey-color);border-radius:5px;outline:none;font-size:14px;padding:10px 20px;font-weight:400;color:#090909e6}.link-text-input{background-color:var(--grey-color)}.desc{margin-top:10px;font-size:13px;color:#09090980;font-weight:400;font-family:Inter;margin-bottom:25px!important}hr{border:1px solid rgba(116,116,116,.2)}.groups{display:flex;justify-content:space-between;margin-top:25px}.groups div{font-size:15px;font-weight:600;color:#2c2c2c99;padding:6px 30px;cursor:pointer}.selectedType{position:relative;display:inline-block;text-align:center;background:var(--primary-bg-color);background-clip:text;box-shadow:0 0 4px #00000040;border-radius:10px}.selectedType:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.f-18{font-size:18px}.mt-10{margin-top:10px}.drop-down-container{padding:10px;border-radius:8px;background:#fff}.drop-down-container select{width:90%;appearance:none;position:relative;outline:unset;border:unset;border-right:3px solid rgba(230,230,230,1);background:#fff;font-size:14px;padding:0 10px;border-radius:unset}.drop-down-container .down-arrow{width:10%;padding:0 6px}select option{padding:10px;background:#fff;color:#000}.field-container{background:var(--grey-color);border-radius:13px;padding:10px}.sub-text{font-size:13px;color:#09090980}.input-label-1{font-size:16px;font-weight:600}.input-label-2{color:#09090980}option:hover{background:var(--primary-bg-color)}.cp{cursor:pointer}\n"] }]
88
- }], ctorParameters: () => [{ type: i1.RestService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
88
+ }], ctorParameters: () => [{ type: i1.ElementServiceService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
89
89
  type: Inject,
90
90
  args: [MAT_DIALOG_DATA]
91
91
  }] }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9saW5rLWVkaXRvci9saW5rLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2xpbmstZWRpdG9yL2xpbmstZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFTdkQsTUFBTSxPQUFPLG1CQUFtQjtJQXlDOUIsWUFBb0IsV0FBd0IsRUFDbkMsU0FBNEMsRUFDbkIsSUFBUztRQUZ2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNuQyxjQUFTLEdBQVQsU0FBUyxDQUFtQztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBMUMzQyxTQUFJLEdBQVc7WUFDYixRQUFRLEVBQUcsbUJBQW1CLENBQUMsSUFBSTtZQUNuQyxLQUFLLEVBQUUsRUFBRTtZQUNULGNBQWMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDO1FBRUYsb0JBQWUsR0FBRyxtQkFBbUIsQ0FBQTtRQUNyQyxxQkFBZ0IsR0FBZ0I7WUFDOUI7Z0JBQ0UsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFFBQVE7YUFDbkM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsS0FBSzthQUNoQztZQUNEO2dCQUNFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO2FBQ2hDO1lBQ0QsSUFBSTtZQUNKLHNDQUFzQztZQUN0QyxJQUFJO1NBQ0wsQ0FBQTtRQUVELGlCQUFZLEdBQXdCLG1CQUFtQixDQUFDLElBQUksQ0FBQztRQUM3RCxhQUFRLEdBQVU7WUFDaEI7Z0JBQ0UsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7YUFDL0I7WUFDRDtnQkFDRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsT0FBTzthQUNsQztZQUNEO2dCQUNFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxRQUFRO2FBQ25DO1NBQ0YsQ0FBQTtRQUVELGlCQUFZLEdBQVMsRUFBRSxDQUFDO1FBQ3hCLFlBQU8sR0FBWSxJQUFJLENBQUM7SUFLckIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLG1CQUFtQixDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDOUssSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBeUI7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7OEdBM0VVLG1CQUFtQix5RUEyQ3BCLGVBQWU7a0dBM0NkLG1CQUFtQiw2RUNwQmhDLHN0SUFvRlUsNjRFRHBFRSxZQUFZLDZWQUFFLFdBQVcsMHJDQUFFLGVBQWUsOEJBQUUsY0FBYyw4QkFBRSxlQUFlLDhCQUFFLGFBQWE7OzJGQUl6RixtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDOzswQkErQ2xHLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWRpcmVjdGlvbkxpbmtUeXBlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWxpbmstZWRpdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRPcHRpb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpbmstZWRpdG9yLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW5rRWRpdG9yQ29tcG9uZW50IHtcclxuICBsaW5rOiBCdXR0b24gPSB7XHJcbiAgICBsaW5rVHlwZSA6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZSxcclxuICAgIGxhYmVsOiAnJyxcclxuICAgIHJlZGlyZWN0aW9uVXJsOiAnJyxcclxuICAgIHBhZ2VJZDogJycsXHJcbiAgICBuZXdUYWI6IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgUmVkaXJlY3Rpb25MaW5rID0gUmVkaXJlY3Rpb25MaW5rVHlwZVxyXG4gIGV4dGVybmFsTGlua1R5cGU6IEFycmF5PHR5cGU+ID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkVtYWlsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBob25lXHJcbiAgICB9XHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuc2VjdGlvblxyXG4gICAgLy8gfVxyXG4gIF1cclxuXHJcbiAgc2VsZWN0ZWRUeXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlID0gUmVkaXJlY3Rpb25MaW5rVHlwZS5QYWdlO1xyXG4gIGxpbmtUeXBlOiBhbnlbXSA9IFtcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5QYWdlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLnNlY3Rpb25cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuRXh0ZXJuYWxcclxuICAgIH1cclxuICBdXHJcblxyXG4gIHRlbXBsYXRlUGFnZTphbnlbXSA9IFtdO1xyXG4gIGFkZExpbms6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxMaW5rRWRpdG9yQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55XHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYWRkTGluayA9IHRydWU7XHJcblxyXG4gICAgaWYodGhpcy5kYXRhPy5saW5rRGF0YSkge1xyXG4gICAgICB0aGlzLmxpbmsgPSB0aGlzLmRhdGEubGlua0RhdGE7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdGhpcy5saW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmtUeXBlLkVtYWlsIHx8IHRoaXMubGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rVHlwZS5QaG9uZSA/IFJlZGlyZWN0aW9uTGlua1R5cGUuRXh0ZXJuYWwgOiAgdGhpcy5saW5rLmxpbmtUeXBlO1xyXG4gICAgICB0aGlzLmFkZExpbmsgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdldFRlbXBsYXRlUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGVQYWdlKCkge1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRUZW1wbGF0ZSgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZVBhZ2UgPSByZXMuZGF0YTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUeXBlKHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdHlwZTtcclxuICAgIHRoaXMubGluay5saW5rVHlwZSA9IHRoaXMuc2VsZWN0ZWRUeXBlO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3TGluaygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtsaW5rOiB0aGlzLmxpbmt9KVxyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIHR5cGUge1xyXG4gIHR5cGU6IHN0cmluZztcclxufVxyXG4iLCI8c2VjdGlvbj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICA8cD5MaW5rIFNldHRpbmdzPC9wPlxyXG4gICAgPG1hdC1pY29uIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgY2xhc3M9XCJmLTE4IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBjcFwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImxpbmstdGV4dFwiPkxpbmsgVGV4dDwvbGFiZWw+PGJyPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHQgbGluay10ZXh0LWlucHV0XCIgWyhuZ01vZGVsKV09XCJsaW5rLmxhYmVsXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwiZGVzY1wiPlRoaXMgaXMgdGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCB0byB1c2VyczwvcD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxocj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzIGNwXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHR5cGUgb2YgbGlua1R5cGVcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVHlwZScgOiB0eXBlLnR5cGUgPT09IHNlbGVjdGVkVHlwZX1cIlxyXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VUeXBlKHR5cGUudHlwZSlcIj57e3R5cGUudHlwZX19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtY29udGFpbmVyIG10LTNcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5QYWdlXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgUGFnZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLnBhZ2VJZFwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHRlbXBsYXRlUGFnZVwiIFt2YWx1ZV09XCJwYWdlLmlkXCIgKGNsaWNrKT1cImxpbmsucmVkaXJlY3Rpb25Vcmw9cGFnZS5wYXRoXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAge3twYWdlLnBhZ2VOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvd24tYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PGltZ1xyXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvZGl2PiAtLT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwibGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLnNlY3Rpb25cIj5cclxuICAgICAgICA8bGFiZWwgIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsucGFnZUlkXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgdGhlIFNlY3Rpb248L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiB0ZW1wbGF0ZVBhZ2VbMF0uY29tcG9uZW50c1wiIFt2YWx1ZV09XCJzZWN0aW9uLmlkXCI+e3tzZWN0aW9uLnNlY3Rpb25OYW1lfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI2ODQxMGMxNzQyMjg2MDUyOTQwRG93biUyMDIucG5nXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgfHwgbGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkVtYWlsIHx8IGxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5QaG9uZVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cIm10LTMgbWItMiBpbnB1dC1sYWJlbC0xXCI+U2VsZWN0IHR5cGU8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsubGlua1R5cGVcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IHRoZSBUeXBlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBleHRlcm5hbExpbmtUeXBlXCIgW3ZhbHVlXT1cInR5cGUudHlwZVwiPnt7dHlwZS50eXBlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI2ODQxMGMxNzQyMjg2MDUyOTQwRG93biUyMDIucG5nXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsIG1iLTJcIj57e2xpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCA/ICdXZWJzaXRlJyA6IGxpbmsubGlua1R5cGUgPT09XHJcbiAgICAgICAgICBSZWRpcmVjdGlvbkxpbmsuRW1haWwgPyAnRW1haWwgQWRkcmVzcycgOiAnUGhvbmUgTnVtYmVyJ319PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHRcIiBbKG5nTW9kZWwpXT1cImxpbmsucmVkaXJlY3Rpb25VcmxcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCA/ICdleGFtcGxlIDogaHR0cHM6Ly9mYWNlYm9vay5jb20nOiAnJ1wiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMTBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0yXCI+T3BlbiBpbiBhIG5ldyBicm93c2VyIHRhYjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbWwtYXV0b1wiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzd2l0Y2gtYnRuXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJsaW5rLm5ld1RhYlwiIHJvbGU9XCJzd2l0Y2hcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlciB3LTEwMCAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImFkZExpbmtcIiAoY2xpY2spPVwiYWRkTmV3TGluaygpXCI+VXBkYXRlIExpbms8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvc2VjdGlvbj4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9saW5rLWVkaXRvci9saW5rLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2xpbmstZWRpdG9yL2xpbmstZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFVdkQsTUFBTSxPQUFPLG1CQUFtQjtJQXlDOUIsWUFBb0IsYUFBb0MsRUFDL0MsU0FBNEMsRUFDbkIsSUFBUztRQUZ2QixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDL0MsY0FBUyxHQUFULFNBQVMsQ0FBbUM7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBSztRQTFDM0MsU0FBSSxHQUFXO1lBQ2IsUUFBUSxFQUFHLG1CQUFtQixDQUFDLElBQUk7WUFDbkMsS0FBSyxFQUFFLEVBQUU7WUFDVCxjQUFjLEVBQUUsRUFBRTtZQUNsQixNQUFNLEVBQUUsRUFBRTtZQUNWLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQztRQUVGLG9CQUFlLEdBQUcsbUJBQW1CLENBQUE7UUFDckMscUJBQWdCLEdBQWdCO1lBQzlCO2dCQUNFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxRQUFRO2FBQ25DO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEtBQUs7YUFDaEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsS0FBSzthQUNoQztZQUNELElBQUk7WUFDSixzQ0FBc0M7WUFDdEMsSUFBSTtTQUNMLENBQUE7UUFFRCxpQkFBWSxHQUF3QixtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUFDN0QsYUFBUSxHQUFVO1lBQ2hCO2dCQUNFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO2FBQy9CO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE9BQU87YUFDbEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUTthQUNuQztTQUNGLENBQUE7UUFFRCxpQkFBWSxHQUFTLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQVksSUFBSSxDQUFDO0lBS3JCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlLLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXlCO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUN6QyxDQUFDOzhHQTNFVSxtQkFBbUIsbUZBMkNwQixlQUFlO2tHQTNDZCxtQkFBbUIsNkVDckJoQyxzdElBb0ZVLDY0RURuRUUsWUFBWSw2VkFBRSxXQUFXLDByQ0FBRSxlQUFlLDhCQUFFLGNBQWMsOEJBQUUsZUFBZSw4QkFBRSxhQUFhOzsyRkFJekYsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQzs7MEJBK0NsRyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgUmVkaXJlY3Rpb25MaW5rVHlwZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBFbGVtZW50U2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9lZGl0b3Itc2VydmljZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tbGluay1lZGl0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdE9wdGlvbk1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGluay1lZGl0b3IuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIExpbmtFZGl0b3JDb21wb25lbnQge1xyXG4gIGxpbms6IEJ1dHRvbiA9IHtcclxuICAgIGxpbmtUeXBlIDogUmVkaXJlY3Rpb25MaW5rVHlwZS5QYWdlLFxyXG4gICAgbGFiZWw6ICcnLFxyXG4gICAgcmVkaXJlY3Rpb25Vcmw6ICcnLFxyXG4gICAgcGFnZUlkOiAnJyxcclxuICAgIG5ld1RhYjogZmFsc2VcclxuICB9O1xyXG5cclxuICBSZWRpcmVjdGlvbkxpbmsgPSBSZWRpcmVjdGlvbkxpbmtUeXBlXHJcbiAgZXh0ZXJuYWxMaW5rVHlwZTogQXJyYXk8dHlwZT4gPSBbXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuRXh0ZXJuYWxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuRW1haWxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGhvbmVcclxuICAgIH1cclxuICAgIC8vIHtcclxuICAgIC8vICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5zZWN0aW9uXHJcbiAgICAvLyB9XHJcbiAgXVxyXG5cclxuICBzZWxlY3RlZFR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUgPSBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2U7XHJcbiAgbGlua1R5cGU6IGFueVtdID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuc2VjdGlvblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbFxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgdGVtcGxhdGVQYWdlOmFueVtdID0gW107XHJcbiAgYWRkTGluazogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdG9yU2VydmljZTogRWxlbWVudFNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPExpbmtFZGl0b3JDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnlcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hZGRMaW5rID0gdHJ1ZTtcclxuXHJcbiAgICBpZih0aGlzLmRhdGE/LmxpbmtEYXRhKSB7XHJcbiAgICAgIHRoaXMubGluayA9IHRoaXMuZGF0YS5saW5rRGF0YTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0aGlzLmxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGlua1R5cGUuRW1haWwgfHwgdGhpcy5saW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmtUeXBlLlBob25lID8gUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbCA6ICB0aGlzLmxpbmsubGlua1R5cGU7XHJcbiAgICAgIHRoaXMuYWRkTGluayA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2V0VGVtcGxhdGVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0VGVtcGxhdGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGVQYWdlID0gcmVzLmRhdGE7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlVHlwZSh0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmxpbmsubGlua1R5cGUgPSB0aGlzLnNlbGVjdGVkVHlwZTtcclxuICB9XHJcblxyXG4gIGFkZE5ld0xpbmsoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7bGluazogdGhpcy5saW5rfSlcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSB0eXBlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbn1cclxuIiwiPHNlY3Rpb24+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgPHA+TGluayBTZXR0aW5nczwvcD5cclxuICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiIGNsYXNzPVwiZi0xOCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgY3BcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJib2R5XCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJsaW5rLXRleHRcIj5MaW5rIFRleHQ8L2xhYmVsPjxicj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC10ZXh0IGxpbmstdGV4dC1pbnB1dFwiIFsobmdNb2RlbCldPVwibGluay5sYWJlbFwiPlxyXG4gICAgICA8cCBjbGFzcz1cImRlc2NcIj5UaGlzIGlzIHRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdXNlcnM8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8aHI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImdyb3VwcyBjcFwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0eXBlIG9mIGxpbmtUeXBlXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFR5cGUnIDogdHlwZS50eXBlID09PSBzZWxlY3RlZFR5cGV9XCJcclxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlVHlwZSh0eXBlLnR5cGUpXCI+e3t0eXBlLnR5cGV9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbnRhaW5lciBtdC0zXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGFnZVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTEgbXQtMyBtYi0yXCI+U2VsZWN0IFBhZ2U8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwibGluay5wYWdlSWRcIj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiB0ZW1wbGF0ZVBhZ2VcIiBbdmFsdWVdPVwicGFnZS5pZFwiIChjbGljayk9XCJsaW5rLnJlZGlyZWN0aW9uVXJsPXBhZ2UucGF0aFwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgIHt7cGFnZS5wYWdlTmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI2ODQxMGMxNzQyMjg2MDUyOTQwRG93biUyMDIucG5nXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L2Rpdj4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5zZWN0aW9uXCI+XHJcbiAgICAgICAgPGxhYmVsICBjbGFzcz1cIm10LTMgbWItMiBpbnB1dC1sYWJlbC0xXCI+U2VjdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLnBhZ2VJZFwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IHRoZSBTZWN0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgdGVtcGxhdGVQYWdlWzBdLmNvbXBvbmVudHNcIiBbdmFsdWVdPVwic2VjdGlvbi5pZFwiPnt7c2VjdGlvbi5zZWN0aW9uTmFtZX19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8yNjg0MTBjMTc0MjI4NjA1Mjk0MERvd24lMjAyLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwibGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsIHx8IGxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FbWFpbCB8fCBsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGhvbmVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJtdC0zIG1iLTIgaW5wdXQtbGFiZWwtMVwiPlNlbGVjdCB0eXBlPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLmxpbmtUeXBlXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCB0aGUgVHlwZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgZXh0ZXJuYWxMaW5rVHlwZVwiIFt2YWx1ZV09XCJ0eXBlLnR5cGVcIj57e3R5cGUudHlwZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8yNjg0MTBjMTc0MjI4NjA1Mjk0MERvd24lMjAyLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbCBtYi0yXCI+e3tsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgPyAnV2Vic2l0ZScgOiBsaW5rLmxpbmtUeXBlID09PVxyXG4gICAgICAgICAgUmVkaXJlY3Rpb25MaW5rLkVtYWlsID8gJ0VtYWlsIEFkZHJlc3MnIDogJ1Bob25lIE51bWJlcid9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC10ZXh0XCIgWyhuZ01vZGVsKV09XCJsaW5rLnJlZGlyZWN0aW9uVXJsXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgPyAnZXhhbXBsZSA6IGh0dHBzOi8vZmFjZWJvb2suY29tJzogJydcIj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTEwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMlwiPk9wZW4gaW4gYSBuZXcgYnJvd3NlciB0YWI8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1sLWF1dG9cIj5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc3dpdGNoLWJ0blwiIHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwibGluay5uZXdUYWJcIiByb2xlPVwic3dpdGNoXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXIgdy0xMDAgIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRMaW5rXCIgKGNsaWNrKT1cImFkZE5ld0xpbmsoKVwiPlVwZGF0ZSBMaW5rPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG48L3NlY3Rpb24+Il19
@@ -1,5 +1,6 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import { ButtonDirectiveDirective } from '../..//directive/button-directive.directive';
3
+ import { ButtonEditorDirective } from '../../directive/button-editor.directive';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "../../services/events.service";
5
6
  export class SimpoButtonComponent {
@@ -7,6 +8,7 @@ export class SimpoButtonComponent {
7
8
  this._eventService = _eventService;
8
9
  this.buttonId = '';
9
10
  this.sectionId = '';
11
+ this.edit = false;
10
12
  }
11
13
  ngOnInit() {
12
14
  }
@@ -16,11 +18,11 @@ export class SimpoButtonComponent {
16
18
  this._eventService.buttonRedirection.emit({ data: this.buttonContent });
17
19
  }
18
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoButtonComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: SimpoButtonComponent, isStandalone: true, selector: "app-button-element", inputs: { buttonContent: "buttonContent", buttonStyle: "buttonStyle", buttonId: "buttonId", color: "color", sectionId: "sectionId" }, ngImport: i0, template: "<button class=\"button\" (click)=\"redirectTo()\" simpoButtonDirective [id]=\"sectionId+buttonId\" [buttonStyle]=\"buttonStyle\" [color]=\"color\">{{buttonContent?.label}}</button>\r\n", styles: [".button{font-size:14px!important;padding:8px 20px;display:inline-flex;align-items:center;justify-content:center;width:max-content!important;font-weight:600}\n"], dependencies: [{ kind: "directive", type: ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue"] }] }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: SimpoButtonComponent, isStandalone: true, selector: "app-button-element", inputs: { buttonContent: "buttonContent", buttonStyle: "buttonStyle", buttonId: "buttonId", color: "color", sectionId: "sectionId", edit: "edit" }, ngImport: i0, template: "<button class=\"button\" (click)=\"redirectTo()\" simpoButtonDirective [id]=\"sectionId+buttonId\" [buttonStyle]=\"buttonStyle\" [color]=\"color\" [appButtonEditor]=\"edit ?? false\" [buttonData]=\"buttonContent\">{{buttonContent?.label}}</button>\r\n", styles: [".button{font-size:14px!important;padding:8px 20px;display:inline-flex;align-items:center;justify-content:center;width:max-content!important;font-weight:600}\n"], dependencies: [{ kind: "directive", type: ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue"] }, { kind: "directive", type: ButtonEditorDirective, selector: "button[appButtonEditor]", inputs: ["appButtonEditor", "buttonData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
22
  }
21
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoButtonComponent, decorators: [{
22
24
  type: Component,
23
- args: [{ selector: 'app-button-element', standalone: true, imports: [ButtonDirectiveDirective], template: "<button class=\"button\" (click)=\"redirectTo()\" simpoButtonDirective [id]=\"sectionId+buttonId\" [buttonStyle]=\"buttonStyle\" [color]=\"color\">{{buttonContent?.label}}</button>\r\n", styles: [".button{font-size:14px!important;padding:8px 20px;display:inline-flex;align-items:center;justify-content:center;width:max-content!important;font-weight:600}\n"] }]
25
+ args: [{ selector: 'app-button-element', standalone: true, imports: [ButtonDirectiveDirective, ButtonEditorDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"button\" (click)=\"redirectTo()\" simpoButtonDirective [id]=\"sectionId+buttonId\" [buttonStyle]=\"buttonStyle\" [color]=\"color\" [appButtonEditor]=\"edit ?? false\" [buttonData]=\"buttonContent\">{{buttonContent?.label}}</button>\r\n", styles: [".button{font-size:14px!important;padding:8px 20px;display:inline-flex;align-items:center;justify-content:center;width:max-content!important;font-weight:600}\n"] }]
24
26
  }], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { buttonContent: [{
25
27
  type: Input
26
28
  }], buttonStyle: [{
@@ -31,5 +33,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
31
33
  type: Input
32
34
  }], sectionId: [{
33
35
  type: Input
36
+ }], edit: [{
37
+ type: Input
34
38
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcG8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWxlbWVudHMvc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3NpbXBvLWJ1dHRvbi9zaW1wby1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQVd2RixNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBTHZDLGFBQVEsR0FBWSxFQUFFLENBQUM7UUFFdkIsY0FBUyxHQUFhLEVBQUUsQ0FBQTtJQUdpQixDQUFDO0lBRW5ELFFBQVE7SUFFUixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsY0FBYztZQUNuRSxPQUFPO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQzs4R0FsQlUsb0JBQW9CO2tHQUFwQixvQkFBb0Isb05DWmpDLDBMQUNBLHdORE9ZLHdCQUF3Qjs7MkZBSXZCLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsd0JBQXdCLENBQUM7a0ZBSzFCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQnV0dG9uLCBCdXR0b25TdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJ1dHRvbi1lbGVtZW50JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaW1wby1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zaW1wby1idXR0b24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBvQnV0dG9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBidXR0b25Db250ZW50PyA6IEJ1dHRvbjtcclxuICBASW5wdXQoKSBidXR0b25TdHlsZT8gOiBCdXR0b25TdHlsZU1vZGVsO1xyXG4gIEBJbnB1dCgpIGJ1dHRvbklkIDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgY29sb3I/IDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25JZD8gOiBzdHJpbmcgPSAnJ1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlKXt9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUbygpe1xyXG4gICAgaWYoIXRoaXMuYnV0dG9uQ29udGVudD8ucGFnZUlkICYmICF0aGlzLmJ1dHRvbkNvbnRlbnQ/LnJlZGlyZWN0aW9uVXJsKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7ZGF0YTogdGhpcy5idXR0b25Db250ZW50fSk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwicmVkaXJlY3RUbygpXCIgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cInNlY3Rpb25JZCtidXR0b25JZFwiIFtidXR0b25TdHlsZV09XCJidXR0b25TdHlsZVwiIFtjb2xvcl09XCJjb2xvclwiPnt7YnV0dG9uQ29udGVudD8ubGFiZWx9fTwvYnV0dG9uPlxyXG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcG8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWxlbWVudHMvc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3NpbXBvLWJ1dHRvbi9zaW1wby1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFHdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQVVoRixNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBTnZDLGFBQVEsR0FBWSxFQUFFLENBQUM7UUFFdkIsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQUN6QixTQUFJLEdBQWEsS0FBSyxDQUFDO0lBR2tCLENBQUM7SUFFbkQsUUFBUTtJQUVSLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjO1lBQ25FLE9BQU87UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDOzhHQW5CVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixrT0NkakMsNlBBQ0Esd05EUVksd0JBQXdCLG9IQUFFLHFCQUFxQjs7MkZBSzlDLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsd0JBQXdCLEVBQUUscUJBQXFCLENBQUMsbUJBR3pDLHVCQUF1QixDQUFDLE1BQU07a0ZBR3RDLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b24sIEJ1dHRvblN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b25FZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWVkaXRvci5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYnV0dG9uLWVsZW1lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0J1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSwgQnV0dG9uRWRpdG9yRGlyZWN0aXZlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2ltcG8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2ltcG8tYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW1wb0J1dHRvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgYnV0dG9uQ29udGVudD8gOiBCdXR0b247XHJcbiAgQElucHV0KCkgYnV0dG9uU3R5bGU/IDogQnV0dG9uU3R5bGVNb2RlbDtcclxuICBASW5wdXQoKSBidXR0b25JZCA6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGNvbG9yPyA6IHN0cmluZztcclxuICBASW5wdXQoKSBzZWN0aW9uSWQ/IDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSl7fVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG5cclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG8oKXtcclxuICAgIGlmKCF0aGlzLmJ1dHRvbkNvbnRlbnQ/LnBhZ2VJZCAmJiAhdGhpcy5idXR0b25Db250ZW50Py5yZWRpcmVjdGlvblVybClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmJ1dHRvblJlZGlyZWN0aW9uLmVtaXQoe2RhdGE6IHRoaXMuYnV0dG9uQ29udGVudH0pO1xyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlZGlyZWN0VG8oKVwiIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJzZWN0aW9uSWQrYnV0dG9uSWRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uU3R5bGVcIiBbY29sb3JdPVwiY29sb3JcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIiBbYnV0dG9uRGF0YV09XCJidXR0b25Db250ZW50XCI+e3tidXR0b25Db250ZW50Py5sYWJlbH19PC9idXR0b24+XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, Inject, Input, PLATFORM_ID, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, Inject, Input, Output, PLATFORM_ID, ViewChild } from '@angular/core';
2
2
  import { FormsModule } from '@angular/forms';
3
3
  import { ContenteditableValueAccessor } from '../../directive/contenteditable.directive';
4
4
  import { CommonModule, isPlatformBrowser } from '@angular/common';
@@ -13,6 +13,7 @@ export class TextEditorComponent {
13
13
  this.editorService = editorService;
14
14
  this.platformId = platformId;
15
15
  this.value = '<p>Hello this is palash makhija</p>';
16
+ this.valueChange = new EventEmitter();
16
17
  this.editable = false;
17
18
  this.show = false;
18
19
  this.toolbarY = 0;
@@ -143,6 +144,7 @@ export class TextEditorComponent {
143
144
  // this.show = false;
144
145
  }
145
146
  updateText(event) {
147
+ this.valueChange.emit(this.value);
146
148
  }
147
149
  onFormatChange(event) {
148
150
  const selectedValue = event.target.value;
@@ -221,7 +223,7 @@ export class TextEditorComponent {
221
223
  });
222
224
  }
223
225
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextEditorComponent, deps: [{ token: i1.ElementServiceService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
224
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TextEditorComponent, isStandalone: true, selector: "simpo-text-editor", inputs: { value: "value", editable: "editable", sectionId: "sectionId", label: "label" }, viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true }, { propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true }, { propertyName: "parentElement", first: true, predicate: ["parentElement"], descendants: true }, { propertyName: "suggestion", first: true, predicate: ["suggestion"], descendants: true }], ngImport: i0, template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\" #parentElement>\r\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\r\n (input)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\r\n </div>\r\n\r\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" #toolbar >\r\n <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\r\n <option value=\"H1\">Heading1</option>\r\n <option value=\"H2\">Heading2</option>\r\n <option value=\"H3\">Heading3</option>\r\n <option value=\"div\">Text</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\r\n\r\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\r\n <option value=\"\" selected>Default</option>\r\n <option value=\"18px\">Small</option>\r\n <option value=\"24px\">Medium</option>\r\n <option value=\"32px\">Large</option>\r\n <option value=\"48px\">Extra Large</option>\r\n <option value=\"72px\">Huge</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\r\n\r\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\r\n\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"suggestion-box\" [ngStyle]=\"{'top.px': suggestionY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" *ngIf=\"editable && label && showSuggestion\" #suggestion>\r\n <div class=\"suggestion\" (click)=\"regenerateText()\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/887493c1742273970151Frame%201244831740.png\" alt=\"\">\r\n <div>\r\n <p class=\"name\">Regenerate Text</p>\r\n <p class=\"desc\">Get a fresh variation of a current text</p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".toolbar,.tool option{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.editor-container{position:relative;display:inline-block;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background:linear-gradient(94.22deg,#283e90 -4.45%,#f000e8 111.88%)!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}.suggestion-box{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;z-index:10000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:10px}.suggestion{display:flex;gap:10px;width:307px;align-items:center;cursor:pointer}.suggestion img{border-radius:5px;width:32px;height:32px;background:#faf1fc;padding:3px}.suggestion .name{color:#000;font-family:var(--primary-font-family)}.suggestion .desc{color:#000;font-size:12px;color:#918585;font-family:var(--primary-font-family)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ContenteditableValueAccessor, selector: "[contenteditable][ngModel]", inputs: ["contenteditable"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TextEditorComponent, isStandalone: true, selector: "simpo-text-editor", inputs: { value: "value", editable: "editable", sectionId: "sectionId", label: "label" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true }, { propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true }, { propertyName: "parentElement", first: true, predicate: ["parentElement"], descendants: true }, { propertyName: "suggestion", first: true, predicate: ["suggestion"], descendants: true }], ngImport: i0, template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\" #parentElement>\r\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\r\n (input)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\r\n </div>\r\n\r\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" #toolbar >\r\n <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\r\n <option value=\"H1\">Heading1</option>\r\n <option value=\"H2\">Heading2</option>\r\n <option value=\"H3\">Heading3</option>\r\n <option value=\"div\">Text</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\r\n\r\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\r\n <option value=\"\" selected>Default</option>\r\n <option value=\"18px\">Small</option>\r\n <option value=\"24px\">Medium</option>\r\n <option value=\"32px\">Large</option>\r\n <option value=\"48px\">Extra Large</option>\r\n <option value=\"72px\">Huge</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\r\n\r\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\r\n\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"suggestion-box\" [ngStyle]=\"{'top.px': suggestionY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" *ngIf=\"editable && label && showSuggestion\" #suggestion>\r\n <div class=\"suggestion\" (click)=\"regenerateText()\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/887493c1742273970151Frame%201244831740.png\" alt=\"\">\r\n <div>\r\n <p class=\"name\">Regenerate Text</p>\r\n <p class=\"desc\">Get a fresh variation of a current text</p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".toolbar,.tool option{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.editor-container{position:relative;display:inline-block;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background:linear-gradient(94.22deg,#283e90 -4.45%,#f000e8 111.88%)!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}.suggestion-box{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;z-index:10000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:10px}.suggestion{display:flex;gap:10px;width:307px;align-items:center;cursor:pointer}.suggestion img{border-radius:5px;width:32px;height:32px;background:#faf1fc;padding:3px}.suggestion .name{color:#000;font-family:var(--primary-font-family)}.suggestion .desc{color:#000;font-size:12px;color:#918585;font-family:var(--primary-font-family)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ContenteditableValueAccessor, selector: "[contenteditable][ngModel]", inputs: ["contenteditable"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
225
227
  }
226
228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextEditorComponent, decorators: [{
227
229
  type: Component,
@@ -251,6 +253,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
251
253
  args: ['suggestion', { static: false }]
252
254
  }], value: [{
253
255
  type: Input
256
+ }], valueChange: [{
257
+ type: Output
254
258
  }], editable: [{
255
259
  type: Input
256
260
  }], sectionId: [{
@@ -258,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
258
262
  }], label: [{
259
263
  type: Input
260
264
  }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFnQnZELE1BQU0sT0FBTyxtQkFBbUI7SUE0QjlCLFlBQW9CLGFBQXFDLEVBQzFCLFVBQWtCO1FBRDdCLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBdEJ4QyxVQUFLLEdBQVcscUNBQXFDLENBQUM7UUFDdEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUluQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsZ0JBQVcsR0FBUTtZQUNqQixlQUFlLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVB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LEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQTtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7OEdBblBVLG1CQUFtQix1REE2QnBCLFdBQVc7a0dBN0JWLG1CQUFtQix1bkJDcEJoQyw2bEhBaURBLDB2RERyQ0ksWUFBWSxxVEFDWixXQUFXLDBnQ0FDWCw0QkFBNEIsbUdBQzVCLGFBQWE7OzJGQUtKLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCw0QkFBNEI7d0JBQzVCLGFBQWE7cUJBQ2Q7OzBCQWlDRSxNQUFNOzJCQUFDLFdBQVc7eUNBNUJvQixPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0MsTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNaLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDSSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ2tCLFVBQVU7c0JBQXJELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFakMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnRlbnRlZGl0YWJsZVZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudGVkaXRhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudFNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vZWRpdG9yLXNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXRleHQtZWRpdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29udGVudGVkaXRhYmxlVmFsdWVBY2Nlc3NvcixcclxuICAgIE1hdEljb25Nb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0RWRpdG9yQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCd0b29sYmFyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRvb2xiYXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3IhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbG9yUGlja2VyJykgY29sb3JQaWNrZXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3BhcmVudEVsZW1lbnQnKSBwYXJlbnRFbGVtZW50ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdzdWdnZXN0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIHN1Z2dlc3Rpb24hOiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gJzxwPkhlbGxvIHRoaXMgaXMgcGFsYXNoIG1ha2hpamE8L3A+JztcclxuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25JZD86IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgc2hvdyA9IGZhbHNlO1xyXG4gIHRvb2xiYXJZID0gMDtcclxuICBzdWdnZXN0aW9uWSA9IDA7XHJcbiAgcmlnaHRaZXJvOiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93U3VnZ2VzdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRvb2xiYXJEYXRhOiBhbnkgPSB7XHJcbiAgICBzZWxlY3RlZEhlYWRpbmc6ICcnLFxyXG4gICAgaXNCb2xkOiBmYWxzZSxcclxuICAgIGlzSXRhbGljOiBmYWxzZSxcclxuICAgIGlzVW5kZXJsaW5lZDogZmFsc2UsXHJcbiAgICBzZWxlY3RlZFNpemU6ICcnLFxyXG4gICAgc2VsZWN0ZWRMaXN0OiAnJyxcclxuICAgIHNlbGVjdGVkQWxpZ25tZW50OiAnJyxcclxuICAgIHNlbGVjdGVkQ29sb3I6ICcnXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2UgOiBFbGVtZW50U2VydmljZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oaWRlVG9vbGJhci5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oaWRlVG9vbGJhci5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dUb29sYmFyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgIXRoaXMuZWRpdGFibGUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZihzZWxlY3Rpb24gPT0gbnVsbClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XHJcbiAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBwYXJlbnRSZWN0ID0gdGhpcy5wYXJlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCB0b3BGcm9tUGFyZW50ID0gcmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcDtcclxuXHJcbiAgICBpZihzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XHJcbiAgICAgIHRoaXMuc3VnZ2VzdGlvblkgPSB0b3BGcm9tUGFyZW50ICsgMzA7XHJcbiAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnRvU3RyaW5nKCkudHJpbSgpICE9PSAnJykge1xyXG4gICAgICBjb25zdCB0b29sYmFyV2lkdGggPSA2MzA7XHJcblxyXG4gICAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgIGNvbnN0IHJpZ2h0UG9zaXRvbiA9IHZpZXdwb3J0V2lkdGggLSBwYXJlbnRSZWN0LmxlZnQ7XHJcbiAgICAgIGlmKHJpZ2h0UG9zaXRvbiArIHRvb2xiYXJXaWR0aCA+IHZpZXdwb3J0V2lkdGgpe1xyXG4gICAgICAgIHRoaXMucmlnaHRaZXJvID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLnJpZ2h0WmVybyA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudG9vbGJhclkgPSB0b3BGcm9tUGFyZW50ICsgMzA7XHJcblxyXG4gICAgICB0aGlzLnJlRm9ybWF0dGluZ0RhdGEoKTtcclxuICAgICAgdGhpcy5yZWFkRm9ybWF0dGluZ1Byb3BlcnRpZXMoKTtcclxuXHJcbiAgICAgIHRoaXMuc2hvdyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGVUb29sYmFyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgIXRoaXMuZWRpdGFibGUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlRWRpdG9yID0gdGhpcy5lZGl0b3I/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVUb29sYmFyID0gdGhpcy50b29sYmFyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlU3VnZ2VzdGlvbiA9IHRoaXMuc3VnZ2VzdGlvbj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xyXG5cclxuICAgIC8vIEhpZGUgdGhlIHRvb2xiYXIgaWYgdGhlIGNsaWNrIGlzIG91dHNpZGUgYm90aCB0aGUgZWRpdG9yIGFuZCB0b29sYmFyXHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGVFZGl0b3IgJiYgIWNsaWNrZWRJbnNpZGVUb29sYmFyKSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIWNsaWNrZWRJbnNpZGVFZGl0b3IgJiYgIWNsaWNrZWRJbnNpZGVTdWdnZXN0aW9uKXtcclxuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0VGV4dChjb21tYW5kOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgPSAnJykge1xyXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XHJcblxyXG4gICAgLy8gICBpZiAoY29tbWFuZCA9PT0gJ2Zvcm1hdEJsb2NrJykge1xyXG4gIC8vICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgLy8gICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XHJcblxyXG4gIC8vICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xyXG4gIC8vICAgICBjb25zdCBzZWxlY3RlZFRleHQgPSBzZWxlY3Rpb24udG9TdHJpbmcoKTtcclxuXHJcbiAgLy8gICAgIGlmIChzZWxlY3RlZFRleHQpIHtcclxuICAvLyAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHZhbHVlKTtcclxuICAvLyAgICAgICAgIG5ld0VsZW1lbnQudGV4dENvbnRlbnQgPSBzZWxlY3RlZFRleHQ7XHJcblxyXG4gIC8vICAgICAgICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcclxuICAvLyAgICAgICAgIHJhbmdlLmluc2VydE5vZGUobmV3RWxlbWVudCk7XHJcblxyXG4gIC8vICAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmcgPSB2YWx1ZTtcclxuICAvLyAgICAgICAgIHJldHVybjtcclxuICAvLyAgICAgfVxyXG4gIC8vIH1cclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKGNvbW1hbmQsIGZhbHNlLCB2YWx1ZSk7XHJcblxyXG4gICAgaWYoY29tbWFuZCA9PT0gJ2JvbGQnKVxyXG4gICAgICB0aGlzLnRvb2xiYXJEYXRhLmlzQm9sZCA9ICF0aGlzLnRvb2xiYXJEYXRhLmlzQm9sZDtcclxuICAgIGlmKGNvbW1hbmQgPT09ICdpdGFsaWMnKVxyXG4gICAgICB0aGlzLnRvb2xiYXJEYXRhLmlzSXRhbGljID0gIXRoaXMudG9vbGJhckRhdGEuaXNJdGFsaWM7XHJcbiAgICBpZihjb21tYW5kID09PSAndW5kZXJsaW5lJylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5pc1VuZGVybGluZWQgPSAhdGhpcy50b29sYmFyRGF0YS5pc1VuZGVybGluZWRcclxuICAgIGlmKGNvbW1hbmQgPT09ICdpbnNlcnRPcmRlcmVkTGlzdCcgfHwgY29tbWFuZCA9PT0gJ2luc2VydFVub3JkZXJlZExpc3QnKVxyXG4gICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkTGlzdCA9IGNvbW1hbmQgPT09IHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRMaXN0ID8gJycgOiBjb21tYW5kO1xyXG4gICAgaWYoY29tbWFuZCA9PT0gJ2p1c3RpZnlMZWZ0JyB8fCBjb21tYW5kID09PSAnanVzdGlmeUNlbnRlcicgfHwgY29tbWFuZCA9PT0gJ2p1c3RpZnlSaWdodCcpXHJcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPSBjb21tYW5kID09PSB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkQWxpZ25tZW50ID8gJycgOiBjb21tYW5kO1xyXG4gICAgaWYoY29tbWFuZCA9PT0gJ2Zvcm1hdEJsb2NrJylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmcgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUZvbnRTaXplKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNpemUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcblxyXG4gICAgLy8gQXBwbHkgYSBkZWZhdWx0IHNpemUgb2YgNCAobmVlZGVkIGZvciBleGVjQ29tbWFuZCB0byB3b3JrKVxyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2ZvbnRTaXplJywgZmFsc2UsICc0Jyk7XHJcblxyXG4gICAgLy8gQ29udmVydCBzZWxlY3RlZCBmb250IGVsZW1lbnRzIHRvIGhhdmUgYWN0dWFsIGZvbnQtc2l6ZSBpbnN0ZWFkIG9mIFwic2l6ZVwiIGF0dHJpYnV0ZVxyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiZm9udFtzaXplPSc0J11cIik7XHJcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBlbCBhcyBIVE1MRWxlbWVudDsgLy8g4pyFIEV4cGxpY2l0bHkgY2FzdCB0byBIVE1MRWxlbWVudFxyXG4gICAgICBodG1sRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3NpemUnKTsgLy8gUmVtb3ZlIG9sZCBzaXplIGF0dHJpYnV0ZVxyXG4gICAgICBodG1sRWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IHNpemU7IC8vIEFwcGx5IENTUyBmb250IHNpemVcclxuICAgIH0pO1xyXG4gICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZFNpemUgPSBzaXplO1xyXG4gICAgLy8gdGhpcy5zaG93ID0gZmFsc2U7IC8vIEhpZGUgdG9vbGJhciBhZnRlciBhY3Rpb25cclxuICB9XHJcblxyXG4gIGNoYW5nZUNvbG9yKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGNvbG9yID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2ZvcmVDb2xvcicsIGZhbHNlLCBjb2xvcik7XHJcbiAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkQ29sb3IgPSBjb2xvcjtcclxuICAgIC8vIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGV4dChldmVudDogRXZlbnQpIHtcclxuICB9XHJcblxyXG4gIG9uRm9ybWF0Q2hhbmdlKGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgdGhpcy5mb3JtYXRUZXh0KCdmb3JtYXRCbG9jaycsIHNlbGVjdGVkVmFsdWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9wZW5Db2xvclBpY2tlcigpIHtcclxuICAgIHRoaXMuY29sb3JQaWNrZXIubmF0aXZlRWxlbWVudC5jbGljaygpOyAvLyBQcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXIgaW5wdXRcclxuICB9XHJcblxyXG4gIHJlYWRGb3JtYXR0aW5nUHJvcGVydGllcygpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm47XHJcbiAgICBjb25zdCBub2RlID0gc2VsZWN0aW9uLmZvY3VzTm9kZSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvLyBDaGVjayBpZiBub2RlIGlzIG51bGxcclxuICAgIGlmICghbm9kZSkgcmV0dXJuO1xyXG5cclxuICAgIGxldCBlbGVtZW50ID0gbm9kZS5wYXJlbnRFbGVtZW50O1xyXG4gICAgd2hpbGUgKGVsZW1lbnQpIHtcclxuICAgICAgY29uc3Qgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lO1xyXG5cclxuICAgICAgaWYgKG5vZGVOYW1lID09PSAnSDEnIHx8IG5vZGVOYW1lID09PSAnSDInIHx8IG5vZGVOYW1lID09PSAnSDMnKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmcgPSBub2RlTmFtZTtcclxuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ0InIHx8IG5vZGVOYW1lID09PSAnU1RST05HJykge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNCb2xkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ0knIHx8IG5vZGVOYW1lID09PSAnRU0nKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5pc0l0YWxpYyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICdVJykge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNVbmRlcmxpbmVkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ09MJykge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRMaXN0ID0gJ2luc2VydE9yZGVyZWRMaXN0JztcclxuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ1VMJykge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRMaXN0ID0gJ2luc2VydFVub3JkZXJlZExpc3QnO1xyXG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuc3R5bGUudGV4dEFsaWduKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9IGBqdXN0aWZ5JHtlbGVtZW50LnN0eWxlLnRleHRBbGlnbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGVsZW1lbnQuc3R5bGUudGV4dEFsaWduLnNsaWNlKDEpfWA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5zdHlsZS5mb250U2l6ZSkge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRTaXplID0gZWxlbWVudC5zdHlsZS5mb250U2l6ZTtcclxuICAgICAgfSBlbHNlIGlmKGVsZW1lbnQuc3R5bGUuY29sb3IpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkQ29sb3IgPSBlbGVtZW50LnN0eWxlLmNvbG9yXHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVGb3JtYXR0aW5nRGF0YSgpIHtcclxuICAgIHRoaXMudG9vbGJhckRhdGEgPSB7XHJcbiAgICAgIHNlbGVjdGVkSGVhZGluZzogJycsXHJcbiAgICAgIGlzQm9sZDogZmFsc2UsXHJcbiAgICAgIGlzSXRhbGljOiBmYWxzZSxcclxuICAgICAgaXNVbmRlcmxpbmVkOiBmYWxzZSxcclxuICAgICAgc2VsZWN0ZWRTaXplOiAnJyxcclxuICAgICAgc2VsZWN0ZWRMaXN0OiAnJyxcclxuICAgICAgc2VsZWN0ZWRBbGlnbm1lbnQ6ICcnLFxyXG4gICAgICBzZWxlY3RlZENvbG9yOiAnJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnZW5lcmF0ZVRleHQoKSB7XHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSxcclxuICAgICAgZGF0YUlkOiB0aGlzLnNlY3Rpb25JZCxcclxuICAgICAgc3ViSW5kdXN0cnlJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1YkluZHVzdHJ5SWQnKSxcclxuICAgICAgc3VnZ2VzdGVkRGF0YVR5cGU6ICdDT01QT05FTlQnLFxyXG4gICAgICB0b25lOiAnUFJPRkVTU0lPTkFMJyxcclxuICAgICAgdmFsdWU6IHRoaXMudmFsdWUgLFxyXG4gICAgICBsYWJlbDogdGhpcy5sYWJlbFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5yZWdlbmVyYXRlVGV4dChwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSByZXMuZGF0YTtcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydib3JkZXInOiBlZGl0YWJsZX1cIiAjcGFyZW50RWxlbWVudD5cclxuICA8ZGl2IFtjb250ZW50ZWRpdGFibGVdPVwiZWRpdGFibGVcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgY2xhc3M9XCJlZGl0YWJsZS10ZXh0XCIgKG1vdXNldXApPVwic2hvd1Rvb2xiYXIoJGV2ZW50KVwiICNlZGl0b3JcclxuICAgIChpbnB1dCk9XCJ1cGRhdGVUZXh0KCRldmVudClcIiAobW91c2Vkb3duKT1cImhpZGVUb29sYmFyKCRldmVudClcIj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRvb2xiYXJcIiAqbmdJZj1cImVkaXRhYmxlICYmIHNob3dcIiBbbmdTdHlsZV09XCJ7J3RvcC5weCc6IHRvb2xiYXJZfVwiIFtzdHlsZS5yaWdodF09XCJyaWdodFplcm8gPyAnMHB4JyA6ICdhdXRvJ1wiIFtzdHlsZS5sZWZ0XT1cIiFyaWdodFplcm8gPyAnMHB4JyA6ICdhdXRvJ1wiICN0b29sYmFyID5cclxuICAgIDxzZWxlY3QgY2xhc3M9XCJ0b29sXCIgKGNoYW5nZSk9XCJvbkZvcm1hdENoYW5nZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJ0b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmdcIj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIkgxXCI+SGVhZGluZzE8L29wdGlvbj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIkgyXCI+SGVhZGluZzI8L29wdGlvbj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIkgzXCI+SGVhZGluZzM8L29wdGlvbj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImRpdlwiPlRleHQ8L29wdGlvbj5cclxuICAgIDwvc2VsZWN0PlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2JvbGQnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuaXNCb2xkfVwiPjxtYXQtaWNvbj4gZm9ybWF0X2JvbGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnaXRhbGljJylcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVG9vbCc6IHRvb2xiYXJEYXRhLmlzSXRhbGljfVwiPjxtYXQtaWNvbj4gZm9ybWF0X2l0YWxpYzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbFwiIChjbGljayk9XCJmb3JtYXRUZXh0KCd1bmRlcmxpbmUnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuaXNVbmRlcmxpbmVkfVwiPjxtYXQtaWNvbj4gZm9ybWF0X3VuZGVybGluZWQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG5cclxuICAgIDxzZWxlY3QgY2xhc3M9XCJ0b29sXCIgKGNoYW5nZSk9XCJjaGFuZ2VGb250U2l6ZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJ0b29sYmFyRGF0YS5zZWxlY3RlZFNpemVcIj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPkRlZmF1bHQ8L29wdGlvbj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE4cHhcIj5TbWFsbDwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiMjRweFwiPk1lZGl1bTwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiMzJweFwiPkxhcmdlPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCI0OHB4XCI+RXh0cmEgTGFyZ2U8L29wdGlvbj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIjcycHhcIj5IdWdlPC9vcHRpb24+XHJcbiAgICA8L3NlbGVjdD5cclxuXHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbFwiIChjbGljayk9XCJmb3JtYXRUZXh0KCdpbnNlcnRPcmRlcmVkTGlzdCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPT09ICdpbnNlcnRPcmRlcmVkTGlzdCd9XCI+PG1hdC1pY29uPmZvcm1hdF9saXN0X251bWJlcmVkPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2luc2VydFVub3JkZXJlZExpc3QnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuc2VsZWN0ZWRMaXN0ID09PSAnaW5zZXJ0VW5vcmRlcmVkTGlzdCd9XCI+PG1hdC1pY29uPiBmb3JtYXRfbGlzdF9idWxsZXRlZDwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnanVzdGlmeUxlZnQnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPT09ICdqdXN0aWZ5TGVmdCd9XCI+PG1hdC1pY29uPiBmb3JtYXRfYWxpZ25fbGVmdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbFwiIChjbGljayk9XCJmb3JtYXRUZXh0KCdqdXN0aWZ5Q2VudGVyJylcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVG9vbCc6IHRvb2xiYXJEYXRhLnNlbGVjdGVkQWxpZ25tZW50ID09PSAnanVzdGlmeUNlbnRlcid9XCI+PG1hdC1pY29uPiBmb3JtYXRfYWxpZ25fY2VudGVyPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2p1c3RpZnlSaWdodCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9PT0gJ2p1c3RpZnlSaWdodCd9XCI+PG1hdC1pY29uPiBmb3JtYXRfYWxpZ25fcmlnaHQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sIGNvbG9yLXBpY2tlci1idG5cIiAoY2xpY2spPVwib3BlbkNvbG9yUGlja2VyKClcIj5cclxuICAgICAgPG1hdC1pY29uPmZvcm1hdF9jb2xvcl90ZXh0PC9tYXQtaWNvbj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiICNjb2xvclBpY2tlciBjbGFzcz1cImhpZGRlbi1jb2xvci1waWNrZXJcIiAoaW5wdXQpPVwiY2hhbmdlQ29sb3IoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwidG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvclwiPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzdWdnZXN0aW9uLWJveFwiIFtuZ1N0eWxlXT1cInsndG9wLnB4Jzogc3VnZ2VzdGlvbll9XCIgW3N0eWxlLnJpZ2h0XT1cInJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgW3N0eWxlLmxlZnRdPVwiIXJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgKm5nSWY9XCJlZGl0YWJsZSAmJiBsYWJlbCAmJiBzaG93U3VnZ2VzdGlvblwiICNzdWdnZXN0aW9uPlxyXG4gICAgPGRpdiBjbGFzcz1cInN1Z2dlc3Rpb25cIiAoY2xpY2spPVwicmVnZW5lcmF0ZVRleHQoKVwiPlxyXG4gICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvODg3NDkzYzE3NDIyNzM5NzAxNTFGcmFtZSUyMDEyNDQ4MzE3NDAucG5nXCIgYWx0PVwiXCI+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJuYW1lXCI+UmVnZW5lcmF0ZSBUZXh0PC9wPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZGVzY1wiPkdldCBhIGZyZXNoIHZhcmlhdGlvbiBvZiBhIGN1cnJlbnQgdGV4dDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQWdCdkQsTUFBTSxPQUFPLG1CQUFtQjtJQTZCOUIsWUFBb0IsYUFBcUMsRUFDMUIsVUFBa0I7UUFEN0Isa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVE7UUF2QnhDLFVBQUssR0FBVyxxQ0FBcUMsQ0FBQztRQUNyRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUluQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsbUJBQWMsR0FBWSxLQUFL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QVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBQTEFURk9STV9JRCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250ZW50ZWRpdGFibGVWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnRlZGl0YWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2VkaXRvci1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby10ZXh0LWVkaXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbnRlbnRlZGl0YWJsZVZhbHVlQWNjZXNzb3IsXHJcbiAgICBNYXRJY29uTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dEVkaXRvckNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgndG9vbGJhcicsIHsgc3RhdGljOiBmYWxzZSB9KSB0b29sYmFyITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdlZGl0b3InLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdG9yITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjb2xvclBpY2tlcicpIGNvbG9yUGlja2VyITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdwYXJlbnRFbGVtZW50JykgcGFyZW50RWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc3VnZ2VzdGlvbicsIHsgc3RhdGljOiBmYWxzZSB9KSBzdWdnZXN0aW9uITogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICc8cD5IZWxsbyB0aGlzIGlzIHBhbGFzaCBtYWtoaWphPC9wPic7XHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgZWRpdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWN0aW9uSWQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gIHNob3cgPSBmYWxzZTtcclxuICB0b29sYmFyWSA9IDA7XHJcbiAgc3VnZ2VzdGlvblkgPSAwO1xyXG4gIHJpZ2h0WmVybzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1N1Z2dlc3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0b29sYmFyRGF0YTogYW55ID0ge1xyXG4gICAgc2VsZWN0ZWRIZWFkaW5nOiAnJyxcclxuICAgIGlzQm9sZDogZmFsc2UsXHJcbiAgICBpc0l0YWxpYzogZmFsc2UsXHJcbiAgICBpc1VuZGVybGluZWQ6IGZhbHNlLFxyXG4gICAgc2VsZWN0ZWRTaXplOiAnJyxcclxuICAgIHNlbGVjdGVkTGlzdDogJycsXHJcbiAgICBzZWxlY3RlZEFsaWdubWVudDogJycsXHJcbiAgICBzZWxlY3RlZENvbG9yOiAnJ1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlZGl0b3JTZXJ2aWNlIDogRWxlbWVudFNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3RcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGlkZVRvb2xiYXIuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGlkZVRvb2xiYXIuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgc2hvd1Rvb2xiYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy5lZGl0YWJsZSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuICAgIGlmKHNlbGVjdGlvbiA9PSBudWxsKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcclxuICAgIGNvbnN0IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHBhcmVudFJlY3QgPSB0aGlzLnBhcmVudEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHRvcEZyb21QYXJlbnQgPSByZWN0LnRvcCAtIHBhcmVudFJlY3QudG9wO1xyXG5cclxuICAgIGlmKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcclxuICAgICAgdGhpcy5zdWdnZXN0aW9uWSA9IHRvcEZyb21QYXJlbnQgKyAzMDtcclxuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24udG9TdHJpbmcoKS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIGNvbnN0IHRvb2xiYXJXaWR0aCA9IDYzMDtcclxuXHJcbiAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgY29uc3QgcmlnaHRQb3NpdG9uID0gdmlld3BvcnRXaWR0aCAtIHBhcmVudFJlY3QubGVmdDtcclxuICAgICAgaWYocmlnaHRQb3NpdG9uICsgdG9vbGJhcldpZHRoID4gdmlld3BvcnRXaWR0aCl7XHJcbiAgICAgICAgdGhpcy5yaWdodFplcm8gPSBmYWxzZTtcclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgIHRoaXMucmlnaHRaZXJvID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50b29sYmFyWSA9IHRvcEZyb21QYXJlbnQgKyAzMDtcclxuXHJcbiAgICAgIHRoaXMucmVGb3JtYXR0aW5nRGF0YSgpO1xyXG4gICAgICB0aGlzLnJlYWRGb3JtYXR0aW5nUHJvcGVydGllcygpO1xyXG5cclxuICAgICAgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZVRvb2xiYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy5lZGl0YWJsZSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVFZGl0b3IgPSB0aGlzLmVkaXRvcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xyXG4gICAgY29uc3QgY2xpY2tlZEluc2lkZVRvb2xiYXIgPSB0aGlzLnRvb2xiYXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVTdWdnZXN0aW9uID0gdGhpcy5zdWdnZXN0aW9uPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgdG9vbGJhciBpZiB0aGUgY2xpY2sgaXMgb3V0c2lkZSBib3RoIHRoZSBlZGl0b3IgYW5kIHRvb2xiYXJcclxuICAgIGlmICghY2xpY2tlZEluc2lkZUVkaXRvciAmJiAhY2xpY2tlZEluc2lkZVRvb2xiYXIpIHtcclxuICAgICAgdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighY2xpY2tlZEluc2lkZUVkaXRvciAmJiAhY2xpY2tlZEluc2lkZVN1Z2dlc3Rpb24pe1xyXG4gICAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtYXRUZXh0KGNvbW1hbmQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyA9ICcnKSB7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcclxuXHJcbiAgICAvLyAgIGlmIChjb21tYW5kID09PSAnZm9ybWF0QmxvY2snKSB7XHJcbiAgLy8gICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuICAvLyAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVybjtcclxuXHJcbiAgLy8gICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XHJcbiAgLy8gICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xyXG5cclxuICAvLyAgICAgaWYgKHNlbGVjdGVkVGV4dCkge1xyXG4gIC8vICAgICAgICAgY29uc3QgbmV3RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodmFsdWUpO1xyXG4gIC8vICAgICAgICAgbmV3RWxlbWVudC50ZXh0Q29udGVudCA9IHNlbGVjdGVkVGV4dDtcclxuXHJcbiAgLy8gICAgICAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xyXG4gIC8vICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZShuZXdFbGVtZW50KTtcclxuXHJcbiAgLy8gICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkSGVhZGluZyA9IHZhbHVlO1xyXG4gIC8vICAgICAgICAgcmV0dXJuO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gfVxyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY29tbWFuZCwgZmFsc2UsIHZhbHVlKTtcclxuXHJcbiAgICBpZihjb21tYW5kID09PSAnYm9sZCcpXHJcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNCb2xkID0gIXRoaXMudG9vbGJhckRhdGEuaXNCb2xkO1xyXG4gICAgaWYoY29tbWFuZCA9PT0gJ2l0YWxpYycpXHJcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNJdGFsaWMgPSAhdGhpcy50b29sYmFyRGF0YS5pc0l0YWxpYztcclxuICAgIGlmKGNvbW1hbmQgPT09ICd1bmRlcmxpbmUnKVxyXG4gICAgICB0aGlzLnRvb2xiYXJEYXRhLmlzVW5kZXJsaW5lZCA9ICF0aGlzLnRvb2xiYXJEYXRhLmlzVW5kZXJsaW5lZFxyXG4gICAgaWYoY29tbWFuZCA9PT0gJ2luc2VydE9yZGVyZWRMaXN0JyB8fCBjb21tYW5kID09PSAnaW5zZXJ0VW5vcmRlcmVkTGlzdCcpXHJcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRMaXN0ID0gY29tbWFuZCA9PT0gdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPyAnJyA6IGNvbW1hbmQ7XHJcbiAgICBpZihjb21tYW5kID09PSAnanVzdGlmeUxlZnQnIHx8IGNvbW1hbmQgPT09ICdqdXN0aWZ5Q2VudGVyJyB8fCBjb21tYW5kID09PSAnanVzdGlmeVJpZ2h0JylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9IGNvbW1hbmQgPT09IHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPyAnJyA6IGNvbW1hbmQ7XHJcbiAgICBpZihjb21tYW5kID09PSAnZm9ybWF0QmxvY2snKVxyXG4gICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkSGVhZGluZyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRm9udFNpemUoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuXHJcbiAgICAvLyBBcHBseSBhIGRlZmF1bHQgc2l6ZSBvZiA0IChuZWVkZWQgZm9yIGV4ZWNDb21tYW5kIHRvIHdvcmspXHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9udFNpemUnLCBmYWxzZSwgJzQnKTtcclxuXHJcbiAgICAvLyBDb252ZXJ0IHNlbGVjdGVkIGZvbnQgZWxlbWVudHMgdG8gaGF2ZSBhY3R1YWwgZm9udC1zaXplIGluc3RlYWQgb2YgXCJzaXplXCIgYXR0cmlidXRlXHJcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJmb250W3NpemU9JzQnXVwiKTtcclxuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xyXG4gICAgICBjb25zdCBodG1sRWxlbWVudCA9IGVsIGFzIEhUTUxFbGVtZW50OyAvLyDinIUgRXhwbGljaXRseSBjYXN0IHRvIEhUTUxFbGVtZW50XHJcbiAgICAgIGh0bWxFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnc2l6ZScpOyAvLyBSZW1vdmUgb2xkIHNpemUgYXR0cmlidXRlXHJcbiAgICAgIGh0bWxFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gc2l6ZTsgLy8gQXBwbHkgQ1NTIGZvbnQgc2l6ZVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkU2l6ZSA9IHNpemU7XHJcbiAgICAvLyB0aGlzLnNob3cgPSBmYWxzZTsgLy8gSGlkZSB0b29sYmFyIGFmdGVyIGFjdGlvblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQ29sb3IoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgY29sb3IgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9yZUNvbG9yJywgZmFsc2UsIGNvbG9yKTtcclxuICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvciA9IGNvbG9yO1xyXG4gICAgLy8gdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUZXh0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25Gb3JtYXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWU7XHJcbiAgICB0aGlzLmZvcm1hdFRleHQoJ2Zvcm1hdEJsb2NrJywgc2VsZWN0ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb3BlbkNvbG9yUGlja2VyKCkge1xyXG4gICAgdGhpcy5jb2xvclBpY2tlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7IC8vIFByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlciBpbnB1dFxyXG4gIH1cclxuXHJcbiAgcmVhZEZvcm1hdHRpbmdQcm9wZXJ0aWVzKCkge1xyXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xyXG4gICAgaWYgKCFzZWxlY3Rpb24pIHJldHVybjtcclxuICAgIGNvbnN0IG5vZGUgPSBzZWxlY3Rpb24uZm9jdXNOb2RlIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIC8vIENoZWNrIGlmIG5vZGUgaXMgbnVsbFxyXG4gICAgaWYgKCFub2RlKSByZXR1cm47XHJcblxyXG4gICAgbGV0IGVsZW1lbnQgPSBub2RlLnBhcmVudEVsZW1lbnQ7XHJcbiAgICB3aGlsZSAoZWxlbWVudCkge1xyXG4gICAgICBjb25zdCBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWU7XHJcblxyXG4gICAgICBpZiAobm9kZU5hbWUgPT09ICdIMScgfHwgbm9kZU5hbWUgPT09ICdIMicgfHwgbm9kZU5hbWUgPT09ICdIMycpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkSGVhZGluZyA9IG5vZGVOYW1lO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vZGVOYW1lID09PSAnQicgfHwgbm9kZU5hbWUgPT09ICdTVFJPTkcnKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5pc0JvbGQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vZGVOYW1lID09PSAnSScgfHwgbm9kZU5hbWUgPT09ICdFTScpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLmlzSXRhbGljID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ1UnKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5pc1VuZGVybGluZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vZGVOYW1lID09PSAnT0wnKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPSAnaW5zZXJ0T3JkZXJlZExpc3QnO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vZGVOYW1lID09PSAnVUwnKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPSAnaW5zZXJ0VW5vcmRlcmVkTGlzdCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5zdHlsZS50ZXh0QWxpZ24pIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkQWxpZ25tZW50ID0gYGp1c3RpZnkke2VsZW1lbnQuc3R5bGUudGV4dEFsaWduLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgZWxlbWVudC5zdHlsZS50ZXh0QWxpZ24uc2xpY2UoMSl9YDtcclxuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnN0eWxlLmZvbnRTaXplKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZFNpemUgPSBlbGVtZW50LnN0eWxlLmZvbnRTaXplO1xyXG4gICAgICB9IGVsc2UgaWYoZWxlbWVudC5zdHlsZS5jb2xvcikge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvciA9IGVsZW1lbnQuc3R5bGUuY29sb3JcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZUZvcm1hdHRpbmdEYXRhKCkge1xyXG4gICAgdGhpcy50b29sYmFyRGF0YSA9IHtcclxuICAgICAgc2VsZWN0ZWRIZWFkaW5nOiAnJyxcclxuICAgICAgaXNCb2xkOiBmYWxzZSxcclxuICAgICAgaXNJdGFsaWM6IGZhbHNlLFxyXG4gICAgICBpc1VuZGVybGluZWQ6IGZhbHNlLFxyXG4gICAgICBzZWxlY3RlZFNpemU6ICcnLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6ICcnLFxyXG4gICAgICBzZWxlY3RlZEFsaWdubWVudDogJycsXHJcbiAgICAgIHNlbGVjdGVkQ29sb3I6ICcnXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdlbmVyYXRlVGV4dCgpIHtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpLFxyXG4gICAgICBkYXRhSWQ6IHRoaXMuc2VjdGlvbklkLFxyXG4gICAgICBzdWJJbmR1c3RyeUlkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSW5kdXN0cnlJZCcpLFxyXG4gICAgICBzdWdnZXN0ZWREYXRhVHlwZTogJ0NPTVBPTkVOVCcsXHJcbiAgICAgIHRvbmU6ICdQUk9GRVNTSU9OQUwnLFxyXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSAsXHJcbiAgICAgIGxhYmVsOiB0aGlzLmxhYmVsXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlZ2VuZXJhdGVUZXh0KHBheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHJlcy5kYXRhO1xyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImVkaXRvci1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J2JvcmRlcic6IGVkaXRhYmxlfVwiICNwYXJlbnRFbGVtZW50PlxyXG4gIDxkaXYgW2NvbnRlbnRlZGl0YWJsZV09XCJlZGl0YWJsZVwiIFsobmdNb2RlbCldPVwidmFsdWVcIiBjbGFzcz1cImVkaXRhYmxlLXRleHRcIiAobW91c2V1cCk9XCJzaG93VG9vbGJhcigkZXZlbnQpXCIgI2VkaXRvclxyXG4gICAgKGlucHV0KT1cInVwZGF0ZVRleHQoJGV2ZW50KVwiIChtb3VzZWRvd24pPVwiaGlkZVRvb2xiYXIoJGV2ZW50KVwiPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiICpuZ0lmPVwiZWRpdGFibGUgJiYgc2hvd1wiIFtuZ1N0eWxlXT1cInsndG9wLnB4JzogdG9vbGJhcll9XCIgW3N0eWxlLnJpZ2h0XT1cInJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgW3N0eWxlLmxlZnRdPVwiIXJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgI3Rvb2xiYXIgPlxyXG4gICAgPHNlbGVjdCBjbGFzcz1cInRvb2xcIiAoY2hhbmdlKT1cIm9uRm9ybWF0Q2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInRvb2xiYXJEYXRhLnNlbGVjdGVkSGVhZGluZ1wiPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiSDFcIj5IZWFkaW5nMTwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiSDJcIj5IZWFkaW5nMjwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiSDNcIj5IZWFkaW5nMzwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiZGl2XCI+VGV4dDwvb3B0aW9uPlxyXG4gICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnYm9sZCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5pc0JvbGR9XCI+PG1hdC1pY29uPiBmb3JtYXRfYm9sZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbFwiIChjbGljayk9XCJmb3JtYXRUZXh0KCdpdGFsaWMnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuaXNJdGFsaWN9XCI+PG1hdC1pY29uPiBmb3JtYXRfaXRhbGljPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ3VuZGVybGluZScpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5pc1VuZGVybGluZWR9XCI+PG1hdC1pY29uPiBmb3JtYXRfdW5kZXJsaW5lZDwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgPHNlbGVjdCBjbGFzcz1cInRvb2xcIiAoY2hhbmdlKT1cImNoYW5nZUZvbnRTaXplKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInRvb2xiYXJEYXRhLnNlbGVjdGVkU2l6ZVwiPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+RGVmYXVsdDwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiMThweFwiPlNtYWxsPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCIyNHB4XCI+TWVkaXVtPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCIzMnB4XCI+TGFyZ2U8L29wdGlvbj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQ4cHhcIj5FeHRyYSBMYXJnZTwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiNzJweFwiPkh1Z2U8L29wdGlvbj5cclxuICAgIDwvc2VsZWN0PlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2luc2VydE9yZGVyZWRMaXN0JylcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVG9vbCc6IHRvb2xiYXJEYXRhLnNlbGVjdGVkTGlzdCA9PT0gJ2luc2VydE9yZGVyZWRMaXN0J31cIj48bWF0LWljb24+Zm9ybWF0X2xpc3RfbnVtYmVyZWQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnaW5zZXJ0VW5vcmRlcmVkTGlzdCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPT09ICdpbnNlcnRVbm9yZGVyZWRMaXN0J31cIj48bWF0LWljb24+IGZvcm1hdF9saXN0X2J1bGxldGVkPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbFwiIChjbGljayk9XCJmb3JtYXRUZXh0KCdqdXN0aWZ5TGVmdCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9PT0gJ2p1c3RpZnlMZWZ0J31cIj48bWF0LWljb24+IGZvcm1hdF9hbGlnbl9sZWZ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2p1c3RpZnlDZW50ZXInKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPT09ICdqdXN0aWZ5Q2VudGVyJ31cIj48bWF0LWljb24+IGZvcm1hdF9hbGlnbl9jZW50ZXI8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnanVzdGlmeVJpZ2h0JylcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVG9vbCc6IHRvb2xiYXJEYXRhLnNlbGVjdGVkQWxpZ25tZW50ID09PSAnanVzdGlmeVJpZ2h0J31cIj48bWF0LWljb24+IGZvcm1hdF9hbGlnbl9yaWdodDwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgY29sb3ItcGlja2VyLWJ0blwiIChjbGljayk9XCJvcGVuQ29sb3JQaWNrZXIoKVwiPlxyXG4gICAgICA8bWF0LWljb24+Zm9ybWF0X2NvbG9yX3RleHQ8L21hdC1pY29uPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgI2NvbG9yUGlja2VyIGNsYXNzPVwiaGlkZGVuLWNvbG9yLXBpY2tlclwiIChpbnB1dCk9XCJjaGFuZ2VDb2xvcigkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJ0b29sYmFyRGF0YS5zZWxlY3RlZENvbG9yXCI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInN1Z2dlc3Rpb24tYm94XCIgW25nU3R5bGVdPVwieyd0b3AucHgnOiBzdWdnZXN0aW9uWX1cIiBbc3R5bGUucmlnaHRdPVwicmlnaHRaZXJvID8gJzBweCcgOiAnYXV0bydcIiBbc3R5bGUubGVmdF09XCIhcmlnaHRaZXJvID8gJzBweCcgOiAnYXV0bydcIiAqbmdJZj1cImVkaXRhYmxlICYmIGxhYmVsICYmIHNob3dTdWdnZXN0aW9uXCIgI3N1Z2dlc3Rpb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3VnZ2VzdGlvblwiIChjbGljayk9XCJyZWdlbmVyYXRlVGV4dCgpXCI+XHJcbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy84ODc0OTNjMTc0MjI3Mzk3MDE1MUZyYW1lJTIwMTI0NDgzMTc0MC5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8cCBjbGFzcz1cIm5hbWVcIj5SZWdlbmVyYXRlIFRleHQ8L3A+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJkZXNjXCI+R2V0IGEgZnJlc2ggdmFyaWF0aW9uIG9mIGEgY3VycmVudCB0ZXh0PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -18,7 +18,7 @@ export class TopOfImageCardComponent {
18
18
  this._eventService.buttonRedirection.emit({ data: this.data.button });
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TopOfImageCardComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TopOfImageCardComponent, isStandalone: true, selector: "simpo-top-of-image-card", inputs: { data: "data", styles: "styles", content: "content", componentId: "componentId", button: "button", edit: "edit" }, ngImport: i0, template: "<!-- <div style=\"position: relative;\">\r\n\r\n <img loading=\"lazy\" [src]=\"data.image.url\" [alt]=\"data.image.altText\" [simpoImageDirective]=\"styles?.image\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" class=\"w-100\" *ngIf=\"content.showImage\">\r\n\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" [simpoTextBackgroundDirective]=\"styles?.textBackground\">\r\n <div style=\"color: white;\" class=\"heading-medium mb-1\" [innerHtml]=\"data.inputText[0].value\"\r\n *ngIf=\"content.showHeading\"></div>\r\n <div style=\"color: white;\" class=\"body-desc\" [innerHtml]=\"data.inputText[01].value\" *ngIf=\"content.showContent\">\r\n </div>\r\n <app-button-element [buttonData]=\"data?.button\" [sectionId]=\"componentId\" [buttonStyle]=\"styles?.button\" [color]=\"styles?.background?.accentColor\"></app-button-element>\r\n </div>\r\n</div>\r\n -->\r\n<div class=\"top-container\" (click)=\"(content?.display?.showLink && content?.display?.linkType === 'List Item' ? redirectTo() : '')\"\r\n [ngStyle]=\"{'background-image' : content.display.showImage ? 'url('+data.image.url+')' : ''}\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\">\r\n <div [simpoImageDirective]=\"styles?.image\" [id]=\"componentId\" *ngIf=\"content.display.showImage\"></div>\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\"\r\n [simpoTextBackgroundDirective]=\"content.display.showImage ? styles?.textBackground : ''\">\r\n <div class=\"heading-medium mb-1 lh-40\" *ngIf=\"content.display.showHeading\">\r\n <simpo-text-editor [value]=\"data.inputText[0].value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n <div class=\"body-desc\" *ngIf=\"content.display.showContent\">\r\n <simpo-text-editor [value]=\"data.inputText[1].value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div *ngIf=\"content.display.showLink && content.display.linkType === 'Button'\">\r\n <app-button-element [buttonContent]=\"data.button\" [buttonStyle]=\"button?.styles\" [sectionId]=\"componentId\"\r\n [buttonId]=\"button ? button.id : ''\" [color]=\"styles?.background?.accentColor\"></app-button-element>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".w-100{width:100%}.mb-1{margin-bottom:1rem!important}.content{padding:3rem 1.5rem 1.5rem;min-height:256px;display:flex;flex-direction:column;justify-content:end;bottom:0}.top-container{background-position:center center;background-size:cover;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end}.lh-40{line-height:40px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: TextBackgroundDirectiveDirective, selector: "[simpoTextBackgroundDirective]", inputs: ["simpoTextBackgroundDirective"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"] }, { kind: "component", type: SimpoButtonComponent, selector: "app-button-element", inputs: ["buttonContent", "buttonStyle", "buttonId", "color", "sectionId"] }] }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TopOfImageCardComponent, isStandalone: true, selector: "simpo-top-of-image-card", inputs: { data: "data", styles: "styles", content: "content", componentId: "componentId", button: "button", edit: "edit" }, ngImport: i0, template: "<!-- <div style=\"position: relative;\">\r\n\r\n <img loading=\"lazy\" [src]=\"data.image.url\" [alt]=\"data.image.altText\" [simpoImageDirective]=\"styles?.image\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" class=\"w-100\" *ngIf=\"content.showImage\">\r\n\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" [simpoTextBackgroundDirective]=\"styles?.textBackground\">\r\n <div style=\"color: white;\" class=\"heading-medium mb-1\" [innerHtml]=\"data.inputText[0].value\"\r\n *ngIf=\"content.showHeading\"></div>\r\n <div style=\"color: white;\" class=\"body-desc\" [innerHtml]=\"data.inputText[01].value\" *ngIf=\"content.showContent\">\r\n </div>\r\n <app-button-element [buttonData]=\"data?.button\" [sectionId]=\"componentId\" [buttonStyle]=\"styles?.button\" [color]=\"styles?.background?.accentColor\"></app-button-element>\r\n </div>\r\n</div>\r\n -->\r\n<div class=\"top-container\" (click)=\"(content?.display?.showLink && content?.display?.linkType === 'List Item' ? redirectTo() : '')\"\r\n [ngStyle]=\"{'background-image' : content.display.showImage ? 'url('+data.image.url+')' : ''}\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\">\r\n <div [simpoImageDirective]=\"styles?.image\" [id]=\"componentId\" *ngIf=\"content.display.showImage\"></div>\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\"\r\n [simpoTextBackgroundDirective]=\"content.display.showImage ? styles?.textBackground : ''\">\r\n <div class=\"heading-medium mb-1 lh-40\" *ngIf=\"content.display.showHeading\">\r\n <simpo-text-editor [value]=\"data.inputText[0].value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n <div class=\"body-desc\" *ngIf=\"content.display.showContent\">\r\n <simpo-text-editor [value]=\"data.inputText[1].value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div *ngIf=\"content.display.showLink && content.display.linkType === 'Button'\">\r\n <app-button-element [buttonContent]=\"data.button\" [buttonStyle]=\"button?.styles\" [sectionId]=\"componentId\"\r\n [buttonId]=\"button ? button.id : ''\" [color]=\"styles?.background?.accentColor\"></app-button-element>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".w-100{width:100%}.mb-1{margin-bottom:1rem!important}.content{padding:3rem 1.5rem 1.5rem;min-height:256px;display:flex;flex-direction:column;justify-content:end;bottom:0}.top-container{background-position:center center;background-size:cover;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end}.lh-40{line-height:40px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: TextBackgroundDirectiveDirective, selector: "[simpoTextBackgroundDirective]", inputs: ["simpoTextBackgroundDirective"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "component", type: SimpoButtonComponent, selector: "app-button-element", inputs: ["buttonContent", "buttonStyle", "buttonId", "color", "sectionId", "edit"] }] }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TopOfImageCardComponent, decorators: [{
24
24
  type: Component,
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
36
36
  }], edit: [{
37
37
  type: Input
38
38
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLW9mLWltYWdlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90b3Atb2YtaW1hZ2UtY2FyZC90b3Atb2YtaW1hZ2UtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RvcC1vZi1pbWFnZS1jYXJkL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFTM0UsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFFLENBQUM7SUFDbkQsUUFBUTtJQUVSLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7OEdBZlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK01DakJwQyxxeEVBaUNBLDhaRHBCWSxZQUFZLHdOQUFDLHVCQUF1QixtR0FBQyxlQUFlLG1GQUFDLGdDQUFnQyxxSEFBQyxtQkFBbUIsbUhBQUMsb0JBQW9COzsyRkFJN0gsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUMsdUJBQXVCLEVBQUMsZUFBZSxFQUFDLGdDQUFnQyxFQUFDLG1CQUFtQixFQUFDLG9CQUFvQixDQUFDO2tGQUtoSSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9zaW1wby1idXR0b24vc2ltcG8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXRvcC1vZi1pbWFnZS1jYXJkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsQ29ybmVyRGlyZWN0aXZlLFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFRleHRFZGl0b3JDb21wb25lbnQsU2ltcG9CdXR0b25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3Atb2YtaW1hZ2UtY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3BPZkltYWdlQ2FyZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIHN0eWxlczogYW55O1xyXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IGFueTtcclxuICBASW5wdXQoKSBjb21wb25lbnRJZD86IHN0cmluZztcclxuICBASW5wdXQoKSBidXR0b24/OiBCdXR0b25Nb2RlbDtcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSl7fVxyXG4gIG5nT25Jbml0KCl7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUbygpe1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmJ1dHRvblJlZGlyZWN0aW9uLmVtaXQoe2RhdGE6IHRoaXMuZGF0YS5idXR0b259KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG5cclxuICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgIFtzcmNdPVwiZGF0YS5pbWFnZS51cmxcIiBbYWx0XT1cImRhdGEuaW1hZ2UuYWx0VGV4dFwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIlxyXG4gICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiIGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cImNvbnRlbnQuc2hvd0ltYWdlXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiIFtzaW1wb1RleHRCYWNrZ3JvdW5kRGlyZWN0aXZlXT1cInN0eWxlcz8udGV4dEJhY2tncm91bmRcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJjb2xvcjogd2hpdGU7XCIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSBtYi0xXCIgW2lubmVySHRtbF09XCJkYXRhLmlucHV0VGV4dFswXS52YWx1ZVwiXHJcbiAgICAgICpuZ0lmPVwiY29udGVudC5zaG93SGVhZGluZ1wiPjwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImNvbG9yOiB3aGl0ZTtcIiBjbGFzcz1cImJvZHktZGVzY1wiIFtpbm5lckh0bWxdPVwiZGF0YS5pbnB1dFRleHRbMDFdLnZhbHVlXCIgKm5nSWY9XCJjb250ZW50LnNob3dDb250ZW50XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkRhdGFdPVwiZGF0YT8uYnV0dG9uXCIgW3NlY3Rpb25JZF09XCJjb21wb25lbnRJZFwiIFtidXR0b25TdHlsZV09XCJzdHlsZXM/LmJ1dHRvblwiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gLS0+XHJcbjxkaXYgY2xhc3M9XCJ0b3AtY29udGFpbmVyXCIgIChjbGljayk9XCIoY29udGVudD8uZGlzcGxheT8uc2hvd0xpbmsgJiYgY29udGVudD8uZGlzcGxheT8ubGlua1R5cGUgPT09ICdMaXN0IEl0ZW0nID8gcmVkaXJlY3RUbygpIDogJycpXCJcclxuICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnIDogY29udGVudC5kaXNwbGF5LnNob3dJbWFnZSA/ICd1cmwoJytkYXRhLmltYWdlLnVybCsnKScgOiAnJ31cIlxyXG4gIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiY29tcG9uZW50SWRcIj5cclxuICA8ZGl2IFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIiBbaWRdPVwiY29tcG9uZW50SWRcIiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93SW1hZ2VcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgW3NpbXBvVGV4dEJhY2tncm91bmREaXJlY3RpdmVdPVwiY29udGVudC5kaXNwbGF5LnNob3dJbWFnZSA/IHN0eWxlcz8udGV4dEJhY2tncm91bmQgOiAnJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1iLTEgbGgtNDBcIiAgKm5nSWY9XCJjb250ZW50LmRpc3BsYXkuc2hvd0hlYWRpbmdcIj5cclxuICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFt2YWx1ZV09XCJkYXRhLmlucHV0VGV4dFswXS52YWx1ZSB8fCAnJ1wiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJib2R5LWRlc2NcIiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93Q29udGVudFwiPlxyXG4gICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgW3ZhbHVlXT1cImRhdGEuaW5wdXRUZXh0WzFdLnZhbHVlIHx8ICcnXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY29udGVudC5kaXNwbGF5LnNob3dMaW5rICYmIGNvbnRlbnQuZGlzcGxheS5saW5rVHlwZSA9PT0gJ0J1dHRvbidcIj5cclxuICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJkYXRhLmJ1dHRvblwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgICAgIFtidXR0b25JZF09XCJidXR0b24gPyBidXR0b24uaWQgOiAnJ1wiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLW9mLWltYWdlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90b3Atb2YtaW1hZ2UtY2FyZC90b3Atb2YtaW1hZ2UtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RvcC1vZi1pbWFnZS1jYXJkL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFTM0UsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFFLENBQUM7SUFDbkQsUUFBUTtJQUVSLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7OEdBZlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK01DakJwQyxxeEVBaUNBLDhaRHBCWSxZQUFZLHdOQUFDLHVCQUF1QixtR0FBQyxlQUFlLG1GQUFDLGdDQUFnQyxxSEFBQyxtQkFBbUIsNklBQUMsb0JBQW9COzsyRkFJN0gsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUMsdUJBQXVCLEVBQUMsZUFBZSxFQUFDLGdDQUFnQyxFQUFDLG1CQUFtQixFQUFDLG9CQUFvQixDQUFDO2tGQUtoSSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9zaW1wby1idXR0b24vc2ltcG8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXRvcC1vZi1pbWFnZS1jYXJkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsQ29ybmVyRGlyZWN0aXZlLFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFRleHRFZGl0b3JDb21wb25lbnQsU2ltcG9CdXR0b25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3Atb2YtaW1hZ2UtY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3BPZkltYWdlQ2FyZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIHN0eWxlczogYW55O1xyXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IGFueTtcclxuICBASW5wdXQoKSBjb21wb25lbnRJZD86IHN0cmluZztcclxuICBASW5wdXQoKSBidXR0b24/OiBCdXR0b25Nb2RlbDtcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSl7fVxyXG4gIG5nT25Jbml0KCl7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUbygpe1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmJ1dHRvblJlZGlyZWN0aW9uLmVtaXQoe2RhdGE6IHRoaXMuZGF0YS5idXR0b259KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG5cclxuICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgIFtzcmNdPVwiZGF0YS5pbWFnZS51cmxcIiBbYWx0XT1cImRhdGEuaW1hZ2UuYWx0VGV4dFwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIlxyXG4gICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiIGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cImNvbnRlbnQuc2hvd0ltYWdlXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiIFtzaW1wb1RleHRCYWNrZ3JvdW5kRGlyZWN0aXZlXT1cInN0eWxlcz8udGV4dEJhY2tncm91bmRcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJjb2xvcjogd2hpdGU7XCIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSBtYi0xXCIgW2lubmVySHRtbF09XCJkYXRhLmlucHV0VGV4dFswXS52YWx1ZVwiXHJcbiAgICAgICpuZ0lmPVwiY29udGVudC5zaG93SGVhZGluZ1wiPjwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImNvbG9yOiB3aGl0ZTtcIiBjbGFzcz1cImJvZHktZGVzY1wiIFtpbm5lckh0bWxdPVwiZGF0YS5pbnB1dFRleHRbMDFdLnZhbHVlXCIgKm5nSWY9XCJjb250ZW50LnNob3dDb250ZW50XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkRhdGFdPVwiZGF0YT8uYnV0dG9uXCIgW3NlY3Rpb25JZF09XCJjb21wb25lbnRJZFwiIFtidXR0b25TdHlsZV09XCJzdHlsZXM/LmJ1dHRvblwiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gLS0+XHJcbjxkaXYgY2xhc3M9XCJ0b3AtY29udGFpbmVyXCIgIChjbGljayk9XCIoY29udGVudD8uZGlzcGxheT8uc2hvd0xpbmsgJiYgY29udGVudD8uZGlzcGxheT8ubGlua1R5cGUgPT09ICdMaXN0IEl0ZW0nID8gcmVkaXJlY3RUbygpIDogJycpXCJcclxuICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnIDogY29udGVudC5kaXNwbGF5LnNob3dJbWFnZSA/ICd1cmwoJytkYXRhLmltYWdlLnVybCsnKScgOiAnJ31cIlxyXG4gIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiY29tcG9uZW50SWRcIj5cclxuICA8ZGl2IFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIiBbaWRdPVwiY29tcG9uZW50SWRcIiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93SW1hZ2VcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgW3NpbXBvVGV4dEJhY2tncm91bmREaXJlY3RpdmVdPVwiY29udGVudC5kaXNwbGF5LnNob3dJbWFnZSA/IHN0eWxlcz8udGV4dEJhY2tncm91bmQgOiAnJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1iLTEgbGgtNDBcIiAgKm5nSWY9XCJjb250ZW50LmRpc3BsYXkuc2hvd0hlYWRpbmdcIj5cclxuICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFt2YWx1ZV09XCJkYXRhLmlucHV0VGV4dFswXS52YWx1ZSB8fCAnJ1wiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJib2R5LWRlc2NcIiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93Q29udGVudFwiPlxyXG4gICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgW3ZhbHVlXT1cImRhdGEuaW5wdXRUZXh0WzFdLnZhbHVlIHx8ICcnXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY29udGVudC5kaXNwbGF5LnNob3dMaW5rICYmIGNvbnRlbnQuZGlzcGxheS5saW5rVHlwZSA9PT0gJ0J1dHRvbidcIj5cclxuICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJkYXRhLmJ1dHRvblwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgICAgIFtidXR0b25JZF09XCJidXR0b24gPyBidXR0b24uaWQgOiAnJ1wiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==