master-control 0.4.17 → 0.4.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/accordian/accordian.component.mjs +3 -3
  3. package/esm2022/lib/add-document/add-document.component.mjs +3 -3
  4. package/esm2022/lib/addition-button/addition-button.component.mjs +3 -3
  5. package/esm2022/lib/age-date/age-date.component.mjs +3 -3
  6. package/esm2022/lib/amount-textbox/amount-textbox.component.mjs +3 -3
  7. package/esm2022/lib/annuity-premium-calculator/annuity-premium-calculator.component.mjs +3 -3
  8. package/esm2022/lib/annuity-rate-logo/annuity-rate-logo.component.mjs +3 -3
  9. package/esm2022/lib/autocomplete/autocomplete.component.mjs +3 -3
  10. package/esm2022/lib/benefit-card/benefit-card.component.mjs +3 -3
  11. package/esm2022/lib/button/button.component.mjs +3 -3
  12. package/esm2022/lib/card/card.component.mjs +3 -3
  13. package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
  14. package/esm2022/lib/directives/customized.tooltip.directive.mjs +59 -59
  15. package/esm2022/lib/discount/discount.component.mjs +3 -3
  16. package/esm2022/lib/discount-v2/discount-v2.component.mjs +3 -3
  17. package/esm2022/lib/dob/dob.component.mjs +3 -3
  18. package/esm2022/lib/download-document/download-document.component.mjs +3 -3
  19. package/esm2022/lib/email-with-domain/email-with-domain.component.mjs +3 -3
  20. package/esm2022/lib/error-snackbar/error-snackbar.component.mjs +3 -3
  21. package/esm2022/lib/file-preview/file-preview.component.mjs +3 -3
  22. package/esm2022/lib/footer/footer.component.mjs +3 -3
  23. package/esm2022/lib/footer-design/footer-design.component.mjs +3 -3
  24. package/esm2022/lib/footer-with-buttons/footer-with-buttons.component.mjs +3 -3
  25. package/esm2022/lib/grey-label/grey-label.component.mjs +3 -3
  26. package/esm2022/lib/header/header.component.mjs +3 -3
  27. package/esm2022/lib/hr-line/hr-line.component.mjs +3 -3
  28. package/esm2022/lib/hyperlink/hyperlink.component.mjs +3 -3
  29. package/esm2022/lib/icon-button/icon-button.component.mjs +3 -3
  30. package/esm2022/lib/iframe/iframe.component.mjs +3 -3
  31. package/esm2022/lib/image/image.component.mjs +3 -3
  32. package/esm2022/lib/image-upload/image-upload.component.mjs +3 -3
  33. package/esm2022/lib/in-built-benefit/in-built-benefit.component.mjs +3 -3
  34. package/esm2022/lib/info/info.component.mjs +3 -3
  35. package/esm2022/lib/info-textbox/info-textbox.component.mjs +3 -3
  36. package/esm2022/lib/label/label.component.mjs +3 -3
  37. package/esm2022/lib/label-value-card/label-value-card.component.mjs +3 -3
  38. package/esm2022/lib/label-with-image/label-with-image.component.mjs +3 -3
  39. package/esm2022/lib/loader/loader.component.mjs +3 -3
  40. package/esm2022/lib/master-control.component.mjs +3 -3
  41. package/esm2022/lib/master-control.service.mjs +1 -1
  42. package/esm2022/lib/master.service.mjs +1 -1
  43. package/esm2022/lib/medial-questions/medial-questions.component.mjs +3 -3
  44. package/esm2022/lib/menu/menu.component.mjs +3 -3
  45. package/esm2022/lib/miscellaneous-info-bar/miscellaneous-info-bar.component.mjs +3 -3
  46. package/esm2022/lib/mob-number/mob-number.component.mjs +3 -3
  47. package/esm2022/lib/motor-glow-plan-details/motor-glow-plan-details.component.mjs +3 -3
  48. package/esm2022/lib/multiple-select/multiple-select.component.mjs +3 -3
  49. package/esm2022/lib/neutral-snackbar/neutral-snackbar.component.mjs +3 -3
  50. package/esm2022/lib/other-benefits/other-benefits.component.mjs +3 -3
  51. package/esm2022/lib/otp-mob-number/otp-mob-number.component.mjs +3 -3
  52. package/esm2022/lib/otp-textbox/otp-textbox.component.mjs +3 -3
  53. package/esm2022/lib/page-nudge/page-nudge.component.mjs +3 -3
  54. package/esm2022/lib/pay-get-card/pay-get-card.component.mjs +3 -3
  55. package/esm2022/lib/plain-text/plain-text.component.mjs +3 -3
  56. package/esm2022/lib/progress-bar/progress-bar.component.mjs +3 -3
  57. package/esm2022/lib/radio/radio.component.mjs +3 -3
  58. package/esm2022/lib/search-multi-select/search-multi-select.component.mjs +3 -3
  59. package/esm2022/lib/select/select.component.mjs +3 -3
  60. package/esm2022/lib/select-textbox/select-textbox.component.mjs +3 -3
  61. package/esm2022/lib/stepper/stepper.component.mjs +3 -3
  62. package/esm2022/lib/stepper-with-arrow/stepper-with-arrow.component.mjs +3 -3
  63. package/esm2022/lib/sub-header/sub-header.component.mjs +3 -3
  64. package/esm2022/lib/subscript-textbox/subscript-textbox.component.mjs +3 -3
  65. package/esm2022/lib/success-snackbar/success-snackbar.component.mjs +3 -3
  66. package/esm2022/lib/suffix-textbox/suffix-textbox.component.mjs +3 -3
  67. package/esm2022/lib/tab/tab.component.mjs +3 -3
  68. package/esm2022/lib/table/table.component.mjs +3 -3
  69. package/esm2022/lib/tag-mob-number/tag-mob-number.component.mjs +3 -3
  70. package/esm2022/lib/textarea/textarea.component.mjs +3 -3
  71. package/esm2022/lib/textbox/textbox.component.mjs +3 -3
  72. package/esm2022/lib/textbox-with-image/textbox-with-image.component.mjs +3 -3
  73. package/esm2022/lib/textbox-with-text/textbox-with-text.component.mjs +3 -3
  74. package/esm2022/lib/textbox-with-underscore/textbox-with-underscore.component.mjs +3 -3
  75. package/esm2022/lib/toggle/toggle.component.mjs +3 -3
  76. package/esm2022/lib/toggle-button/toggle-button.component.mjs +3 -3
  77. package/esm2022/lib/top-header/top-header.component.mjs +3 -3
  78. package/esm2022/lib/underscore-mob-number/underscore-mob-number.component.mjs +3 -3
  79. package/esm2022/lib/upload/upload.component.mjs +3 -3
  80. package/esm2022/lib/warning-snackbar/warning-snackbar.component.mjs +3 -3
  81. package/esm2022/public-api.mjs +1 -1
  82. package/fesm2022/master-control.mjs +210 -210
  83. package/fesm2022/master-control.mjs.map +1 -1
  84. package/master-control-0.4.21.tgz +0 -0
  85. package/package.json +1 -1
  86. package/master-control-0.4.17.tgz +0 -0
@@ -45,7 +45,7 @@ export class EmailWithDomainComponent {
45
45
  useExisting: EmailWithDomainComponent,
46
46
  multi: true
47
47
  }
48
- ], ngImport: i0, template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\r\n <mat-form-field class=\"w-100\" appearance=\"outline\" [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n class=\"email-left-side\"\r\n [name]=\"field()?.fieldName + '_1'\"\r\n [id]=\"field()?.fieldName + '_1'\"\r\n [type]=\"field()?.controlType\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"field()?.isDisable\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (blur)=\"onInputBlur()\"\r\n [value]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n class=\"email-left-side\"\r\n [name]=\"field()?.fieldName + '_1'\"\r\n [id]=\"field()?.fieldName + '_1'\"\r\n [type]=\"field()?.controlType\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"field()?.isDisable\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (blur)=\"onInputBlur()\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n <span class=\"email-between\">&#64;</span>\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [name]=\"field()?.fieldName + '_2'\"\r\n [id]=\"field()?.fieldName + '_2'\"\r\n placeholder=\"domain.com\"\r\n class=\"email-right-side\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"field()?.isDisable\"\r\n />\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}\r\n </mat-error>\r\n </mat-form-field>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.email-left-side{width:40%!important;display:inline-block!important}.email-right-side{width:50%!important;display:inline-block!important}.email-between{padding:0 8px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:12px!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatFormFieldModule }, { 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: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
48
+ ], ngImport: i0, template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n <mat-form-field class=\"w-100\" appearance=\"outline\" [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n <input\n matInput\n autocomplete=\"off\"\n class=\"email-left-side\"\n [name]=\"field()?.fieldName + '_1'\"\n [id]=\"field()?.fieldName + '_1'\"\n [type]=\"field()?.controlType\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [pattern]=\"field()?.validators?.pattern\"\n (blur)=\"onInputBlur()\"\n [value]=\"inputValue\"\n [formControl]=\"reactiveFormControlobject()\"\n />\n }@else {\n <input\n matInput\n autocomplete=\"off\"\n class=\"email-left-side\"\n [name]=\"field()?.fieldName + '_1'\"\n [id]=\"field()?.fieldName + '_1'\"\n [type]=\"field()?.controlType\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [pattern]=\"field()?.validators?.pattern\"\n (blur)=\"onInputBlur()\"\n [value]=\"inputValue\"\n />\n }\n <span class=\"email-between\">&#64;</span>\n <input\n matInput\n autocomplete=\"off\"\n [name]=\"field()?.fieldName + '_2'\"\n [id]=\"field()?.fieldName + '_2'\"\n placeholder=\"domain.com\"\n class=\"email-right-side\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n />\n <mat-error *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}\n </mat-error>\n </mat-form-field>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}.\n</div>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.patternMessage }}.\n</div>\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.email-left-side{width:40%!important;display:inline-block!important}.email-right-side{width:50%!important;display:inline-block!important}.email-between{padding:0 8px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:12px!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatFormFieldModule }, { 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: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
49
49
  }
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailWithDomainComponent, decorators: [{
51
51
  type: Component,
@@ -55,6 +55,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
55
55
  useExisting: EmailWithDomainComponent,
56
56
  multi: true
57
57
  }
58
- ], template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\r\n <mat-form-field class=\"w-100\" appearance=\"outline\" [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n class=\"email-left-side\"\r\n [name]=\"field()?.fieldName + '_1'\"\r\n [id]=\"field()?.fieldName + '_1'\"\r\n [type]=\"field()?.controlType\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"field()?.isDisable\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (blur)=\"onInputBlur()\"\r\n [value]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n class=\"email-left-side\"\r\n [name]=\"field()?.fieldName + '_1'\"\r\n [id]=\"field()?.fieldName + '_1'\"\r\n [type]=\"field()?.controlType\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"field()?.isDisable\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (blur)=\"onInputBlur()\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n <span class=\"email-between\">&#64;</span>\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [name]=\"field()?.fieldName + '_2'\"\r\n [id]=\"field()?.fieldName + '_2'\"\r\n placeholder=\"domain.com\"\r\n class=\"email-right-side\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"field()?.isDisable\"\r\n />\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}\r\n </mat-error>\r\n </mat-form-field>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.isRequiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.email-left-side{width:40%!important;display:inline-block!important}.email-right-side{width:50%!important;display:inline-block!important}.email-between{padding:0 8px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:12px!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"] }]
58
+ ], template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n <mat-form-field class=\"w-100\" appearance=\"outline\" [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n <input\n matInput\n autocomplete=\"off\"\n class=\"email-left-side\"\n [name]=\"field()?.fieldName + '_1'\"\n [id]=\"field()?.fieldName + '_1'\"\n [type]=\"field()?.controlType\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [pattern]=\"field()?.validators?.pattern\"\n (blur)=\"onInputBlur()\"\n [value]=\"inputValue\"\n [formControl]=\"reactiveFormControlobject()\"\n />\n }@else {\n <input\n matInput\n autocomplete=\"off\"\n class=\"email-left-side\"\n [name]=\"field()?.fieldName + '_1'\"\n [id]=\"field()?.fieldName + '_1'\"\n [type]=\"field()?.controlType\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n [pattern]=\"field()?.validators?.pattern\"\n (blur)=\"onInputBlur()\"\n [value]=\"inputValue\"\n />\n }\n <span class=\"email-between\">&#64;</span>\n <input\n matInput\n autocomplete=\"off\"\n [name]=\"field()?.fieldName + '_2'\"\n [id]=\"field()?.fieldName + '_2'\"\n placeholder=\"domain.com\"\n class=\"email-right-side\"\n [required]=\"field()?.validators?.isRequired\"\n [disabled]=\"field()?.isDisable\"\n />\n <mat-error *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}\n </mat-error>\n </mat-form-field>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}.\n</div>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.patternMessage }}.\n</div>\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.email-left-side{width:40%!important;display:inline-block!important}.email-right-side{width:50%!important;display:inline-block!important}.email-between{padding:0 8px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:12px!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"] }]
59
59
  }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtd2l0aC1kb21haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9lbWFpbC13aXRoLWRvbWFpbi9lbWFpbC13aXRoLWRvbWFpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2VtYWlsLXdpdGgtZG9tYWluL2VtYWlsLXdpdGgtZG9tYWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFnQnpELE1BQU0sT0FBTyx3QkFBd0I7SUFDckMsT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUNoQixTQUFTLEdBQUssRUFBRSxDQUFDO0lBQ2pCLFdBQVcsR0FBSyxFQUFFLENBQUM7SUFFbkIsS0FBSyxHQUFRLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNuQyx5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxVQUFVLEdBQVEsSUFBSSxDQUFDO0lBQ3ZCLFNBQVMsR0FBUSxDQUFDLFVBQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3hDLFVBQVUsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFM0IsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBQyxHQUFHLENBQUM7SUFDdEIsQ0FBQztJQUFBLENBQUM7SUFDRixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQUEsQ0FBQztJQUNGLGdCQUFnQixDQUFFLFVBQW1CLElBQVEsQ0FBQztJQUFBLENBQUM7SUFFL0MsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO3dHQTdCVSx3QkFBd0I7NEZBQXhCLHdCQUF3QiwyWEFSeEI7WUFDUDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsd0JBQXdCO2dCQUNyQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDbEJMLHN2R0F5RUEsOC9HRGhFWSxZQUFZLHVOQUFFLGNBQWMsa3BCQUFFLGtCQUFrQiw4QkFBRSxXQUFXLDR3QkFBRSxtQkFBbUI7OzRGQVdqRix3QkFBd0I7a0JBZHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLGFBR2xGO3dCQUNQOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsMEJBQTBCOzRCQUNyQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lbWFpbC13aXRoLWRvbWFpbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VtYWlsLXdpdGgtZG9tYWluLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZW1haWwtd2l0aC1kb21haW4uY29tcG9uZW50LmNzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICB1c2VFeGlzdGluZzogRW1haWxXaXRoRG9tYWluQ29tcG9uZW50LFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVtYWlsV2l0aERvbWFpbkNvbXBvbmVudCB7XHJcbnBpbmNvZGU6IGFueSA9ICcnO1xyXG4gIGVtYWlsVXNlcjphbnk9Jyc7XHJcbiAgZW1haWxEb21haW46YW55PScnO1xyXG5cclxuICBmaWVsZDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QgOiBhbnkgPSBpbnB1dDxhbnk+KCk7XHJcbiAgaW5wdXRWYWx1ZTogYW55ID0gbnVsbDtcclxuICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XHJcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlPW9iajtcclxuICB9O1xyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH07XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl91blRvdWNoZWQgPSBmbjtcclxuICB9O1xyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lke307XHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRCbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxsYWJlbCAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCIgY2xhc3M9XCJmaWVsZC1sYWJsZVwiPnt7ZmllbGQoKT8ubGFiZWx9fTxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgW25nU3R5bGVdPVwie1xyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tZm9udC1zaXplJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250U2l6ZSAsXHJcbictLWN1c3RvbS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXHJcbictLWN1c3RvbS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXHJcbictLWN1c3RvbS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUJhY2tncm91bmQgLFxyXG59XCI+XHJcbiBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XHJcbiAgIDxpbnB1dFxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBjbGFzcz1cImVtYWlsLWxlZnQtc2lkZVwiXHJcbiAgICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfMSdcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ18xJ1wiXHJcbiAgICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXHJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKClcIlxyXG4gICAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxyXG4gICAgLz5cclxuIH1AZWxzZSB7XHJcbiAgIDxpbnB1dFxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBjbGFzcz1cImVtYWlsLWxlZnQtc2lkZVwiXHJcbiAgICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfMSdcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ18xJ1wiXHJcbiAgICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXHJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKClcIlxyXG4gICAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXHJcbiAgICAvPlxyXG4gfVxyXG4gICAgPHNwYW4gY2xhc3M9XCJlbWFpbC1iZXR3ZWVuXCI+JiM2NDs8L3NwYW4+XHJcbiAgICA8aW5wdXRcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ18yJ1wiXHJcbiAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnXzInXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJkb21haW4uY29tXCJcclxuICAgICAgY2xhc3M9XCJlbWFpbC1yaWdodC1zaWRlXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZE1lc3NhZ2UgfX1cclxuICAgIDwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlIH19LlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVybk1lc3NhZ2UgfX0uXHJcbjwvZGl2PlxyXG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtd2l0aC1kb21haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9lbWFpbC13aXRoLWRvbWFpbi9lbWFpbC13aXRoLWRvbWFpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2VtYWlsLXdpdGgtZG9tYWluL2VtYWlsLXdpdGgtZG9tYWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFnQnpELE1BQU0sT0FBTyx3QkFBd0I7SUFDckMsT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUNoQixTQUFTLEdBQUssRUFBRSxDQUFDO0lBQ2pCLFdBQVcsR0FBSyxFQUFFLENBQUM7SUFFbkIsS0FBSyxHQUFRLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNuQyx5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxVQUFVLEdBQVEsSUFBSSxDQUFDO0lBQ3ZCLFNBQVMsR0FBUSxDQUFDLFVBQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3hDLFVBQVUsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFM0IsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBQyxHQUFHLENBQUM7SUFDdEIsQ0FBQztJQUFBLENBQUM7SUFDRixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQUEsQ0FBQztJQUNGLGdCQUFnQixDQUFFLFVBQW1CLElBQVEsQ0FBQztJQUFBLENBQUM7SUFFL0MsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO3dHQTdCVSx3QkFBd0I7NEZBQXhCLHdCQUF3QiwyWEFSeEI7WUFDUDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsd0JBQXdCO2dCQUNyQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDbEJMLG9tR0F5RUEsOC9HRGhFWSxZQUFZLHVOQUFFLGNBQWMsa3BCQUFFLGtCQUFrQiw4QkFBRSxXQUFXLDR3QkFBRSxtQkFBbUI7OzRGQVdqRix3QkFBd0I7a0JBZHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLGFBR2xGO3dCQUNQOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsMEJBQTBCOzRCQUNyQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZW1haWwtd2l0aC1kb21haW4nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC13aXRoLWRvbWFpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9lbWFpbC13aXRoLWRvbWFpbi5jb21wb25lbnQuY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogRW1haWxXaXRoRG9tYWluQ29tcG9uZW50LFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRW1haWxXaXRoRG9tYWluQ29tcG9uZW50IHtcbnBpbmNvZGU6IGFueSA9ICcnO1xuICBlbWFpbFVzZXI6YW55PScnO1xuICBlbWFpbERvbWFpbjphbnk9Jyc7XG5cbiAgZmllbGQ6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcbiAgaW5wdXRWYWx1ZTogYW55ID0gbnVsbDtcbiAgX29uQ2hhbmdlOiBhbnkgPSAoaW5wdXRWYWx1ZTphbnkpID0+IHt9O1xuICBfdW5Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZHtcbiAgICB0aGlzLmlucHV0VmFsdWU9b2JqO1xuICB9O1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lke1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH07XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lke1xuICAgIHRoaXMuX3VuVG91Y2hlZCA9IGZuO1xuICB9O1xuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZHt9O1xuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICB9XG5cbiAgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxsYWJlbCAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCIgY2xhc3M9XCJmaWVsZC1sYWJsZVwiPnt7ZmllbGQoKT8ubGFiZWx9fTxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIFtuZ1N0eWxlXT1cIntcbictLWN1c3RvbS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcbictLWN1c3RvbS1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCAsXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyV2lkdGggLFxuJy0tY3VzdG9tLWJnLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JhY2tncm91bmQgLFxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJDb2xvciAsXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlcldpZHRoICxcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyQ29sb3IgLFxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJXaWR0aCAsXG4nLS1jdXN0b20tZm9udC1zaXplJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250U2l6ZSAsXG4nLS1jdXN0b20tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQgLFxuJy0tY3VzdG9tLWZvbnQtZmFtaWx5JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250RmFtaWx5ICxcbictLWN1c3RvbS1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXG4nLS1jdXN0b20tY2FyZXQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNhcmV0Q29sb3IgLFxuJy0tY3VzdG9tLWZvbnQtY29sb3ItZGlzYWJsZWQnIDogZmllbGQoKT8uY29udHJvbFN0eWxlPy5kaXNhYmxlQ29sb3IgLFxuJy0tY3VzdG9tLWJnLWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUJhY2tncm91bmQgLFxufVwiPlxuIEBpZihyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KCkpIHtcbiAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBjbGFzcz1cImVtYWlsLWxlZnQtc2lkZVwiXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnXzEnXCJcbiAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnXzEnXCJcbiAgICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiXG4gICAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcbiAgICAvPlxuIH1AZWxzZSB7XG4gICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgY2xhc3M9XCJlbWFpbC1sZWZ0LXNpZGVcIlxuICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ18xJ1wiXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ18xJ1wiXG4gICAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKClcIlxuICAgICAgW3ZhbHVlXT1cImlucHV0VmFsdWVcIlxuICAgIC8+XG4gfVxuICAgIDxzcGFuIGNsYXNzPVwiZW1haWwtYmV0d2VlblwiPiYjNjQ7PC9zcGFuPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnXzInXCJcbiAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnXzInXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiZG9tYWluLmNvbVwiXG4gICAgICBjbGFzcz1cImVtYWlsLXJpZ2h0LXNpZGVcIlxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgLz5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cbiAgICAgIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmFsc2VcIj5cbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZE1lc3NhZ2UgfX0uXG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmYWxzZVwiPlxuICB7eyBmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuTWVzc2FnZSB9fS5cbjwvZGl2PlxuIl19
@@ -12,10 +12,10 @@ export class ErrorSnackbarComponent {
12
12
  this.errorObj = this.masterService.snackbars.find((item) => item.type === 'Error');
13
13
  }
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ErrorSnackbarComponent, deps: [{ token: i1.MasterControlService }], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ErrorSnackbarComponent, isStandalone: true, selector: "lib-error-snackbar", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div [ngClass]=\"field()?.configData?.toasterCSS\">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex gap-3\">\r\n <span>\r\n <img\r\n [src]=\"field()?.configData?.imageURL\"\r\n alt=\"\"\r\n class=\"mt-1\"\r\n [ngClass]=\"field()?.configData?.imageCSS\"\r\n />\r\n </span>\r\n <span class=\"mb-2\">\r\n <p class=\"mb-2\" [ngClass]=\"field()?.configData?.labelCSS\">{{field()?.configData?.labelText}}</p>\r\n <p class=\"m-0\" [ngClass]=\"field()?.configData?.messageCSS\">{{field()?.configData?.messageText}}</p>\r\n </span>\r\n </div>\r\n <div >\r\n <img class=\"cross\" [ngClass]=\"field()?.configData?.closeIconCSS\" [src]=\"field()?.configData?.closeIconImageURL\" alt=\"\">\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["*{font-family:mulish!important}.error-snackbar-card{max-height:58px;max-width:400px;border-radius:8px;background:var(--Colours-Error-100, #FDE5E5);border:1px solid var(--Colours-Error-200, #FCCCCC);box-shadow:0 2px 15px 2px #e3e6ec99;padding:10px 16px}.cross{width:9.86px;height:9.86px;cursor:pointer}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{background-color:#444!important;color:#f5f5f5!important}.toaster-label{font-size:14px;font-weight:700;color:#444}.toaster-img{height:24px;width:24px}.toaster-msg{font-weight:400;font-size:12px;color:#444;line-height:0px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ErrorSnackbarComponent, isStandalone: true, selector: "lib-error-snackbar", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div [ngClass]=\"field()?.configData?.toasterCSS\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"d-flex gap-3\">\n <span>\n <img\n [src]=\"field()?.configData?.imageURL\"\n alt=\"\"\n class=\"mt-1\"\n [ngClass]=\"field()?.configData?.imageCSS\"\n />\n </span>\n <span class=\"mb-2\">\n <p class=\"mb-2\" [ngClass]=\"field()?.configData?.labelCSS\">{{field()?.configData?.labelText}}</p>\n <p class=\"m-0\" [ngClass]=\"field()?.configData?.messageCSS\">{{field()?.configData?.messageText}}</p>\n </span>\n </div>\n <div >\n <img class=\"cross\" [ngClass]=\"field()?.configData?.closeIconCSS\" [src]=\"field()?.configData?.closeIconImageURL\" alt=\"\">\n </div>\n </div>\n</div>\n", styles: ["*{font-family:mulish!important}.error-snackbar-card{max-height:58px;max-width:400px;border-radius:8px;background:var(--Colours-Error-100, #FDE5E5);border:1px solid var(--Colours-Error-200, #FCCCCC);box-shadow:0 2px 15px 2px #e3e6ec99;padding:10px 16px}.cross{width:9.86px;height:9.86px;cursor:pointer}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{background-color:#444!important;color:#f5f5f5!important}.toaster-label{font-size:14px;font-weight:700;color:#444}.toaster-img{height:24px;width:24px}.toaster-msg{font-weight:400;font-size:12px;color:#444;line-height:0px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ErrorSnackbarComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'lib-error-snackbar', standalone: true, imports: [CommonModule], template: "<div [ngClass]=\"field()?.configData?.toasterCSS\">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex gap-3\">\r\n <span>\r\n <img\r\n [src]=\"field()?.configData?.imageURL\"\r\n alt=\"\"\r\n class=\"mt-1\"\r\n [ngClass]=\"field()?.configData?.imageCSS\"\r\n />\r\n </span>\r\n <span class=\"mb-2\">\r\n <p class=\"mb-2\" [ngClass]=\"field()?.configData?.labelCSS\">{{field()?.configData?.labelText}}</p>\r\n <p class=\"m-0\" [ngClass]=\"field()?.configData?.messageCSS\">{{field()?.configData?.messageText}}</p>\r\n </span>\r\n </div>\r\n <div >\r\n <img class=\"cross\" [ngClass]=\"field()?.configData?.closeIconCSS\" [src]=\"field()?.configData?.closeIconImageURL\" alt=\"\">\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["*{font-family:mulish!important}.error-snackbar-card{max-height:58px;max-width:400px;border-radius:8px;background:var(--Colours-Error-100, #FDE5E5);border:1px solid var(--Colours-Error-200, #FCCCCC);box-shadow:0 2px 15px 2px #e3e6ec99;padding:10px 16px}.cross{width:9.86px;height:9.86px;cursor:pointer}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{background-color:#444!important;color:#f5f5f5!important}.toaster-label{font-size:14px;font-weight:700;color:#444}.toaster-img{height:24px;width:24px}.toaster-msg{font-weight:400;font-size:12px;color:#444;line-height:0px}\n"] }]
19
+ args: [{ selector: 'lib-error-snackbar', standalone: true, imports: [CommonModule], template: "<div [ngClass]=\"field()?.configData?.toasterCSS\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"d-flex gap-3\">\n <span>\n <img\n [src]=\"field()?.configData?.imageURL\"\n alt=\"\"\n class=\"mt-1\"\n [ngClass]=\"field()?.configData?.imageCSS\"\n />\n </span>\n <span class=\"mb-2\">\n <p class=\"mb-2\" [ngClass]=\"field()?.configData?.labelCSS\">{{field()?.configData?.labelText}}</p>\n <p class=\"m-0\" [ngClass]=\"field()?.configData?.messageCSS\">{{field()?.configData?.messageText}}</p>\n </span>\n </div>\n <div >\n <img class=\"cross\" [ngClass]=\"field()?.configData?.closeIconCSS\" [src]=\"field()?.configData?.closeIconImageURL\" alt=\"\">\n </div>\n </div>\n</div>\n", styles: ["*{font-family:mulish!important}.error-snackbar-card{max-height:58px;max-width:400px;border-radius:8px;background:var(--Colours-Error-100, #FDE5E5);border:1px solid var(--Colours-Error-200, #FCCCCC);box-shadow:0 2px 15px 2px #e3e6ec99;padding:10px 16px}.cross{width:9.86px;height:9.86px;cursor:pointer}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{background-color:#444!important;color:#f5f5f5!important}.toaster-label{font-size:14px;font-weight:700;color:#444}.toaster-img{height:24px;width:24px}.toaster-msg{font-weight:400;font-size:12px;color:#444;line-height:0px}\n"] }]
20
20
  }], ctorParameters: () => [{ type: i1.MasterControlService }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9lcnJvci1zbmFja2Jhci9lcnJvci1zbmFja2Jhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Vycm9yLXNuYWNrYmFyL2Vycm9yLXNuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVMvQyxNQUFNLE9BQU8sc0JBQXNCO0lBSWhCO0lBSG5CLEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsUUFBUSxDQUFLO0lBRWIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3JELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQzFGLENBQUM7d0dBTlksc0JBQXNCOzRGQUF0QixzQkFBc0IsaU5DWG5DLDgwQkFxQkEsMm5CRGRZLFlBQVk7OzRGQUlYLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZXJyb3Itc25hY2tiYXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLXNuYWNrYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZXJyb3Itc25hY2tiYXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVycm9yU25hY2tiYXJDb21wb25lbnQge1xyXG5maWVsZCA6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuZXJyb3JPYmo6YW55O1xyXG5cclxuY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSkge1xyXG4gIHRoaXMuZXJyb3JPYmogPSB0aGlzLm1hc3RlclNlcnZpY2Uuc25hY2tiYXJzLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS50eXBlID09PSAnRXJyb3InKTtcclxufVxyXG59XHJcbiIsIjxkaXYgW25nQ2xhc3NdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8udG9hc3RlckNTU1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTNcIj5cclxuICAgICAgPHNwYW4+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgW3NyY109XCJmaWVsZCgpPy5jb25maWdEYXRhPy5pbWFnZVVSTFwiXHJcbiAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtdC0xXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LmltYWdlQ1NTXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwibWItMlwiIFtuZ0NsYXNzXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LmxhYmVsQ1NTXCI+e3tmaWVsZCgpPy5jb25maWdEYXRhPy5sYWJlbFRleHR9fTwvcD5cclxuICAgICAgICA8cCBjbGFzcz1cIm0tMFwiIFtuZ0NsYXNzXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm1lc3NhZ2VDU1NcIj57e2ZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm1lc3NhZ2VUZXh0fX08L3A+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiA+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cImNyb3NzXCIgW25nQ2xhc3NdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uY2xvc2VJY29uQ1NTXCIgW3NyY109XCJmaWVsZCgpPy5jb25maWdEYXRhPy5jbG9zZUljb25JbWFnZVVSTFwiIGFsdD1cIlwiPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9lcnJvci1zbmFja2Jhci9lcnJvci1zbmFja2Jhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Vycm9yLXNuYWNrYmFyL2Vycm9yLXNuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVMvQyxNQUFNLE9BQU8sc0JBQXNCO0lBSWhCO0lBSG5CLEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsUUFBUSxDQUFLO0lBRWIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3JELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQzFGLENBQUM7d0dBTlksc0JBQXNCOzRGQUF0QixzQkFBc0IsaU5DWG5DLG95QkFxQkEsMm5CRGRZLFlBQVk7OzRGQUlYLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1lcnJvci1zbmFja2JhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZXJyb3Itc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZXJyb3Itc25hY2tiYXIuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JTbmFja2JhckNvbXBvbmVudCB7XG5maWVsZCA6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbmVycm9yT2JqOmFueTtcblxuY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSkge1xuICB0aGlzLmVycm9yT2JqID0gdGhpcy5tYXN0ZXJTZXJ2aWNlLnNuYWNrYmFycy5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0udHlwZSA9PT0gJ0Vycm9yJyk7XG59XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LnRvYXN0ZXJDU1NcIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTNcIj5cbiAgICAgIDxzcGFuPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW3NyY109XCJmaWVsZCgpPy5jb25maWdEYXRhPy5pbWFnZVVSTFwiXG4gICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICBjbGFzcz1cIm10LTFcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LmltYWdlQ1NTXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8cCBjbGFzcz1cIm1iLTJcIiBbbmdDbGFzc109XCJmaWVsZCgpPy5jb25maWdEYXRhPy5sYWJlbENTU1wiPnt7ZmllbGQoKT8uY29uZmlnRGF0YT8ubGFiZWxUZXh0fX08L3A+XG4gICAgICAgIDxwIGNsYXNzPVwibS0wXCIgW25nQ2xhc3NdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubWVzc2FnZUNTU1wiPnt7ZmllbGQoKT8uY29uZmlnRGF0YT8ubWVzc2FnZVRleHR9fTwvcD5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ID5cbiAgICAgICAgPGltZyBjbGFzcz1cImNyb3NzXCIgW25nQ2xhc3NdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uY2xvc2VJY29uQ1NTXCIgW3NyY109XCJmaWVsZCgpPy5jb25maWdEYXRhPy5jbG9zZUljb25JbWFnZVVSTFwiIGFsdD1cIlwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -83,12 +83,12 @@ export class FilePreviewComponent {
83
83
  setTimeout(() => URL.revokeObjectURL(url), 100);
84
84
  }
85
85
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilePreviewComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
86
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FilePreviewComponent, isStandalone: true, selector: "lib-file-preview", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<div class=\"file-preview-modal\" \r\n *ngIf=\"field() && field()?.isVisible\"\r\n [id]=\"field()?.fieldName + '_preview'\"\r\n (click)=\"onBackdropClick($event)\"\r\n (keydown.escape)=\"closePreview()\"\r\n [ngStyle]=\"{\r\n '--modal-background': field()?.previewStyle?.modalBackground || 'rgba(0, 0, 0, 0.9)',\r\n '--modal-z-index': field()?.previewStyle?.zIndex || '10000',\r\n '--modal-width': field()?.previewStyle?.width || '100%',\r\n '--modal-height': field()?.previewStyle?.height || '100%'\r\n }\">\r\n \r\n <!-- Image Preview -->\r\n <div *ngIf=\"isImage()\" \r\n class=\"preview-container image-container\"\r\n [id]=\"field()?.fieldName + '_image_container'\"\r\n [ngStyle]=\"{\r\n '--image-container-background': field()?.previewStyle?.imageContainerBackground || 'transparent',\r\n '--image-container-border-radius': field()?.previewStyle?.imageContainerBorderRadius || '8px',\r\n '--image-container-padding': field()?.previewStyle?.imageContainerPadding || '20px',\r\n '--image-container-margin': field()?.previewStyle?.imageContainerMargin || '0'\r\n }\">\r\n \r\n <button class=\"close-btn\" \r\n type=\"button\"\r\n [id]=\"field()?.fieldName + '_close_btn'\"\r\n (click)=\"closePreview()\" \r\n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\r\n [ngStyle]=\"{\r\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\r\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\r\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\r\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\r\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\r\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\r\n }\">&times;</button>\r\n \r\n <h3 class=\"file-title\"\r\n [ngStyle]=\"{\r\n '--title-color': field()?.previewStyle?.titleColor || '#fff',\r\n '--title-font-family': field()?.previewStyle?.titleFontFamily || 'Mulish',\r\n '--title-font-size': field()?.previewStyle?.titleFontSize || '18px',\r\n '--title-font-weight': field()?.previewStyle?.titleFontWeight || '600',\r\n '--title-margin': field()?.previewStyle?.titleMargin || '0 0 10px 0',\r\n '--title-padding': field()?.previewStyle?.titlePadding || '0 10px'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <img [src]=\"fileDataUrl\" \r\n [alt]=\"file()?.name\" \r\n [id]=\"field()?.fieldName + '_preview_image'\"\r\n class=\"preview-image\"\r\n [ngStyle]=\"{\r\n '--image-max-width': field()?.previewStyle?.imageMaxWidth || '100%',\r\n '--image-max-height': field()?.previewStyle?.imageMaxHeight || '80vh',\r\n '--image-border-radius': field()?.previewStyle?.imageBorderRadius || '8px',\r\n '--image-box-shadow': field()?.previewStyle?.imageBoxShadow || '0 4px 20px rgba(0,0,0,0.5)',\r\n '--image-object-fit': field()?.previewStyle?.imageObjectFit || 'contain'\r\n }\" />\r\n </div>\r\n\r\n <!-- PDF Preview -->\r\n <div *ngIf=\"isPdf()\" \r\n class=\"preview-container pdf-container\"\r\n [id]=\"field()?.fieldName + '_pdf_container'\"\r\n [ngStyle]=\"{\r\n '--pdf-container-background': field()?.previewStyle?.pdfContainerBackground || '#fff',\r\n '--pdf-container-border-radius': field()?.previewStyle?.pdfContainerBorderRadius || '8px',\r\n '--pdf-container-width': field()?.previewStyle?.pdfContainerWidth || '95vw',\r\n '--pdf-container-height': field()?.previewStyle?.pdfContainerHeight || '95vh'\r\n }\">\r\n \r\n <!-- Top-right action buttons -->\r\n <div class=\"pdf-actions-top-right\"\r\n [ngStyle]=\"{\r\n '--actions-top': field()?.previewStyle?.actionsTop || '15px',\r\n '--actions-right': field()?.previewStyle?.actionsRight || '15px',\r\n '--actions-gap': field()?.previewStyle?.actionsGap || '10px'\r\n }\">\r\n \r\n <button (click)=\"closePreview()\" \r\n type=\"button\"\r\n class=\"action-icon-btn close-btn\"\r\n [id]=\"field()?.fieldName + '_close_pdf'\"\r\n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\r\n [ngStyle]=\"{\r\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\r\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\r\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\r\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\r\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\r\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\r\n }\">&times;</button>\r\n </div>\r\n \r\n <!-- File title -->\r\n <h3 class=\"file-title pdf-title\"\r\n [ngStyle]=\"{\r\n '--pdf-title-color': field()?.previewStyle?.pdfTitleColor || '#333',\r\n '--pdf-title-font-family': field()?.previewStyle?.pdfTitleFontFamily || 'Mulish',\r\n '--pdf-title-font-size': field()?.previewStyle?.pdfTitleFontSize || '16px',\r\n '--pdf-title-font-weight': field()?.previewStyle?.pdfTitleFontWeight || '600',\r\n '--pdf-title-margin': field()?.previewStyle?.pdfTitleMargin || '0px 20px 10px 20px',\r\n '--pdf-title-padding': field()?.previewStyle?.pdfTitlePadding || '0'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <iframe [src]=\"safeFileUrl\" \r\n [title]=\"file()?.name\" \r\n [id]=\"field()?.fieldName + '_pdf_iframe'\"\r\n class=\"pdf-iframe\"\r\n [ngStyle]=\"{\r\n '--iframe-border': field()?.previewStyle?.iframeBorder || 'none',\r\n '--iframe-border-radius': field()?.previewStyle?.iframeBorderRadius || '0',\r\n '--iframe-width': field()?.previewStyle?.iframeWidth || '100%',\r\n '--iframe-height': field()?.previewStyle?.iframeHeight || 'calc(100% - 80px)',\r\n '--iframe-min-height': field()?.previewStyle?.iframeMinHeight || '600px'\r\n }\"></iframe>\r\n </div>\r\n\r\n <!-- Text Preview -->\r\n <div *ngIf=\"isText()\" \r\n class=\"preview-container text-container\"\r\n [id]=\"field()?.fieldName + '_text_container'\"\r\n [ngStyle]=\"{\r\n '--text-container-background': field()?.previewStyle?.textContainerBackground || '#fff',\r\n '--text-container-border-radius': field()?.previewStyle?.textContainerBorderRadius || '8px',\r\n '--text-container-width': field()?.previewStyle?.textContainerWidth || '95vw',\r\n '--text-container-height': field()?.previewStyle?.textContainerHeight || '95vh'\r\n }\">\r\n \r\n <div class=\"text-header\"\r\n [id]=\"field()?.fieldName + '_text_header'\"\r\n [ngStyle]=\"{\r\n '--text-header-background': field()?.previewStyle?.textHeaderBackground || '#f8f9fa',\r\n '--text-header-border-color': field()?.previewStyle?.textHeaderBorderColor || '#dee2e6',\r\n '--text-header-padding': field()?.previewStyle?.textHeaderPadding || '15px 20px'\r\n }\">\r\n \r\n <h3 class=\"file-title\"\r\n [ngStyle]=\"{\r\n '--text-title-color': field()?.previewStyle?.textTitleColor || '#333',\r\n '--text-title-font-family': field()?.previewStyle?.textTitleFontFamily || 'Mulish',\r\n '--text-title-font-size': field()?.previewStyle?.textTitleFontSize || '16px',\r\n '--text-title-font-weight': field()?.previewStyle?.textTitleFontWeight || '600',\r\n '--text-title-margin': field()?.previewStyle?.textTitleMargin || '0'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <button (click)=\"closePreview()\" \r\n type=\"button\"\r\n class=\"btn btn-danger\"\r\n [id]=\"field()?.fieldName + '_close_text'\"\r\n [ngStyle]=\"{\r\n '--btn-danger-background': field()?.previewStyle?.btnDangerBackground || '#dc3545',\r\n '--btn-danger-color': field()?.previewStyle?.btnDangerColor || '#fff',\r\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\r\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\r\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\r\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\r\n </div>\r\n \r\n <pre class=\"text-content\"\r\n [id]=\"field()?.fieldName + '_text_content'\"\r\n [ngStyle]=\"{\r\n '--text-content-background': field()?.previewStyle?.textContentBackground || '#fff',\r\n '--text-content-color': field()?.previewStyle?.textContentColor || '#333',\r\n '--text-content-font-family': field()?.previewStyle?.textContentFontFamily || 'Consolas, Monaco, Courier New, monospace',\r\n '--text-content-font-size': field()?.previewStyle?.textContentFontSize || '14px',\r\n '--text-content-line-height': field()?.previewStyle?.textContentLineHeight || '1.5',\r\n '--text-content-padding': field()?.previewStyle?.textContentPadding || '20px',\r\n '--text-content-margin': field()?.previewStyle?.textContentMargin || '0'\r\n }\">{{ textContent }}</pre>\r\n </div>\r\n\r\n <!-- Unsupported File -->\r\n <div *ngIf=\"isUnsupported()\" \r\n class=\"preview-container unsupported-container\"\r\n [id]=\"field()?.fieldName + '_unsupported_container'\"\r\n [ngStyle]=\"{\r\n '--unsupported-background': field()?.previewStyle?.unsupportedBackground || '#fff',\r\n '--unsupported-border-radius': field()?.previewStyle?.unsupportedBorderRadius || '8px',\r\n '--unsupported-padding': field()?.previewStyle?.unsupportedPadding || '40px',\r\n '--unsupported-min-width': field()?.previewStyle?.unsupportedMinWidth || '300px'\r\n }\">\r\n \r\n <div class=\"unsupported-content\">\r\n <h3 [ngStyle]=\"{\r\n '--unsupported-title-color': field()?.previewStyle?.unsupportedTitleColor || '#333',\r\n '--unsupported-title-font-family': field()?.previewStyle?.unsupportedTitleFontFamily || 'Mulish',\r\n '--unsupported-title-font-size': field()?.previewStyle?.unsupportedTitleFontSize || '18px',\r\n '--unsupported-title-font-weight': field()?.previewStyle?.unsupportedTitleFontWeight || '600',\r\n '--unsupported-title-margin': field()?.previewStyle?.unsupportedTitleMargin || '0 0 20px 0'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <p [ngStyle]=\"{\r\n '--unsupported-text-color': field()?.previewStyle?.unsupportedTextColor || '#666',\r\n '--unsupported-text-font-size': field()?.previewStyle?.unsupportedTextFontSize || '14px',\r\n '--unsupported-text-margin': field()?.previewStyle?.unsupportedTextMargin || '0 0 30px 0'\r\n }\">{{ field()?.previewStyle?.unsupportedMessage || 'Preview not available for this file type' }}</p>\r\n \r\n <div class=\"unsupported-actions\"\r\n [ngStyle]=\"{\r\n '--actions-gap': field()?.previewStyle?.actionsGap || '15px',\r\n '--actions-justify': field()?.previewStyle?.actionsJustify || 'center'\r\n }\">\r\n \r\n <button (click)=\"downloadFile()\" \r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [id]=\"field()?.fieldName + '_download'\"\r\n [ngStyle]=\"{\r\n '--btn-primary-background': field()?.previewStyle?.btnPrimaryBackground || '#007bff',\r\n '--btn-primary-color': field()?.previewStyle?.btnPrimaryColor || '#fff',\r\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\r\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\r\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\r\n }\">{{ field()?.previewStyle?.downloadText || 'Download' }}</button>\r\n \r\n <button (click)=\"closePreview()\" \r\n type=\"button\"\r\n class=\"btn btn-secondary\"\r\n [id]=\"field()?.fieldName + '_close_unsupported'\"\r\n [ngStyle]=\"{\r\n '--btn-secondary-background': field()?.previewStyle?.btnSecondaryBackground || '#6c757d',\r\n '--btn-secondary-color': field()?.previewStyle?.btnSecondaryColor || '#fff',\r\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\r\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\r\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\r\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".file-preview-modal{position:fixed;top:0;left:0;width:var(--modal-width, 100%);height:var(--modal-height, 100%);background:var(--modal-background, rgba(0, 0, 0, .9));z-index:var(--modal-z-index, 10000);display:flex;align-items:center;justify-content:center;overflow:auto}.preview-container{position:relative;max-width:90%;max-height:90%;display:flex;flex-direction:column;align-items:center;background:var(--image-container-background, transparent);border-radius:var(--image-container-border-radius, 8px);padding:var(--image-container-padding, 10px);margin:var(--image-container-margin, 0)}.close-btn{position:absolute;top:0;right:10px;width:40px!important;height:40px!important;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--close-btn-background, rgba(255, 255, 255, .9));color:var(--close-btn-color, #000);border-radius:var(--close-btn-border-radius, 50%);font-size:var(--close-btn-font-size, 20px);font-weight:var(--close-btn-font-weight, bold);z-index:1001;box-shadow:1px 0 4px 1px #c7c7c7}.close-btn:hover{background:var(--close-btn-hover-background, rgba(255, 255, 255, 1))}.file-title{color:var(--title-color, #000000);font-family:var(--title-font-family, \"Mulish\");font-size:var(--title-font-size, 18px);font-weight:var(--title-font-weight, 600);margin:var(--title-margin, 0 0 10px 0);padding:var(--title-padding, 0 10px);text-align:center;word-break:break-all}.preview-image{max-width:var(--image-max-width, 100%);max-height:var(--image-max-height, 80vh);object-fit:var(--image-object-fit, contain);border-radius:var(--image-border-radius, 4px);box-shadow:var(--image-box-shadow, 0 4px 20px rgba(0, 0, 0, .3))}.preview-content{width:100%;height:80vh;border:none;border-radius:var(--content-border-radius, 4px)}.text-content{background:var(--text-background, #fff);color:var(--text-color, #000);padding:var(--text-padding, 20px);border-radius:var(--text-border-radius, 4px);max-width:var(--text-max-width, 800px);max-height:var(--text-max-height, 70vh);overflow:auto;white-space:pre-wrap;font-family:var(--text-font-family, \"Courier New, monospace\")}.action-buttons{margin-top:20px;display:flex;gap:10px}.action-btn{padding:var(--btn-padding, 8px 16px);background:var(--btn-background, #007bff);color:var(--btn-color, #fff);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px)}.action-btn:hover{background:var(--btn-hover-background, #0056b3)}.unsupported-content{text-align:center;color:var(--unsupported-color, #fff);padding:var(--unsupported-padding, 40px)}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, 80vh);min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0)}.pdf-container{width:var(--pdf-container-width, 95vw);height:var(--pdf-container-height, 95vh);background:var(--pdf-container-background, #fff);border-radius:var(--pdf-container-border-radius, 8px);display:flex;flex-direction:column;overflow:hidden}.pdf-header{background:var(--pdf-header-background, #f8f9fa);border-bottom:1px solid var(--pdf-header-border-color, #dee2e6);padding:var(--pdf-header-padding, 15px 20px);flex-shrink:0}.pdf-actions{display:flex;gap:10px;margin-top:10px}.btn{padding:var(--btn-padding, 8px 16px);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px);font-weight:var(--btn-font-weight, 400);text-decoration:none;display:inline-block}.btn-primary{background:var(--btn-primary-background, #007bff);color:var(--btn-primary-color, #fff)}.btn-primary:hover{background:var(--btn-primary-hover-background, #0056b3)}.btn-danger{background:var(--btn-danger-background, #dc3545);color:var(--btn-danger-color, #fff)}.btn-danger:hover{background:var(--btn-danger-hover-background, #c82333)}.pdf-actions-top-right{position:absolute;top:var(--actions-top, 15px);right:var(--actions-right, 15px);display:flex;gap:var(--actions-gap, 10px);z-index:1001}.action-icon-btn{width:40px;height:40px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--icon-btn-border-radius, 50%);font-size:var(--icon-btn-font-size, 16px);transition:background-color .2s ease}.open-new-tab-btn{background:var(--icon-btn-background, rgba(255, 255, 255, .9));color:var(--icon-btn-color, #007bff)}.open-new-tab-btn:hover{background:var(--icon-btn-hover-background, rgba(255, 255, 255, 1))}.pdf-title{color:var(--pdf-title-color, #333);font-family:var(--pdf-title-font-family, \"Mulish\");font-size:var(--pdf-title-font-size, 16px);font-weight:var(--pdf-title-font-weight, 600);margin:var(--pdf-title-margin, 0 20px 10px 20px);padding:var(--pdf-title-padding, 0);text-align:center}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, calc(100% - 80px) );min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0);margin:0 20px 20px}\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"] }] });
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FilePreviewComponent, isStandalone: true, selector: "lib-file-preview", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<div class=\"file-preview-modal\" \n *ngIf=\"field() && field()?.isVisible\"\n [id]=\"field()?.fieldName + '_preview'\"\n (click)=\"onBackdropClick($event)\"\n (keydown.escape)=\"closePreview()\"\n [ngStyle]=\"{\n '--modal-background': field()?.previewStyle?.modalBackground || 'rgba(0, 0, 0, 0.9)',\n '--modal-z-index': field()?.previewStyle?.zIndex || '10000',\n '--modal-width': field()?.previewStyle?.width || '100%',\n '--modal-height': field()?.previewStyle?.height || '100%'\n }\">\n \n <!-- Image Preview -->\n <div *ngIf=\"isImage()\" \n class=\"preview-container image-container\"\n [id]=\"field()?.fieldName + '_image_container'\"\n [ngStyle]=\"{\n '--image-container-background': field()?.previewStyle?.imageContainerBackground || 'transparent',\n '--image-container-border-radius': field()?.previewStyle?.imageContainerBorderRadius || '8px',\n '--image-container-padding': field()?.previewStyle?.imageContainerPadding || '20px',\n '--image-container-margin': field()?.previewStyle?.imageContainerMargin || '0'\n }\">\n \n <button class=\"close-btn\" \n type=\"button\"\n [id]=\"field()?.fieldName + '_close_btn'\"\n (click)=\"closePreview()\" \n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\n [ngStyle]=\"{\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\n }\">&times;</button>\n \n <h3 class=\"file-title\"\n [ngStyle]=\"{\n '--title-color': field()?.previewStyle?.titleColor || '#fff',\n '--title-font-family': field()?.previewStyle?.titleFontFamily || 'Mulish',\n '--title-font-size': field()?.previewStyle?.titleFontSize || '18px',\n '--title-font-weight': field()?.previewStyle?.titleFontWeight || '600',\n '--title-margin': field()?.previewStyle?.titleMargin || '0 0 10px 0',\n '--title-padding': field()?.previewStyle?.titlePadding || '0 10px'\n }\">{{ file()?.name }}</h3>\n \n <img [src]=\"fileDataUrl\" \n [alt]=\"file()?.name\" \n [id]=\"field()?.fieldName + '_preview_image'\"\n class=\"preview-image\"\n [ngStyle]=\"{\n '--image-max-width': field()?.previewStyle?.imageMaxWidth || '100%',\n '--image-max-height': field()?.previewStyle?.imageMaxHeight || '80vh',\n '--image-border-radius': field()?.previewStyle?.imageBorderRadius || '8px',\n '--image-box-shadow': field()?.previewStyle?.imageBoxShadow || '0 4px 20px rgba(0,0,0,0.5)',\n '--image-object-fit': field()?.previewStyle?.imageObjectFit || 'contain'\n }\" />\n </div>\n\n <!-- PDF Preview -->\n <div *ngIf=\"isPdf()\" \n class=\"preview-container pdf-container\"\n [id]=\"field()?.fieldName + '_pdf_container'\"\n [ngStyle]=\"{\n '--pdf-container-background': field()?.previewStyle?.pdfContainerBackground || '#fff',\n '--pdf-container-border-radius': field()?.previewStyle?.pdfContainerBorderRadius || '8px',\n '--pdf-container-width': field()?.previewStyle?.pdfContainerWidth || '95vw',\n '--pdf-container-height': field()?.previewStyle?.pdfContainerHeight || '95vh'\n }\">\n \n <!-- Top-right action buttons -->\n <div class=\"pdf-actions-top-right\"\n [ngStyle]=\"{\n '--actions-top': field()?.previewStyle?.actionsTop || '15px',\n '--actions-right': field()?.previewStyle?.actionsRight || '15px',\n '--actions-gap': field()?.previewStyle?.actionsGap || '10px'\n }\">\n \n <button (click)=\"closePreview()\" \n type=\"button\"\n class=\"action-icon-btn close-btn\"\n [id]=\"field()?.fieldName + '_close_pdf'\"\n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\n [ngStyle]=\"{\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\n }\">&times;</button>\n </div>\n \n <!-- File title -->\n <h3 class=\"file-title pdf-title\"\n [ngStyle]=\"{\n '--pdf-title-color': field()?.previewStyle?.pdfTitleColor || '#333',\n '--pdf-title-font-family': field()?.previewStyle?.pdfTitleFontFamily || 'Mulish',\n '--pdf-title-font-size': field()?.previewStyle?.pdfTitleFontSize || '16px',\n '--pdf-title-font-weight': field()?.previewStyle?.pdfTitleFontWeight || '600',\n '--pdf-title-margin': field()?.previewStyle?.pdfTitleMargin || '0px 20px 10px 20px',\n '--pdf-title-padding': field()?.previewStyle?.pdfTitlePadding || '0'\n }\">{{ file()?.name }}</h3>\n \n <iframe [src]=\"safeFileUrl\" \n [title]=\"file()?.name\" \n [id]=\"field()?.fieldName + '_pdf_iframe'\"\n class=\"pdf-iframe\"\n [ngStyle]=\"{\n '--iframe-border': field()?.previewStyle?.iframeBorder || 'none',\n '--iframe-border-radius': field()?.previewStyle?.iframeBorderRadius || '0',\n '--iframe-width': field()?.previewStyle?.iframeWidth || '100%',\n '--iframe-height': field()?.previewStyle?.iframeHeight || 'calc(100% - 80px)',\n '--iframe-min-height': field()?.previewStyle?.iframeMinHeight || '600px'\n }\"></iframe>\n </div>\n\n <!-- Text Preview -->\n <div *ngIf=\"isText()\" \n class=\"preview-container text-container\"\n [id]=\"field()?.fieldName + '_text_container'\"\n [ngStyle]=\"{\n '--text-container-background': field()?.previewStyle?.textContainerBackground || '#fff',\n '--text-container-border-radius': field()?.previewStyle?.textContainerBorderRadius || '8px',\n '--text-container-width': field()?.previewStyle?.textContainerWidth || '95vw',\n '--text-container-height': field()?.previewStyle?.textContainerHeight || '95vh'\n }\">\n \n <div class=\"text-header\"\n [id]=\"field()?.fieldName + '_text_header'\"\n [ngStyle]=\"{\n '--text-header-background': field()?.previewStyle?.textHeaderBackground || '#f8f9fa',\n '--text-header-border-color': field()?.previewStyle?.textHeaderBorderColor || '#dee2e6',\n '--text-header-padding': field()?.previewStyle?.textHeaderPadding || '15px 20px'\n }\">\n \n <h3 class=\"file-title\"\n [ngStyle]=\"{\n '--text-title-color': field()?.previewStyle?.textTitleColor || '#333',\n '--text-title-font-family': field()?.previewStyle?.textTitleFontFamily || 'Mulish',\n '--text-title-font-size': field()?.previewStyle?.textTitleFontSize || '16px',\n '--text-title-font-weight': field()?.previewStyle?.textTitleFontWeight || '600',\n '--text-title-margin': field()?.previewStyle?.textTitleMargin || '0'\n }\">{{ file()?.name }}</h3>\n \n <button (click)=\"closePreview()\" \n type=\"button\"\n class=\"btn btn-danger\"\n [id]=\"field()?.fieldName + '_close_text'\"\n [ngStyle]=\"{\n '--btn-danger-background': field()?.previewStyle?.btnDangerBackground || '#dc3545',\n '--btn-danger-color': field()?.previewStyle?.btnDangerColor || '#fff',\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\n </div>\n \n <pre class=\"text-content\"\n [id]=\"field()?.fieldName + '_text_content'\"\n [ngStyle]=\"{\n '--text-content-background': field()?.previewStyle?.textContentBackground || '#fff',\n '--text-content-color': field()?.previewStyle?.textContentColor || '#333',\n '--text-content-font-family': field()?.previewStyle?.textContentFontFamily || 'Consolas, Monaco, Courier New, monospace',\n '--text-content-font-size': field()?.previewStyle?.textContentFontSize || '14px',\n '--text-content-line-height': field()?.previewStyle?.textContentLineHeight || '1.5',\n '--text-content-padding': field()?.previewStyle?.textContentPadding || '20px',\n '--text-content-margin': field()?.previewStyle?.textContentMargin || '0'\n }\">{{ textContent }}</pre>\n </div>\n\n <!-- Unsupported File -->\n <div *ngIf=\"isUnsupported()\" \n class=\"preview-container unsupported-container\"\n [id]=\"field()?.fieldName + '_unsupported_container'\"\n [ngStyle]=\"{\n '--unsupported-background': field()?.previewStyle?.unsupportedBackground || '#fff',\n '--unsupported-border-radius': field()?.previewStyle?.unsupportedBorderRadius || '8px',\n '--unsupported-padding': field()?.previewStyle?.unsupportedPadding || '40px',\n '--unsupported-min-width': field()?.previewStyle?.unsupportedMinWidth || '300px'\n }\">\n \n <div class=\"unsupported-content\">\n <h3 [ngStyle]=\"{\n '--unsupported-title-color': field()?.previewStyle?.unsupportedTitleColor || '#333',\n '--unsupported-title-font-family': field()?.previewStyle?.unsupportedTitleFontFamily || 'Mulish',\n '--unsupported-title-font-size': field()?.previewStyle?.unsupportedTitleFontSize || '18px',\n '--unsupported-title-font-weight': field()?.previewStyle?.unsupportedTitleFontWeight || '600',\n '--unsupported-title-margin': field()?.previewStyle?.unsupportedTitleMargin || '0 0 20px 0'\n }\">{{ file()?.name }}</h3>\n \n <p [ngStyle]=\"{\n '--unsupported-text-color': field()?.previewStyle?.unsupportedTextColor || '#666',\n '--unsupported-text-font-size': field()?.previewStyle?.unsupportedTextFontSize || '14px',\n '--unsupported-text-margin': field()?.previewStyle?.unsupportedTextMargin || '0 0 30px 0'\n }\">{{ field()?.previewStyle?.unsupportedMessage || 'Preview not available for this file type' }}</p>\n \n <div class=\"unsupported-actions\"\n [ngStyle]=\"{\n '--actions-gap': field()?.previewStyle?.actionsGap || '15px',\n '--actions-justify': field()?.previewStyle?.actionsJustify || 'center'\n }\">\n \n <button (click)=\"downloadFile()\" \n type=\"button\"\n class=\"btn btn-primary\"\n [id]=\"field()?.fieldName + '_download'\"\n [ngStyle]=\"{\n '--btn-primary-background': field()?.previewStyle?.btnPrimaryBackground || '#007bff',\n '--btn-primary-color': field()?.previewStyle?.btnPrimaryColor || '#fff',\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\n }\">{{ field()?.previewStyle?.downloadText || 'Download' }}</button>\n \n <button (click)=\"closePreview()\" \n type=\"button\"\n class=\"btn btn-secondary\"\n [id]=\"field()?.fieldName + '_close_unsupported'\"\n [ngStyle]=\"{\n '--btn-secondary-background': field()?.previewStyle?.btnSecondaryBackground || '#6c757d',\n '--btn-secondary-color': field()?.previewStyle?.btnSecondaryColor || '#fff',\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\n </div>\n </div>\n </div>\n</div>", styles: [".file-preview-modal{position:fixed;top:0;left:0;width:var(--modal-width, 100%);height:var(--modal-height, 100%);background:var(--modal-background, rgba(0, 0, 0, .9));z-index:var(--modal-z-index, 10000);display:flex;align-items:center;justify-content:center;overflow:auto}.preview-container{position:relative;max-width:90%;max-height:90%;display:flex;flex-direction:column;align-items:center;background:var(--image-container-background, transparent);border-radius:var(--image-container-border-radius, 8px);padding:var(--image-container-padding, 10px);margin:var(--image-container-margin, 0)}.close-btn{position:absolute;top:0;right:10px;width:40px!important;height:40px!important;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--close-btn-background, rgba(255, 255, 255, .9));color:var(--close-btn-color, #000);border-radius:var(--close-btn-border-radius, 50%);font-size:var(--close-btn-font-size, 20px);font-weight:var(--close-btn-font-weight, bold);z-index:1001;box-shadow:1px 0 4px 1px #c7c7c7}.close-btn:hover{background:var(--close-btn-hover-background, rgba(255, 255, 255, 1))}.file-title{color:var(--title-color, #000000);font-family:var(--title-font-family, \"Mulish\");font-size:var(--title-font-size, 18px);font-weight:var(--title-font-weight, 600);margin:var(--title-margin, 0 0 10px 0);padding:var(--title-padding, 0 10px);text-align:center;word-break:break-all}.preview-image{max-width:var(--image-max-width, 100%);max-height:var(--image-max-height, 80vh);object-fit:var(--image-object-fit, contain);border-radius:var(--image-border-radius, 4px);box-shadow:var(--image-box-shadow, 0 4px 20px rgba(0, 0, 0, .3))}.preview-content{width:100%;height:80vh;border:none;border-radius:var(--content-border-radius, 4px)}.text-content{background:var(--text-background, #fff);color:var(--text-color, #000);padding:var(--text-padding, 20px);border-radius:var(--text-border-radius, 4px);max-width:var(--text-max-width, 800px);max-height:var(--text-max-height, 70vh);overflow:auto;white-space:pre-wrap;font-family:var(--text-font-family, \"Courier New, monospace\")}.action-buttons{margin-top:20px;display:flex;gap:10px}.action-btn{padding:var(--btn-padding, 8px 16px);background:var(--btn-background, #007bff);color:var(--btn-color, #fff);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px)}.action-btn:hover{background:var(--btn-hover-background, #0056b3)}.unsupported-content{text-align:center;color:var(--unsupported-color, #fff);padding:var(--unsupported-padding, 40px)}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, 80vh);min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0)}.pdf-container{width:var(--pdf-container-width, 95vw);height:var(--pdf-container-height, 95vh);background:var(--pdf-container-background, #fff);border-radius:var(--pdf-container-border-radius, 8px);display:flex;flex-direction:column;overflow:hidden}.pdf-header{background:var(--pdf-header-background, #f8f9fa);border-bottom:1px solid var(--pdf-header-border-color, #dee2e6);padding:var(--pdf-header-padding, 15px 20px);flex-shrink:0}.pdf-actions{display:flex;gap:10px;margin-top:10px}.btn{padding:var(--btn-padding, 8px 16px);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px);font-weight:var(--btn-font-weight, 400);text-decoration:none;display:inline-block}.btn-primary{background:var(--btn-primary-background, #007bff);color:var(--btn-primary-color, #fff)}.btn-primary:hover{background:var(--btn-primary-hover-background, #0056b3)}.btn-danger{background:var(--btn-danger-background, #dc3545);color:var(--btn-danger-color, #fff)}.btn-danger:hover{background:var(--btn-danger-hover-background, #c82333)}.pdf-actions-top-right{position:absolute;top:var(--actions-top, 15px);right:var(--actions-right, 15px);display:flex;gap:var(--actions-gap, 10px);z-index:1001}.action-icon-btn{width:40px;height:40px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--icon-btn-border-radius, 50%);font-size:var(--icon-btn-font-size, 16px);transition:background-color .2s ease}.open-new-tab-btn{background:var(--icon-btn-background, rgba(255, 255, 255, .9));color:var(--icon-btn-color, #007bff)}.open-new-tab-btn:hover{background:var(--icon-btn-hover-background, rgba(255, 255, 255, 1))}.pdf-title{color:var(--pdf-title-color, #333);font-family:var(--pdf-title-font-family, \"Mulish\");font-size:var(--pdf-title-font-size, 16px);font-weight:var(--pdf-title-font-weight, 600);margin:var(--pdf-title-margin, 0 20px 10px 20px);padding:var(--pdf-title-padding, 0);text-align:center}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, calc(100% - 80px) );min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0);margin:0 20px 20px}\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"] }] });
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilePreviewComponent, decorators: [{
89
89
  type: Component,
90
- args: [{ selector: 'lib-file-preview', standalone: true, imports: [CommonModule], template: "<div class=\"file-preview-modal\" \r\n *ngIf=\"field() && field()?.isVisible\"\r\n [id]=\"field()?.fieldName + '_preview'\"\r\n (click)=\"onBackdropClick($event)\"\r\n (keydown.escape)=\"closePreview()\"\r\n [ngStyle]=\"{\r\n '--modal-background': field()?.previewStyle?.modalBackground || 'rgba(0, 0, 0, 0.9)',\r\n '--modal-z-index': field()?.previewStyle?.zIndex || '10000',\r\n '--modal-width': field()?.previewStyle?.width || '100%',\r\n '--modal-height': field()?.previewStyle?.height || '100%'\r\n }\">\r\n \r\n <!-- Image Preview -->\r\n <div *ngIf=\"isImage()\" \r\n class=\"preview-container image-container\"\r\n [id]=\"field()?.fieldName + '_image_container'\"\r\n [ngStyle]=\"{\r\n '--image-container-background': field()?.previewStyle?.imageContainerBackground || 'transparent',\r\n '--image-container-border-radius': field()?.previewStyle?.imageContainerBorderRadius || '8px',\r\n '--image-container-padding': field()?.previewStyle?.imageContainerPadding || '20px',\r\n '--image-container-margin': field()?.previewStyle?.imageContainerMargin || '0'\r\n }\">\r\n \r\n <button class=\"close-btn\" \r\n type=\"button\"\r\n [id]=\"field()?.fieldName + '_close_btn'\"\r\n (click)=\"closePreview()\" \r\n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\r\n [ngStyle]=\"{\r\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\r\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\r\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\r\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\r\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\r\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\r\n }\">&times;</button>\r\n \r\n <h3 class=\"file-title\"\r\n [ngStyle]=\"{\r\n '--title-color': field()?.previewStyle?.titleColor || '#fff',\r\n '--title-font-family': field()?.previewStyle?.titleFontFamily || 'Mulish',\r\n '--title-font-size': field()?.previewStyle?.titleFontSize || '18px',\r\n '--title-font-weight': field()?.previewStyle?.titleFontWeight || '600',\r\n '--title-margin': field()?.previewStyle?.titleMargin || '0 0 10px 0',\r\n '--title-padding': field()?.previewStyle?.titlePadding || '0 10px'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <img [src]=\"fileDataUrl\" \r\n [alt]=\"file()?.name\" \r\n [id]=\"field()?.fieldName + '_preview_image'\"\r\n class=\"preview-image\"\r\n [ngStyle]=\"{\r\n '--image-max-width': field()?.previewStyle?.imageMaxWidth || '100%',\r\n '--image-max-height': field()?.previewStyle?.imageMaxHeight || '80vh',\r\n '--image-border-radius': field()?.previewStyle?.imageBorderRadius || '8px',\r\n '--image-box-shadow': field()?.previewStyle?.imageBoxShadow || '0 4px 20px rgba(0,0,0,0.5)',\r\n '--image-object-fit': field()?.previewStyle?.imageObjectFit || 'contain'\r\n }\" />\r\n </div>\r\n\r\n <!-- PDF Preview -->\r\n <div *ngIf=\"isPdf()\" \r\n class=\"preview-container pdf-container\"\r\n [id]=\"field()?.fieldName + '_pdf_container'\"\r\n [ngStyle]=\"{\r\n '--pdf-container-background': field()?.previewStyle?.pdfContainerBackground || '#fff',\r\n '--pdf-container-border-radius': field()?.previewStyle?.pdfContainerBorderRadius || '8px',\r\n '--pdf-container-width': field()?.previewStyle?.pdfContainerWidth || '95vw',\r\n '--pdf-container-height': field()?.previewStyle?.pdfContainerHeight || '95vh'\r\n }\">\r\n \r\n <!-- Top-right action buttons -->\r\n <div class=\"pdf-actions-top-right\"\r\n [ngStyle]=\"{\r\n '--actions-top': field()?.previewStyle?.actionsTop || '15px',\r\n '--actions-right': field()?.previewStyle?.actionsRight || '15px',\r\n '--actions-gap': field()?.previewStyle?.actionsGap || '10px'\r\n }\">\r\n \r\n <button (click)=\"closePreview()\" \r\n type=\"button\"\r\n class=\"action-icon-btn close-btn\"\r\n [id]=\"field()?.fieldName + '_close_pdf'\"\r\n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\r\n [ngStyle]=\"{\r\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\r\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\r\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\r\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\r\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\r\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\r\n }\">&times;</button>\r\n </div>\r\n \r\n <!-- File title -->\r\n <h3 class=\"file-title pdf-title\"\r\n [ngStyle]=\"{\r\n '--pdf-title-color': field()?.previewStyle?.pdfTitleColor || '#333',\r\n '--pdf-title-font-family': field()?.previewStyle?.pdfTitleFontFamily || 'Mulish',\r\n '--pdf-title-font-size': field()?.previewStyle?.pdfTitleFontSize || '16px',\r\n '--pdf-title-font-weight': field()?.previewStyle?.pdfTitleFontWeight || '600',\r\n '--pdf-title-margin': field()?.previewStyle?.pdfTitleMargin || '0px 20px 10px 20px',\r\n '--pdf-title-padding': field()?.previewStyle?.pdfTitlePadding || '0'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <iframe [src]=\"safeFileUrl\" \r\n [title]=\"file()?.name\" \r\n [id]=\"field()?.fieldName + '_pdf_iframe'\"\r\n class=\"pdf-iframe\"\r\n [ngStyle]=\"{\r\n '--iframe-border': field()?.previewStyle?.iframeBorder || 'none',\r\n '--iframe-border-radius': field()?.previewStyle?.iframeBorderRadius || '0',\r\n '--iframe-width': field()?.previewStyle?.iframeWidth || '100%',\r\n '--iframe-height': field()?.previewStyle?.iframeHeight || 'calc(100% - 80px)',\r\n '--iframe-min-height': field()?.previewStyle?.iframeMinHeight || '600px'\r\n }\"></iframe>\r\n </div>\r\n\r\n <!-- Text Preview -->\r\n <div *ngIf=\"isText()\" \r\n class=\"preview-container text-container\"\r\n [id]=\"field()?.fieldName + '_text_container'\"\r\n [ngStyle]=\"{\r\n '--text-container-background': field()?.previewStyle?.textContainerBackground || '#fff',\r\n '--text-container-border-radius': field()?.previewStyle?.textContainerBorderRadius || '8px',\r\n '--text-container-width': field()?.previewStyle?.textContainerWidth || '95vw',\r\n '--text-container-height': field()?.previewStyle?.textContainerHeight || '95vh'\r\n }\">\r\n \r\n <div class=\"text-header\"\r\n [id]=\"field()?.fieldName + '_text_header'\"\r\n [ngStyle]=\"{\r\n '--text-header-background': field()?.previewStyle?.textHeaderBackground || '#f8f9fa',\r\n '--text-header-border-color': field()?.previewStyle?.textHeaderBorderColor || '#dee2e6',\r\n '--text-header-padding': field()?.previewStyle?.textHeaderPadding || '15px 20px'\r\n }\">\r\n \r\n <h3 class=\"file-title\"\r\n [ngStyle]=\"{\r\n '--text-title-color': field()?.previewStyle?.textTitleColor || '#333',\r\n '--text-title-font-family': field()?.previewStyle?.textTitleFontFamily || 'Mulish',\r\n '--text-title-font-size': field()?.previewStyle?.textTitleFontSize || '16px',\r\n '--text-title-font-weight': field()?.previewStyle?.textTitleFontWeight || '600',\r\n '--text-title-margin': field()?.previewStyle?.textTitleMargin || '0'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <button (click)=\"closePreview()\" \r\n type=\"button\"\r\n class=\"btn btn-danger\"\r\n [id]=\"field()?.fieldName + '_close_text'\"\r\n [ngStyle]=\"{\r\n '--btn-danger-background': field()?.previewStyle?.btnDangerBackground || '#dc3545',\r\n '--btn-danger-color': field()?.previewStyle?.btnDangerColor || '#fff',\r\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\r\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\r\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\r\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\r\n </div>\r\n \r\n <pre class=\"text-content\"\r\n [id]=\"field()?.fieldName + '_text_content'\"\r\n [ngStyle]=\"{\r\n '--text-content-background': field()?.previewStyle?.textContentBackground || '#fff',\r\n '--text-content-color': field()?.previewStyle?.textContentColor || '#333',\r\n '--text-content-font-family': field()?.previewStyle?.textContentFontFamily || 'Consolas, Monaco, Courier New, monospace',\r\n '--text-content-font-size': field()?.previewStyle?.textContentFontSize || '14px',\r\n '--text-content-line-height': field()?.previewStyle?.textContentLineHeight || '1.5',\r\n '--text-content-padding': field()?.previewStyle?.textContentPadding || '20px',\r\n '--text-content-margin': field()?.previewStyle?.textContentMargin || '0'\r\n }\">{{ textContent }}</pre>\r\n </div>\r\n\r\n <!-- Unsupported File -->\r\n <div *ngIf=\"isUnsupported()\" \r\n class=\"preview-container unsupported-container\"\r\n [id]=\"field()?.fieldName + '_unsupported_container'\"\r\n [ngStyle]=\"{\r\n '--unsupported-background': field()?.previewStyle?.unsupportedBackground || '#fff',\r\n '--unsupported-border-radius': field()?.previewStyle?.unsupportedBorderRadius || '8px',\r\n '--unsupported-padding': field()?.previewStyle?.unsupportedPadding || '40px',\r\n '--unsupported-min-width': field()?.previewStyle?.unsupportedMinWidth || '300px'\r\n }\">\r\n \r\n <div class=\"unsupported-content\">\r\n <h3 [ngStyle]=\"{\r\n '--unsupported-title-color': field()?.previewStyle?.unsupportedTitleColor || '#333',\r\n '--unsupported-title-font-family': field()?.previewStyle?.unsupportedTitleFontFamily || 'Mulish',\r\n '--unsupported-title-font-size': field()?.previewStyle?.unsupportedTitleFontSize || '18px',\r\n '--unsupported-title-font-weight': field()?.previewStyle?.unsupportedTitleFontWeight || '600',\r\n '--unsupported-title-margin': field()?.previewStyle?.unsupportedTitleMargin || '0 0 20px 0'\r\n }\">{{ file()?.name }}</h3>\r\n \r\n <p [ngStyle]=\"{\r\n '--unsupported-text-color': field()?.previewStyle?.unsupportedTextColor || '#666',\r\n '--unsupported-text-font-size': field()?.previewStyle?.unsupportedTextFontSize || '14px',\r\n '--unsupported-text-margin': field()?.previewStyle?.unsupportedTextMargin || '0 0 30px 0'\r\n }\">{{ field()?.previewStyle?.unsupportedMessage || 'Preview not available for this file type' }}</p>\r\n \r\n <div class=\"unsupported-actions\"\r\n [ngStyle]=\"{\r\n '--actions-gap': field()?.previewStyle?.actionsGap || '15px',\r\n '--actions-justify': field()?.previewStyle?.actionsJustify || 'center'\r\n }\">\r\n \r\n <button (click)=\"downloadFile()\" \r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [id]=\"field()?.fieldName + '_download'\"\r\n [ngStyle]=\"{\r\n '--btn-primary-background': field()?.previewStyle?.btnPrimaryBackground || '#007bff',\r\n '--btn-primary-color': field()?.previewStyle?.btnPrimaryColor || '#fff',\r\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\r\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\r\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\r\n }\">{{ field()?.previewStyle?.downloadText || 'Download' }}</button>\r\n \r\n <button (click)=\"closePreview()\" \r\n type=\"button\"\r\n class=\"btn btn-secondary\"\r\n [id]=\"field()?.fieldName + '_close_unsupported'\"\r\n [ngStyle]=\"{\r\n '--btn-secondary-background': field()?.previewStyle?.btnSecondaryBackground || '#6c757d',\r\n '--btn-secondary-color': field()?.previewStyle?.btnSecondaryColor || '#fff',\r\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\r\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\r\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\r\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".file-preview-modal{position:fixed;top:0;left:0;width:var(--modal-width, 100%);height:var(--modal-height, 100%);background:var(--modal-background, rgba(0, 0, 0, .9));z-index:var(--modal-z-index, 10000);display:flex;align-items:center;justify-content:center;overflow:auto}.preview-container{position:relative;max-width:90%;max-height:90%;display:flex;flex-direction:column;align-items:center;background:var(--image-container-background, transparent);border-radius:var(--image-container-border-radius, 8px);padding:var(--image-container-padding, 10px);margin:var(--image-container-margin, 0)}.close-btn{position:absolute;top:0;right:10px;width:40px!important;height:40px!important;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--close-btn-background, rgba(255, 255, 255, .9));color:var(--close-btn-color, #000);border-radius:var(--close-btn-border-radius, 50%);font-size:var(--close-btn-font-size, 20px);font-weight:var(--close-btn-font-weight, bold);z-index:1001;box-shadow:1px 0 4px 1px #c7c7c7}.close-btn:hover{background:var(--close-btn-hover-background, rgba(255, 255, 255, 1))}.file-title{color:var(--title-color, #000000);font-family:var(--title-font-family, \"Mulish\");font-size:var(--title-font-size, 18px);font-weight:var(--title-font-weight, 600);margin:var(--title-margin, 0 0 10px 0);padding:var(--title-padding, 0 10px);text-align:center;word-break:break-all}.preview-image{max-width:var(--image-max-width, 100%);max-height:var(--image-max-height, 80vh);object-fit:var(--image-object-fit, contain);border-radius:var(--image-border-radius, 4px);box-shadow:var(--image-box-shadow, 0 4px 20px rgba(0, 0, 0, .3))}.preview-content{width:100%;height:80vh;border:none;border-radius:var(--content-border-radius, 4px)}.text-content{background:var(--text-background, #fff);color:var(--text-color, #000);padding:var(--text-padding, 20px);border-radius:var(--text-border-radius, 4px);max-width:var(--text-max-width, 800px);max-height:var(--text-max-height, 70vh);overflow:auto;white-space:pre-wrap;font-family:var(--text-font-family, \"Courier New, monospace\")}.action-buttons{margin-top:20px;display:flex;gap:10px}.action-btn{padding:var(--btn-padding, 8px 16px);background:var(--btn-background, #007bff);color:var(--btn-color, #fff);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px)}.action-btn:hover{background:var(--btn-hover-background, #0056b3)}.unsupported-content{text-align:center;color:var(--unsupported-color, #fff);padding:var(--unsupported-padding, 40px)}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, 80vh);min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0)}.pdf-container{width:var(--pdf-container-width, 95vw);height:var(--pdf-container-height, 95vh);background:var(--pdf-container-background, #fff);border-radius:var(--pdf-container-border-radius, 8px);display:flex;flex-direction:column;overflow:hidden}.pdf-header{background:var(--pdf-header-background, #f8f9fa);border-bottom:1px solid var(--pdf-header-border-color, #dee2e6);padding:var(--pdf-header-padding, 15px 20px);flex-shrink:0}.pdf-actions{display:flex;gap:10px;margin-top:10px}.btn{padding:var(--btn-padding, 8px 16px);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px);font-weight:var(--btn-font-weight, 400);text-decoration:none;display:inline-block}.btn-primary{background:var(--btn-primary-background, #007bff);color:var(--btn-primary-color, #fff)}.btn-primary:hover{background:var(--btn-primary-hover-background, #0056b3)}.btn-danger{background:var(--btn-danger-background, #dc3545);color:var(--btn-danger-color, #fff)}.btn-danger:hover{background:var(--btn-danger-hover-background, #c82333)}.pdf-actions-top-right{position:absolute;top:var(--actions-top, 15px);right:var(--actions-right, 15px);display:flex;gap:var(--actions-gap, 10px);z-index:1001}.action-icon-btn{width:40px;height:40px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--icon-btn-border-radius, 50%);font-size:var(--icon-btn-font-size, 16px);transition:background-color .2s ease}.open-new-tab-btn{background:var(--icon-btn-background, rgba(255, 255, 255, .9));color:var(--icon-btn-color, #007bff)}.open-new-tab-btn:hover{background:var(--icon-btn-hover-background, rgba(255, 255, 255, 1))}.pdf-title{color:var(--pdf-title-color, #333);font-family:var(--pdf-title-font-family, \"Mulish\");font-size:var(--pdf-title-font-size, 16px);font-weight:var(--pdf-title-font-weight, 600);margin:var(--pdf-title-margin, 0 20px 10px 20px);padding:var(--pdf-title-padding, 0);text-align:center}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, calc(100% - 80px) );min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0);margin:0 20px 20px}\n"] }]
90
+ args: [{ selector: 'lib-file-preview', standalone: true, imports: [CommonModule], template: "<div class=\"file-preview-modal\" \n *ngIf=\"field() && field()?.isVisible\"\n [id]=\"field()?.fieldName + '_preview'\"\n (click)=\"onBackdropClick($event)\"\n (keydown.escape)=\"closePreview()\"\n [ngStyle]=\"{\n '--modal-background': field()?.previewStyle?.modalBackground || 'rgba(0, 0, 0, 0.9)',\n '--modal-z-index': field()?.previewStyle?.zIndex || '10000',\n '--modal-width': field()?.previewStyle?.width || '100%',\n '--modal-height': field()?.previewStyle?.height || '100%'\n }\">\n \n <!-- Image Preview -->\n <div *ngIf=\"isImage()\" \n class=\"preview-container image-container\"\n [id]=\"field()?.fieldName + '_image_container'\"\n [ngStyle]=\"{\n '--image-container-background': field()?.previewStyle?.imageContainerBackground || 'transparent',\n '--image-container-border-radius': field()?.previewStyle?.imageContainerBorderRadius || '8px',\n '--image-container-padding': field()?.previewStyle?.imageContainerPadding || '20px',\n '--image-container-margin': field()?.previewStyle?.imageContainerMargin || '0'\n }\">\n \n <button class=\"close-btn\" \n type=\"button\"\n [id]=\"field()?.fieldName + '_close_btn'\"\n (click)=\"closePreview()\" \n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\n [ngStyle]=\"{\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\n }\">&times;</button>\n \n <h3 class=\"file-title\"\n [ngStyle]=\"{\n '--title-color': field()?.previewStyle?.titleColor || '#fff',\n '--title-font-family': field()?.previewStyle?.titleFontFamily || 'Mulish',\n '--title-font-size': field()?.previewStyle?.titleFontSize || '18px',\n '--title-font-weight': field()?.previewStyle?.titleFontWeight || '600',\n '--title-margin': field()?.previewStyle?.titleMargin || '0 0 10px 0',\n '--title-padding': field()?.previewStyle?.titlePadding || '0 10px'\n }\">{{ file()?.name }}</h3>\n \n <img [src]=\"fileDataUrl\" \n [alt]=\"file()?.name\" \n [id]=\"field()?.fieldName + '_preview_image'\"\n class=\"preview-image\"\n [ngStyle]=\"{\n '--image-max-width': field()?.previewStyle?.imageMaxWidth || '100%',\n '--image-max-height': field()?.previewStyle?.imageMaxHeight || '80vh',\n '--image-border-radius': field()?.previewStyle?.imageBorderRadius || '8px',\n '--image-box-shadow': field()?.previewStyle?.imageBoxShadow || '0 4px 20px rgba(0,0,0,0.5)',\n '--image-object-fit': field()?.previewStyle?.imageObjectFit || 'contain'\n }\" />\n </div>\n\n <!-- PDF Preview -->\n <div *ngIf=\"isPdf()\" \n class=\"preview-container pdf-container\"\n [id]=\"field()?.fieldName + '_pdf_container'\"\n [ngStyle]=\"{\n '--pdf-container-background': field()?.previewStyle?.pdfContainerBackground || '#fff',\n '--pdf-container-border-radius': field()?.previewStyle?.pdfContainerBorderRadius || '8px',\n '--pdf-container-width': field()?.previewStyle?.pdfContainerWidth || '95vw',\n '--pdf-container-height': field()?.previewStyle?.pdfContainerHeight || '95vh'\n }\">\n \n <!-- Top-right action buttons -->\n <div class=\"pdf-actions-top-right\"\n [ngStyle]=\"{\n '--actions-top': field()?.previewStyle?.actionsTop || '15px',\n '--actions-right': field()?.previewStyle?.actionsRight || '15px',\n '--actions-gap': field()?.previewStyle?.actionsGap || '10px'\n }\">\n \n <button (click)=\"closePreview()\" \n type=\"button\"\n class=\"action-icon-btn close-btn\"\n [id]=\"field()?.fieldName + '_close_pdf'\"\n [title]=\"field()?.previewStyle?.closeBtnTitle || 'Close'\"\n [ngStyle]=\"{\n '--close-btn-background': field()?.previewStyle?.closeBtnBackground || 'rgba(255, 255, 255, 0.9)',\n '--close-btn-color': field()?.previewStyle?.closeBtnColor || '#000',\n '--close-btn-border-radius': field()?.previewStyle?.closeBtnBorderRadius || '50%',\n '--close-btn-font-size': field()?.previewStyle?.closeBtnFontSize || '20px',\n '--close-btn-font-weight': field()?.previewStyle?.closeBtnFontWeight || 'bold',\n '--close-btn-hover-background': field()?.previewStyle?.closeBtnHoverBackground || 'rgba(255, 255, 255, 1)'\n }\">&times;</button>\n </div>\n \n <!-- File title -->\n <h3 class=\"file-title pdf-title\"\n [ngStyle]=\"{\n '--pdf-title-color': field()?.previewStyle?.pdfTitleColor || '#333',\n '--pdf-title-font-family': field()?.previewStyle?.pdfTitleFontFamily || 'Mulish',\n '--pdf-title-font-size': field()?.previewStyle?.pdfTitleFontSize || '16px',\n '--pdf-title-font-weight': field()?.previewStyle?.pdfTitleFontWeight || '600',\n '--pdf-title-margin': field()?.previewStyle?.pdfTitleMargin || '0px 20px 10px 20px',\n '--pdf-title-padding': field()?.previewStyle?.pdfTitlePadding || '0'\n }\">{{ file()?.name }}</h3>\n \n <iframe [src]=\"safeFileUrl\" \n [title]=\"file()?.name\" \n [id]=\"field()?.fieldName + '_pdf_iframe'\"\n class=\"pdf-iframe\"\n [ngStyle]=\"{\n '--iframe-border': field()?.previewStyle?.iframeBorder || 'none',\n '--iframe-border-radius': field()?.previewStyle?.iframeBorderRadius || '0',\n '--iframe-width': field()?.previewStyle?.iframeWidth || '100%',\n '--iframe-height': field()?.previewStyle?.iframeHeight || 'calc(100% - 80px)',\n '--iframe-min-height': field()?.previewStyle?.iframeMinHeight || '600px'\n }\"></iframe>\n </div>\n\n <!-- Text Preview -->\n <div *ngIf=\"isText()\" \n class=\"preview-container text-container\"\n [id]=\"field()?.fieldName + '_text_container'\"\n [ngStyle]=\"{\n '--text-container-background': field()?.previewStyle?.textContainerBackground || '#fff',\n '--text-container-border-radius': field()?.previewStyle?.textContainerBorderRadius || '8px',\n '--text-container-width': field()?.previewStyle?.textContainerWidth || '95vw',\n '--text-container-height': field()?.previewStyle?.textContainerHeight || '95vh'\n }\">\n \n <div class=\"text-header\"\n [id]=\"field()?.fieldName + '_text_header'\"\n [ngStyle]=\"{\n '--text-header-background': field()?.previewStyle?.textHeaderBackground || '#f8f9fa',\n '--text-header-border-color': field()?.previewStyle?.textHeaderBorderColor || '#dee2e6',\n '--text-header-padding': field()?.previewStyle?.textHeaderPadding || '15px 20px'\n }\">\n \n <h3 class=\"file-title\"\n [ngStyle]=\"{\n '--text-title-color': field()?.previewStyle?.textTitleColor || '#333',\n '--text-title-font-family': field()?.previewStyle?.textTitleFontFamily || 'Mulish',\n '--text-title-font-size': field()?.previewStyle?.textTitleFontSize || '16px',\n '--text-title-font-weight': field()?.previewStyle?.textTitleFontWeight || '600',\n '--text-title-margin': field()?.previewStyle?.textTitleMargin || '0'\n }\">{{ file()?.name }}</h3>\n \n <button (click)=\"closePreview()\" \n type=\"button\"\n class=\"btn btn-danger\"\n [id]=\"field()?.fieldName + '_close_text'\"\n [ngStyle]=\"{\n '--btn-danger-background': field()?.previewStyle?.btnDangerBackground || '#dc3545',\n '--btn-danger-color': field()?.previewStyle?.btnDangerColor || '#fff',\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\n </div>\n \n <pre class=\"text-content\"\n [id]=\"field()?.fieldName + '_text_content'\"\n [ngStyle]=\"{\n '--text-content-background': field()?.previewStyle?.textContentBackground || '#fff',\n '--text-content-color': field()?.previewStyle?.textContentColor || '#333',\n '--text-content-font-family': field()?.previewStyle?.textContentFontFamily || 'Consolas, Monaco, Courier New, monospace',\n '--text-content-font-size': field()?.previewStyle?.textContentFontSize || '14px',\n '--text-content-line-height': field()?.previewStyle?.textContentLineHeight || '1.5',\n '--text-content-padding': field()?.previewStyle?.textContentPadding || '20px',\n '--text-content-margin': field()?.previewStyle?.textContentMargin || '0'\n }\">{{ textContent }}</pre>\n </div>\n\n <!-- Unsupported File -->\n <div *ngIf=\"isUnsupported()\" \n class=\"preview-container unsupported-container\"\n [id]=\"field()?.fieldName + '_unsupported_container'\"\n [ngStyle]=\"{\n '--unsupported-background': field()?.previewStyle?.unsupportedBackground || '#fff',\n '--unsupported-border-radius': field()?.previewStyle?.unsupportedBorderRadius || '8px',\n '--unsupported-padding': field()?.previewStyle?.unsupportedPadding || '40px',\n '--unsupported-min-width': field()?.previewStyle?.unsupportedMinWidth || '300px'\n }\">\n \n <div class=\"unsupported-content\">\n <h3 [ngStyle]=\"{\n '--unsupported-title-color': field()?.previewStyle?.unsupportedTitleColor || '#333',\n '--unsupported-title-font-family': field()?.previewStyle?.unsupportedTitleFontFamily || 'Mulish',\n '--unsupported-title-font-size': field()?.previewStyle?.unsupportedTitleFontSize || '18px',\n '--unsupported-title-font-weight': field()?.previewStyle?.unsupportedTitleFontWeight || '600',\n '--unsupported-title-margin': field()?.previewStyle?.unsupportedTitleMargin || '0 0 20px 0'\n }\">{{ file()?.name }}</h3>\n \n <p [ngStyle]=\"{\n '--unsupported-text-color': field()?.previewStyle?.unsupportedTextColor || '#666',\n '--unsupported-text-font-size': field()?.previewStyle?.unsupportedTextFontSize || '14px',\n '--unsupported-text-margin': field()?.previewStyle?.unsupportedTextMargin || '0 0 30px 0'\n }\">{{ field()?.previewStyle?.unsupportedMessage || 'Preview not available for this file type' }}</p>\n \n <div class=\"unsupported-actions\"\n [ngStyle]=\"{\n '--actions-gap': field()?.previewStyle?.actionsGap || '15px',\n '--actions-justify': field()?.previewStyle?.actionsJustify || 'center'\n }\">\n \n <button (click)=\"downloadFile()\" \n type=\"button\"\n class=\"btn btn-primary\"\n [id]=\"field()?.fieldName + '_download'\"\n [ngStyle]=\"{\n '--btn-primary-background': field()?.previewStyle?.btnPrimaryBackground || '#007bff',\n '--btn-primary-color': field()?.previewStyle?.btnPrimaryColor || '#fff',\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\n }\">{{ field()?.previewStyle?.downloadText || 'Download' }}</button>\n \n <button (click)=\"closePreview()\" \n type=\"button\"\n class=\"btn btn-secondary\"\n [id]=\"field()?.fieldName + '_close_unsupported'\"\n [ngStyle]=\"{\n '--btn-secondary-background': field()?.previewStyle?.btnSecondaryBackground || '#6c757d',\n '--btn-secondary-color': field()?.previewStyle?.btnSecondaryColor || '#fff',\n '--btn-border-radius': field()?.previewStyle?.btnBorderRadius || '4px',\n '--btn-padding': field()?.previewStyle?.btnPadding || '8px 16px',\n '--btn-font-size': field()?.previewStyle?.btnFontSize || '14px'\n }\">{{ field()?.previewStyle?.closeText || 'Close' }}</button>\n </div>\n </div>\n </div>\n</div>", styles: [".file-preview-modal{position:fixed;top:0;left:0;width:var(--modal-width, 100%);height:var(--modal-height, 100%);background:var(--modal-background, rgba(0, 0, 0, .9));z-index:var(--modal-z-index, 10000);display:flex;align-items:center;justify-content:center;overflow:auto}.preview-container{position:relative;max-width:90%;max-height:90%;display:flex;flex-direction:column;align-items:center;background:var(--image-container-background, transparent);border-radius:var(--image-container-border-radius, 8px);padding:var(--image-container-padding, 10px);margin:var(--image-container-margin, 0)}.close-btn{position:absolute;top:0;right:10px;width:40px!important;height:40px!important;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--close-btn-background, rgba(255, 255, 255, .9));color:var(--close-btn-color, #000);border-radius:var(--close-btn-border-radius, 50%);font-size:var(--close-btn-font-size, 20px);font-weight:var(--close-btn-font-weight, bold);z-index:1001;box-shadow:1px 0 4px 1px #c7c7c7}.close-btn:hover{background:var(--close-btn-hover-background, rgba(255, 255, 255, 1))}.file-title{color:var(--title-color, #000000);font-family:var(--title-font-family, \"Mulish\");font-size:var(--title-font-size, 18px);font-weight:var(--title-font-weight, 600);margin:var(--title-margin, 0 0 10px 0);padding:var(--title-padding, 0 10px);text-align:center;word-break:break-all}.preview-image{max-width:var(--image-max-width, 100%);max-height:var(--image-max-height, 80vh);object-fit:var(--image-object-fit, contain);border-radius:var(--image-border-radius, 4px);box-shadow:var(--image-box-shadow, 0 4px 20px rgba(0, 0, 0, .3))}.preview-content{width:100%;height:80vh;border:none;border-radius:var(--content-border-radius, 4px)}.text-content{background:var(--text-background, #fff);color:var(--text-color, #000);padding:var(--text-padding, 20px);border-radius:var(--text-border-radius, 4px);max-width:var(--text-max-width, 800px);max-height:var(--text-max-height, 70vh);overflow:auto;white-space:pre-wrap;font-family:var(--text-font-family, \"Courier New, monospace\")}.action-buttons{margin-top:20px;display:flex;gap:10px}.action-btn{padding:var(--btn-padding, 8px 16px);background:var(--btn-background, #007bff);color:var(--btn-color, #fff);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px)}.action-btn:hover{background:var(--btn-hover-background, #0056b3)}.unsupported-content{text-align:center;color:var(--unsupported-color, #fff);padding:var(--unsupported-padding, 40px)}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, 80vh);min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0)}.pdf-container{width:var(--pdf-container-width, 95vw);height:var(--pdf-container-height, 95vh);background:var(--pdf-container-background, #fff);border-radius:var(--pdf-container-border-radius, 8px);display:flex;flex-direction:column;overflow:hidden}.pdf-header{background:var(--pdf-header-background, #f8f9fa);border-bottom:1px solid var(--pdf-header-border-color, #dee2e6);padding:var(--pdf-header-padding, 15px 20px);flex-shrink:0}.pdf-actions{display:flex;gap:10px;margin-top:10px}.btn{padding:var(--btn-padding, 8px 16px);border:none;border-radius:var(--btn-border-radius, 4px);cursor:pointer;font-size:var(--btn-font-size, 14px);font-weight:var(--btn-font-weight, 400);text-decoration:none;display:inline-block}.btn-primary{background:var(--btn-primary-background, #007bff);color:var(--btn-primary-color, #fff)}.btn-primary:hover{background:var(--btn-primary-hover-background, #0056b3)}.btn-danger{background:var(--btn-danger-background, #dc3545);color:var(--btn-danger-color, #fff)}.btn-danger:hover{background:var(--btn-danger-hover-background, #c82333)}.pdf-actions-top-right{position:absolute;top:var(--actions-top, 15px);right:var(--actions-right, 15px);display:flex;gap:var(--actions-gap, 10px);z-index:1001}.action-icon-btn{width:40px;height:40px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--icon-btn-border-radius, 50%);font-size:var(--icon-btn-font-size, 16px);transition:background-color .2s ease}.open-new-tab-btn{background:var(--icon-btn-background, rgba(255, 255, 255, .9));color:var(--icon-btn-color, #007bff)}.open-new-tab-btn:hover{background:var(--icon-btn-hover-background, rgba(255, 255, 255, 1))}.pdf-title{color:var(--pdf-title-color, #333);font-family:var(--pdf-title-font-family, \"Mulish\");font-size:var(--pdf-title-font-size, 16px);font-weight:var(--pdf-title-font-weight, 600);margin:var(--pdf-title-margin, 0 20px 10px 20px);padding:var(--pdf-title-padding, 0);text-align:center}.pdf-iframe{width:var(--iframe-width, 100%);height:var(--iframe-height, calc(100% - 80px) );min-height:var(--iframe-min-height, 600px);border:var(--iframe-border, none);border-radius:var(--iframe-border-radius, 0);margin:0 20px 20px}\n"] }]
91
91
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { closed: [{
92
92
  type: Output
93
93
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvZmlsZS1wcmV2aWV3L2ZpbGUtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2ZpbGUtcHJldmlldy9maWxlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBVTFGLE1BQU0sT0FBTyxvQkFBb0I7SUFVWDtJQVRwQixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQzlCLElBQUksR0FBRyxLQUFLLENBQWMsSUFBSSxDQUFDLENBQUM7SUFFdEIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFNUMsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsV0FBVyxHQUEyQixJQUFJLENBQUM7SUFDM0MsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7SUFDL0MsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3pELENBQUM7SUFFQSxLQUFLO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxLQUFLLGlCQUFpQixJQUFJLEtBQUssQ0FBQztJQUMxRCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3hELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFFLFlBQVk7SUFDMUUsQ0FBQztJQUVELFFBQVE7UUFDTixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUV6QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBYSxDQUFDO1lBQzdDLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkYsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFhLENBQUM7WUFDN0MsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVDLGVBQWUsQ0FBQyxLQUFZO1FBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBRXpCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBRTVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7d0dBdEZVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG1XQ1hqQyw2eGFBc09NLGk3SkQvTk0sWUFBWTs7NEZBSVgsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7aUZBUWIsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1maWxlLXByZXZpZXcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZpbGUtcHJldmlldy5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcbiAgZmlsZSA9IGlucHV0PEZpbGUgfCBudWxsPihudWxsKTtcclxuICBcclxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBmaWxlRGF0YVVybDogYW55ID0gJyc7XHJcbiAgZmlsZU9iamVjdFVybDogYW55ID0gJyc7XHJcbiAgdGV4dENvbnRlbnQ6IGFueSA9ICcnO1xyXG4gIHNhZmVGaWxlVXJsOiBTYWZlUmVzb3VyY2VVcmwgfCBudWxsID0gbnVsbDsgXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuICBpc0ltYWdlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWxlKCk/LnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICAgaXNQZGYoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmZpbGUoKT8udHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1RleHQoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmZpbGUoKT8udHlwZS5zdGFydHNXaXRoKCd0ZXh0LycpIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNVbnN1cHBvcnRlZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuICF0aGlzLmlzSW1hZ2UoKSAmJiAhdGhpcy5pc1BkZigpICYmICF0aGlzLmlzVGV4dCgpOyAgLy8g4pyFIENvcnJlY3RcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xyXG4gICAgdGhpcy5sb2FkRmlsZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZmlsZU9iamVjdFVybCkge1xyXG4gICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMuZmlsZU9iamVjdFVybCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkRmlsZUNvbnRlbnQoKSB7XHJcbiAgY29uc3QgY3VycmVudEZpbGUgPSB0aGlzLmZpbGUoKTtcclxuICBpZiAoIWN1cnJlbnRGaWxlKSByZXR1cm47XHJcblxyXG4gIGlmICh0aGlzLmlzSW1hZ2UoKSkge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xyXG4gICAgICB0aGlzLmZpbGVEYXRhVXJsID0gZS50YXJnZXQ/LnJlc3VsdCBhcyBhbnk7XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoY3VycmVudEZpbGUpO1xyXG4gIH0gZWxzZSBpZiAodGhpcy5pc1BkZigpKSB7XHJcbiAgICB0aGlzLmZpbGVPYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGN1cnJlbnRGaWxlKTtcclxuICAgIHRoaXMuc2FmZUZpbGVVcmwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy5maWxlT2JqZWN0VXJsKTtcclxuICB9IGVsc2UgaWYgKHRoaXMuaXNUZXh0KCkpIHtcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGUpID0+IHtcclxuICAgICAgdGhpcy50ZXh0Q29udGVudCA9IGUudGFyZ2V0Py5yZXN1bHQgYXMgYW55O1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNUZXh0KGN1cnJlbnRGaWxlKTtcclxuICB9XHJcbn1cclxuXHJcbiAgb25CYWNrZHJvcENsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xyXG4gICAgICB0aGlzLmNsb3NlUHJldmlldygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VQcmV2aWV3KCkge1xyXG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRGaWxlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEZpbGUgPSB0aGlzLmZpbGUoKTtcclxuICAgIGlmICghY3VycmVudEZpbGUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGN1cnJlbnRGaWxlKTtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBsaW5rLmhyZWYgPSB1cmw7XHJcbiAgICBsaW5rLmRvd25sb2FkID0gY3VycmVudEZpbGUubmFtZTtcclxuICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIFxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICBcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpLCAxMDApO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXctbW9kYWxcIiBcclxuICAgICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlXCJcclxuICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19wcmV2aWV3J1wiXHJcbiAgICAgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygkZXZlbnQpXCJcclxuICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VQcmV2aWV3KClcIlxyXG4gICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICctLW1vZGFsLWJhY2tncm91bmQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/Lm1vZGFsQmFja2dyb3VuZCB8fCAncmdiYSgwLCAwLCAwLCAwLjkpJyxcclxuICAgICAgICctLW1vZGFsLXotaW5kZXgnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnpJbmRleCB8fCAnMTAwMDAnLFxyXG4gICAgICAgJy0tbW9kYWwtd2lkdGgnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LndpZHRoIHx8ICcxMDAlJyxcclxuICAgICAgICctLW1vZGFsLWhlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaGVpZ2h0IHx8ICcxMDAlJ1xyXG4gICAgIH1cIj5cclxuICBcclxuICA8IS0tIEltYWdlIFByZXZpZXcgLS0+XHJcbiAgPGRpdiAqbmdJZj1cImlzSW1hZ2UoKVwiIFxyXG4gICAgICAgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lciBpbWFnZS1jb250YWluZXJcIlxyXG4gICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfaW1hZ2VfY29udGFpbmVyJ1wiXHJcbiAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICctLWltYWdlLWNvbnRhaW5lci1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5pbWFnZUNvbnRhaW5lckJhY2tncm91bmQgfHwgJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgJy0taW1hZ2UtY29udGFpbmVyLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmltYWdlQ29udGFpbmVyQm9yZGVyUmFkaXVzIHx8ICc4cHgnLFxyXG4gICAgICAgICAnLS1pbWFnZS1jb250YWluZXItcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VDb250YWluZXJQYWRkaW5nIHx8ICcyMHB4JyxcclxuICAgICAgICAgJy0taW1hZ2UtY29udGFpbmVyLW1hcmdpbic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VDb250YWluZXJNYXJnaW4gfHwgJzAnXHJcbiAgICAgICB9XCI+XHJcbiAgICBcclxuICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idG5cIiBcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX2Nsb3NlX2J0bidcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQcmV2aWV3KClcIiBcclxuICAgICAgICAgICAgW3RpdGxlXT1cImZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5UaXRsZSB8fCAnQ2xvc2UnXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICctLWNsb3NlLWJ0bi1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkJhY2tncm91bmQgfHwgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC45KScsXHJcbiAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWNvbG9yJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkNvbG9yIHx8ICcjMDAwJyxcclxuICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5Cb3JkZXJSYWRpdXMgfHwgJzUwJScsXHJcbiAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5Gb250U2l6ZSB8fCAnMjBweCcsXHJcbiAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkZvbnRXZWlnaHQgfHwgJ2JvbGQnLFxyXG4gICAgICAgICAgICAgICctLWNsb3NlLWJ0bi1ob3Zlci1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkhvdmVyQmFja2dyb3VuZCB8fCAncmdiYSgyNTUsIDI1NSwgMjU1LCAxKSdcclxuICAgICAgICAgICAgfVwiPiZ0aW1lczs8L2J1dHRvbj5cclxuICAgIFxyXG4gICAgPGgzIGNsYXNzPVwiZmlsZS10aXRsZVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgJy0tdGl0bGUtY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRpdGxlQ29sb3IgfHwgJyNmZmYnLFxyXG4gICAgICAgICAgJy0tdGl0bGUtZm9udC1mYW1pbHknOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRpdGxlRm9udEZhbWlseSB8fCAnTXVsaXNoJyxcclxuICAgICAgICAgICctLXRpdGxlLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGl0bGVGb250U2l6ZSB8fCAnMThweCcsXHJcbiAgICAgICAgICAnLS10aXRsZS1mb250LXdlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGl0bGVGb250V2VpZ2h0IHx8ICc2MDAnLFxyXG4gICAgICAgICAgJy0tdGl0bGUtbWFyZ2luJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50aXRsZU1hcmdpbiB8fCAnMCAwIDEwcHggMCcsXHJcbiAgICAgICAgICAnLS10aXRsZS1wYWRkaW5nJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50aXRsZVBhZGRpbmcgfHwgJzAgMTBweCdcclxuICAgICAgICB9XCI+e3sgZmlsZSgpPy5uYW1lIH19PC9oMz5cclxuICAgIFxyXG4gICAgPGltZyBbc3JjXT1cImZpbGVEYXRhVXJsXCIgXHJcbiAgICAgICAgIFthbHRdPVwiZmlsZSgpPy5uYW1lXCIgXHJcbiAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX3ByZXZpZXdfaW1hZ2UnXCJcclxuICAgICAgICAgY2xhc3M9XCJwcmV2aWV3LWltYWdlXCJcclxuICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICctLWltYWdlLW1heC13aWR0aCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VNYXhXaWR0aCB8fCAnMTAwJScsXHJcbiAgICAgICAgICAgJy0taW1hZ2UtbWF4LWhlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VNYXhIZWlnaHQgfHwgJzgwdmgnLFxyXG4gICAgICAgICAgICctLWltYWdlLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmltYWdlQm9yZGVyUmFkaXVzIHx8ICc4cHgnLFxyXG4gICAgICAgICAgICctLWltYWdlLWJveC1zaGFkb3cnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmltYWdlQm94U2hhZG93IHx8ICcwIDRweCAyMHB4IHJnYmEoMCwwLDAsMC41KScsXHJcbiAgICAgICAgICAgJy0taW1hZ2Utb2JqZWN0LWZpdCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VPYmplY3RGaXQgfHwgJ2NvbnRhaW4nXHJcbiAgICAgICAgIH1cIiAvPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFBERiBQcmV2aWV3IC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJpc1BkZigpXCIgXHJcbiAgICAgICBjbGFzcz1cInByZXZpZXctY29udGFpbmVyIHBkZi1jb250YWluZXJcIlxyXG4gICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfcGRmX2NvbnRhaW5lcidcIlxyXG4gICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAnLS1wZGYtY29udGFpbmVyLWJhY2tncm91bmQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZkNvbnRhaW5lckJhY2tncm91bmQgfHwgJyNmZmYnLFxyXG4gICAgICAgICAnLS1wZGYtY29udGFpbmVyLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZkNvbnRhaW5lckJvcmRlclJhZGl1cyB8fCAnOHB4JyxcclxuICAgICAgICAgJy0tcGRmLWNvbnRhaW5lci13aWR0aCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ucGRmQ29udGFpbmVyV2lkdGggfHwgJzk1dncnLFxyXG4gICAgICAgICAnLS1wZGYtY29udGFpbmVyLWhlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ucGRmQ29udGFpbmVySGVpZ2h0IHx8ICc5NXZoJ1xyXG4gICAgICAgfVwiPlxyXG4gICAgXHJcbiAgICA8IS0tIFRvcC1yaWdodCBhY3Rpb24gYnV0dG9ucyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJwZGYtYWN0aW9ucy10b3AtcmlnaHRcIlxyXG4gICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgJy0tYWN0aW9ucy10b3AnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmFjdGlvbnNUb3AgfHwgJzE1cHgnLFxyXG4gICAgICAgICAgICctLWFjdGlvbnMtcmlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmFjdGlvbnNSaWdodCB8fCAnMTVweCcsXHJcbiAgICAgICAgICAgJy0tYWN0aW9ucy1nYXAnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmFjdGlvbnNHYXAgfHwgJzEwcHgnXHJcbiAgICAgICAgIH1cIj5cclxuICAgICAgXHJcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCIgXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvbi1idG4gY2xvc2UtYnRuXCJcclxuICAgICAgICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19jbG9zZV9wZGYnXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0blRpdGxlIHx8ICdDbG9zZSdcIlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICctLWNsb3NlLWJ0bi1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkJhY2tncm91bmQgfHwgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC45KScsXHJcbiAgICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmNsb3NlQnRuQ29sb3IgfHwgJyMwMDAnLFxyXG4gICAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmNsb3NlQnRuQm9yZGVyUmFkaXVzIHx8ICc1MCUnLFxyXG4gICAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5Gb250U2l6ZSB8fCAnMjBweCcsXHJcbiAgICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmNsb3NlQnRuRm9udFdlaWdodCB8fCAnYm9sZCcsXHJcbiAgICAgICAgICAgICAgICAnLS1jbG9zZS1idG4taG92ZXItYmFja2dyb3VuZCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5Ib3ZlckJhY2tncm91bmQgfHwgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMSknXHJcbiAgICAgICAgICAgICAgfVwiPiZ0aW1lczs8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8IS0tIEZpbGUgdGl0bGUgLS0+XHJcbiAgICA8aDMgY2xhc3M9XCJmaWxlLXRpdGxlIHBkZi10aXRsZVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgJy0tcGRmLXRpdGxlLWNvbG9yJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5wZGZUaXRsZUNvbG9yIHx8ICcjMzMzJyxcclxuICAgICAgICAgICctLXBkZi10aXRsZS1mb250LWZhbWlseSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ucGRmVGl0bGVGb250RmFtaWx5IHx8ICdNdWxpc2gnLFxyXG4gICAgICAgICAgJy0tcGRmLXRpdGxlLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ucGRmVGl0bGVGb250U2l6ZSB8fCAnMTZweCcsXHJcbiAgICAgICAgICAnLS1wZGYtdGl0bGUtZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZlRpdGxlRm9udFdlaWdodCB8fCAnNjAwJyxcclxuICAgICAgICAgICctLXBkZi10aXRsZS1tYXJnaW4nOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZlRpdGxlTWFyZ2luIHx8ICcwcHggMjBweCAxMHB4IDIwcHgnLFxyXG4gICAgICAgICAgJy0tcGRmLXRpdGxlLXBhZGRpbmcnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZlRpdGxlUGFkZGluZyB8fCAnMCdcclxuICAgICAgICB9XCI+e3sgZmlsZSgpPy5uYW1lIH19PC9oMz5cclxuICAgIFxyXG4gICAgPGlmcmFtZSBbc3JjXT1cInNhZmVGaWxlVXJsXCIgXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJmaWxlKCk/Lm5hbWVcIiBcclxuICAgICAgICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfcGRmX2lmcmFtZSdcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInBkZi1pZnJhbWVcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgJy0taWZyYW1lLWJvcmRlcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaWZyYW1lQm9yZGVyIHx8ICdub25lJyxcclxuICAgICAgICAgICAgICAnLS1pZnJhbWUtYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaWZyYW1lQm9yZGVyUmFkaXVzIHx8ICcwJyxcclxuICAgICAgICAgICAgICAnLS1pZnJhbWUtd2lkdGgnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmlmcmFtZVdpZHRoIHx8ICcxMDAlJyxcclxuICAgICAgICAgICAgICAnLS1pZnJhbWUtaGVpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5pZnJhbWVIZWlnaHQgfHwgJ2NhbGMoMTAwJSAtIDgwcHgpJyxcclxuICAgICAgICAgICAgICAnLS1pZnJhbWUtbWluLWhlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaWZyYW1lTWluSGVpZ2h0IHx8ICc2MDBweCdcclxuICAgICAgICAgICAgfVwiPjwvaWZyYW1lPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFRleHQgUHJldmlldyAtLT5cclxuICA8ZGl2ICpuZ0lmPVwiaXNUZXh0KClcIiBcclxuICAgICAgIGNsYXNzPVwicHJldmlldy1jb250YWluZXIgdGV4dC1jb250YWluZXJcIlxyXG4gICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfdGV4dF9jb250YWluZXInXCJcclxuICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgJy0tdGV4dC1jb250YWluZXItYmFja2dyb3VuZCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRhaW5lckJhY2tncm91bmQgfHwgJyNmZmYnLFxyXG4gICAgICAgICAnLS10ZXh0LWNvbnRhaW5lci1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0Q29udGFpbmVyQm9yZGVyUmFkaXVzIHx8ICc4cHgnLFxyXG4gICAgICAgICAnLS10ZXh0LWNvbnRhaW5lci13aWR0aCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRhaW5lcldpZHRoIHx8ICc5NXZ3JyxcclxuICAgICAgICAgJy0tdGV4dC1jb250YWluZXItaGVpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0Q29udGFpbmVySGVpZ2h0IHx8ICc5NXZoJ1xyXG4gICAgICAgfVwiPlxyXG4gICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1oZWFkZXJcIlxyXG4gICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ190ZXh0X2hlYWRlcidcIlxyXG4gICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgJy0tdGV4dC1oZWFkZXItYmFja2dyb3VuZCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dEhlYWRlckJhY2tncm91bmQgfHwgJyNmOGY5ZmEnLFxyXG4gICAgICAgICAgICctLXRleHQtaGVhZGVyLWJvcmRlci1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dEhlYWRlckJvcmRlckNvbG9yIHx8ICcjZGVlMmU2JyxcclxuICAgICAgICAgICAnLS10ZXh0LWhlYWRlci1wYWRkaW5nJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0SGVhZGVyUGFkZGluZyB8fCAnMTVweCAyMHB4J1xyXG4gICAgICAgICB9XCI+XHJcbiAgICAgIFxyXG4gICAgICA8aDMgY2xhc3M9XCJmaWxlLXRpdGxlXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgJy0tdGV4dC10aXRsZS1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dFRpdGxlQ29sb3IgfHwgJyMzMzMnLFxyXG4gICAgICAgICAgICAnLS10ZXh0LXRpdGxlLWZvbnQtZmFtaWx5JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0VGl0bGVGb250RmFtaWx5IHx8ICdNdWxpc2gnLFxyXG4gICAgICAgICAgICAnLS10ZXh0LXRpdGxlLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dFRpdGxlRm9udFNpemUgfHwgJzE2cHgnLFxyXG4gICAgICAgICAgICAnLS10ZXh0LXRpdGxlLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0VGl0bGVGb250V2VpZ2h0IHx8ICc2MDAnLFxyXG4gICAgICAgICAgICAnLS10ZXh0LXRpdGxlLW1hcmdpbic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dFRpdGxlTWFyZ2luIHx8ICcwJ1xyXG4gICAgICAgICAgfVwiPnt7IGZpbGUoKT8ubmFtZSB9fTwvaDM+XHJcbiAgICAgIFxyXG4gICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiIFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX2Nsb3NlX3RleHQnXCJcclxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAnLS1idG4tZGFuZ2VyLWJhY2tncm91bmQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0bkRhbmdlckJhY2tncm91bmQgfHwgJyNkYzM1NDUnLFxyXG4gICAgICAgICAgICAgICAgJy0tYnRuLWRhbmdlci1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuRGFuZ2VyQ29sb3IgfHwgJyNmZmYnLFxyXG4gICAgICAgICAgICAgICAgJy0tYnRuLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0bkJvcmRlclJhZGl1cyB8fCAnNHB4JyxcclxuICAgICAgICAgICAgICAgICctLWJ0bi1wYWRkaW5nJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5QYWRkaW5nIHx8ICc4cHggMTZweCcsXHJcbiAgICAgICAgICAgICAgICAnLS1idG4tZm9udC1zaXplJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5Gb250U2l6ZSB8fCAnMTRweCdcclxuICAgICAgICAgICAgICB9XCI+e3sgZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZVRleHQgfHwgJ0Nsb3NlJyB9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxwcmUgY2xhc3M9XCJ0ZXh0LWNvbnRlbnRcIlxyXG4gICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ190ZXh0X2NvbnRlbnQnXCJcclxuICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0Q29udGVudEJhY2tncm91bmQgfHwgJyNmZmYnLFxyXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRDb2xvciB8fCAnIzMzMycsXHJcbiAgICAgICAgICAgJy0tdGV4dC1jb250ZW50LWZvbnQtZmFtaWx5JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0Q29udGVudEZvbnRGYW1pbHkgfHwgJ0NvbnNvbGFzLCBNb25hY28sIENvdXJpZXIgTmV3LCBtb25vc3BhY2UnLFxyXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1mb250LXNpemUnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRleHRDb250ZW50Rm9udFNpemUgfHwgJzE0cHgnLFxyXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1saW5lLWhlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRMaW5lSGVpZ2h0IHx8ICcxLjUnLFxyXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1wYWRkaW5nJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0Q29udGVudFBhZGRpbmcgfHwgJzIwcHgnLFxyXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1tYXJnaW4nOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRleHRDb250ZW50TWFyZ2luIHx8ICcwJ1xyXG4gICAgICAgICB9XCI+e3sgdGV4dENvbnRlbnQgfX08L3ByZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBVbnN1cHBvcnRlZCBGaWxlIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJpc1Vuc3VwcG9ydGVkKClcIiBcclxuICAgICAgIGNsYXNzPVwicHJldmlldy1jb250YWluZXIgdW5zdXBwb3J0ZWQtY29udGFpbmVyXCJcclxuICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX3Vuc3VwcG9ydGVkX2NvbnRhaW5lcidcIlxyXG4gICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAnLS11bnN1cHBvcnRlZC1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZEJhY2tncm91bmQgfHwgJyNmZmYnLFxyXG4gICAgICAgICAnLS11bnN1cHBvcnRlZC1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZEJvcmRlclJhZGl1cyB8fCAnOHB4JyxcclxuICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udW5zdXBwb3J0ZWRQYWRkaW5nIHx8ICc0MHB4JyxcclxuICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtbWluLXdpZHRoJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZE1pbldpZHRoIHx8ICczMDBweCdcclxuICAgICAgIH1cIj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInVuc3VwcG9ydGVkLWNvbnRlbnRcIj5cclxuICAgICAgPGgzIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGl0bGUtY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkVGl0bGVDb2xvciB8fCAnIzMzMycsXHJcbiAgICAgICAgICAgICctLXVuc3VwcG9ydGVkLXRpdGxlLWZvbnQtZmFtaWx5JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZFRpdGxlRm9udEZhbWlseSB8fCAnTXVsaXNoJyxcclxuICAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGl0bGUtZm9udC1zaXplJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZFRpdGxlRm9udFNpemUgfHwgJzE4cHgnLFxyXG4gICAgICAgICAgICAnLS11bnN1cHBvcnRlZC10aXRsZS1mb250LXdlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udW5zdXBwb3J0ZWRUaXRsZUZvbnRXZWlnaHQgfHwgJzYwMCcsXHJcbiAgICAgICAgICAgICctLXVuc3VwcG9ydGVkLXRpdGxlLW1hcmdpbic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udW5zdXBwb3J0ZWRUaXRsZU1hcmdpbiB8fCAnMCAwIDIwcHggMCdcclxuICAgICAgICAgIH1cIj57eyBmaWxlKCk/Lm5hbWUgfX08L2gzPlxyXG4gICAgICBcclxuICAgICAgPHAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICctLXVuc3VwcG9ydGVkLXRleHQtY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkVGV4dENvbG9yIHx8ICcjNjY2JyxcclxuICAgICAgICAgICAnLS11bnN1cHBvcnRlZC10ZXh0LWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udW5zdXBwb3J0ZWRUZXh0Rm9udFNpemUgfHwgJzE0cHgnLFxyXG4gICAgICAgICAgICctLXVuc3VwcG9ydGVkLXRleHQtbWFyZ2luJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZFRleHRNYXJnaW4gfHwgJzAgMCAzMHB4IDAnXHJcbiAgICAgICAgIH1cIj57eyBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkTWVzc2FnZSB8fCAnUHJldmlldyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGZpbGUgdHlwZScgfX08L3A+XHJcbiAgICAgIFxyXG4gICAgICA8ZGl2IGNsYXNzPVwidW5zdXBwb3J0ZWQtYWN0aW9uc1wiXHJcbiAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgJy0tYWN0aW9ucy1nYXAnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmFjdGlvbnNHYXAgfHwgJzE1cHgnLFxyXG4gICAgICAgICAgICAgJy0tYWN0aW9ucy1qdXN0aWZ5JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5hY3Rpb25zSnVzdGlmeSB8fCAnY2VudGVyJ1xyXG4gICAgICAgICAgIH1cIj5cclxuICAgICAgICBcclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZEZpbGUoKVwiIFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19kb3dubG9hZCdcIlxyXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAnLS1idG4tcHJpbWFyeS1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5QcmltYXJ5QmFja2dyb3VuZCB8fCAnIzAwN2JmZicsXHJcbiAgICAgICAgICAgICAgICAgICctLWJ0bi1wcmltYXJ5LWNvbG9yJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5QcmltYXJ5Q29sb3IgfHwgJyNmZmYnLFxyXG4gICAgICAgICAgICAgICAgICAnLS1idG4tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuQm9yZGVyUmFkaXVzIHx8ICc0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAnLS1idG4tcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuUGFkZGluZyB8fCAnOHB4IDE2cHgnLFxyXG4gICAgICAgICAgICAgICAgICAnLS1idG4tZm9udC1zaXplJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5Gb250U2l6ZSB8fCAnMTRweCdcclxuICAgICAgICAgICAgICAgIH1cIj57eyBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmRvd25sb2FkVGV4dCB8fCAnRG93bmxvYWQnIH19PC9idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VQcmV2aWV3KClcIiBcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19jbG9zZV91bnN1cHBvcnRlZCdcIlxyXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAnLS1idG4tc2Vjb25kYXJ5LWJhY2tncm91bmQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0blNlY29uZGFyeUJhY2tncm91bmQgfHwgJyM2Yzc1N2QnLFxyXG4gICAgICAgICAgICAgICAgICAnLS1idG4tc2Vjb25kYXJ5LWNvbG9yJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5TZWNvbmRhcnlDb2xvciB8fCAnI2ZmZicsXHJcbiAgICAgICAgICAgICAgICAgICctLWJ0bi1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5Cb3JkZXJSYWRpdXMgfHwgJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICctLWJ0bi1wYWRkaW5nJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5QYWRkaW5nIHx8ICc4cHggMTZweCcsXHJcbiAgICAgICAgICAgICAgICAgICctLWJ0bi1mb250LXNpemUnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0bkZvbnRTaXplIHx8ICcxNHB4J1xyXG4gICAgICAgICAgICAgICAgfVwiPnt7IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VUZXh0IHx8ICdDbG9zZScgfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvZmlsZS1wcmV2aWV3L2ZpbGUtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2ZpbGUtcHJldmlldy9maWxlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBVTFGLE1BQU0sT0FBTyxvQkFBb0I7SUFVWDtJQVRwQixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQzlCLElBQUksR0FBRyxLQUFLLENBQWMsSUFBSSxDQUFDLENBQUM7SUFFdEIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFNUMsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsV0FBVyxHQUEyQixJQUFJLENBQUM7SUFDM0MsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7SUFDL0MsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3pELENBQUM7SUFFQSxLQUFLO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxLQUFLLGlCQUFpQixJQUFJLEtBQUssQ0FBQztJQUMxRCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3hELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFFLFlBQVk7SUFDMUUsQ0FBQztJQUVELFFBQVE7UUFDTixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUV6QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBYSxDQUFDO1lBQzdDLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkYsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFhLENBQUM7WUFDN0MsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVDLGVBQWUsQ0FBQyxLQUFZO1FBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBRXpCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBRTVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7d0dBdEZVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG1XQ1hqQyxpMVpBc09NLGk3SkQvTk0sWUFBWTs7NEZBSVgsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7aUZBUWIsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWZpbGUtcHJldmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ZpbGUtcHJldmlldy5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XG4gIGZpbGUgPSBpbnB1dDxGaWxlIHwgbnVsbD4obnVsbCk7XG4gIFxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGZpbGVEYXRhVXJsOiBhbnkgPSAnJztcbiAgZmlsZU9iamVjdFVybDogYW55ID0gJyc7XG4gIHRleHRDb250ZW50OiBhbnkgPSAnJztcbiAgc2FmZUZpbGVVcmw6IFNhZmVSZXNvdXJjZVVybCB8IG51bGwgPSBudWxsOyBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cbiAgaXNJbWFnZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZpbGUoKT8udHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSB8fCBmYWxzZTtcbiAgfVxuXG4gICBpc1BkZigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZpbGUoKT8udHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgZmFsc2U7XG4gIH1cblxuICBpc1RleHQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5maWxlKCk/LnR5cGUuc3RhcnRzV2l0aCgndGV4dC8nKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGlzVW5zdXBwb3J0ZWQoKTogYW55IHtcbiAgICByZXR1cm4gIXRoaXMuaXNJbWFnZSgpICYmICF0aGlzLmlzUGRmKCkgJiYgIXRoaXMuaXNUZXh0KCk7ICAvLyDinIUgQ29ycmVjdFxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIHRoaXMubG9hZEZpbGVDb250ZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gICAgaWYgKHRoaXMuZmlsZU9iamVjdFVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmZpbGVPYmplY3RVcmwpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRGaWxlQ29udGVudCgpIHtcbiAgY29uc3QgY3VycmVudEZpbGUgPSB0aGlzLmZpbGUoKTtcbiAgaWYgKCFjdXJyZW50RmlsZSkgcmV0dXJuO1xuXG4gIGlmICh0aGlzLmlzSW1hZ2UoKSkge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XG4gICAgICB0aGlzLmZpbGVEYXRhVXJsID0gZS50YXJnZXQ/LnJlc3VsdCBhcyBhbnk7XG4gICAgfTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChjdXJyZW50RmlsZSk7XG4gIH0gZWxzZSBpZiAodGhpcy5pc1BkZigpKSB7XG4gICAgdGhpcy5maWxlT2JqZWN0VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChjdXJyZW50RmlsZSk7XG4gICAgdGhpcy5zYWZlRmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLmZpbGVPYmplY3RVcmwpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNUZXh0KCkpIHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgdGhpcy50ZXh0Q29udGVudCA9IGUudGFyZ2V0Py5yZXN1bHQgYXMgYW55O1xuICAgIH07XG4gICAgcmVhZGVyLnJlYWRBc1RleHQoY3VycmVudEZpbGUpO1xuICB9XG59XG5cbiAgb25CYWNrZHJvcENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChldmVudC50YXJnZXQgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VQcmV2aWV3KCkge1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIGRvd25sb2FkRmlsZSgpIHtcbiAgICBjb25zdCBjdXJyZW50RmlsZSA9IHRoaXMuZmlsZSgpO1xuICAgIGlmICghY3VycmVudEZpbGUpIHJldHVybjtcblxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoY3VycmVudEZpbGUpO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsuZG93bmxvYWQgPSBjdXJyZW50RmlsZS5uYW1lO1xuICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICBcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xuICAgIFxuICAgIHNldFRpbWVvdXQoKCkgPT4gVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpLCAxMDApO1xuICB9XG59IiwiPGRpdiBjbGFzcz1cImZpbGUtcHJldmlldy1tb2RhbFwiIFxuICAgICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlXCJcbiAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfcHJldmlldydcIlxuICAgICAoY2xpY2spPVwib25CYWNrZHJvcENsaWNrKCRldmVudClcIlxuICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VQcmV2aWV3KClcIlxuICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgJy0tbW9kYWwtYmFja2dyb3VuZCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ubW9kYWxCYWNrZ3JvdW5kIHx8ICdyZ2JhKDAsIDAsIDAsIDAuOSknLFxuICAgICAgICctLW1vZGFsLXotaW5kZXgnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnpJbmRleCB8fCAnMTAwMDAnLFxuICAgICAgICctLW1vZGFsLXdpZHRoJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy53aWR0aCB8fCAnMTAwJScsXG4gICAgICAgJy0tbW9kYWwtaGVpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5oZWlnaHQgfHwgJzEwMCUnXG4gICAgIH1cIj5cbiAgXG4gIDwhLS0gSW1hZ2UgUHJldmlldyAtLT5cbiAgPGRpdiAqbmdJZj1cImlzSW1hZ2UoKVwiIFxuICAgICAgIGNsYXNzPVwicHJldmlldy1jb250YWluZXIgaW1hZ2UtY29udGFpbmVyXCJcbiAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19pbWFnZV9jb250YWluZXInXCJcbiAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAnLS1pbWFnZS1jb250YWluZXItYmFja2dyb3VuZCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VDb250YWluZXJCYWNrZ3JvdW5kIHx8ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAnLS1pbWFnZS1jb250YWluZXItYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VDb250YWluZXJCb3JkZXJSYWRpdXMgfHwgJzhweCcsXG4gICAgICAgICAnLS1pbWFnZS1jb250YWluZXItcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VDb250YWluZXJQYWRkaW5nIHx8ICcyMHB4JyxcbiAgICAgICAgICctLWltYWdlLWNvbnRhaW5lci1tYXJnaW4nOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmltYWdlQ29udGFpbmVyTWFyZ2luIHx8ICcwJ1xuICAgICAgIH1cIj5cbiAgICBcbiAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnRuXCIgXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX2Nsb3NlX2J0bidcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCIgXG4gICAgICAgICAgICBbdGl0bGVdPVwiZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0blRpdGxlIHx8ICdDbG9zZSdcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tYmFja2dyb3VuZCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5CYWNrZ3JvdW5kIHx8ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSknLFxuICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmNsb3NlQnRuQ29sb3IgfHwgJyMwMDAnLFxuICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5Cb3JkZXJSYWRpdXMgfHwgJzUwJScsXG4gICAgICAgICAgICAgICctLWNsb3NlLWJ0bi1mb250LXNpemUnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmNsb3NlQnRuRm9udFNpemUgfHwgJzIwcHgnLFxuICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmNsb3NlQnRuRm9udFdlaWdodCB8fCAnYm9sZCcsXG4gICAgICAgICAgICAgICctLWNsb3NlLWJ0bi1ob3Zlci1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkhvdmVyQmFja2dyb3VuZCB8fCAncmdiYSgyNTUsIDI1NSwgMjU1LCAxKSdcbiAgICAgICAgICAgIH1cIj4mdGltZXM7PC9idXR0b24+XG4gICAgXG4gICAgPGgzIGNsYXNzPVwiZmlsZS10aXRsZVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAnLS10aXRsZS1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGl0bGVDb2xvciB8fCAnI2ZmZicsXG4gICAgICAgICAgJy0tdGl0bGUtZm9udC1mYW1pbHknOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRpdGxlRm9udEZhbWlseSB8fCAnTXVsaXNoJyxcbiAgICAgICAgICAnLS10aXRsZS1mb250LXNpemUnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRpdGxlRm9udFNpemUgfHwgJzE4cHgnLFxuICAgICAgICAgICctLXRpdGxlLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50aXRsZUZvbnRXZWlnaHQgfHwgJzYwMCcsXG4gICAgICAgICAgJy0tdGl0bGUtbWFyZ2luJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50aXRsZU1hcmdpbiB8fCAnMCAwIDEwcHggMCcsXG4gICAgICAgICAgJy0tdGl0bGUtcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGl0bGVQYWRkaW5nIHx8ICcwIDEwcHgnXG4gICAgICAgIH1cIj57eyBmaWxlKCk/Lm5hbWUgfX08L2gzPlxuICAgIFxuICAgIDxpbWcgW3NyY109XCJmaWxlRGF0YVVybFwiIFxuICAgICAgICAgW2FsdF09XCJmaWxlKCk/Lm5hbWVcIiBcbiAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX3ByZXZpZXdfaW1hZ2UnXCJcbiAgICAgICAgIGNsYXNzPVwicHJldmlldy1pbWFnZVwiXG4gICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICctLWltYWdlLW1heC13aWR0aCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VNYXhXaWR0aCB8fCAnMTAwJScsXG4gICAgICAgICAgICctLWltYWdlLW1heC1oZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmltYWdlTWF4SGVpZ2h0IHx8ICc4MHZoJyxcbiAgICAgICAgICAgJy0taW1hZ2UtYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaW1hZ2VCb3JkZXJSYWRpdXMgfHwgJzhweCcsXG4gICAgICAgICAgICctLWltYWdlLWJveC1zaGFkb3cnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmltYWdlQm94U2hhZG93IHx8ICcwIDRweCAyMHB4IHJnYmEoMCwwLDAsMC41KScsXG4gICAgICAgICAgICctLWltYWdlLW9iamVjdC1maXQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmltYWdlT2JqZWN0Rml0IHx8ICdjb250YWluJ1xuICAgICAgICAgfVwiIC8+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUERGIFByZXZpZXcgLS0+XG4gIDxkaXYgKm5nSWY9XCJpc1BkZigpXCIgXG4gICAgICAgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lciBwZGYtY29udGFpbmVyXCJcbiAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19wZGZfY29udGFpbmVyJ1wiXG4gICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgJy0tcGRmLWNvbnRhaW5lci1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5wZGZDb250YWluZXJCYWNrZ3JvdW5kIHx8ICcjZmZmJyxcbiAgICAgICAgICctLXBkZi1jb250YWluZXItYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ucGRmQ29udGFpbmVyQm9yZGVyUmFkaXVzIHx8ICc4cHgnLFxuICAgICAgICAgJy0tcGRmLWNvbnRhaW5lci13aWR0aCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ucGRmQ29udGFpbmVyV2lkdGggfHwgJzk1dncnLFxuICAgICAgICAgJy0tcGRmLWNvbnRhaW5lci1oZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZkNvbnRhaW5lckhlaWdodCB8fCAnOTV2aCdcbiAgICAgICB9XCI+XG4gICAgXG4gICAgPCEtLSBUb3AtcmlnaHQgYWN0aW9uIGJ1dHRvbnMgLS0+XG4gICAgPGRpdiBjbGFzcz1cInBkZi1hY3Rpb25zLXRvcC1yaWdodFwiXG4gICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICctLWFjdGlvbnMtdG9wJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5hY3Rpb25zVG9wIHx8ICcxNXB4JyxcbiAgICAgICAgICAgJy0tYWN0aW9ucy1yaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYWN0aW9uc1JpZ2h0IHx8ICcxNXB4JyxcbiAgICAgICAgICAgJy0tYWN0aW9ucy1nYXAnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmFjdGlvbnNHYXAgfHwgJzEwcHgnXG4gICAgICAgICB9XCI+XG4gICAgICBcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCIgXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uLWJ0biBjbG9zZS1idG5cIlxuICAgICAgICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19jbG9zZV9wZGYnXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5UaXRsZSB8fCAnQ2xvc2UnXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICctLWNsb3NlLWJ0bi1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkJhY2tncm91bmQgfHwgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC45KScsXG4gICAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWNvbG9yJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkNvbG9yIHx8ICcjMDAwJyxcbiAgICAgICAgICAgICAgICAnLS1jbG9zZS1idG4tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5Cb3JkZXJSYWRpdXMgfHwgJzUwJScsXG4gICAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VCdG5Gb250U2l6ZSB8fCAnMjBweCcsXG4gICAgICAgICAgICAgICAgJy0tY2xvc2UtYnRuLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkZvbnRXZWlnaHQgfHwgJ2JvbGQnLFxuICAgICAgICAgICAgICAgICctLWNsb3NlLWJ0bi1ob3Zlci1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5jbG9zZUJ0bkhvdmVyQmFja2dyb3VuZCB8fCAncmdiYSgyNTUsIDI1NSwgMjU1LCAxKSdcbiAgICAgICAgICAgICAgfVwiPiZ0aW1lczs8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIEZpbGUgdGl0bGUgLS0+XG4gICAgPGgzIGNsYXNzPVwiZmlsZS10aXRsZSBwZGYtdGl0bGVcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgJy0tcGRmLXRpdGxlLWNvbG9yJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5wZGZUaXRsZUNvbG9yIHx8ICcjMzMzJyxcbiAgICAgICAgICAnLS1wZGYtdGl0bGUtZm9udC1mYW1pbHknOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZlRpdGxlRm9udEZhbWlseSB8fCAnTXVsaXNoJyxcbiAgICAgICAgICAnLS1wZGYtdGl0bGUtZm9udC1zaXplJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5wZGZUaXRsZUZvbnRTaXplIHx8ICcxNnB4JyxcbiAgICAgICAgICAnLS1wZGYtdGl0bGUtZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnBkZlRpdGxlRm9udFdlaWdodCB8fCAnNjAwJyxcbiAgICAgICAgICAnLS1wZGYtdGl0bGUtbWFyZ2luJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5wZGZUaXRsZU1hcmdpbiB8fCAnMHB4IDIwcHggMTBweCAyMHB4JyxcbiAgICAgICAgICAnLS1wZGYtdGl0bGUtcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8ucGRmVGl0bGVQYWRkaW5nIHx8ICcwJ1xuICAgICAgICB9XCI+e3sgZmlsZSgpPy5uYW1lIH19PC9oMz5cbiAgICBcbiAgICA8aWZyYW1lIFtzcmNdPVwic2FmZUZpbGVVcmxcIiBcbiAgICAgICAgICAgIFt0aXRsZV09XCJmaWxlKCk/Lm5hbWVcIiBcbiAgICAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX3BkZl9pZnJhbWUnXCJcbiAgICAgICAgICAgIGNsYXNzPVwicGRmLWlmcmFtZVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICctLWlmcmFtZS1ib3JkZXInOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmlmcmFtZUJvcmRlciB8fCAnbm9uZScsXG4gICAgICAgICAgICAgICctLWlmcmFtZS1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5pZnJhbWVCb3JkZXJSYWRpdXMgfHwgJzAnLFxuICAgICAgICAgICAgICAnLS1pZnJhbWUtd2lkdGgnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmlmcmFtZVdpZHRoIHx8ICcxMDAlJyxcbiAgICAgICAgICAgICAgJy0taWZyYW1lLWhlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uaWZyYW1lSGVpZ2h0IHx8ICdjYWxjKDEwMCUgLSA4MHB4KScsXG4gICAgICAgICAgICAgICctLWlmcmFtZS1taW4taGVpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5pZnJhbWVNaW5IZWlnaHQgfHwgJzYwMHB4J1xuICAgICAgICAgICAgfVwiPjwvaWZyYW1lPlxuICA8L2Rpdj5cblxuICA8IS0tIFRleHQgUHJldmlldyAtLT5cbiAgPGRpdiAqbmdJZj1cImlzVGV4dCgpXCIgXG4gICAgICAgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lciB0ZXh0LWNvbnRhaW5lclwiXG4gICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZSArICdfdGV4dF9jb250YWluZXInXCJcbiAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAnLS10ZXh0LWNvbnRhaW5lci1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0Q29udGFpbmVyQmFja2dyb3VuZCB8fCAnI2ZmZicsXG4gICAgICAgICAnLS10ZXh0LWNvbnRhaW5lci1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0Q29udGFpbmVyQm9yZGVyUmFkaXVzIHx8ICc4cHgnLFxuICAgICAgICAgJy0tdGV4dC1jb250YWluZXItd2lkdGgnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRleHRDb250YWluZXJXaWR0aCB8fCAnOTV2dycsXG4gICAgICAgICAnLS10ZXh0LWNvbnRhaW5lci1oZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRleHRDb250YWluZXJIZWlnaHQgfHwgJzk1dmgnXG4gICAgICAgfVwiPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWhlYWRlclwiXG4gICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ190ZXh0X2hlYWRlcidcIlxuICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAnLS10ZXh0LWhlYWRlci1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0SGVhZGVyQmFja2dyb3VuZCB8fCAnI2Y4ZjlmYScsXG4gICAgICAgICAgICctLXRleHQtaGVhZGVyLWJvcmRlci1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dEhlYWRlckJvcmRlckNvbG9yIHx8ICcjZGVlMmU2JyxcbiAgICAgICAgICAgJy0tdGV4dC1oZWFkZXItcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dEhlYWRlclBhZGRpbmcgfHwgJzE1cHggMjBweCdcbiAgICAgICAgIH1cIj5cbiAgICAgIFxuICAgICAgPGgzIGNsYXNzPVwiZmlsZS10aXRsZVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgJy0tdGV4dC10aXRsZS1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dFRpdGxlQ29sb3IgfHwgJyMzMzMnLFxuICAgICAgICAgICAgJy0tdGV4dC10aXRsZS1mb250LWZhbWlseSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dFRpdGxlRm9udEZhbWlseSB8fCAnTXVsaXNoJyxcbiAgICAgICAgICAgICctLXRleHQtdGl0bGUtZm9udC1zaXplJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0VGl0bGVGb250U2l6ZSB8fCAnMTZweCcsXG4gICAgICAgICAgICAnLS10ZXh0LXRpdGxlLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8ucHJldmlld1N0eWxlPy50ZXh0VGl0bGVGb250V2VpZ2h0IHx8ICc2MDAnLFxuICAgICAgICAgICAgJy0tdGV4dC10aXRsZS1tYXJnaW4nOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRleHRUaXRsZU1hcmdpbiB8fCAnMCdcbiAgICAgICAgICB9XCI+e3sgZmlsZSgpPy5uYW1lIH19PC9oMz5cbiAgICAgIFxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VQcmV2aWV3KClcIiBcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIlxuICAgICAgICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ19jbG9zZV90ZXh0J1wiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAnLS1idG4tZGFuZ2VyLWJhY2tncm91bmQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0bkRhbmdlckJhY2tncm91bmQgfHwgJyNkYzM1NDUnLFxuICAgICAgICAgICAgICAgICctLWJ0bi1kYW5nZXItY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0bkRhbmdlckNvbG9yIHx8ICcjZmZmJyxcbiAgICAgICAgICAgICAgICAnLS1idG4tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuQm9yZGVyUmFkaXVzIHx8ICc0cHgnLFxuICAgICAgICAgICAgICAgICctLWJ0bi1wYWRkaW5nJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5QYWRkaW5nIHx8ICc4cHggMTZweCcsXG4gICAgICAgICAgICAgICAgJy0tYnRuLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuRm9udFNpemUgfHwgJzE0cHgnXG4gICAgICAgICAgICAgIH1cIj57eyBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmNsb3NlVGV4dCB8fCAnQ2xvc2UnIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPHByZSBjbGFzcz1cInRleHQtY29udGVudFwiXG4gICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lICsgJ190ZXh0X2NvbnRlbnQnXCJcbiAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgJy0tdGV4dC1jb250ZW50LWJhY2tncm91bmQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnRleHRDb250ZW50QmFja2dyb3VuZCB8fCAnI2ZmZicsXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1jb2xvcic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRDb2xvciB8fCAnIzMzMycsXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1mb250LWZhbWlseSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRGb250RmFtaWx5IHx8ICdDb25zb2xhcywgTW9uYWNvLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlJyxcbiAgICAgICAgICAgJy0tdGV4dC1jb250ZW50LWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRGb250U2l6ZSB8fCAnMTRweCcsXG4gICAgICAgICAgICctLXRleHQtY29udGVudC1saW5lLWhlaWdodCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRMaW5lSGVpZ2h0IHx8ICcxLjUnLFxuICAgICAgICAgICAnLS10ZXh0LWNvbnRlbnQtcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRQYWRkaW5nIHx8ICcyMHB4JyxcbiAgICAgICAgICAgJy0tdGV4dC1jb250ZW50LW1hcmdpbic6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8udGV4dENvbnRlbnRNYXJnaW4gfHwgJzAnXG4gICAgICAgICB9XCI+e3sgdGV4dENvbnRlbnQgfX08L3ByZT5cbiAgPC9kaXY+XG5cbiAgPCEtLSBVbnN1cHBvcnRlZCBGaWxlIC0tPlxuICA8ZGl2ICpuZ0lmPVwiaXNVbnN1cHBvcnRlZCgpXCIgXG4gICAgICAgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lciB1bnN1cHBvcnRlZC1jb250YWluZXJcIlxuICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX3Vuc3VwcG9ydGVkX2NvbnRhaW5lcidcIlxuICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICctLXVuc3VwcG9ydGVkLWJhY2tncm91bmQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkQmFja2dyb3VuZCB8fCAnI2ZmZicsXG4gICAgICAgICAnLS11bnN1cHBvcnRlZC1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZEJvcmRlclJhZGl1cyB8fCAnOHB4JyxcbiAgICAgICAgICctLXVuc3VwcG9ydGVkLXBhZGRpbmcnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkUGFkZGluZyB8fCAnNDBweCcsXG4gICAgICAgICAnLS11bnN1cHBvcnRlZC1taW4td2lkdGgnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkTWluV2lkdGggfHwgJzMwMHB4J1xuICAgICAgIH1cIj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwidW5zdXBwb3J0ZWQtY29udGVudFwiPlxuICAgICAgPGgzIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICctLXVuc3VwcG9ydGVkLXRpdGxlLWNvbG9yJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZFRpdGxlQ29sb3IgfHwgJyMzMzMnLFxuICAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGl0bGUtZm9udC1mYW1pbHknOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkVGl0bGVGb250RmFtaWx5IHx8ICdNdWxpc2gnLFxuICAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGl0bGUtZm9udC1zaXplJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZFRpdGxlRm9udFNpemUgfHwgJzE4cHgnLFxuICAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGl0bGUtZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkVGl0bGVGb250V2VpZ2h0IHx8ICc2MDAnLFxuICAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGl0bGUtbWFyZ2luJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy51bnN1cHBvcnRlZFRpdGxlTWFyZ2luIHx8ICcwIDAgMjBweCAwJ1xuICAgICAgICAgIH1cIj57eyBmaWxlKCk/Lm5hbWUgfX08L2gzPlxuICAgICAgXG4gICAgICA8cCBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICctLXVuc3VwcG9ydGVkLXRleHQtY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkVGV4dENvbG9yIHx8ICcjNjY2JyxcbiAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGV4dC1mb250LXNpemUnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkVGV4dEZvbnRTaXplIHx8ICcxNHB4JyxcbiAgICAgICAgICAgJy0tdW5zdXBwb3J0ZWQtdGV4dC1tYXJnaW4nOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkVGV4dE1hcmdpbiB8fCAnMCAwIDMwcHggMCdcbiAgICAgICAgIH1cIj57eyBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LnVuc3VwcG9ydGVkTWVzc2FnZSB8fCAnUHJldmlldyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGZpbGUgdHlwZScgfX08L3A+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJ1bnN1cHBvcnRlZC1hY3Rpb25zXCJcbiAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICctLWFjdGlvbnMtZ2FwJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5hY3Rpb25zR2FwIHx8ICcxNXB4JyxcbiAgICAgICAgICAgICAnLS1hY3Rpb25zLWp1c3RpZnknOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmFjdGlvbnNKdXN0aWZ5IHx8ICdjZW50ZXInXG4gICAgICAgICAgIH1cIj5cbiAgICAgICAgXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkRmlsZSgpXCIgXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX2Rvd25sb2FkJ1wiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgJy0tYnRuLXByaW1hcnktYmFja2dyb3VuZCc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuUHJpbWFyeUJhY2tncm91bmQgfHwgJyMwMDdiZmYnLFxuICAgICAgICAgICAgICAgICAgJy0tYnRuLXByaW1hcnktY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0blByaW1hcnlDb2xvciB8fCAnI2ZmZicsXG4gICAgICAgICAgICAgICAgICAnLS1idG4tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuQm9yZGVyUmFkaXVzIHx8ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgJy0tYnRuLXBhZGRpbmcnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0blBhZGRpbmcgfHwgJzhweCAxNnB4JyxcbiAgICAgICAgICAgICAgICAgICctLWJ0bi1mb250LXNpemUnOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0bkZvbnRTaXplIHx8ICcxNHB4J1xuICAgICAgICAgICAgICAgIH1cIj57eyBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmRvd25sb2FkVGV4dCB8fCAnRG93bmxvYWQnIH19PC9idXR0b24+XG4gICAgICAgIFxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiIFxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWUgKyAnX2Nsb3NlX3Vuc3VwcG9ydGVkJ1wiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgJy0tYnRuLXNlY29uZGFyeS1iYWNrZ3JvdW5kJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5TZWNvbmRhcnlCYWNrZ3JvdW5kIHx8ICcjNmM3NTdkJyxcbiAgICAgICAgICAgICAgICAgICctLWJ0bi1zZWNvbmRhcnktY29sb3InOiBmaWVsZCgpPy5wcmV2aWV3U3R5bGU/LmJ0blNlY29uZGFyeUNvbG9yIHx8ICcjZmZmJyxcbiAgICAgICAgICAgICAgICAgICctLWJ0bi1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8ucHJldmlld1N0eWxlPy5idG5Cb3JkZXJSYWRpdXMgfHwgJzRweCcsXG4gICAgICAgICAgICAgICAgICAnLS1idG4tcGFkZGluZyc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuUGFkZGluZyB8fCAnOHB4IDE2cHgnLFxuICAgICAgICAgICAgICAgICAgJy0tYnRuLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uYnRuRm9udFNpemUgfHwgJzE0cHgnXG4gICAgICAgICAgICAgICAgfVwiPnt7IGZpZWxkKCk/LnByZXZpZXdTdHlsZT8uY2xvc2VUZXh0IHx8ICdDbG9zZScgfX08L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==