master-control 0.4.99 → 0.5.2

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 (58) hide show
  1. package/esm2022/lib/age-date/age-date.component.mjs +7 -3
  2. package/esm2022/lib/amount-textbox/amount-textbox.component.mjs +7 -3
  3. package/esm2022/lib/annuity-calculator-radio/annuity-calculator-radio.component.mjs +8 -4
  4. package/esm2022/lib/autocomplete/autocomplete.component.mjs +5 -3
  5. package/esm2022/lib/button/button.component.mjs +7 -3
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +7 -3
  7. package/esm2022/lib/dob/dob.component.mjs +7 -3
  8. package/esm2022/lib/email-with-domain/email-with-domain.component.mjs +7 -3
  9. package/esm2022/lib/field-name-attribute.util.mjs +11 -0
  10. package/esm2022/lib/info-textbox/info-textbox.component.mjs +7 -3
  11. package/esm2022/lib/master-control.component.mjs +8 -3
  12. package/esm2022/lib/medial-questions/medial-questions.component.mjs +3 -3
  13. package/esm2022/lib/mob-number/mob-number.component.mjs +5 -3
  14. package/esm2022/lib/multiple-select/multiple-select.component.mjs +5 -3
  15. package/esm2022/lib/otp-mob-number/otp-mob-number.component.mjs +7 -3
  16. package/esm2022/lib/otp-textbox/otp-textbox.component.mjs +7 -3
  17. package/esm2022/lib/radio/radio.component.mjs +5 -3
  18. package/esm2022/lib/search-multi-select/search-multi-select.component.mjs +5 -3
  19. package/esm2022/lib/select/select.component.mjs +7 -6
  20. package/esm2022/lib/select-textbox/select-textbox.component.mjs +7 -3
  21. package/esm2022/lib/subscript-textbox/subscript-textbox.component.mjs +7 -3
  22. package/esm2022/lib/suffix-textbox/suffix-textbox.component.mjs +7 -3
  23. package/esm2022/lib/tag-mob-number/tag-mob-number.component.mjs +7 -3
  24. package/esm2022/lib/textarea/textarea.component.mjs +7 -3
  25. package/esm2022/lib/textbox/textbox.component.mjs +5 -3
  26. package/esm2022/lib/textbox-with-image/textbox-with-image.component.mjs +7 -3
  27. package/esm2022/lib/textbox-with-text/textbox-with-text.component.mjs +7 -3
  28. package/esm2022/lib/textbox-with-underscore/textbox-with-underscore.component.mjs +7 -3
  29. package/esm2022/lib/toggle/toggle.component.mjs +7 -3
  30. package/esm2022/lib/toggle-button/toggle-button.component.mjs +7 -3
  31. package/esm2022/lib/upload/upload.component.mjs +7 -3
  32. package/fesm2022/master-control.mjs +146 -62
  33. package/fesm2022/master-control.mjs.map +1 -1
  34. package/lib/age-date/age-date.component.d.ts +1 -0
  35. package/lib/amount-textbox/amount-textbox.component.d.ts +1 -0
  36. package/lib/button/button.component.d.ts +3 -1
  37. package/lib/checkbox/checkbox.component.d.ts +1 -0
  38. package/lib/dob/dob.component.d.ts +1 -0
  39. package/lib/email-with-domain/email-with-domain.component.d.ts +1 -0
  40. package/lib/field-name-attribute.util.d.ts +1 -0
  41. package/lib/info-textbox/info-textbox.component.d.ts +1 -0
  42. package/lib/otp-mob-number/otp-mob-number.component.d.ts +1 -0
  43. package/lib/otp-textbox/otp-textbox.component.d.ts +1 -0
  44. package/lib/select/select.component.d.ts +1 -0
  45. package/lib/select-textbox/select-textbox.component.d.ts +1 -0
  46. package/lib/subscript-textbox/subscript-textbox.component.d.ts +1 -0
  47. package/lib/suffix-textbox/suffix-textbox.component.d.ts +1 -0
  48. package/lib/tag-mob-number/tag-mob-number.component.d.ts +1 -0
  49. package/lib/textarea/textarea.component.d.ts +1 -0
  50. package/lib/textbox-with-image/textbox-with-image.component.d.ts +1 -0
  51. package/lib/textbox-with-text/textbox-with-text.component.d.ts +1 -0
  52. package/lib/textbox-with-underscore/textbox-with-underscore.component.d.ts +1 -0
  53. package/lib/toggle/toggle.component.d.ts +1 -0
  54. package/lib/toggle-button/toggle-button.component.d.ts +3 -2
  55. package/lib/upload/upload.component.d.ts +1 -0
  56. package/master-control-0.5.02.tgz +0 -0
  57. package/package.json +1 -1
  58. package/master-control-0.4.99.tgz +0 -0
@@ -1,6 +1,7 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, input, Output, EventEmitter, forwardRef } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
4
+ import { initializeFieldNameAttribute } from '../field-name-attribute.util';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../master-control.service";
6
7
  import * as i2 from "@angular/common";
@@ -17,6 +18,9 @@ export class ToggleComponent {
17
18
  _onTouched = () => { };
18
19
  // Declare Output event emitters here (class level)
19
20
  change = new EventEmitter();
21
+ ngOnInit() {
22
+ initializeFieldNameAttribute(this.field());
23
+ }
20
24
  writeValue(obj) {
21
25
  this.inputValue = obj;
22
26
  }
@@ -43,7 +47,7 @@ export class ToggleComponent {
43
47
  useExisting: forwardRef(() => ToggleComponent),
44
48
  multi: true,
45
49
  },
46
- ], ngImport: i0, template: "<div class=\"\" *ngIf=\"field() && field()?.isVisible && field().isShowLabel\" [ngStyle]=\"{\n '--custom-toggle-bg-color': field()?.controlStyle?.background,\n '--custom-toggle-border-color': field()?.controlStyle?.borderColor ,\n '--custom-toggle-border-width': field()?.controlStyle?.borderWidth ,\n '--custom-toggle-border-radius': field()?.controlStyle?.borderRadius,\n '--custom-toggle-width': field()?.controlStyle?.width,\n }\"\n class=\"card toggle-background mt-2\"\n >\n <div class=\"toggle_switch mt-2\">\n <div *ngIf=\"field().configData?.leftLabel\" [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text\">\n <div>{{field().configData?.leftLabel}}</div>\n </div>\n <div class=\"mt-1\">\n <label class=\"switch\">\n @if(reactiveFormControlobject()) {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [formControl]=\"reactiveFormControlobject()\"\n (change)=\"onToggleChange($event)\"\n />\n }@else {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n (change)=\"onToggleChange($event)\"\n />\n }\n <span class=\"slider round\"></span>\n </label>\n </div>\n <div [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text mb-2\">\n <div>{{field()?.label}}</div>\n <div style=\"font-size: 10px; font-weight: 400;\" *ngIf=\"field().configData?.subLabel\">{{field()?.configData?.subLabel}} <img alt=\"\" [src]=\"field()?.imageUrl\" *ngIf=\"field()?.imageUrl\" /> </div>\n </div>\n </div>\n </div>\n", styles: ["*{font-family:mulish!important}::ng-deep .toggle-background{background-color:var(--custom-toggle-bg-color , #f5f5f5)!important;padding:2px 8px;width:var(--custom-toggle-width , 100%)!important;box-shadow:none}::ng-deep .toggle-background{border-color:var(--custom-toggle-border-color , transparent)!important;border-radius:var(--custom-toggle-border-radius , 4px)!important;border-width:var(--custom-toggle-border-width , 1px)!important}::ng-deep .toggle_switch{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:400;font-family:Mulish;color:#444}::ng-deep .switch{position:relative;display:inline-block;width:34px;height:18px}::ng-deep .switch input{opacity:0;width:0;height:0}::ng-deep .slider{position:absolute;cursor:pointer;inset:0;background-color:#ddd;-webkit-transition:.4s;transition:.4s}::ng-deep .slider:before{position:absolute;content:\"\";height:11px;width:11px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}::ng-deep .slider.round{border-radius:34px}::ng-deep input:checked+.slider{background-color:#fb0}::ng-deep input:checked+.slider:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translate(16px)}::ng-deep .slider.round:before{border-radius:50%}::ng-deep .remove-border{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .remove-border:focus-visible{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:#fb0!important;background-color:#fb0!important;border-radius:4px!important}::ng-deep .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mdc-checkbox__background{border:1px solid #dadada!important}\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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
50
+ ], ngImport: i0, template: "<div class=\"\" *ngIf=\"field() && field()?.isVisible && field().isShowLabel\" [ngStyle]=\"{\n '--custom-toggle-bg-color': field()?.controlStyle?.background,\n '--custom-toggle-border-color': field()?.controlStyle?.borderColor ,\n '--custom-toggle-border-width': field()?.controlStyle?.borderWidth ,\n '--custom-toggle-border-radius': field()?.controlStyle?.borderRadius,\n '--custom-toggle-width': field()?.controlStyle?.width,\n }\"\n class=\"card toggle-background mt-2\"\n >\n <div class=\"toggle_switch mt-2\">\n <div *ngIf=\"field().configData?.leftLabel\" [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text\">\n <div>{{field().configData?.leftLabel}}</div>\n </div>\n <div class=\"mt-1\">\n <label class=\"switch\">\n @if(reactiveFormControlobject()) {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [formControl]=\"reactiveFormControlobject()\"\n (change)=\"onToggleChange($event)\"\n />\n }@else {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n (change)=\"onToggleChange($event)\"\n />\n }\n <span class=\"slider round\"></span>\n </label>\n </div>\n <div [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text mb-2\">\n <div>{{field()?.label}}</div>\n <div style=\"font-size: 10px; font-weight: 400;\" *ngIf=\"field().configData?.subLabel\">{{field()?.configData?.subLabel}} <img alt=\"\" [src]=\"field()?.imageUrl\" *ngIf=\"field()?.imageUrl\" /> </div>\n </div>\n </div>\n </div>\n", styles: ["*{font-family:mulish!important}::ng-deep .toggle-background{background-color:var(--custom-toggle-bg-color , #f5f5f5)!important;padding:2px 8px;width:var(--custom-toggle-width , 100%)!important;box-shadow:none}::ng-deep .toggle-background{border-color:var(--custom-toggle-border-color , transparent)!important;border-radius:var(--custom-toggle-border-radius , 4px)!important;border-width:var(--custom-toggle-border-width , 1px)!important}::ng-deep .toggle_switch{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:400;font-family:Mulish;color:#444}::ng-deep .switch{position:relative;display:inline-block;width:34px;height:18px}::ng-deep .switch input{opacity:0;width:0;height:0}::ng-deep .slider{position:absolute;cursor:pointer;inset:0;background-color:#ddd;-webkit-transition:.4s;transition:.4s}::ng-deep .slider:before{position:absolute;content:\"\";height:11px;width:11px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}::ng-deep .slider.round{border-radius:34px}::ng-deep input:checked+.slider{background-color:#fb0}::ng-deep input:checked+.slider:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translate(16px)}::ng-deep .slider.round:before{border-radius:50%}::ng-deep .remove-border{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .remove-border:focus-visible{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:#fb0!important;background-color:#fb0!important;border-radius:4px!important}::ng-deep .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mdc-checkbox__background{border:1px solid #dadada!important}\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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
47
51
  }
48
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToggleComponent, decorators: [{
49
53
  type: Component,
@@ -53,8 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
53
57
  useExisting: forwardRef(() => ToggleComponent),
54
58
  multi: true,
55
59
  },
56
- ], template: "<div class=\"\" *ngIf=\"field() && field()?.isVisible && field().isShowLabel\" [ngStyle]=\"{\n '--custom-toggle-bg-color': field()?.controlStyle?.background,\n '--custom-toggle-border-color': field()?.controlStyle?.borderColor ,\n '--custom-toggle-border-width': field()?.controlStyle?.borderWidth ,\n '--custom-toggle-border-radius': field()?.controlStyle?.borderRadius,\n '--custom-toggle-width': field()?.controlStyle?.width,\n }\"\n class=\"card toggle-background mt-2\"\n >\n <div class=\"toggle_switch mt-2\">\n <div *ngIf=\"field().configData?.leftLabel\" [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text\">\n <div>{{field().configData?.leftLabel}}</div>\n </div>\n <div class=\"mt-1\">\n <label class=\"switch\">\n @if(reactiveFormControlobject()) {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [formControl]=\"reactiveFormControlobject()\"\n (change)=\"onToggleChange($event)\"\n />\n }@else {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n (change)=\"onToggleChange($event)\"\n />\n }\n <span class=\"slider round\"></span>\n </label>\n </div>\n <div [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text mb-2\">\n <div>{{field()?.label}}</div>\n <div style=\"font-size: 10px; font-weight: 400;\" *ngIf=\"field().configData?.subLabel\">{{field()?.configData?.subLabel}} <img alt=\"\" [src]=\"field()?.imageUrl\" *ngIf=\"field()?.imageUrl\" /> </div>\n </div>\n </div>\n </div>\n", styles: ["*{font-family:mulish!important}::ng-deep .toggle-background{background-color:var(--custom-toggle-bg-color , #f5f5f5)!important;padding:2px 8px;width:var(--custom-toggle-width , 100%)!important;box-shadow:none}::ng-deep .toggle-background{border-color:var(--custom-toggle-border-color , transparent)!important;border-radius:var(--custom-toggle-border-radius , 4px)!important;border-width:var(--custom-toggle-border-width , 1px)!important}::ng-deep .toggle_switch{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:400;font-family:Mulish;color:#444}::ng-deep .switch{position:relative;display:inline-block;width:34px;height:18px}::ng-deep .switch input{opacity:0;width:0;height:0}::ng-deep .slider{position:absolute;cursor:pointer;inset:0;background-color:#ddd;-webkit-transition:.4s;transition:.4s}::ng-deep .slider:before{position:absolute;content:\"\";height:11px;width:11px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}::ng-deep .slider.round{border-radius:34px}::ng-deep input:checked+.slider{background-color:#fb0}::ng-deep input:checked+.slider:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translate(16px)}::ng-deep .slider.round:before{border-radius:50%}::ng-deep .remove-border{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .remove-border:focus-visible{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:#fb0!important;background-color:#fb0!important;border-radius:4px!important}::ng-deep .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mdc-checkbox__background{border:1px solid #dadada!important}\n"] }]
60
+ ], template: "<div class=\"\" *ngIf=\"field() && field()?.isVisible && field().isShowLabel\" [ngStyle]=\"{\n '--custom-toggle-bg-color': field()?.controlStyle?.background,\n '--custom-toggle-border-color': field()?.controlStyle?.borderColor ,\n '--custom-toggle-border-width': field()?.controlStyle?.borderWidth ,\n '--custom-toggle-border-radius': field()?.controlStyle?.borderRadius,\n '--custom-toggle-width': field()?.controlStyle?.width,\n }\"\n class=\"card toggle-background mt-2\"\n >\n <div class=\"toggle_switch mt-2\">\n <div *ngIf=\"field().configData?.leftLabel\" [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text\">\n <div>{{field().configData?.leftLabel}}</div>\n </div>\n <div class=\"mt-1\">\n <label class=\"switch\">\n @if(reactiveFormControlobject()) {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [formControl]=\"reactiveFormControlobject()\"\n (change)=\"onToggleChange($event)\"\n />\n }@else {\n <input\n type=\"checkbox\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [checked]=\"inputValue\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n (change)=\"onToggleChange($event)\"\n />\n }\n <span class=\"slider round\"></span>\n </label>\n </div>\n <div [ngStyle]=\"{\n '--custom-toggle-font-size': field()?.controlStyle?.fontSize ,\n '--custom-toggle-font-weight': field()?.controlStyle?.fontWeight ,\n '--custom-toggle-font-family': field()?.controlStyle?.fontFamily ,\n '--custom-toggle-font-color': field()?.controlStyle?.color ,\n }\" class=\"toggle-text mb-2\">\n <div>{{field()?.label}}</div>\n <div style=\"font-size: 10px; font-weight: 400;\" *ngIf=\"field().configData?.subLabel\">{{field()?.configData?.subLabel}} <img alt=\"\" [src]=\"field()?.imageUrl\" *ngIf=\"field()?.imageUrl\" /> </div>\n </div>\n </div>\n </div>\n", styles: ["*{font-family:mulish!important}::ng-deep .toggle-background{background-color:var(--custom-toggle-bg-color , #f5f5f5)!important;padding:2px 8px;width:var(--custom-toggle-width , 100%)!important;box-shadow:none}::ng-deep .toggle-background{border-color:var(--custom-toggle-border-color , transparent)!important;border-radius:var(--custom-toggle-border-radius , 4px)!important;border-width:var(--custom-toggle-border-width , 1px)!important}::ng-deep .toggle_switch{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:400;font-family:Mulish;color:#444}::ng-deep .switch{position:relative;display:inline-block;width:34px;height:18px}::ng-deep .switch input{opacity:0;width:0;height:0}::ng-deep .slider{position:absolute;cursor:pointer;inset:0;background-color:#ddd;-webkit-transition:.4s;transition:.4s}::ng-deep .slider:before{position:absolute;content:\"\";height:11px;width:11px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}::ng-deep .slider.round{border-radius:34px}::ng-deep input:checked+.slider{background-color:#fb0}::ng-deep input:checked+.slider:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translate(16px)}::ng-deep .slider.round:before{border-radius:50%}::ng-deep .remove-border{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .remove-border:focus-visible{border:none!important;outline:none!important;box-shadow:none!important}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:#fb0!important;background-color:#fb0!important;border-radius:4px!important}::ng-deep .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mdc-checkbox__background{border:1px solid #dadada!important}\n"] }]
57
61
  }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { change: [{
58
62
  type: Output
59
63
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFnQjlGLE1BQU0sT0FBTyxlQUFlO0lBQ1A7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ25DLFVBQVUsR0FBUSxLQUFLLENBQUM7SUFDeEIseUJBQXlCLEdBQVMsS0FBSyxFQUFPLENBQUM7SUFDaEQsU0FBUyxHQUFRLENBQUMsVUFBZSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUzQixtREFBbUQ7SUFDekMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFM0MsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLGtDQUFrQztJQUNwQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO3dHQWpDVSxlQUFlOzRGQUFmLGVBQWUsK1lBUmY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ2pCSCxrbEZBd0RBLGsyRERoRFksWUFBWSx1TkFBRSxtQkFBbUI7OzRGQVdoQyxlQUFlO2tCQWQzQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsYUFHakM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3lGQVdTLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdG9nZ2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdG9nZ2xlLmNvbXBvbmVudC5jc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRvZ2dsZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtYXN0ZXJTZXJ2aWNlIDogTWFzdGVyQ29udHJvbFNlcnZpY2Upe31cbiAgZmllbGQgOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XG4gICBpbnB1dFZhbHVlOiBhbnkgPSBmYWxzZTtcbiAgIHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QgOiBhbnkgPSBpbnB1dDxhbnk+KCk7XG4gIF9vbkNoYW5nZTogYW55ID0gKGlucHV0VmFsdWU6IGFueSkgPT4ge307XG4gIF9vblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIC8vIERlY2xhcmUgT3V0cHV0IGV2ZW50IGVtaXR0ZXJzIGhlcmUgKGNsYXNzIGxldmVsKVxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IG9iajtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIGRpc2FibGVkIHN0YXRlIGlmIG5lZWRlZFxuICB9XG5cbiAgb25Ub2dnbGVDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgLy8gRW1pdCB0aGUgY2hhbmdlIGV2ZW50IHRvIHBhcmVudCBjb21wb25lbnRcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuaW5wdXRWYWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCkuaXNTaG93TGFiZWxcIiBbbmdTdHlsZV09XCJ7XG4gICctLWN1c3RvbS10b2dnbGUtYmctY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJhY2tncm91bmQsXG4gICctLWN1c3RvbS10b2dnbGUtYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXG4gICctLWN1c3RvbS10b2dnbGUtYm9yZGVyLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJXaWR0aCAsXG4gICctLWN1c3RvbS10b2dnbGUtYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzLFxuICAnLS1jdXN0b20tdG9nZ2xlLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy53aWR0aCxcbiAgfVwiXG4gIGNsYXNzPVwiY2FyZCB0b2dnbGUtYmFja2dyb3VuZCBtdC0yXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGVfc3dpdGNoIG10LTJcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmaWVsZCgpLmNvbmZpZ0RhdGE/LmxlZnRMYWJlbFwiIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJy0tY3VzdG9tLXRvZ2dsZS1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcbiAgICAgICAgJy0tY3VzdG9tLXRvZ2dsZS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXG4gICAgICAgICctLWN1c3RvbS10b2dnbGUtZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxuICAgICAgICAnLS1jdXN0b20tdG9nZ2xlLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yICxcbiAgICAgICAgfVwiIGNsYXNzPVwidG9nZ2xlLXRleHRcIj5cbiAgICAgICAgPGRpdj57e2ZpZWxkKCkuY29uZmlnRGF0YT8ubGVmdExhYmVsfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTFcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoXCI+XG4gICAgICAgICAgQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpbnB1dFZhbHVlXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKVwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICAgICAgICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImlucHV0VmFsdWVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzbGlkZXIgcm91bmRcIj48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgW25nU3R5bGVdPVwie1xuICAgICAgICAnLS1jdXN0b20tdG9nZ2xlLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxuICAgICAgICAnLS1jdXN0b20tdG9nZ2xlLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0ICxcbiAgICAgICAgJy0tY3VzdG9tLXRvZ2dsZS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXG4gICAgICAgICctLWN1c3RvbS10b2dnbGUtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxuICAgICAgICB9XCIgY2xhc3M9XCJ0b2dnbGUtdGV4dCBtYi0yXCI+XG4gICAgICAgIDxkaXY+e3tmaWVsZCgpPy5sYWJlbH19PC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA0MDA7XCIgKm5nSWY9XCJmaWVsZCgpLmNvbmZpZ0RhdGE/LnN1YkxhYmVsXCI+e3tmaWVsZCgpPy5jb25maWdEYXRhPy5zdWJMYWJlbH19IDxpbWcgYWx0PVwiXCIgW3NyY109XCJmaWVsZCgpPy5pbWFnZVVybFwiICpuZ0lmPVwiZmllbGQoKT8uaW1hZ2VVcmxcIiAvPiA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFnQjVFLE1BQU0sT0FBTyxlQUFlO0lBQ1A7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ25DLFVBQVUsR0FBUSxLQUFLLENBQUM7SUFDeEIseUJBQXlCLEdBQVMsS0FBSyxFQUFPLENBQUM7SUFDaEQsU0FBUyxHQUFRLENBQUMsVUFBZSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUzQixtREFBbUQ7SUFDekMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFM0MsUUFBUTtRQUNOLDRCQUE0QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsa0NBQWtDO0lBQ3BDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBckNVLGVBQWU7NEZBQWYsZUFBZSwrWUFSZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDbEJILG9tRkF3REEsazJERC9DWSxZQUFZLHVOQUFFLG1CQUFtQjs7NEZBV2hDLGVBQWU7a0JBZDNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxhQUdqQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7eUZBV1MsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE91dHB1dCxFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hc3RlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbWFzdGVyLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpbml0aWFsaXplRmllbGROYW1lQXR0cmlidXRlIH0gZnJvbSAnLi4vZmllbGQtbmFtZS1hdHRyaWJ1dGUudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10b2dnbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90b2dnbGUuY29tcG9uZW50LmNzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVG9nZ2xlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxuICBmaWVsZCA6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgIGlucHV0VmFsdWU6IGFueSA9IGZhbHNlO1xuICAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcbiAgX29uQ2hhbmdlOiBhbnkgPSAoaW5wdXRWYWx1ZTogYW55KSA9PiB7fTtcbiAgX29uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgLy8gRGVjbGFyZSBPdXRwdXQgZXZlbnQgZW1pdHRlcnMgaGVyZSAoY2xhc3MgbGV2ZWwpXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpbml0aWFsaXplRmllbGROYW1lQXR0cmlidXRlKHRoaXMuZmllbGQoKSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gb2JqO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBIYW5kbGUgZGlzYWJsZWQgc3RhdGUgaWYgbmVlZGVkXG4gIH1cblxuICBvblRvZ2dsZUNoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAvLyBFbWl0IHRoZSBjaGFuZ2UgZXZlbnQgdG8gcGFyZW50IGNvbXBvbmVudFxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5pbnB1dFZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIlwiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKS5pc1Nob3dMYWJlbFwiIFtuZ1N0eWxlXT1cIntcbiAgJy0tY3VzdG9tLXRvZ2dsZS1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCxcbiAgJy0tY3VzdG9tLXRvZ2dsZS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcbiAgJy0tY3VzdG9tLXRvZ2dsZS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcbiAgJy0tY3VzdG9tLXRvZ2dsZS1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMsXG4gICctLWN1c3RvbS10b2dnbGUtd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoLFxuICB9XCJcbiAgY2xhc3M9XCJjYXJkIHRvZ2dsZS1iYWNrZ3JvdW5kIG10LTJcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInRvZ2dsZV9zd2l0Y2ggbXQtMlwiPlxuICAgICAgPGRpdiAqbmdJZj1cImZpZWxkKCkuY29uZmlnRGF0YT8ubGVmdExhYmVsXCIgW25nU3R5bGVdPVwie1xuICAgICAgICAnLS1jdXN0b20tdG9nZ2xlLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxuICAgICAgICAnLS1jdXN0b20tdG9nZ2xlLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0ICxcbiAgICAgICAgJy0tY3VzdG9tLXRvZ2dsZS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXG4gICAgICAgICctLWN1c3RvbS10b2dnbGUtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxuICAgICAgICB9XCIgY2xhc3M9XCJ0b2dnbGUtdGV4dFwiPlxuICAgICAgICA8ZGl2Pnt7ZmllbGQoKS5jb25maWdEYXRhPy5sZWZ0TGFiZWx9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIj5cbiAgICAgICAgICBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lQXR0cmlidXRlXCJcbiAgICAgICAgICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImlucHV0VmFsdWVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRvZ2dsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVBdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaW5wdXRWYWx1ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxuICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7XG4gICAgICAgICctLWN1c3RvbS10b2dnbGUtZm9udC1zaXplJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250U2l6ZSAsXG4gICAgICAgICctLWN1c3RvbS10b2dnbGUtZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQgLFxuICAgICAgICAnLS1jdXN0b20tdG9nZ2xlLWZvbnQtZmFtaWx5JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250RmFtaWx5ICxcbiAgICAgICAgJy0tY3VzdG9tLXRvZ2dsZS1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXG4gICAgICAgIH1cIiBjbGFzcz1cInRvZ2dsZS10ZXh0IG1iLTJcIj5cbiAgICAgICAgPGRpdj57e2ZpZWxkKCk/LmxhYmVsfX08L2Rpdj5cbiAgICAgICAgPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDQwMDtcIiAqbmdJZj1cImZpZWxkKCkuY29uZmlnRGF0YT8uc3ViTGFiZWxcIj57e2ZpZWxkKCk/LmNvbmZpZ0RhdGE/LnN1YkxhYmVsfX0gPGltZyBhbHQ9XCJcIiBbc3JjXT1cImZpZWxkKCk/LmltYWdlVXJsXCIgKm5nSWY9XCJmaWVsZCgpPy5pbWFnZVVybFwiIC8+IDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuIl19
@@ -3,11 +3,15 @@ import { Component, input, Output, EventEmitter } from '@angular/core';
3
3
  import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
4
4
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
5
5
  import { CustomizedTooltipDirective } from '../directives/customized.tooltip.directive';
6
+ import { initializeFieldNameAttribute } from '../field-name-attribute.util';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/material/button-toggle";
8
9
  import * as i2 from "@angular/common";
9
10
  import * as i3 from "@angular/forms";
10
11
  export class ToggleButtonComponent {
12
+ ngOnInit() {
13
+ initializeFieldNameAttribute(this.field());
14
+ }
11
15
  reactiveFormControlobject = input();
12
16
  field = input.required();
13
17
  selectedValue = null;
@@ -45,7 +49,7 @@ export class ToggleButtonComponent {
45
49
  useExisting: ToggleButtonComponent,
46
50
  multi: true,
47
51
  },
48
- ], ngImport: i0, template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\n @if(reactiveFormControlobject()) {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" name=\"fontStyle\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [value]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\" [formControl]=\"reactiveFormControlobject()\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n <img *ngIf=\"data.imgUrl && !data.tooltipText\" [src]=\"data.imgUrl\" alt=\"\" class=\"toggle-img mx-1\" />\n\n {{ data.label }}\n <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" class=\"toggle-img mx-1\" />\n </span>\n\n <!-- \u2705 Single template that uses current data -->\n <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template>\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }@else {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" name=\"fontStyle\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [(ngModel)]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n {{ data.label }}\n <!-- <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" />\n </span> -->\n\n <!-- \u2705 Single template that uses current data -->\n <!-- <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template> -->\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }\n</div>", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { 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: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CustomizedTooltipDirective, selector: "[appTooltipTemplate]", inputs: ["appTooltipTemplate"] }] });
52
+ ], ngImport: i0, template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\n @if(reactiveFormControlobject()) {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" [attr.name]=\"field()?.fieldNameAttribute\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [value]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\" [formControl]=\"reactiveFormControlobject()\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n <img *ngIf=\"data.imgUrl && !data.tooltipText\" [src]=\"data.imgUrl\" alt=\"\" class=\"toggle-img mx-1\" />\n\n {{ data.label }}\n <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" class=\"toggle-img mx-1\" />\n </span>\n\n <!-- \u2705 Single template that uses current data -->\n <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template>\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }@else {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" name=\"fontStyle\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [(ngModel)]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n {{ data.label }}\n <!-- <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" />\n </span> -->\n\n <!-- \u2705 Single template that uses current data -->\n <!-- <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template> -->\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }\n</div>\n", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { 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: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CustomizedTooltipDirective, selector: "[appTooltipTemplate]", inputs: ["appTooltipTemplate"] }] });
49
53
  }
50
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToggleButtonComponent, decorators: [{
51
55
  type: Component,
@@ -55,10 +59,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
55
59
  useExisting: ToggleButtonComponent,
56
60
  multi: true,
57
61
  },
58
- ], template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\n @if(reactiveFormControlobject()) {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" name=\"fontStyle\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [value]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\" [formControl]=\"reactiveFormControlobject()\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n <img *ngIf=\"data.imgUrl && !data.tooltipText\" [src]=\"data.imgUrl\" alt=\"\" class=\"toggle-img mx-1\" />\n\n {{ data.label }}\n <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" class=\"toggle-img mx-1\" />\n </span>\n\n <!-- \u2705 Single template that uses current data -->\n <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template>\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }@else {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" name=\"fontStyle\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [(ngModel)]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n {{ data.label }}\n <!-- <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" />\n </span> -->\n\n <!-- \u2705 Single template that uses current data -->\n <!-- <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template> -->\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }\n</div>", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"] }]
62
+ ], template: "<div style=\"position: relative\" [ngClass]=\"field()?.cssClass\">\n @if(reactiveFormControlobject()) {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" [attr.name]=\"field()?.fieldNameAttribute\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [value]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\" [formControl]=\"reactiveFormControlobject()\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n <img *ngIf=\"data.imgUrl && !data.tooltipText\" [src]=\"data.imgUrl\" alt=\"\" class=\"toggle-img mx-1\" />\n\n {{ data.label }}\n <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" class=\"toggle-img mx-1\" />\n </span>\n\n <!-- \u2705 Single template that uses current data -->\n <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template>\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }@else {\n <mat-button-toggle-group [ngStyle]=\"{\n '--toggle-button-width': field()?.controlStyle?.width ,\n }\" name=\"fontStyle\" class=\"custom-mat-toggle\" aria-label=\"Font Style\"\n *ngIf=\"field() && field()?.isVisible && field()?.configData?.options\" [(ngModel)]=\"selectedValue\"\n (change)=\"onSelectionChange($event.value)\">\n @for (data of field()?.configData?.options; track $index) {\n <mat-button-toggle [value]=\"data.value\">\n {{ data.label }}\n <!-- <span [appTooltipTemplate]=\"currentTooltip\" arrowPosition=\"left\" tooltipPosition=\"bottom\"\n *ngIf=\"data.imgUrl && data.tooltipText\">\n <img [src]=\"data.imgUrl\" />\n </span> -->\n\n <!-- \u2705 Single template that uses current data -->\n <!-- <ng-template #currentTooltip>\n <span [innerHTML]=\"data.tooltipText\"></span>\n </ng-template> -->\n </mat-button-toggle>\n <div class=\"top-green-card\" *ngIf=\"data.toggleTopText\">\n <span class=\"second-box\">\n <img class=\"green-card-img\" *ngIf=\"data.topImage\" [src]=\"data.topImage\" alt=\"\" />\n <span>{{ data.toggleTopText }}</span>\n </span>\n </div>\n }\n </mat-button-toggle-group>\n }\n</div>\n", styles: [":host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{border-radius:50px}:host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{height:32px!important;transform:translateY(-9px);font-size:12px;font-weight:400;color:#444;letter-spacing:1px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-button{background:#fff!important;border-radius:50px!important;box-shadow:0 0 15px #00000014!important;height:32px;padding:0 24px;border:1px solid #ffbb00}:host ::ng-deep .mat-button-toggle-button{padding:0 24px}:host ::ng-deep .mat-button-toggle-checked .mat-button-toggle-label-content{font-weight:600!important;letter-spacing:1px}:host ::ng-deep .mat-button-toggle .mat-pseudo-checkbox{display:none}:host ::ng-deep .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:1px solid #ddd!important;background:#f5f5f5!important;height:33px}:host ::ng-deep .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important}:host ::ng-deep .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background:#f5f5f5!important;border-radius:50px}.toggle-img{width:12px}:host ::ng-deep .mat-button-toggle-standalone,.mat-button-toggle-group{overflow:unset!important}.second-box{position:relative;top:-4px}.top-green-card{font-size:10px;font-weight:800;color:#fff;background:#169f7d;border-top-left-radius:999px;border-top-right-radius:999px;position:absolute;right:3em;padding:2px 16px 2px 12px;transform:translate(5px,-19px);z-index:99999;height:18px}.green-card-img{width:14.86px;margin-bottom:6px}:host ::ng-deep .mat-button-toggle-button{width:var(--toggle-button-width , 100%)!important}\n"] }]
59
63
  }], propDecorators: { selectionChanged: [{
60
64
  type: Output
61
65
  }], change: [{
62
66
  type: Output
63
67
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQWdCeEYsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyx5QkFBeUIsR0FBUSxLQUFLLEVBQU8sQ0FBQztJQUM5QyxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ3BDLGFBQWEsR0FBUSxJQUFJLENBQUM7SUFFMUIsbURBQW1EO0lBQ3pDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFM0MsK0JBQStCO0lBQy9CLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUxQixVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsa0NBQWtDO0lBQ3BDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO3dHQXRDVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiw0YkFSckI7WUFDUDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDbkJMLDByRkEwRE0sODhERGhETSxxQkFBcUIsc29CQUFFLFlBQVkscVRBQUUsbUJBQW1CLHlUQUFFLFdBQVcsdVBBQUUsMEJBQTBCOzs0RkFXaEcscUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixDQUFDLGFBR2pHO3dCQUNQOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsdUJBQXVCOzRCQUNsQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFRTyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IEN1c3RvbWl6ZWRUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9jdXN0b21pemVkLnRvb2x0aXAuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRvZ2dsZS1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLCBDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBDdXN0b21pemVkVG9vbHRpcERpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RvZ2dsZS1idXR0b24uY29tcG9uZW50LmNzcycsXG4gIHByb3ZpZGVyczogW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgdXNlRXhpc3Rpbmc6IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdDogYW55ID0gaW5wdXQ8YW55PigpO1xuICBmaWVsZCA6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgc2VsZWN0ZWRWYWx1ZTogYW55ID0gbnVsbDtcblxuICAvLyBPdXRwdXQgZXZlbnRzIGZvciBwYXJlbnQgY29tcG9uZW50IGNvbW11bmljYXRpb25cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIGRpc2FibGVkIHN0YXRlIGlmIG5lZWRlZFxuICB9XG5cbiAgLy8gSGFuZGxlIHNlbGVjdGlvbiBjaGFuZ2VcbiAgb25TZWxlY3Rpb25DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICAvLyBFbWl0IGV2ZW50cyBmb3IgcGFyZW50IGNvbXBvbmVudFxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiIFtuZ0NsYXNzXT1cImZpZWxkKCk/LmNzc0NsYXNzXCI+XG4gIEBpZihyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KCkpIHtcbiAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtuZ1N0eWxlXT1cIntcbiAgICAgICctLXRvZ2dsZS1idXR0b24td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcbiAgICB9XCIgbmFtZT1cImZvbnRTdHlsZVwiIGNsYXNzPVwiY3VzdG9tLW1hdC10b2dnbGVcIiBhcmlhLWxhYmVsPVwiRm9udCBTdHlsZVwiXG4gICAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5jb25maWdEYXRhPy5vcHRpb25zXCIgW3ZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIlxuICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIj5cbiAgICBAZm9yIChkYXRhIG9mIGZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZGF0YS52YWx1ZVwiPlxuICAgICAgPGltZyAqbmdJZj1cImRhdGEuaW1nVXJsICYmICFkYXRhLnRvb2x0aXBUZXh0XCIgW3NyY109XCJkYXRhLmltZ1VybFwiIGFsdD1cIlwiIGNsYXNzPVwidG9nZ2xlLWltZyBteC0xXCIgLz5cblxuICAgICAge3sgZGF0YS5sYWJlbCB9fVxuICAgICAgPHNwYW4gW2FwcFRvb2x0aXBUZW1wbGF0ZV09XCJjdXJyZW50VG9vbHRpcFwiIGFycm93UG9zaXRpb249XCJsZWZ0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgKm5nSWY9XCJkYXRhLmltZ1VybCAmJiBkYXRhLnRvb2x0aXBUZXh0XCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJkYXRhLmltZ1VybFwiIGNsYXNzPVwidG9nZ2xlLWltZyBteC0xXCIgLz5cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPCEtLSDinIUgU2luZ2xlIHRlbXBsYXRlIHRoYXQgdXNlcyBjdXJyZW50IGRhdGEgLS0+XG4gICAgICA8bmctdGVtcGxhdGUgI2N1cnJlbnRUb29sdGlwPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImRhdGEudG9vbHRpcFRleHRcIj48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgPGRpdiBjbGFzcz1cInRvcC1ncmVlbi1jYXJkXCIgKm5nSWY9XCJkYXRhLnRvZ2dsZVRvcFRleHRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kLWJveFwiPlxuICAgICAgICA8aW1nIGNsYXNzPVwiZ3JlZW4tY2FyZC1pbWdcIiAqbmdJZj1cImRhdGEudG9wSW1hZ2VcIiBbc3JjXT1cImRhdGEudG9wSW1hZ2VcIiBhbHQ9XCJcIiAvPlxuICAgICAgICA8c3Bhbj57eyBkYXRhLnRvZ2dsZVRvcFRleHQgfX08L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICB9QGVsc2Uge1xuICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW25nU3R5bGVdPVwie1xuICAgICAgJy0tdG9nZ2xlLWJ1dHRvbi13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8ud2lkdGggLFxuICAgIH1cIiBuYW1lPVwiZm9udFN0eWxlXCIgY2xhc3M9XCJjdXN0b20tbWF0LXRvZ2dsZVwiIGFyaWEtbGFiZWw9XCJGb250IFN0eWxlXCJcbiAgICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVmFsdWVcIlxuICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiPlxuICAgIEBmb3IgKGRhdGEgb2YgZmllbGQoKT8uY29uZmlnRGF0YT8ub3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJkYXRhLnZhbHVlXCI+XG4gICAgICB7eyBkYXRhLmxhYmVsIH19XG4gICAgICA8IS0tIDxzcGFuIFthcHBUb29sdGlwVGVtcGxhdGVdPVwiY3VycmVudFRvb2x0aXBcIiBhcnJvd1Bvc2l0aW9uPVwibGVmdFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICpuZ0lmPVwiZGF0YS5pbWdVcmwgJiYgZGF0YS50b29sdGlwVGV4dFwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiZGF0YS5pbWdVcmxcIiAvPlxuICAgICAgPC9zcGFuPiAtLT5cblxuICAgICAgPCEtLSDinIUgU2luZ2xlIHRlbXBsYXRlIHRoYXQgdXNlcyBjdXJyZW50IGRhdGEgLS0+XG4gICAgICA8IS0tIDxuZy10ZW1wbGF0ZSAjY3VycmVudFRvb2x0aXA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZGF0YS50b29sdGlwVGV4dFwiPjwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+IC0tPlxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgPGRpdiBjbGFzcz1cInRvcC1ncmVlbi1jYXJkXCIgKm5nSWY9XCJkYXRhLnRvZ2dsZVRvcFRleHRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kLWJveFwiPlxuICAgICAgICA8aW1nIGNsYXNzPVwiZ3JlZW4tY2FyZC1pbWdcIiAqbmdJZj1cImRhdGEudG9wSW1hZ2VcIiBbc3JjXT1cImRhdGEudG9wSW1hZ2VcIiBhbHQ9XCJcIiAvPlxuICAgICAgICA8c3Bhbj57eyBkYXRhLnRvZ2dsZVRvcFRleHQgfX08L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICB9XG48L2Rpdj4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQWdCNUUsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxRQUFRO1FBQ04sNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELHlCQUF5QixHQUFRLEtBQUssRUFBTyxDQUFDO0lBQzlDLEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsYUFBYSxHQUFRLElBQUksQ0FBQztJQUUxQixtREFBbUQ7SUFDekMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUUzQywrQkFBK0I7SUFDL0IsUUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN6QixTQUFTLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRTFCLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxrQ0FBa0M7SUFDcEMsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7d0dBMUNVLHFCQUFxQjs0RkFBckIscUJBQXFCLDRiQVJyQjtZQUNQO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxxQkFBcUI7Z0JBQ2xDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNwQkwscXRGQTJEQSw4OEREaERZLHFCQUFxQixzb0JBQUUsWUFBWSxxVEFBRSxtQkFBbUIseVRBQUUsV0FBVyx1UEFBRSwwQkFBMEI7OzRGQVdoRyxxQkFBcUI7a0JBZGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsMEJBQTBCLENBQUMsYUFHakc7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx1QkFBdUI7NEJBQ2xDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQVlPLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBDdXN0b21pemVkVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY3VzdG9taXplZC50b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpbml0aWFsaXplRmllbGROYW1lQXR0cmlidXRlIH0gZnJvbSAnLi4vZmllbGQtbmFtZS1hdHRyaWJ1dGUudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10b2dnbGUtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEJ1dHRvblRvZ2dsZU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgQ3VzdG9taXplZFRvb2x0aXBEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBUb2dnbGVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpbml0aWFsaXplRmllbGROYW1lQXR0cmlidXRlKHRoaXMuZmllbGQoKSk7XG4gIH1cbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdDogYW55ID0gaW5wdXQ8YW55PigpO1xuICBmaWVsZCA6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgc2VsZWN0ZWRWYWx1ZTogYW55ID0gbnVsbDtcblxuICAvLyBPdXRwdXQgZXZlbnRzIGZvciBwYXJlbnQgY29tcG9uZW50IGNvbW11bmljYXRpb25cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIGRpc2FibGVkIHN0YXRlIGlmIG5lZWRlZFxuICB9XG5cbiAgLy8gSGFuZGxlIHNlbGVjdGlvbiBjaGFuZ2VcbiAgb25TZWxlY3Rpb25DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICAvLyBFbWl0IGV2ZW50cyBmb3IgcGFyZW50IGNvbXBvbmVudFxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiIFtuZ0NsYXNzXT1cImZpZWxkKCk/LmNzc0NsYXNzXCI+XG4gIEBpZihyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KCkpIHtcbiAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtuZ1N0eWxlXT1cIntcbiAgICAgICctLXRvZ2dsZS1idXR0b24td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcbiAgICB9XCIgW2F0dHIubmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVBdHRyaWJ1dGVcIiBjbGFzcz1cImN1c3RvbS1tYXQtdG9nZ2xlXCIgYXJpYS1sYWJlbD1cIkZvbnQgU3R5bGVcIlxuICAgICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uY29uZmlnRGF0YT8ub3B0aW9uc1wiIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIiBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCI+XG4gICAgQGZvciAoZGF0YSBvZiBmaWVsZCgpPy5jb25maWdEYXRhPy5vcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImRhdGEudmFsdWVcIj5cbiAgICAgIDxpbWcgKm5nSWY9XCJkYXRhLmltZ1VybCAmJiAhZGF0YS50b29sdGlwVGV4dFwiIFtzcmNdPVwiZGF0YS5pbWdVcmxcIiBhbHQ9XCJcIiBjbGFzcz1cInRvZ2dsZS1pbWcgbXgtMVwiIC8+XG5cbiAgICAgIHt7IGRhdGEubGFiZWwgfX1cbiAgICAgIDxzcGFuIFthcHBUb29sdGlwVGVtcGxhdGVdPVwiY3VycmVudFRvb2x0aXBcIiBhcnJvd1Bvc2l0aW9uPVwibGVmdFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICpuZ0lmPVwiZGF0YS5pbWdVcmwgJiYgZGF0YS50b29sdGlwVGV4dFwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiZGF0YS5pbWdVcmxcIiBjbGFzcz1cInRvZ2dsZS1pbWcgbXgtMVwiIC8+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDwhLS0g4pyFIFNpbmdsZSB0ZW1wbGF0ZSB0aGF0IHVzZXMgY3VycmVudCBkYXRhIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlICNjdXJyZW50VG9vbHRpcD5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJkYXRhLnRvb2x0aXBUZXh0XCI+PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtZ3JlZW4tY2FyZFwiICpuZ0lmPVwiZGF0YS50b2dnbGVUb3BUZXh0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNlY29uZC1ib3hcIj5cbiAgICAgICAgPGltZyBjbGFzcz1cImdyZWVuLWNhcmQtaW1nXCIgKm5nSWY9XCJkYXRhLnRvcEltYWdlXCIgW3NyY109XCJkYXRhLnRvcEltYWdlXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgPHNwYW4+e3sgZGF0YS50b2dnbGVUb3BUZXh0IH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgfUBlbHNlIHtcbiAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtuZ1N0eWxlXT1cIntcbiAgICAgICctLXRvZ2dsZS1idXR0b24td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcbiAgICB9XCIgbmFtZT1cImZvbnRTdHlsZVwiIGNsYXNzPVwiY3VzdG9tLW1hdC10b2dnbGVcIiBhcmlhLWxhYmVsPVwiRm9udCBTdHlsZVwiXG4gICAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5jb25maWdEYXRhPy5vcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIj5cbiAgICBAZm9yIChkYXRhIG9mIGZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZGF0YS52YWx1ZVwiPlxuICAgICAge3sgZGF0YS5sYWJlbCB9fVxuICAgICAgPCEtLSA8c3BhbiBbYXBwVG9vbHRpcFRlbXBsYXRlXT1cImN1cnJlbnRUb29sdGlwXCIgYXJyb3dQb3NpdGlvbj1cImxlZnRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAqbmdJZj1cImRhdGEuaW1nVXJsICYmIGRhdGEudG9vbHRpcFRleHRcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cImRhdGEuaW1nVXJsXCIgLz5cbiAgICAgIDwvc3Bhbj4gLS0+XG5cbiAgICAgIDwhLS0g4pyFIFNpbmdsZSB0ZW1wbGF0ZSB0aGF0IHVzZXMgY3VycmVudCBkYXRhIC0tPlxuICAgICAgPCEtLSA8bmctdGVtcGxhdGUgI2N1cnJlbnRUb29sdGlwPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImRhdGEudG9vbHRpcFRleHRcIj48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPiAtLT5cbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtZ3JlZW4tY2FyZFwiICpuZ0lmPVwiZGF0YS50b2dnbGVUb3BUZXh0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNlY29uZC1ib3hcIj5cbiAgICAgICAgPGltZyBjbGFzcz1cImdyZWVuLWNhcmQtaW1nXCIgKm5nSWY9XCJkYXRhLnRvcEltYWdlXCIgW3NyY109XCJkYXRhLnRvcEltYWdlXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgPHNwYW4+e3sgZGF0YS50b2dnbGVUb3BUZXh0IH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { Component, input, ViewChild, Output, EventEmitter, createComponent } from '@angular/core';
3
3
  import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
4
4
  import { FilePreviewComponent } from '../file-preview/file-preview.component';
5
+ import { initializeFieldNameAttribute } from '../field-name-attribute.util';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../master-control.service";
7
8
  import * as i2 from "../master.service";
@@ -34,6 +35,9 @@ export class UploadComponent {
34
35
  this.injector = injector;
35
36
  this.masterservice = masterservice;
36
37
  }
38
+ ngOnInit() {
39
+ initializeFieldNameAttribute(this.field());
40
+ }
37
41
  ngOnChanges(changes) {
38
42
  if ((changes['openQuoteImageObj']) && !this.masterService.checkIfValueIsEmpty(changes['openQuoteImageObj'].currentValue)) {
39
43
  if (!this.masterService.checkIfValueIsEmpty(this.openQuoteImageObj()) &&
@@ -191,7 +195,7 @@ export class UploadComponent {
191
195
  useExisting: UploadComponent,
192
196
  multi: true
193
197
  }
194
- ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}<span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n @if(reactiveFormControlobject()) {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [formControl]=\"reactiveFormControlobject()\"\n [class]=\"field()?.fieldName\"\n />\n }@else {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [class]=\"field()?.fieldName\"\n />\n }\n <button\n type=\"button\"\n class=\"upload-btn\"\n (click)=\"triggerFileInput()\"\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\n *ngIf=\"field() && field()?.isVisible\"\n [disabled]=\"field()?.isDisable\"\n [ngStyle]=\"{\n'--upload-width': field()?.controlStyle?.width ,\n'--upload-height': field()?.controlStyle?.height ,\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\n'--upload-border-color': field()?.controlStyle?.borderColor ,\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\n'--upload-background-color': field()?.controlStyle?.background ,\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\n}\"\n >\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\n <span class=\"upload-icon\">\n <span\n ><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ field()?.placeHolder }} <span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></span>\n </span>\n </ng-container>\n <ng-template #fileUploadedTemplate>\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file d-flex gap-4\" style=\"transform: translate(0px, -3px);\">\n <span class=\"mt-2 right-icon\" style=\" white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\">\n <span><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span [title]=\"file.name\" class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ file.name }}</span>\n </span>\n <div class=\"mt-2 left-icon\">\n <span (click)=\"previewFile(file, i, $event)\" style=\"cursor: pointer;\"><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\n <span (click)=\"removeFile(i, $event)\" style=\"cursor: pointer;\" *ngIf=\"!field()?.isDisable\">\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\n </span>\n </div>\n </div>\n </ng-template>\n </button>\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:var(--upload-height, 48px)!important;border-radius:.5rem;display:flex;align-items:center;justify-content:center}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\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: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
198
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}<span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n @if(reactiveFormControlobject()) {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [formControl]=\"reactiveFormControlobject()\"\n [class]=\"field()?.fieldName\"\n />\n }@else {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [class]=\"field()?.fieldName\"\n />\n }\n <button\n type=\"button\"\n class=\"upload-btn\"\n (click)=\"triggerFileInput()\"\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\n *ngIf=\"field() && field()?.isVisible\"\n [disabled]=\"field()?.isDisable\"\n [ngStyle]=\"{\n'--upload-width': field()?.controlStyle?.width ,\n'--upload-height': field()?.controlStyle?.height ,\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\n'--upload-border-color': field()?.controlStyle?.borderColor ,\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\n'--upload-background-color': field()?.controlStyle?.background ,\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\n}\"\n >\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\n <span class=\"upload-icon\">\n <span\n ><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ field()?.placeHolder }} <span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></span>\n </span>\n </ng-container>\n <ng-template #fileUploadedTemplate>\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file d-flex gap-4\" style=\"transform: translate(0px, -3px);\">\n <span class=\"mt-2 right-icon\" style=\" white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\">\n <span><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span [title]=\"file.name\" class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ file.name }}</span>\n </span>\n <div class=\"mt-2 left-icon\">\n <span (click)=\"previewFile(file, i, $event)\" style=\"cursor: pointer;\"><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\n <span (click)=\"removeFile(i, $event)\" style=\"cursor: pointer;\" *ngIf=\"!field()?.isDisable\">\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\n </span>\n </div>\n </div>\n </ng-template>\n </button>\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:var(--upload-height, 48px)!important;border-radius:.5rem;display:flex;align-items:center;justify-content:center}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\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: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
195
199
  }
196
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, decorators: [{
197
201
  type: Component,
@@ -205,7 +209,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
205
209
  useExisting: UploadComponent,
206
210
  multi: true
207
211
  }
208
- ], template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}<span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n @if(reactiveFormControlobject()) {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [formControl]=\"reactiveFormControlobject()\"\n [class]=\"field()?.fieldName\"\n />\n }@else {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [class]=\"field()?.fieldName\"\n />\n }\n <button\n type=\"button\"\n class=\"upload-btn\"\n (click)=\"triggerFileInput()\"\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\n *ngIf=\"field() && field()?.isVisible\"\n [disabled]=\"field()?.isDisable\"\n [ngStyle]=\"{\n'--upload-width': field()?.controlStyle?.width ,\n'--upload-height': field()?.controlStyle?.height ,\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\n'--upload-border-color': field()?.controlStyle?.borderColor ,\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\n'--upload-background-color': field()?.controlStyle?.background ,\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\n}\"\n >\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\n <span class=\"upload-icon\">\n <span\n ><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ field()?.placeHolder }} <span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></span>\n </span>\n </ng-container>\n <ng-template #fileUploadedTemplate>\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file d-flex gap-4\" style=\"transform: translate(0px, -3px);\">\n <span class=\"mt-2 right-icon\" style=\" white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\">\n <span><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span [title]=\"file.name\" class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ file.name }}</span>\n </span>\n <div class=\"mt-2 left-icon\">\n <span (click)=\"previewFile(file, i, $event)\" style=\"cursor: pointer;\"><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\n <span (click)=\"removeFile(i, $event)\" style=\"cursor: pointer;\" *ngIf=\"!field()?.isDisable\">\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\n </span>\n </div>\n </div>\n </ng-template>\n </button>\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:var(--upload-height, 48px)!important;border-radius:.5rem;display:flex;align-items:center;justify-content:center}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\n"] }]
212
+ ], template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}<span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n @if(reactiveFormControlobject()) {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [formControl]=\"reactiveFormControlobject()\"\n [class]=\"field()?.fieldName\"\n />\n }@else {\n <input\n hidden\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [multiple]=\"field()?.configData?.multiple\"\n [accept]=\"field()?.configData?.accept\"\n #fileInput\n (change)=\"onFileSelected($event)\"\n (click)=\"fileInput.value = ''\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [class]=\"field()?.fieldName\"\n />\n }\n <button\n type=\"button\"\n class=\"upload-btn\"\n (click)=\"triggerFileInput()\"\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\n *ngIf=\"field() && field()?.isVisible\"\n [disabled]=\"field()?.isDisable\"\n [ngStyle]=\"{\n'--upload-width': field()?.controlStyle?.width ,\n'--upload-height': field()?.controlStyle?.height ,\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\n'--upload-border-color': field()?.controlStyle?.borderColor ,\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\n'--upload-background-color': field()?.controlStyle?.background ,\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\n}\"\n >\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\n <span class=\"upload-icon\">\n <span\n ><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ field()?.placeHolder }} <span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></span>\n </span>\n </ng-container>\n <ng-template #fileUploadedTemplate>\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file d-flex gap-4\" style=\"transform: translate(0px, -3px);\">\n <span class=\"mt-2 right-icon\" style=\" white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\">\n <span><img [src]=\"field()?.imageUrl\" alt=\"\" [style.height]=\"field()?.controlStyle?.imageHeight\"/></span>\n <span [title]=\"file.name\" class=\"upload-text\" [ngStyle]=\"{\n'--upload-font-color': field()?.controlStyle?.color ,\n'--upload-font-size': field()?.controlStyle?.fontSize ,\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\n}\">{{ file.name }}</span>\n </span>\n <div class=\"mt-2 left-icon\">\n <span (click)=\"previewFile(file, i, $event)\" style=\"cursor: pointer;\"><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\n <span (click)=\"removeFile(i, $event)\" style=\"cursor: pointer;\" *ngIf=\"!field()?.isDisable\">\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\n </span>\n </div>\n </div>\n </ng-template>\n </button>\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:var(--upload-height, 48px)!important;border-radius:.5rem;display:flex;align-items:center;justify-content:center}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\n"] }]
209
213
  }], ctorParameters: () => [{ type: i1.MasterControlService }, { type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }, { type: i2.MasterService }], propDecorators: { fileInput: [{
210
214
  type: ViewChild,
211
215
  args: ['fileInput']
@@ -216,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
216
220
  }], filePreview: [{
217
221
  type: Output
218
222
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsWUFBWSxFQUFxRCxlQUFlLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBRXpMLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7OztBQXFCOUUsTUFBTSxPQUFPLGVBQWU7SUFtQlA7SUFBNkM7SUFDekQ7SUFBc0M7SUFuQjdDLHFCQUFxQixHQUFHLEtBQUssRUFBTyxDQUFDO0lBQ3JDLGlCQUFpQixHQUFTLEtBQUssRUFBTyxDQUFDO0lBQ3ZDLElBQUksQ0FBTTtJQUNWLDhCQUE4QjtJQUM5QixvREFBb0Q7SUFDcEQsMkJBQTJCO0lBQzNCLDZDQUE2QztJQUM3QyxzQkFBc0I7SUFDdEIsSUFBSTtJQUVKLGlDQUFpQztJQUVuQyxNQUFNO0lBQ04sMEZBQTBGO0lBQzFGLHlEQUF5RDtJQUN6RCwyQkFBMkI7SUFDM0IsbUNBQW1DO0lBQ25DLElBQUk7SUFDRixZQUFtQixhQUFvQyxFQUFTLE1BQXNCLEVBQy9FLFFBQTZCLEVBQVMsYUFBNkI7UUFEdkQsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDL0Us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Q0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0E3TFUsZUFBZTs0RkFBZixlQUFlLHV4QkFSZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxlQUFlO2dCQUM1QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsdUpDdkJILDhwSUF1RkEsdXFERDVFSSxZQUFZLGtiQUNaLFdBQVcsbW5CQUNYLG1CQUFtQjs7NEZBWVYsZUFBZTtrQkFsQjNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3FCQUNwQixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsaUJBQWlCOzRCQUM1QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvTEE2Q3VCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFFWixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnRSZWYsIEVudmlyb25tZW50SW5qZWN0b3IsIEFwcGxpY2F0aW9uUmVmLCBjcmVhdGVDb21wb25lbnQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbGUtcHJldmlldy9maWxlLXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IE1hc3RlclNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50LmNzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFVwbG9hZENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgZG9jdW1lbnRVcGxvYWRlckZpZWxkID0gaW5wdXQ8YW55PigpO1xuICBvcGVuUXVvdGVJbWFnZU9iaiA6IGFueSA9IGlucHV0PGFueT4oKTtcbiAgaHR0cDogYW55O1xuICAvLyBvcGVuUXVvdGVJbWFnZU9iaiA6IGFueSA9IHtcbiAgLy8gICBkb2N1bWVudElkOiBcIkUxQjE3NDAxQjY2MDQ2MTRBQzcyNzE0QUIxQzg5QkVCXCIsXG4gIC8vICAgZG9jdW1lbnRDb2RlOiBcIkxBUElDXCIsXG4gIC8vICAgZG9jdW1lbnROYW1lOiBcIkxBUElDXzE2ODc0MjQ4NjA5NzIucG5nXCIsXG4gIC8vICAgY29tcGFueUNvZGU6IFwiRExcIlxuICAvLyB9XG5cbiAgLy8gY29uZmlnRGF0YSBvYmplY3QgZm9yIGFwaSBjYWxsXG5cbi8vICAge1xuLy8gICBcImFwaVVybFwiIDogXCJodHRwczovL3VhdC1kaXJlY3Rwb3J0YWxsaWZlLmdvZGlnaXQuY29tL0RpcmVjdFBvcnRhbExpZmUvbGlmZS9kb2N1bWVudFwiLFxuLy8gICBcInNlc3Npb25TdG9yYWdlQXBwbGljYXRpb25JZFBhcmFtXCI6IFwiYXBwbGljYXRpb25pZFwiLFxuLy8gICBcImlzU2VuZFRva2VuXCIgOiBmYWxzZSxcbi8vICAgXCJ0b2tlbkNvb2tpZVBhcmFtXCIgOiBcInYzVG9rZW5cIlxuLy8gfVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWFzdGVyU2VydmljZSA6IE1hc3RlckNvbnRyb2xTZXJ2aWNlLCBwdWJsaWMgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgcHVibGljIGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLCBwdWJsaWMgbWFzdGVyc2VydmljZSA6IE1hc3RlclNlcnZpY2Upe31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCAoY2hhbmdlc1snb3BlblF1b3RlSW1hZ2VPYmonXSkgJiYgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGNoYW5nZXNbJ29wZW5RdW90ZUltYWdlT2JqJ10uY3VycmVudFZhbHVlKSApIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKSkgJiZcbiAgICAgICAgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudElkKSAmJlxuICAgICAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50Q29kZSkgJiZcbiAgICAgICAgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudE5hbWUpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudE5hbWVcbiAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICB9XG5cblxuICAgIH1cbiAgfVxuICBmaWVsZCA6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBPdXRwdXQoKSBmaWxlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcbiAgQE91dHB1dCgpIGZpbGVSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpbGU6IEZpbGUsIGluZGV4OiBudW1iZXIgfT4oKTtcbiAgQE91dHB1dCgpIGZpbGVQcmV2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpbGU6IEZpbGUsIGluZGV4OiBudW1iZXIgfT4oKTtcbiAgcHVibGljIGZpbGVQcmV2aWV3UmVmOiBDb21wb25lbnRSZWY8RmlsZVByZXZpZXdDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHByb3BlcnRpZXNcbiAgdXBsb2FkZWRGaWxlczogYW55ID0gW107XG4gIHZhbHVlOiBhbnkgPSBudWxsO1xuICBfb25DaGFuZ2U6IGFueSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgX29uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG4gIGRpc2FibGVkOiBhbnkgPSBmYWxzZTtcblxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xuICAgIGlmIChvYmogJiYgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBvYmo7XG4gICAgfSBlbHNlIGlmIChvYmopIHtcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtvYmpdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBhbnkpIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEZpbGUgdXBsb2FkIGhhbmRsaW5nXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuZmllbGQoKT8ubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gQXJyYXkuZnJvbShmaWxlcyk7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbZmlsZXNbMF1dO1xuICAgICAgICB0aGlzLnZhbHVlID0gZmlsZXNbMF07XG4gICAgICB9XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHRoaXMudXBsb2FkZWRGaWxlcyk7XG4gIH1cblxuICByZW1vdmVGaWxlKGluZGV4OiBhbnksIGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG4gICAgY29uc3QgcmVtb3ZlZEZpbGUgPSB0aGlzLnVwbG9hZGVkRmlsZXNbaW5kZXhdO1xuICAgIHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGlmICh0aGlzLmZpZWxkKCk/Lm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudXBsb2FkZWRGaWxlc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMCA/IHRoaXMudXBsb2FkZWRGaWxlc1swXSA6IG51bGw7XG4gICAgfVxuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuZmlsZVJlbW92ZWQuZW1pdCh7IGZpbGU6IHJlbW92ZWRGaWxlLCBpbmRleCB9KTtcbiAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHRoaXMudXBsb2FkZWRGaWxlcyk7XG4gIH1cblxuICBoYXNGaWxlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHRyaWdnZXJGaWxlSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbnByZXZpZXdGaWxlKGZpbGU6IEZpbGUsIGluZGV4OiBudW1iZXIsIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgaWYgKGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBmaWxlIGlzIG5ld2x5IHVwbG9hZGVkIG9yIG5vdFxuICBjb25zdCBpc0FjdHVhbEZpbGUgPSBmaWxlIGluc3RhbmNlb2YgRmlsZSAmJiBmaWxlLnNpemUgPiAwO1xuXG4gIGlmIChcbiAgICAhaXNBY3R1YWxGaWxlICYmXG4gICAgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKSkgJiZcbiAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50SWQpICYmXG4gICAgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudENvZGUpICYmXG4gICAgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudE5hbWUpXG4gICkge1xuICAgIC8vIFRoaXMgaXMgdGhlIGluaXRpYWxseSBsb2FkZWQgZmlsZSBmcm9tIG9wZW5RdW90ZUltYWdlT2JqLCBmZXRjaCBpdCBmcm9tIHNlcnZlclxuICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmZpZWxkKCkuY29uZmlnRGF0YSkgJiYgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMuZmllbGQoKS5jb25maWdEYXRhWydhcGlVcmwnXSkgJiYgICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmZpZWxkKCkuY29uZmlnRGF0YVsnc2Vzc2lvblN0b3JhZ2VBcHBsaWNhdGlvbklkUGFyYW0nXSkpIHtcbiAgICAgIGxldCByZXEgOiBhbnkgPSB7XG4gICAgICAgIGRvY3VtZW50SWQ6IHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudElkLFxuICAgICAgICBkb2N1bWVudENvZGU6IHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudENvZGUsXG4gICAgICAgIGNvbXBhbnlDb2RlOiB0aGlzLm9wZW5RdW90ZUltYWdlT2JqKCkuY29tcGFueUNvZGUsXG4gICAgICB9XG4gICAgICB0aGlzLm1hc3RlcnNlcnZpY2UuZ2V0SW1hZ2UodGhpcy5maWVsZCgpLmNvbmZpZ0RhdGEscmVxKS5zdWJzY3JpYmUoKHJlc3BvbnNlIDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aWV3RmlsZSA9IG5ldyBGaWxlKFtyZXNwb25zZV0sIHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5kb2N1bWVudE5hbWUsIHsgdHlwZTogcmVzcG9uc2UudHlwZSB9KTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnRG93bmxvYWRlZCBmaWxlIGZvciBwcmV2aWV3OicsIHByZXZpZXdGaWxlKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZpbGVQcmV2aWV3KHByZXZpZXdGaWxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRoaXMuc2hvd0ZpbGVQcmV2aWV3KGZpbGUpO1xuICB9XG59XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBzaG93IGZpbGUgcHJldmlld1xuICBwcml2YXRlIHNob3dGaWxlUHJldmlldyhmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgdGhpcy5maWxlUHJldmlld1JlZiA9IGNyZWF0ZUNvbXBvbmVudChGaWxlUHJldmlld0NvbXBvbmVudCwge1xuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5pbmplY3RvclxuICAgIH0pO1xuICAgIHRoaXMuZmlsZVByZXZpZXdSZWYuc2V0SW5wdXQoJ2ZpZWxkJywgdGhpcy5maWVsZCgpKTtcbiAgICB0aGlzLmZpbGVQcmV2aWV3UmVmLnNldElucHV0KCdmaWxlJywgZmlsZSk7XG4gICAgdGhpcy5maWxlUHJldmlld1JlZi5pbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2VGaWxlUHJldmlldygpO1xuICAgIH0pO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5maWxlUHJldmlld1JlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuZmlsZVByZXZpZXdSZWYuaG9zdFZpZXcpO1xuICB9XG5cbiAgY2xvc2VGaWxlUHJldmlldygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlUHJldmlld1JlZikge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZmlsZVByZXZpZXdSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmIChlbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLmZpbGVQcmV2aWV3UmVmLmhvc3RWaWV3KTtcbiAgICAgIHRoaXMuZmlsZVByZXZpZXdSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5maWxlUHJldmlld1JlZiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUZpbGVQcmV2aWV3KCk7XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZpZWxkLWxhYmxlIHVwbG9hZC1sYWJlbFwiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uaXNTaG93TGFiZWxcIj57e2ZpZWxkKCk/LmxhYmVsfX08c3BhbiBzdHlsZT1cImNvbG9yOiByZWRcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cbiAgQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xuICA8aW5wdXRcbiAgICBoaWRkZW5cbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXG4gICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICBbbXVsdGlwbGVdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubXVsdGlwbGVcIlxuICAgIFthY2NlcHRdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uYWNjZXB0XCJcbiAgICAjZmlsZUlucHV0XG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwiZmlsZUlucHV0LnZhbHVlID0gJydcIlxuICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcbiAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcbiAgICBbY2xhc3NdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgLz5cbiAgfUBlbHNlIHtcbiAgPGlucHV0XG4gICAgaGlkZGVuXG4gICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxuICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgW211bHRpcGxlXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm11bHRpcGxlXCJcbiAgICBbYWNjZXB0XT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LmFjY2VwdFwiXG4gICAgI2ZpbGVJbnB1dFxuICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cImZpbGVJbnB1dC52YWx1ZSA9ICcnXCJcbiAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgW2NsYXNzXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gIC8+XG4gIH1cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwidXBsb2FkLWJ0blwiXG4gICAgKGNsaWNrKT1cInRyaWdnZXJGaWxlSW5wdXQoKVwiXG4gICAgW25nQ2xhc3NdPVwiZmllbGQoKT8ubGFiZWwgPyAnbGlnaHRiYWNrZ3JvdW5kJyA6ICdzdWNjZXNzQmFja2dyb3VuZCdcIlxuICAgICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIlxuICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxuICAgICBbbmdTdHlsZV09XCJ7XG4nLS11cGxvYWQtd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcbictLXVwbG9hZC1oZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhlaWdodCAsXG4nLS11cGxvYWQtYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzICxcbictLXVwbG9hZC1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcbictLXVwbG9hZC1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcbictLXVwbG9hZC1ib3JkZXItc3R5bGUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclN0eWxlICxcbictLXVwbG9hZC1iYWNrZ3JvdW5kLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcbictLXVwbG9hZC1mb2N1cy1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxuJy0tdXBsb2FkLWZvY3VzLWJhY2tncm91bmQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXG59XCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZCgpPy5sYWJlbCAmJiAhaGFzRmlsZXMoKTsgZWxzZSBmaWxlVXBsb2FkZWRUZW1wbGF0ZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWQtaWNvblwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID48aW1nIFtzcmNdPVwiZmllbGQoKT8uaW1hZ2VVcmxcIiBhbHQ9XCJcIiBbc3R5bGUuaGVpZ2h0XT1cImZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaW1hZ2VIZWlnaHRcIi8+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC10ZXh0XCIgW25nU3R5bGVdPVwie1xuJy0tdXBsb2FkLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yICxcbictLXVwbG9hZC1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcbictLXVwbG9hZC1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCxcbictLXVwbG9hZC1mb2N1cy1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0NvbG9yICxcbn1cIj57eyBmaWVsZCgpPy5wbGFjZUhvbGRlciB9fSA8c3BhbiBzdHlsZT1cImNvbG9yOiByZWRcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiPio8L3NwYW4+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZmlsZVVwbG9hZGVkVGVtcGxhdGU+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIHVwbG9hZGVkRmlsZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInVwbG9hZGVkLWZpbGUgZC1mbGV4IGdhcC00XCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0zcHgpO1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTIgcmlnaHQtaWNvblwiIHN0eWxlPVwiIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXMgIWltcG9ydGFudDtcIj5cbiAgICAgICAgICA8c3Bhbj48aW1nIFtzcmNdPVwiZmllbGQoKT8uaW1hZ2VVcmxcIiBhbHQ9XCJcIiBbc3R5bGUuaGVpZ2h0XT1cImZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaW1hZ2VIZWlnaHRcIi8+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCJmaWxlLm5hbWVcIiBjbGFzcz1cInVwbG9hZC10ZXh0XCIgW25nU3R5bGVdPVwie1xuJy0tdXBsb2FkLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yICxcbictLXVwbG9hZC1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcbictLXVwbG9hZC1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCxcbictLXVwbG9hZC1mb2N1cy1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0NvbG9yICxcbn1cIj57eyBmaWxlLm5hbWUgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgbGVmdC1pY29uXCI+XG4gICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInByZXZpZXdGaWxlKGZpbGUsIGksICRldmVudClcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj48aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL3JldGFpbC1saWZlL3Zpc2liaWxpdHktb3VpLnN2Z1wiIGFsdD1cIlwiLz48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInJlbW92ZUZpbGUoaSwgJGV2ZW50KVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiICpuZ0lmPVwiIWZpZWxkKCk/LmlzRGlzYWJsZVwiPlxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi5nb2RpZ2l0LmNvbS9yZXRhaWwtbGlmZS9kZWxldGUtb3VpLnN2Z1wiIGFsdD1cIlwiLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaW5mb1wiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uY29uZmlnRGF0YT8uc3ViVGV4dFwiPnt7ZmllbGQoKT8uY29uZmlnRGF0YT8uc3ViVGV4dH19PC9kaXY+XG4iXX0=
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsWUFBWSxFQUFxRCxlQUFlLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBRXpMLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7OztBQW9CNUUsTUFBTSxPQUFPLGVBQWU7SUFtQlA7SUFBNkM7SUFDekQ7SUFBc0M7SUFuQjdDLHFCQUFxQixHQUFHLEtBQUssRUFBTyxDQUFDO0lBQ3JDLGlCQUFpQixHQUFTLEtBQUssRUFBTyxDQUFDO0lBQ3ZDLElBQUksQ0FBTTtJQUNWLDhCQUE4QjtJQUM5QixvREFBb0Q7SUFDcEQsMkJBQTJCO0lBQzNCLDZDQUE2QztJQUM3QyxzQkFBc0I7SUFDdEIsSUFBSTtJQUVKLGlDQUFpQztJQUVuQyxNQUFNO0lBQ04sMEZBQTBGO0lBQzFGLHlEQUF5RDtJQUN6RCwyQkFBMkI7SUFDM0IsbUNBQW1DO0lBQ25DLElBQUk7SUFDRixZQUFtQixhQUFvQyxFQUFTLE1BQXNCLEVBQy9FLFFBQTZCLEVBQVMsYUFBNkI7UUFEdkQsa0JBQWEsR0FB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Q0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUMzRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dHQWpNVSxlQUFlOzRGQUFmLGVBQWUsdXhCQVJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLGVBQWU7Z0JBQzVCLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRix1SkN4QkgsZ3JJQXVGQSx1cUREM0VJLFlBQVksa2JBQ1osV0FBVyxtbkJBQ1gsbUJBQW1COzs0RkFZVixlQUFlO2tCQWxCM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7cUJBQ3BCLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxpQkFBaUI7NEJBQzVCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29MQWlEdUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUVaLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbXBvbmVudFJlZiwgRW52aXJvbm1lbnRJbmplY3RvciwgQXBwbGljYXRpb25SZWYsIGNyZWF0ZUNvbXBvbmVudCwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbGVQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vZmlsZS1wcmV2aWV3L2ZpbGUtcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFzdGVyU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci5zZXJ2aWNlJztcbmltcG9ydCB7IGluaXRpYWxpemVGaWVsZE5hbWVBdHRyaWJ1dGUgfSBmcm9tICcuLi9maWVsZC1uYW1lLWF0dHJpYnV0ZS51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXVwbG9hZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3VwbG9hZC5jb21wb25lbnQuY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogVXBsb2FkQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBkb2N1bWVudFVwbG9hZGVyRmllbGQgPSBpbnB1dDxhbnk+KCk7XG4gIG9wZW5RdW90ZUltYWdlT2JqIDogYW55ID0gaW5wdXQ8YW55PigpO1xuICBodHRwOiBhbnk7XG4gIC8vIG9wZW5RdW90ZUltYWdlT2JqIDogYW55ID0ge1xuICAvLyAgIGRvY3VtZW50SWQ6IFwiRTFCMTc0MDFCNjYwNDYxNEFDNzI3MTRBQjFDODlCRUJcIixcbiAgLy8gICBkb2N1bWVudENvZGU6IFwiTEFQSUNcIixcbiAgLy8gICBkb2N1bWVudE5hbWU6IFwiTEFQSUNfMTY4NzQyNDg2MDk3Mi5wbmdcIixcbiAgLy8gICBjb21wYW55Q29kZTogXCJETFwiXG4gIC8vIH1cblxuICAvLyBjb25maWdEYXRhIG9iamVjdCBmb3IgYXBpIGNhbGxcblxuLy8gICB7XG4vLyAgIFwiYXBpVXJsXCIgOiBcImh0dHBzOi8vdWF0LWRpcmVjdHBvcnRhbGxpZmUuZ29kaWdpdC5jb20vRGlyZWN0UG9ydGFsTGlmZS9saWZlL2RvY3VtZW50XCIsXG4vLyAgIFwic2Vzc2lvblN0b3JhZ2VBcHBsaWNhdGlvbklkUGFyYW1cIjogXCJhcHBsaWNhdGlvbmlkXCIsXG4vLyAgIFwiaXNTZW5kVG9rZW5cIiA6IGZhbHNlLFxuLy8gICBcInRva2VuQ29va2llUGFyYW1cIiA6IFwidjNUb2tlblwiXG4vLyB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtYXN0ZXJTZXJ2aWNlIDogTWFzdGVyQ29udHJvbFNlcnZpY2UsIHB1YmxpYyBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICBwdWJsaWMgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsIHB1YmxpYyBtYXN0ZXJzZXJ2aWNlIDogTWFzdGVyU2VydmljZSl7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGluaXRpYWxpemVGaWVsZE5hbWVBdHRyaWJ1dGUodGhpcy5maWVsZCgpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoIChjaGFuZ2VzWydvcGVuUXVvdGVJbWFnZU9iaiddKSAmJiAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkoY2hhbmdlc1snb3BlblF1b3RlSW1hZ2VPYmonXS5jdXJyZW50VmFsdWUpICkge1xuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpKSAmJlxuICAgICAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50SWQpICYmXG4gICAgICAgICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLm9wZW5RdW90ZUltYWdlT2JqKCkuZG9jdW1lbnRDb2RlKSAmJlxuICAgICAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50TmFtZSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50TmFtZVxuICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgIH1cblxuXG4gICAgfVxuICB9XG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuICByZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0IDogYW55ID0gaW5wdXQ8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xuICBAT3V0cHV0KCkgZmlsZVJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsZTogRmlsZSwgaW5kZXg6IG51bWJlciB9PigpO1xuICBAT3V0cHV0KCkgZmlsZVByZXZpZXcgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsZTogRmlsZSwgaW5kZXg6IG51bWJlciB9PigpO1xuICBwdWJsaWMgZmlsZVByZXZpZXdSZWY6IENvbXBvbmVudFJlZjxGaWxlUHJldmlld0NvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgcHJvcGVydGllc1xuICB1cGxvYWRlZEZpbGVzOiBhbnkgPSBbXTtcbiAgdmFsdWU6IGFueSA9IG51bGw7XG4gIF9vbkNoYW5nZTogYW55ID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBfb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcbiAgZGlzYWJsZWQ6IGFueSA9IGZhbHNlO1xuXG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gICAgaWYgKG9iaiAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IG9iajtcbiAgICB9IGVsc2UgaWYgKG9iaikge1xuICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW29ial07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGFueSkge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLy8gRmlsZSB1cGxvYWQgaGFuZGxpbmdcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5maWVsZCgpPy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudXBsb2FkZWRGaWxlcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtmaWxlc1swXV07XG4gICAgICAgIHRoaXMudmFsdWUgPSBmaWxlc1swXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgfVxuICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy51cGxvYWRlZEZpbGVzKTtcbiAgfVxuXG4gIHJlbW92ZUZpbGUoaW5kZXg6IGFueSwgZXZlbnQ/OiBFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbiAgICBjb25zdCByZW1vdmVkRmlsZSA9IHRoaXMudXBsb2FkZWRGaWxlc1tpbmRleF07XG4gICAgdGhpcy51cGxvYWRlZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgaWYgKHRoaXMuZmllbGQoKT8ubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwID8gdGhpcy51cGxvYWRlZEZpbGVzWzBdIDogbnVsbDtcbiAgICB9XG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KHsgZmlsZTogcmVtb3ZlZEZpbGUsIGluZGV4IH0pO1xuICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy51cGxvYWRlZEZpbGVzKTtcbiAgfVxuXG4gIGhhc0ZpbGVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgdHJpZ2dlckZpbGVJbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxucHJldmlld0ZpbGUoZmlsZTogRmlsZSwgaW5kZXg6IG51bWJlciwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICBpZiAoZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGZpbGUgaXMgbmV3bHkgdXBsb2FkZWQgb3Igbm90XG4gIGNvbnN0IGlzQWN0dWFsRmlsZSA9IGZpbGUgaW5zdGFuY2VvZiBGaWxlICYmIGZpbGUuc2l6ZSA+IDA7XG5cbiAgaWYgKFxuICAgICFpc0FjdHVhbEZpbGUgJiZcbiAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpKSAmJlxuICAgICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLm9wZW5RdW90ZUltYWdlT2JqKCkuZG9jdW1lbnRJZCkgJiZcbiAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50Q29kZSkgJiZcbiAgICAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50TmFtZSlcbiAgKSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgaW5pdGlhbGx5IGxvYWRlZCBmaWxlIGZyb20gb3BlblF1b3RlSW1hZ2VPYmosIGZldGNoIGl0IGZyb20gc2VydmVyXG4gICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMuZmllbGQoKS5jb25maWdEYXRhKSAmJiAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5maWVsZCgpLmNvbmZpZ0RhdGFbJ2FwaVVybCddKSAmJiAgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMuZmllbGQoKS5jb25maWdEYXRhWydzZXNzaW9uU3RvcmFnZUFwcGxpY2F0aW9uSWRQYXJhbSddKSkge1xuICAgICAgbGV0IHJlcSA6IGFueSA9IHtcbiAgICAgICAgZG9jdW1lbnRJZDogdGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50SWQsXG4gICAgICAgIGRvY3VtZW50Q29kZTogdGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50Q29kZSxcbiAgICAgICAgY29tcGFueUNvZGU6IHRoaXMub3BlblF1b3RlSW1hZ2VPYmooKS5jb21wYW55Q29kZSxcbiAgICAgIH1cbiAgICAgIHRoaXMubWFzdGVyc2VydmljZS5nZXRJbWFnZSh0aGlzLmZpZWxkKCkuY29uZmlnRGF0YSxyZXEpLnN1YnNjcmliZSgocmVzcG9uc2UgOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpZXdGaWxlID0gbmV3IEZpbGUoW3Jlc3BvbnNlXSwgdGhpcy5vcGVuUXVvdGVJbWFnZU9iaigpLmRvY3VtZW50TmFtZSwgeyB0eXBlOiByZXNwb25zZS50eXBlIH0pO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdEb3dubG9hZGVkIGZpbGUgZm9yIHByZXZpZXc6JywgcHJldmlld0ZpbGUpO1xuICAgICAgICAgICAgdGhpcy5zaG93RmlsZVByZXZpZXcocHJldmlld0ZpbGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5zaG93RmlsZVByZXZpZXcoZmlsZSk7XG4gIH1cbn1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIHNob3cgZmlsZSBwcmV2aWV3XG4gIHByaXZhdGUgc2hvd0ZpbGVQcmV2aWV3KGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVQcmV2aWV3UmVmID0gY3JlYXRlQ29tcG9uZW50KEZpbGVQcmV2aWV3Q29tcG9uZW50LCB7XG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmluamVjdG9yXG4gICAgfSk7XG4gICAgdGhpcy5maWxlUHJldmlld1JlZi5zZXRJbnB1dCgnZmllbGQnLCB0aGlzLmZpZWxkKCkpO1xuICAgIHRoaXMuZmlsZVByZXZpZXdSZWYuc2V0SW5wdXQoJ2ZpbGUnLCBmaWxlKTtcbiAgICB0aGlzLmZpbGVQcmV2aWV3UmVmLmluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZUZpbGVQcmV2aWV3KCk7XG4gICAgfSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmZpbGVQcmV2aWV3UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5maWxlUHJldmlld1JlZi5ob3N0Vmlldyk7XG4gIH1cblxuICBjbG9zZUZpbGVQcmV2aWV3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbGVQcmV2aWV3UmVmKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5maWxlUHJldmlld1JlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKGVsZW1lbnQucGFyZW50Tm9kZSkge1xuICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuZmlsZVByZXZpZXdSZWYuaG9zdFZpZXcpO1xuICAgICAgdGhpcy5maWxlUHJldmlld1JlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmZpbGVQcmV2aWV3UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRmlsZVByZXZpZXcoKTtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGUgdXBsb2FkLWxhYmVsXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5pc1Nob3dMYWJlbFwiPnt7ZmllbGQoKT8ubGFiZWx9fTxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZFwiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XG4gIDxpbnB1dFxuICAgIGhpZGRlblxuICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVBdHRyaWJ1dGVcIlxuICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgIFttdWx0aXBsZV09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5tdWx0aXBsZVwiXG4gICAgW2FjY2VwdF09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5hY2NlcHRcIlxuICAgICNmaWxlSW5wdXRcbiAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIlxuICAgIChjbGljayk9XCJmaWxlSW5wdXQudmFsdWUgPSAnJ1wiXG4gICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxuICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxuICAgIFtjbGFzc109XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAvPlxuICB9QGVsc2Uge1xuICA8aW5wdXRcbiAgICBoaWRkZW5cbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXG4gICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lQXR0cmlidXRlXCJcbiAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICBbbXVsdGlwbGVdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubXVsdGlwbGVcIlxuICAgIFthY2NlcHRdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uYWNjZXB0XCJcbiAgICAjZmlsZUlucHV0XG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwiZmlsZUlucHV0LnZhbHVlID0gJydcIlxuICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcbiAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICBbY2xhc3NdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgLz5cbiAgfVxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJ1cGxvYWQtYnRuXCJcbiAgICAoY2xpY2spPVwidHJpZ2dlckZpbGVJbnB1dCgpXCJcbiAgICBbbmdDbGFzc109XCJmaWVsZCgpPy5sYWJlbCA/ICdsaWdodGJhY2tncm91bmQnIDogJ3N1Y2Nlc3NCYWNrZ3JvdW5kJ1wiXG4gICAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgIFtuZ1N0eWxlXT1cIntcbictLXVwbG9hZC13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8ud2lkdGggLFxuJy0tdXBsb2FkLWhlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaGVpZ2h0ICxcbictLXVwbG9hZC1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMgLFxuJy0tdXBsb2FkLWJvcmRlci1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyQ29sb3IgLFxuJy0tdXBsb2FkLWJvcmRlci13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyV2lkdGggLFxuJy0tdXBsb2FkLWJvcmRlci1zdHlsZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyU3R5bGUgLFxuJy0tdXBsb2FkLWJhY2tncm91bmQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJhY2tncm91bmQgLFxuJy0tdXBsb2FkLWZvY3VzLWJvcmRlci1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXG4nLS11cGxvYWQtZm9jdXMtYmFja2dyb3VuZC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCYWNrZ3JvdW5kICxcbn1cIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkKCk/LmxhYmVsICYmICFoYXNGaWxlcygpOyBlbHNlIGZpbGVVcGxvYWRlZFRlbXBsYXRlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC1pY29uXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgPjxpbWcgW3NyY109XCJmaWVsZCgpPy5pbWFnZVVybFwiIGFsdD1cIlwiIFtzdHlsZS5oZWlnaHRdPVwiZmllbGQoKT8uY29udHJvbFN0eWxlPy5pbWFnZUhlaWdodFwiLz48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLXRleHRcIiBbbmdTdHlsZV09XCJ7XG4nLS11cGxvYWQtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxuJy0tdXBsb2FkLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxuJy0tdXBsb2FkLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0LFxuJy0tdXBsb2FkLWZvY3VzLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQ29sb3IgLFxufVwiPnt7IGZpZWxkKCk/LnBsYWNlSG9sZGVyIH19IDxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZFwiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCI+Kjwvc3Bhbj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNmaWxlVXBsb2FkZWRUZW1wbGF0ZT5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2FkZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwidXBsb2FkZWQtZmlsZSBkLWZsZXggZ2FwLTRcIiBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTNweCk7XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMiByaWdodC1pY29uXCIgc3R5bGU9XCIgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhaW1wb3J0YW50O1wiPlxuICAgICAgICAgIDxzcGFuPjxpbWcgW3NyY109XCJmaWVsZCgpPy5pbWFnZVVybFwiIGFsdD1cIlwiIFtzdHlsZS5oZWlnaHRdPVwiZmllbGQoKT8uY29udHJvbFN0eWxlPy5pbWFnZUhlaWdodFwiLz48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gW3RpdGxlXT1cImZpbGUubmFtZVwiIGNsYXNzPVwidXBsb2FkLXRleHRcIiBbbmdTdHlsZV09XCJ7XG4nLS11cGxvYWQtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxuJy0tdXBsb2FkLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxuJy0tdXBsb2FkLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0LFxuJy0tdXBsb2FkLWZvY3VzLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQ29sb3IgLFxufVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBsZWZ0LWljb25cIj5cbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicHJldmlld0ZpbGUoZmlsZSwgaSwgJGV2ZW50KVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPjxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vcmV0YWlsLWxpZmUvdmlzaWJpbGl0eS1vdWkuc3ZnXCIgYWx0PVwiXCIvPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlRmlsZShpLCAkZXZlbnQpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKm5nSWY9XCIhZmllbGQoKT8uaXNEaXNhYmxlXCI+XG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL3JldGFpbC1saWZlL2RlbGV0ZS1vdWkuc3ZnXCIgYWx0PVwiXCIvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbmZvXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5jb25maWdEYXRhPy5zdWJUZXh0XCI+e3tmaWVsZCgpPy5jb25maWdEYXRhPy5zdWJUZXh0fX08L2Rpdj5cbiJdfQ==