@porscheinformatik/material-addons 17.4.4 → 17.4.6

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 (132) hide show
  1. package/esm2022/lib/button/button.module.mjs +24 -6
  2. package/esm2022/lib/button/danger-button/danger-button.component.mjs +4 -3
  3. package/esm2022/lib/button/flat-button/link-button.component.mjs +4 -3
  4. package/esm2022/lib/button/icon-button/icon-button.component.mjs +4 -3
  5. package/esm2022/lib/button/mad-button/mad-button.directive.mjs +3 -2
  6. package/esm2022/lib/button/mad-button-group/mad-button-group.component.mjs +3 -2
  7. package/esm2022/lib/button/outline-button/outline-button.component.mjs +4 -3
  8. package/esm2022/lib/button/primary-button/primary-button.component.mjs +4 -3
  9. package/esm2022/lib/card/card.component.mjs +19 -9
  10. package/esm2022/lib/card/card.module.mjs +4 -5
  11. package/esm2022/lib/layout/content-panel/content-header/content-header.component.mjs +3 -3
  12. package/esm2022/lib/layout/content-panel/content-panel-container/content-panel-container.component.mjs +3 -3
  13. package/esm2022/lib/layout/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +3 -3
  14. package/esm2022/lib/layout/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +3 -3
  15. package/esm2022/lib/layout/content-panel/content-panel-container-sidebar/content-panel-container-sidebar.component.mjs +3 -3
  16. package/esm2022/lib/layout/content-panel/content-panel.module.mjs +6 -5
  17. package/esm2022/lib/layout/content-panel/main-container/main-container.component.mjs +3 -3
  18. package/esm2022/lib/layout/flowbar/flowbar.component.mjs +6 -5
  19. package/esm2022/lib/layout/flowbar/flowbar.module.mjs +4 -5
  20. package/esm2022/lib/layout/sidebar/sidebar-item/sidebar-item.component.mjs +3 -3
  21. package/esm2022/lib/layout/sidebar/sidebar.component.mjs +7 -5
  22. package/esm2022/lib/layout/sidebar/sidebar.module.mjs +4 -5
  23. package/esm2022/lib/layout/toolbar/toolbar.component.mjs +34 -14
  24. package/esm2022/lib/layout/toolbar/toolbar.module.mjs +7 -5
  25. package/esm2022/lib/material-action-button/material-action-button.component.mjs +11 -8
  26. package/esm2022/lib/material-action-button/material-action-button.module.mjs +4 -5
  27. package/esm2022/lib/numeric-field/numeric-field.directive.mjs +8 -4
  28. package/esm2022/lib/numeric-field/numeric-field.module.mjs +3 -3
  29. package/esm2022/lib/quick-list/base-quick-list.component.mjs +3 -3
  30. package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +15 -7
  31. package/esm2022/lib/quick-list/quick-list.component.mjs +8 -7
  32. package/esm2022/lib/quick-list/quick-list.module.mjs +23 -6
  33. package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +15 -7
  34. package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +15 -7
  35. package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +16 -10
  36. package/esm2022/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +13 -8
  37. package/esm2022/lib/readonly/readonly-form-field.module.mjs +31 -6
  38. package/esm2022/lib/stepper/step-header/step-header.component.mjs +6 -5
  39. package/esm2022/lib/stepper/stepper.component.mjs +10 -11
  40. package/esm2022/lib/stepper/stepper.module.mjs +27 -5
  41. package/esm2022/lib/table/table.component.mjs +32 -16
  42. package/esm2022/lib/table/table.module.mjs +7 -5
  43. package/esm2022/lib/throttle-click/throttle-click.directive.mjs +3 -2
  44. package/esm2022/lib/throttle-click/throttle-click.module.mjs +3 -4
  45. package/fesm2022/porscheinformatik-material-addons.mjs +334 -184
  46. package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -1
  47. package/lib/button/button.module.d.ts +13 -13
  48. package/lib/button/button.module.d.ts.map +1 -1
  49. package/lib/button/danger-button/danger-button.component.d.ts +1 -1
  50. package/lib/button/danger-button/danger-button.component.d.ts.map +1 -1
  51. package/lib/button/flat-button/link-button.component.d.ts +1 -1
  52. package/lib/button/flat-button/link-button.component.d.ts.map +1 -1
  53. package/lib/button/icon-button/icon-button.component.d.ts +1 -1
  54. package/lib/button/icon-button/icon-button.component.d.ts.map +1 -1
  55. package/lib/button/mad-button/mad-button.directive.d.ts +1 -1
  56. package/lib/button/mad-button/mad-button.directive.d.ts.map +1 -1
  57. package/lib/button/mad-button-group/mad-button-group.component.d.ts +1 -1
  58. package/lib/button/mad-button-group/mad-button-group.component.d.ts.map +1 -1
  59. package/lib/button/outline-button/outline-button.component.d.ts +1 -1
  60. package/lib/button/outline-button/outline-button.component.d.ts.map +1 -1
  61. package/lib/button/primary-button/primary-button.component.d.ts +1 -1
  62. package/lib/button/primary-button/primary-button.component.d.ts.map +1 -1
  63. package/lib/card/card.component.d.ts +1 -1
  64. package/lib/card/card.component.d.ts.map +1 -1
  65. package/lib/card/card.module.d.ts +8 -8
  66. package/lib/card/card.module.d.ts.map +1 -1
  67. package/lib/layout/content-panel/content-header/content-header.component.d.ts +1 -1
  68. package/lib/layout/content-panel/content-header/content-header.component.d.ts.map +1 -1
  69. package/lib/layout/content-panel/content-panel-container/content-panel-container.component.d.ts +1 -1
  70. package/lib/layout/content-panel/content-panel-container/content-panel-container.component.d.ts.map +1 -1
  71. package/lib/layout/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts +1 -1
  72. package/lib/layout/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts.map +1 -1
  73. package/lib/layout/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts +1 -1
  74. package/lib/layout/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts.map +1 -1
  75. package/lib/layout/content-panel/content-panel-container-sidebar/content-panel-container-sidebar.component.d.ts +1 -1
  76. package/lib/layout/content-panel/content-panel-container-sidebar/content-panel-container-sidebar.component.d.ts.map +1 -1
  77. package/lib/layout/content-panel/content-panel.module.d.ts +8 -8
  78. package/lib/layout/content-panel/content-panel.module.d.ts.map +1 -1
  79. package/lib/layout/content-panel/main-container/main-container.component.d.ts +1 -1
  80. package/lib/layout/content-panel/main-container/main-container.component.d.ts.map +1 -1
  81. package/lib/layout/flowbar/flowbar.component.d.ts +1 -1
  82. package/lib/layout/flowbar/flowbar.component.d.ts.map +1 -1
  83. package/lib/layout/flowbar/flowbar.module.d.ts +4 -4
  84. package/lib/layout/flowbar/flowbar.module.d.ts.map +1 -1
  85. package/lib/layout/sidebar/sidebar-item/sidebar-item.component.d.ts +1 -1
  86. package/lib/layout/sidebar/sidebar-item/sidebar-item.component.d.ts.map +1 -1
  87. package/lib/layout/sidebar/sidebar.component.d.ts +1 -1
  88. package/lib/layout/sidebar/sidebar.component.d.ts.map +1 -1
  89. package/lib/layout/sidebar/sidebar.module.d.ts +6 -6
  90. package/lib/layout/sidebar/sidebar.module.d.ts.map +1 -1
  91. package/lib/layout/toolbar/toolbar.component.d.ts +1 -1
  92. package/lib/layout/toolbar/toolbar.component.d.ts.map +1 -1
  93. package/lib/layout/toolbar/toolbar.module.d.ts +12 -12
  94. package/lib/material-action-button/material-action-button.component.d.ts +1 -1
  95. package/lib/material-action-button/material-action-button.component.d.ts.map +1 -1
  96. package/lib/material-action-button/material-action-button.module.d.ts +7 -7
  97. package/lib/material-action-button/material-action-button.module.d.ts.map +1 -1
  98. package/lib/numeric-field/numeric-field.directive.d.ts +1 -1
  99. package/lib/numeric-field/numeric-field.directive.d.ts.map +1 -1
  100. package/lib/numeric-field/numeric-field.module.d.ts +1 -1
  101. package/lib/quick-list/base-quick-list.component.d.ts +1 -1
  102. package/lib/quick-list/base-quick-list.component.d.ts.map +1 -1
  103. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts +1 -1
  104. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts.map +1 -1
  105. package/lib/quick-list/quick-list.component.d.ts +1 -1
  106. package/lib/quick-list/quick-list.component.d.ts.map +1 -1
  107. package/lib/quick-list/quick-list.module.d.ts +11 -11
  108. package/lib/quick-list/quick-list.module.d.ts.map +1 -1
  109. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts +1 -1
  110. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts.map +1 -1
  111. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts +1 -1
  112. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts.map +1 -1
  113. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts +1 -1
  114. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts.map +1 -1
  115. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts +3 -2
  116. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts.map +1 -1
  117. package/lib/readonly/readonly-form-field.module.d.ts +10 -10
  118. package/lib/readonly/readonly-form-field.module.d.ts.map +1 -1
  119. package/lib/stepper/step-header/step-header.component.d.ts +1 -1
  120. package/lib/stepper/step-header/step-header.component.d.ts.map +1 -1
  121. package/lib/stepper/stepper.component.d.ts +2 -2
  122. package/lib/stepper/stepper.component.d.ts.map +1 -1
  123. package/lib/stepper/stepper.module.d.ts +8 -8
  124. package/lib/stepper/stepper.module.d.ts.map +1 -1
  125. package/lib/table/table.component.d.ts +1 -1
  126. package/lib/table/table.component.d.ts.map +1 -1
  127. package/lib/table/table.module.d.ts +12 -12
  128. package/lib/throttle-click/throttle-click.directive.d.ts +1 -1
  129. package/lib/throttle-click/throttle-click.directive.d.ts.map +1 -1
  130. package/lib/throttle-click/throttle-click.module.d.ts +3 -3
  131. package/lib/throttle-click/throttle-click.module.d.ts.map +1 -1
  132. package/package.json +1 -1
@@ -1,14 +1,20 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { NumberFormatService } from '../../numeric-field/number-format.service';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { TextFieldModule } from '@angular/cdk/text-field';
5
+ import { MatTooltipModule } from '@angular/material/tooltip';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { MatInputModule } from '@angular/material/input';
8
+ import { NgIf, NgStyle, NgClass } from '@angular/common';
9
+ import { MatFormFieldModule } from '@angular/material/form-field';
3
10
  import * as i0 from "@angular/core";
4
11
  import * as i1 from "../../numeric-field/number-format.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/form-field";
7
- import * as i4 from "@angular/material/input";
8
- import * as i5 from "@angular/cdk/text-field";
9
- import * as i6 from "@angular/forms";
10
- import * as i7 from "@angular/material/tooltip";
11
- import * as i8 from "@angular/material/icon";
12
+ import * as i2 from "@angular/material/form-field";
13
+ import * as i3 from "@angular/material/input";
14
+ import * as i4 from "@angular/cdk/text-field";
15
+ import * as i5 from "@angular/forms";
16
+ import * as i6 from "@angular/material/tooltip";
17
+ import * as i7 from "@angular/material/icon";
12
18
  /**
13
19
  * Read-only mat-form-field representation of provided value
14
20
  *
@@ -171,11 +177,11 @@ export class ReadOnlyFormFieldComponent {
171
177
  return this.unitPosition === 'left' ? this.unit + ' ' + this.value : this.value + ' ' + this.unit;
172
178
  }
173
179
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.NumberFormatService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ReadOnlyFormFieldComponent, selector: "mad-readonly-form-field", inputs: { useProjectedContent: "useProjectedContent", value: "value", label: "label", textAlign: "textAlign", formatNumber: "formatNumber", decimalPlaces: "decimalPlaces", roundValue: ["roundDisplayValue", "roundValue"], autofillDecimals: "autofillDecimals", unit: "unit", unitPosition: "unitPosition", errorMessage: "errorMessage", multiline: "multiline", rows: "rows", id: "id", shrinkIfEmpty: "shrinkIfEmpty", suffix: "suffix", prefix: "prefix", multilineAutoSize: "multilineAutoSize" }, outputs: { suffixClickedEmitter: "suffixClickedEmitter", prefixClickedEmitter: "prefixClickedEmitter" }, viewQueries: [{ propertyName: "originalContent", first: true, predicate: ["contentWrapper"], descendants: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"form-group mad-read-only\">\n <mat-label>{{ label }}</mat-label>\n <input\n *ngIf=\"!multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [ngModel]=\"value\"\n [ngClass]=\"'text-' + textAlign + ' content'\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n #inputEl\n matTooltip=\"{{ toolTipText }}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{ !toolTipForInputEnabled }}\"\n />\n\n <textarea\n *ngIf=\"multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n class=\"multiline content\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n [cdkTextareaAutosize]=\"multilineAutoSize\"\n ></textarea>\n <ng-content *ngIf=\"useProjectedContent\" />\n <mat-error>{{ errorMessage }}</mat-error>\n <mat-icon data-cy=\"suffix-icon\" *ngIf=\"suffix\" (click)=\"suffixClicked()\" class=\"pointer\" color=\"primary\" matSuffix>{{ suffix }}</mat-icon>\n <mat-icon data-cy=\"prefix-icon\" *ngIf=\"prefix\" (click)=\"prefixClicked()\" class=\"pointer\" color=\"primary\" matPrefix>{{ prefix }}</mat-icon>\n</mat-form-field>\n", styles: ["mat-form-field{width:100%;width:-webkit-fill-available;width:-moz-available;width:stretch}mat-label{line-height:1.4}span[matPrefix]{padding-right:5px}span[matSuffix]{padding-left:5px}.text-left{text-align:left}.text-right{text-align:right}.multiline{resize:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.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: "directive", type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ReadOnlyFormFieldComponent, isStandalone: true, selector: "mad-readonly-form-field", inputs: { useProjectedContent: "useProjectedContent", value: "value", label: "label", textAlign: "textAlign", formatNumber: "formatNumber", decimalPlaces: "decimalPlaces", roundValue: ["roundDisplayValue", "roundValue"], autofillDecimals: "autofillDecimals", unit: "unit", unitPosition: "unitPosition", errorMessage: "errorMessage", multiline: "multiline", rows: "rows", id: "id", shrinkIfEmpty: "shrinkIfEmpty", suffix: "suffix", prefix: "prefix", multilineAutoSize: "multilineAutoSize" }, outputs: { suffixClickedEmitter: "suffixClickedEmitter", prefixClickedEmitter: "prefixClickedEmitter" }, viewQueries: [{ propertyName: "originalContent", first: true, predicate: ["contentWrapper"], descendants: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"form-group mad-read-only\">\n <mat-label>{{ label }}</mat-label>\n <input\n *ngIf=\"!multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [ngModel]=\"value\"\n [ngClass]=\"'text-' + textAlign + ' content'\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n #inputEl\n matTooltip=\"{{ toolTipText }}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{ !toolTipForInputEnabled }}\"\n />\n\n <textarea\n *ngIf=\"multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n class=\"multiline content\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n [cdkTextareaAutosize]=\"multilineAutoSize\"\n ></textarea>\n <ng-content *ngIf=\"useProjectedContent\" />\n <mat-error>{{ errorMessage }}</mat-error>\n <mat-icon data-cy=\"suffix-icon\" *ngIf=\"suffix\" (click)=\"suffixClicked()\" class=\"pointer\" color=\"primary\" matSuffix>{{ suffix }}</mat-icon>\n <mat-icon data-cy=\"prefix-icon\" *ngIf=\"prefix\" (click)=\"prefixClicked()\" class=\"pointer\" color=\"primary\" matPrefix>{{ prefix }}</mat-icon>\n</mat-form-field>\n", styles: ["mat-form-field{width:100%;width:-webkit-fill-available;width:-moz-available;width:stretch}mat-label{line-height:1.4}span[matPrefix]{padding-right:5px}span[matSuffix]{padding-left:5px}.text-left{text-align:left}.text-right{text-align:right}.multiline{resize:none}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
175
181
  }
176
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldComponent, decorators: [{
177
183
  type: Component,
178
- args: [{ selector: 'mad-readonly-form-field', template: "<mat-form-field class=\"form-group mad-read-only\">\n <mat-label>{{ label }}</mat-label>\n <input\n *ngIf=\"!multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [ngModel]=\"value\"\n [ngClass]=\"'text-' + textAlign + ' content'\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n #inputEl\n matTooltip=\"{{ toolTipText }}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{ !toolTipForInputEnabled }}\"\n />\n\n <textarea\n *ngIf=\"multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n class=\"multiline content\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n [cdkTextareaAutosize]=\"multilineAutoSize\"\n ></textarea>\n <ng-content *ngIf=\"useProjectedContent\" />\n <mat-error>{{ errorMessage }}</mat-error>\n <mat-icon data-cy=\"suffix-icon\" *ngIf=\"suffix\" (click)=\"suffixClicked()\" class=\"pointer\" color=\"primary\" matSuffix>{{ suffix }}</mat-icon>\n <mat-icon data-cy=\"prefix-icon\" *ngIf=\"prefix\" (click)=\"prefixClicked()\" class=\"pointer\" color=\"primary\" matPrefix>{{ prefix }}</mat-icon>\n</mat-form-field>\n", styles: ["mat-form-field{width:100%;width:-webkit-fill-available;width:-moz-available;width:stretch}mat-label{line-height:1.4}span[matPrefix]{padding-right:5px}span[matSuffix]{padding-left:5px}.text-left{text-align:left}.text-right{text-align:right}.multiline{resize:none}\n"] }]
184
+ args: [{ selector: 'mad-readonly-form-field', standalone: true, imports: [MatFormFieldModule, NgIf, MatInputModule, FormsModule, NgStyle, NgClass, MatTooltipModule, TextFieldModule, MatIconModule], template: "<mat-form-field class=\"form-group mad-read-only\">\n <mat-label>{{ label }}</mat-label>\n <input\n *ngIf=\"!multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [ngModel]=\"value\"\n [ngClass]=\"'text-' + textAlign + ' content'\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n #inputEl\n matTooltip=\"{{ toolTipText }}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{ !toolTipForInputEnabled }}\"\n />\n\n <textarea\n *ngIf=\"multiline\"\n [ngStyle]=\"{ display: useProjectedContent ? 'none' : 'block' }\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n class=\"multiline content\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n [disabled]=\"!useProjectedContent\"\n matInput\n [cdkTextareaAutosize]=\"multilineAutoSize\"\n ></textarea>\n <ng-content *ngIf=\"useProjectedContent\" />\n <mat-error>{{ errorMessage }}</mat-error>\n <mat-icon data-cy=\"suffix-icon\" *ngIf=\"suffix\" (click)=\"suffixClicked()\" class=\"pointer\" color=\"primary\" matSuffix>{{ suffix }}</mat-icon>\n <mat-icon data-cy=\"prefix-icon\" *ngIf=\"prefix\" (click)=\"prefixClicked()\" class=\"pointer\" color=\"primary\" matPrefix>{{ prefix }}</mat-icon>\n</mat-form-field>\n", styles: ["mat-form-field{width:100%;width:-webkit-fill-available;width:-moz-available;width:stretch}mat-label{line-height:1.4}span[matPrefix]{padding-right:5px}span[matSuffix]{padding-left:5px}.text-left{text-align:left}.text-right{text-align:right}.multiline{resize:none}\n"] }]
179
185
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1.NumberFormatService }, { type: i0.ElementRef }], propDecorators: { originalContent: [{
180
186
  type: ViewChild,
181
187
  args: ['contentWrapper', { static: false }]
@@ -234,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
234
240
  type: ViewChild,
235
241
  args: ['inputEl']
236
242
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkL3JlYWRvbmx5LWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7O0FBRTlFOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8sMEJBQTBCO0lBaURyQyxZQUNVLGNBQWlDLEVBQ2pDLFFBQW1CLEVBQ25CLG1CQUF3QyxFQUN4QyxVQUFzQjtRQUh0QixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFsREYsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRy9DLGNBQVMsR0FBcUIsTUFBTSxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDckMsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDbkIsaUJBQVksR0FBcUIsTUFBTSxDQUFDO1FBQ3hDLGlC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WTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNaLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ2UsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RXJyb3JTdGF0ZU1hdGNoZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtOdW1iZXJGb3JtYXRTZXJ2aWNlfSBmcm9tICcuLi8uLi9udW1lcmljLWZpZWxkL251bWJlci1mb3JtYXQuc2VydmljZSc7XG5cbi8qKlxuICogUmVhZC1vbmx5IG1hdC1mb3JtLWZpZWxkIHJlcHJlc2VudGF0aW9uIG9mIHByb3ZpZGVkIHZhbHVlXG4gKlxuICogQGF1dGhvciBTdGVmYW4gTGFlc3NlclxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1yZWFkb25seS1mb3JtLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWRvbmx5LWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZE9ubHlGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQge1xuICBAVmlld0NoaWxkKCdjb250ZW50V3JhcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBvcmlnaW5hbENvbnRlbnQ6IEVsZW1lbnRSZWY7XG4gIEBJbnB1dCgndXNlUHJvamVjdGVkQ29udGVudCcpIHVzZVByb2plY3RlZENvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCd2YWx1ZScpIHZhbHVlPzogYW55O1xuICBASW5wdXQoJ2xhYmVsJykgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCd0ZXh0QWxpZ24nKSB0ZXh0QWxpZ246ICdyaWdodCcgfCAnbGVmdCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgnZm9ybWF0TnVtYmVyJykgZm9ybWF0TnVtYmVyID0gZmFsc2U7XG4gIEBJbnB1dCgnZGVjaW1hbFBsYWNlcycpIGRlY2ltYWxQbGFjZXMgPSAyO1xuICBASW5wdXQoJ3JvdW5kRGlzcGxheVZhbHVlJykgcm91bmRWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoJ2F1dG9maWxsRGVjaW1hbHMnKSBhdXRvZmlsbERlY2ltYWxzID0gZmFsc2U7XG4gIEBJbnB1dCgndW5pdCcpIHVuaXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoJ3VuaXRQb3NpdGlvbicpIHVuaXRQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdsZWZ0JztcbiAgQElucHV0KCdlcnJvck1lc3NhZ2UnKSBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBtdWx0aWxpbmUgPSBmYWxzZTtcbiAgQElucHV0KCkgcm93czogbnVtYmVyO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAvKlxuICAgKiBJZiBzaHJpbmtJZkVtcHR5IGlzIHNldCB0byBcImZhbHNlXCIsIG5vdGhpbmcgY2hhbmdlc1xuICAgKiBJZiBzZXQgdG8gXCJ0cnVlXCIgYW5kIG11bHRpbGluZSBpcyBhbHNvIFwidHJ1ZVwiLCB0aGUgdGV4dGFyZWEgd2lsbFxuICAgKiBzaHJpbmsgdG8gb25lIHJvdywgaWYgdmFsdWUgaXMgZW1wdHkvbnVsbC91bmRlZmluZWQuXG4gICAqIE90aGVyd2lzZSwgdGhlIGRlZmluZWQgcm93cy12YWx1ZSB3aWxsIGJlIHVzZWRcbiAgICovXG4gIEBJbnB1dCgpIHNocmlua0lmRW1wdHkgPSBmYWxzZTtcbiAgLyoqXG4gICAqIHN1ZmZpeCBpb2NvblxuICAgKi9cbiAgQElucHV0KCkgc3VmZml4OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwcmVmaXggaW9jb25cbiAgICovXG4gIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nO1xuICAvKipcbiAgICogaWYgY2RrVGV4dGFyZWFBdXRvc2l6ZSBpcyBhY3RpdmUgZm9yIHRleHRhcmVhc1xuICAgKi9cbiAgQElucHV0KCkgbXVsdGlsaW5lQXV0b1NpemUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHN1ZmZpeENsaWNrZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHJlZml4Q2xpY2tlZEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWwnKSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuICBlcnJvck1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyID0ge1xuICAgIGlzRXJyb3JTdGF0ZTogKCkgPT4gISF0aGlzLmVycm9yTWVzc2FnZSxcbiAgfTtcblxuICBwcml2YXRlIHVuaXRTcGFuOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgdGV4dFNwYW46IEhUTUxTcGFuRWxlbWVudDtcblxuICB0b29sVGlwRm9ySW5wdXRFbmFibGVkID0gZmFsc2U7XG4gIHRvb2xUaXBUZXh0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgbnVtYmVyRm9ybWF0U2VydmljZTogTnVtYmVyRm9ybWF0U2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCFOdW1iZXJGb3JtYXRTZXJ2aWNlLnZhbHVlSXNTZXQodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnLSc7XG4gICAgICBpZiAodGhpcy5zaHJpbmtJZkVtcHR5KSB7XG4gICAgICAgIHRoaXMucm93cyA9IDE7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmZvcm1hdE51bWJlciAmJiB0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm51bWJlckZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMudmFsdWUsIHtcbiAgICAgICAgZGVjaW1hbFBsYWNlczogdGhpcy5kZWNpbWFsUGxhY2VzLFxuICAgICAgICBmaW5hbEZvcm1hdHRpbmc6IHRydWUsXG4gICAgICAgIGF1dG9maWxsRGVjaW1hbHM6IHRoaXMuYXV0b2ZpbGxEZWNpbWFscyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8vIFRPRE8gZGlyZWN0IGNvcHkgZnJvbSBOdW1lcmljRmllbGREaXJlY3RpdmVcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0VW5pdFN5bWJvbCgpO1xuICAgIC8vIElmIHVzZVByb2plY3RlZENvbnRlbnQgaXMgc2V0IHRvIHRydWUsIHRoZSBpbnB1dCB3b250IGJlIHNob3dcbiAgICBpZiAoIXRoaXMudXNlUHJvamVjdGVkQ29udGVudCl7XG4gICAgICB0aGlzLnNldFJlYWRvbmx5RmllbGRTdHlsZSgpO1xuICAgICAgdGhpcy5zZXRUb29sdGlwRm9yT3ZlcmZsb3duRmllbGQoKTtcbiAgICB9XG4gIH1cblxuICBzdWZmaXhDbGlja2VkKCkge1xuICAgIHRoaXMuc3VmZml4Q2xpY2tlZEVtaXR0ZXIuZW1pdChudWxsKTtcbiAgfVxuXG4gIHByZWZpeENsaWNrZWQoKSB7XG4gICAgdGhpcy5wcmVmaXhDbGlja2VkRW1pdHRlci5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RVbml0U3ltYm9sKCk6IHZvaWQge1xuICAgIC8vIE5lZWQgdG8gaW5qZWN0IHRoZSB1bml0IHN5bWJvbCB3aGVuIHRoZSBpbnB1dCBlbGVtZW50IHdpZHRoIGlzIHNldCB0byBpdHMgYWN0dWFsIHZhbHVlLFxuICAgIC8vIG90aGVyd2lzZSB0aGUgaWNvbiB3b250IHNob3cgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb25cbiAgICBpZiAoISF0aGlzLnVuaXQgJiYgIXRoaXMudW5pdFNwYW4gJiYgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggIT09IDApIHtcbiAgICAgIC8vIEdldCB0aGUgaW5wdXQgd3JhcHBlciBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgY29uc3QgaW5wdXRXcmFwcGVyID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlO1xuXG4gICAgICAvLyBDcmVhdGUgdGhlIHNwYW4gd2l0aCB1bml0IHN5bWJvbCBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgdGhpcy51bml0U3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXG4gICAgICBpZiAodGhpcy51bml0UG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnVuaXRTcGFuLCAnbWF0UHJlZml4JywgJycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudW5pdFNwYW4sICdwYWRkaW5nLXJpZ2h0JywgJzVweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShpbnB1dFdyYXBwZXIsIHRoaXMudW5pdFNwYW4sIGlucHV0V3JhcHBlci5jaGlsZHJlblswXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnVuaXRTcGFuLCAnbWF0U3VmZml4JywgJycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudW5pdFNwYW4sICdwYWRkaW5nLWxlZnQnLCAnMjVweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGlucHV0V3JhcHBlciwgdGhpcy51bml0U3Bhbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc3BlY2lhbCBoYW5kbGluZyB0byBtb3ZlIHVuaXQgc3ltYm9sIGFsb25nIHdpdGggZGlzcGxheSB2YWx1ZVxuICAgIGlmICghIXRoaXMudW5pdFNwYW4gJiYgdGhpcy50ZXh0QWxpZ24gPT09ICdsZWZ0JyAmJiB0aGlzLnVuaXRQb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgY29uc3QgaW5wdXRTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCBudWxsKTtcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5tYXJnaW5Ub3AgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItdG9wLXdpZHRoJyk7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLnBhZGRpbmdUb3AgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXRvcCcpO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5wYWRkaW5nQm90dG9tID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1ib3R0b20nKTtcblxuICAgICAgaWYgKCF0aGlzLnRleHRTcGFuKSB7XG4gICAgICAgIHRoaXMudGV4dFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50ZXh0U3Bhbik7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUuZm9udCA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQnKTtcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS5mb250U2l6ZSA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScpO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS53aWR0aCA9ICdhdXRvJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUudG9wID0gJzAnO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLndoaXRlU3BhY2UgPSAnbm8td3JhcCc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgfVxuICAgICAgdGhpcy50ZXh0U3Bhbi5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtIHRoaXMudW5pdFNwYW4uY2xpZW50V2lkdGgsIE1hdGguY2VpbCh0aGlzLnRleHRTcGFuLmNsaWVudFdpZHRoKSk7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLmxlZnQgPSB3aWR0aCArICdweCc7XG4gICAgfVxuICAgIC8vIGFsd2F5cyByZXNldCB1bml0IHN5bWJvbFxuICAgIGlmICghIXRoaXMudW5pdFNwYW4pIHtcbiAgICAgIHRoaXMudW5pdFNwYW4udGV4dENvbnRlbnQgPSB0aGlzLnVuaXQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRSZWFkb25seUZpZWxkU3R5bGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRFbD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgY29uc3QgdGV4dE92ZXJGbG93U3R5bGVWYWx1ZSA9IHRoaXMuZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpO1xuICAgICAgaWYgKHRleHRPdmVyRmxvd1N0eWxlVmFsdWUpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd0ZXh0LW92ZXJmbG93OiAnICsgdGV4dE92ZXJGbG93U3R5bGVWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRWxsaXBzaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGFzIHRleHQtb3ZlcmZsb3cgYmVoYXZpb3VyXG4gIHByaXZhdGUgZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpOiBzdHJpbmcge1xuICAgIC8vIGl0IHdvcmtzIG9ubHkgaWYgdGhlIHN0eWxlIGlzIGFkZGVkIHRvIHRoZSBjb21wb25lbnQgZGlyZWN0bHkuIFNob3VsZCBmaW5kIGEgd2F5IGZvciBnZXQgaXQgZnJvbSB0aGUgY2FsY3VsYXRlZFxuICAgIC8vIHN0eWxlLiBUaGFuIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGRlZmluZSB0aGUgdGV4dC1vdmVyZmxvdyBpbiBjc3MgZm9yIHRoZSB3aG9sZSBhcHBsaWNhdGlvblxuICAgIGNvbnN0IHRleHRPdmVyZmxvdyA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uc3R5bGUudGV4dE92ZXJmbG93O1xuICAgIGlmICghdGV4dE92ZXJmbG93KSB7XG4gICAgICByZXR1cm4gJ2VsbGlwc2lzJztcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dE92ZXJmbG93O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb29sdGlwRm9yT3ZlcmZsb3duRmllbGQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNFbGxpcHNpc0ZvclRleHRPdmVyZmxvd0VuYWJsZWQoKSkge1xuXG4gICAgICBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICAgIHRoaXMudG9vbFRpcEZvcklucHV0RW5hYmxlZCA9IHRoaXMuaXNUZXh0T3ZlcmZsb3duKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgaWYgKHRoaXMudG9vbFRpcEZvcklucHV0RW5hYmxlZCkge1xuICAgICAgICAgIHRoaXMudG9vbFRpcFRleHQgPSB0aGlzLmNhbGN1bGF0ZVRvb2xUaXBUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0VsbGlwc2lzRm9yVGV4dE92ZXJmbG93RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUZXh0T3ZlckZsb3dTdHlsZVZhbHVlKCkgPT09ICdlbGxpcHNpcyc7XG4gIH1cblxuICBwcml2YXRlIGlzVGV4dE92ZXJmbG93bihpbnB1dDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICByZXR1cm4gaW5wdXQub2Zmc2V0V2lkdGggPCBpbnB1dC5zY3JvbGxXaWR0aDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVUb29sVGlwVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy51bml0KSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51bml0UG9zaXRpb24gPT09ICdsZWZ0JyA/IHRoaXMudW5pdCArICcgJyArIHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlICsgJyAnICsgdGhpcy51bml0O1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWdyb3VwIG1hZC1yZWFkLW9ubHlcIj5cbiAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICA8aW5wdXRcbiAgICAqbmdJZj1cIiFtdWx0aWxpbmVcIlxuICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogdXNlUHJvamVjdGVkQ29udGVudCA/ICdub25lJyA6ICdibG9jaycgfVwiXG4gICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgIFtuZ0NsYXNzXT1cIid0ZXh0LScgKyB0ZXh0QWxpZ24gKyAnIGNvbnRlbnQnXCJcbiAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JNYXRjaGVyXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIHJlYWRvbmx5XG4gICAgW2Rpc2FibGVkXT1cIiF1c2VQcm9qZWN0ZWRDb250ZW50XCJcbiAgICBtYXRJbnB1dFxuICAgICNpbnB1dEVsXG4gICAgbWF0VG9vbHRpcD1cInt7IHRvb2xUaXBUZXh0IH19XCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIlxuICAgIG1hdFRvb2x0aXBEaXNhYmxlZD1cInt7ICF0b29sVGlwRm9ySW5wdXRFbmFibGVkIH19XCJcbiAgLz5cblxuICA8dGV4dGFyZWFcbiAgICAqbmdJZj1cIm11bHRpbGluZVwiXG4gICAgW25nU3R5bGVdPVwieyBkaXNwbGF5OiB1c2VQcm9qZWN0ZWRDb250ZW50ID8gJ25vbmUnIDogJ2Jsb2NrJyB9XCJcbiAgICBbcm93c109XCJyb3dzXCJcbiAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgY2xhc3M9XCJtdWx0aWxpbmUgY29udGVudFwiXG4gICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImVycm9yTWF0Y2hlclwiXG4gICAgW2lkXT1cImlkXCJcbiAgICByZWFkb25seVxuICAgIFtkaXNhYmxlZF09XCIhdXNlUHJvamVjdGVkQ29udGVudFwiXG4gICAgbWF0SW5wdXRcbiAgICBbY2RrVGV4dGFyZWFBdXRvc2l6ZV09XCJtdWx0aWxpbmVBdXRvU2l6ZVwiXG4gID48L3RleHRhcmVhPlxuICA8bmctY29udGVudCAqbmdJZj1cInVzZVByb2plY3RlZENvbnRlbnRcIiAvPlxuICA8bWF0LWVycm9yPnt7IGVycm9yTWVzc2FnZSB9fTwvbWF0LWVycm9yPlxuICA8bWF0LWljb24gZGF0YS1jeT1cInN1ZmZpeC1pY29uXCIgKm5nSWY9XCJzdWZmaXhcIiAoY2xpY2spPVwic3VmZml4Q2xpY2tlZCgpXCIgY2xhc3M9XCJwb2ludGVyXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0U3VmZml4Pnt7IHN1ZmZpeCB9fTwvbWF0LWljb24+XG4gIDxtYXQtaWNvbiBkYXRhLWN5PVwicHJlZml4LWljb25cIiAqbmdJZj1cInByZWZpeFwiIChjbGljayk9XCJwcmVmaXhDbGlja2VkKClcIiBjbGFzcz1cInBvaW50ZXJcIiBjb2xvcj1cInByaW1hcnlcIiBtYXRQcmVmaXg+e3sgcHJlZml4IH19PC9tYXQtaWNvbj5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkL3JlYWRvbmx5LWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O0FBRWxFOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8sMEJBQTBCO0lBaURyQyxZQUNVLGNBQWlDLEVBQ2pDLFFBQW1CLEVBQ25CLG1CQUF3QyxFQUN4QyxVQUFzQjtRQUh0QixtQkFBYyxH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QUF5QixjQUd2QixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUM7eUtBSXBJLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRWhCLG1CQUFtQjtzQkFBaEQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBQ1osS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUNFLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDTSxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ0ssWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNHLGFBQWE7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFDTSxVQUFVO3NCQUFyQyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDQyxnQkFBZ0I7c0JBQTFDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNWLElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFDVSxZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNaLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ2UsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBOdW1iZXJGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbnVtZXJpYy1maWVsZC9udW1iZXItZm9ybWF0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE5nSWYsIE5nU3R5bGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbi8qKlxuICogUmVhZC1vbmx5IG1hdC1mb3JtLWZpZWxkIHJlcHJlc2VudGF0aW9uIG9mIHByb3ZpZGVkIHZhbHVlXG4gKlxuICogQGF1dGhvciBTdGVmYW4gTGFlc3NlclxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1yZWFkb25seS1mb3JtLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWRvbmx5LWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEZvcm1GaWVsZE1vZHVsZSwgTmdJZiwgTWF0SW5wdXRNb2R1bGUsIEZvcm1zTW9kdWxlLCBOZ1N0eWxlLCBOZ0NsYXNzLCBNYXRUb29sdGlwTW9kdWxlLCBUZXh0RmllbGRNb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRXcmFwcGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG9yaWdpbmFsQ29udGVudDogRWxlbWVudFJlZjtcbiAgQElucHV0KCd1c2VQcm9qZWN0ZWRDb250ZW50JykgdXNlUHJvamVjdGVkQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ3ZhbHVlJykgdmFsdWU/OiBhbnk7XG4gIEBJbnB1dCgnbGFiZWwnKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoJ3RleHRBbGlnbicpIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdsZWZ0JztcbiAgQElucHV0KCdmb3JtYXROdW1iZXInKSBmb3JtYXROdW1iZXIgPSBmYWxzZTtcbiAgQElucHV0KCdkZWNpbWFsUGxhY2VzJykgZGVjaW1hbFBsYWNlcyA9IDI7XG4gIEBJbnB1dCgncm91bmREaXNwbGF5VmFsdWUnKSByb3VuZFZhbHVlID0gZmFsc2U7XG4gIEBJbnB1dCgnYXV0b2ZpbGxEZWNpbWFscycpIGF1dG9maWxsRGVjaW1hbHMgPSBmYWxzZTtcbiAgQElucHV0KCd1bml0JykgdW5pdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgndW5pdFBvc2l0aW9uJykgdW5pdFBvc2l0aW9uOiAncmlnaHQnIHwgJ2xlZnQnID0gJ2xlZnQnO1xuICBASW5wdXQoJ2Vycm9yTWVzc2FnZScpIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG11bHRpbGluZSA9IGZhbHNlO1xuICBASW5wdXQoKSByb3dzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIC8qXG4gICAqIElmIHNocmlua0lmRW1wdHkgaXMgc2V0IHRvIFwiZmFsc2VcIiwgbm90aGluZyBjaGFuZ2VzXG4gICAqIElmIHNldCB0byBcInRydWVcIiBhbmQgbXVsdGlsaW5lIGlzIGFsc28gXCJ0cnVlXCIsIHRoZSB0ZXh0YXJlYSB3aWxsXG4gICAqIHNocmluayB0byBvbmUgcm93LCBpZiB2YWx1ZSBpcyBlbXB0eS9udWxsL3VuZGVmaW5lZC5cbiAgICogT3RoZXJ3aXNlLCB0aGUgZGVmaW5lZCByb3dzLXZhbHVlIHdpbGwgYmUgdXNlZFxuICAgKi9cbiAgQElucHV0KCkgc2hyaW5rSWZFbXB0eSA9IGZhbHNlO1xuICAvKipcbiAgICogc3VmZml4IGlvY29uXG4gICAqL1xuICBASW5wdXQoKSBzdWZmaXg6IHN0cmluZztcbiAgLyoqXG4gICAqIHByZWZpeCBpb2NvblxuICAgKi9cbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBpZiBjZGtUZXh0YXJlYUF1dG9zaXplIGlzIGFjdGl2ZSBmb3IgdGV4dGFyZWFzXG4gICAqL1xuICBASW5wdXQoKSBtdWx0aWxpbmVBdXRvU2l6ZSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc3VmZml4Q2xpY2tlZEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwcmVmaXhDbGlja2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbCcpIGlucHV0RWw6IEVsZW1lbnRSZWY7XG4gIGVycm9yTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgPSB7XG4gICAgaXNFcnJvclN0YXRlOiAoKSA9PiAhIXRoaXMuZXJyb3JNZXNzYWdlLFxuICB9O1xuXG4gIHByaXZhdGUgdW5pdFNwYW46IEhUTUxTcGFuRWxlbWVudDtcbiAgcHJpdmF0ZSB0ZXh0U3BhbjogSFRNTFNwYW5FbGVtZW50O1xuXG4gIHRvb2xUaXBGb3JJbnB1dEVuYWJsZWQgPSBmYWxzZTtcbiAgdG9vbFRpcFRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBudW1iZXJGb3JtYXRTZXJ2aWNlOiBOdW1iZXJGb3JtYXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIU51bWJlckZvcm1hdFNlcnZpY2UudmFsdWVJc1NldCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9ICctJztcbiAgICAgIGlmICh0aGlzLnNocmlua0lmRW1wdHkpIHtcbiAgICAgICAgdGhpcy5yb3dzID0gMTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybWF0TnVtYmVyICYmIHR5cGVvZiB0aGlzLnZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubnVtYmVyRm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy52YWx1ZSwge1xuICAgICAgICBkZWNpbWFsUGxhY2VzOiB0aGlzLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIGZpbmFsRm9ybWF0dGluZzogdHJ1ZSxcbiAgICAgICAgYXV0b2ZpbGxEZWNpbWFsczogdGhpcy5hdXRvZmlsbERlY2ltYWxzLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gVE9ETyBkaXJlY3QgY29weSBmcm9tIE51bWVyaWNGaWVsZERpcmVjdGl2ZVxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbmplY3RVbml0U3ltYm9sKCk7XG4gICAgLy8gSWYgdXNlUHJvamVjdGVkQ29udGVudCBpcyBzZXQgdG8gdHJ1ZSwgdGhlIGlucHV0IHdvbnQgYmUgc2hvd1xuICAgIGlmICghdGhpcy51c2VQcm9qZWN0ZWRDb250ZW50KSB7XG4gICAgICB0aGlzLnNldFJlYWRvbmx5RmllbGRTdHlsZSgpO1xuICAgICAgdGhpcy5zZXRUb29sdGlwRm9yT3ZlcmZsb3duRmllbGQoKTtcbiAgICB9XG4gIH1cblxuICBzdWZmaXhDbGlja2VkKCkge1xuICAgIHRoaXMuc3VmZml4Q2xpY2tlZEVtaXR0ZXIuZW1pdChudWxsKTtcbiAgfVxuXG4gIHByZWZpeENsaWNrZWQoKSB7XG4gICAgdGhpcy5wcmVmaXhDbGlja2VkRW1pdHRlci5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RVbml0U3ltYm9sKCk6IHZvaWQge1xuICAgIC8vIE5lZWQgdG8gaW5qZWN0IHRoZSB1bml0IHN5bWJvbCB3aGVuIHRoZSBpbnB1dCBlbGVtZW50IHdpZHRoIGlzIHNldCB0byBpdHMgYWN0dWFsIHZhbHVlLFxuICAgIC8vIG90aGVyd2lzZSB0aGUgaWNvbiB3b250IHNob3cgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb25cbiAgICBpZiAoISF0aGlzLnVuaXQgJiYgIXRoaXMudW5pdFNwYW4gJiYgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggIT09IDApIHtcbiAgICAgIC8vIEdldCB0aGUgaW5wdXQgd3JhcHBlciBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgY29uc3QgaW5wdXRXcmFwcGVyID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlO1xuXG4gICAgICAvLyBDcmVhdGUgdGhlIHNwYW4gd2l0aCB1bml0IHN5bWJvbCBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgdGhpcy51bml0U3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXG4gICAgICBpZiAodGhpcy51bml0UG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnVuaXRTcGFuLCAnbWF0UHJlZml4JywgJycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudW5pdFNwYW4sICdwYWRkaW5nLXJpZ2h0JywgJzVweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShpbnB1dFdyYXBwZXIsIHRoaXMudW5pdFNwYW4sIGlucHV0V3JhcHBlci5jaGlsZHJlblswXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnVuaXRTcGFuLCAnbWF0U3VmZml4JywgJycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudW5pdFNwYW4sICdwYWRkaW5nLWxlZnQnLCAnMjVweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGlucHV0V3JhcHBlciwgdGhpcy51bml0U3Bhbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc3BlY2lhbCBoYW5kbGluZyB0byBtb3ZlIHVuaXQgc3ltYm9sIGFsb25nIHdpdGggZGlzcGxheSB2YWx1ZVxuICAgIGlmICghIXRoaXMudW5pdFNwYW4gJiYgdGhpcy50ZXh0QWxpZ24gPT09ICdsZWZ0JyAmJiB0aGlzLnVuaXRQb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgY29uc3QgaW5wdXRTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCBudWxsKTtcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5tYXJnaW5Ub3AgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItdG9wLXdpZHRoJyk7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLnBhZGRpbmdUb3AgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXRvcCcpO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5wYWRkaW5nQm90dG9tID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1ib3R0b20nKTtcblxuICAgICAgaWYgKCF0aGlzLnRleHRTcGFuKSB7XG4gICAgICAgIHRoaXMudGV4dFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50ZXh0U3Bhbik7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUuZm9udCA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQnKTtcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS5mb250U2l6ZSA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScpO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS53aWR0aCA9ICdhdXRvJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUudG9wID0gJzAnO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLndoaXRlU3BhY2UgPSAnbm8td3JhcCc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgfVxuICAgICAgdGhpcy50ZXh0U3Bhbi5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtIHRoaXMudW5pdFNwYW4uY2xpZW50V2lkdGgsIE1hdGguY2VpbCh0aGlzLnRleHRTcGFuLmNsaWVudFdpZHRoKSk7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLmxlZnQgPSB3aWR0aCArICdweCc7XG4gICAgfVxuICAgIC8vIGFsd2F5cyByZXNldCB1bml0IHN5bWJvbFxuICAgIGlmICghIXRoaXMudW5pdFNwYW4pIHtcbiAgICAgIHRoaXMudW5pdFNwYW4udGV4dENvbnRlbnQgPSB0aGlzLnVuaXQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRSZWFkb25seUZpZWxkU3R5bGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRFbD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgY29uc3QgdGV4dE92ZXJGbG93U3R5bGVWYWx1ZSA9IHRoaXMuZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpO1xuICAgICAgaWYgKHRleHRPdmVyRmxvd1N0eWxlVmFsdWUpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd0ZXh0LW92ZXJmbG93OiAnICsgdGV4dE92ZXJGbG93U3R5bGVWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRWxsaXBzaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGFzIHRleHQtb3ZlcmZsb3cgYmVoYXZpb3VyXG4gIHByaXZhdGUgZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpOiBzdHJpbmcge1xuICAgIC8vIGl0IHdvcmtzIG9ubHkgaWYgdGhlIHN0eWxlIGlzIGFkZGVkIHRvIHRoZSBjb21wb25lbnQgZGlyZWN0bHkuIFNob3VsZCBmaW5kIGEgd2F5IGZvciBnZXQgaXQgZnJvbSB0aGUgY2FsY3VsYXRlZFxuICAgIC8vIHN0eWxlLiBUaGFuIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGRlZmluZSB0aGUgdGV4dC1vdmVyZmxvdyBpbiBjc3MgZm9yIHRoZSB3aG9sZSBhcHBsaWNhdGlvblxuICAgIGNvbnN0IHRleHRPdmVyZmxvdyA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uc3R5bGUudGV4dE92ZXJmbG93O1xuICAgIGlmICghdGV4dE92ZXJmbG93KSB7XG4gICAgICByZXR1cm4gJ2VsbGlwc2lzJztcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dE92ZXJmbG93O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb29sdGlwRm9yT3ZlcmZsb3duRmllbGQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNFbGxpcHNpc0ZvclRleHRPdmVyZmxvd0VuYWJsZWQoKSkge1xuICAgICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgICB0aGlzLnRvb2xUaXBGb3JJbnB1dEVuYWJsZWQgPSB0aGlzLmlzVGV4dE92ZXJmbG93bih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGlmICh0aGlzLnRvb2xUaXBGb3JJbnB1dEVuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnRvb2xUaXBUZXh0ID0gdGhpcy5jYWxjdWxhdGVUb29sVGlwVGV4dCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNFbGxpcHNpc0ZvclRleHRPdmVyZmxvd0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpID09PSAnZWxsaXBzaXMnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RleHRPdmVyZmxvd24oaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgcmV0dXJuIGlucHV0Lm9mZnNldFdpZHRoIDwgaW5wdXQuc2Nyb2xsV2lkdGg7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVG9vbFRpcFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudW5pdCkge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudW5pdFBvc2l0aW9uID09PSAnbGVmdCcgPyB0aGlzLnVuaXQgKyAnICcgKyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZSArICcgJyArIHRoaXMudW5pdDtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1ncm91cCBtYWQtcmVhZC1vbmx5XCI+XG4gIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0XG4gICAgKm5nSWY9XCIhbXVsdGlsaW5lXCJcbiAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6IHVzZVByb2plY3RlZENvbnRlbnQgPyAnbm9uZScgOiAnYmxvY2snIH1cIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICBbbmdDbGFzc109XCIndGV4dC0nICsgdGV4dEFsaWduICsgJyBjb250ZW50J1wiXG4gICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImVycm9yTWF0Y2hlclwiXG4gICAgW2lkXT1cImlkXCJcbiAgICByZWFkb25seVxuICAgIFtkaXNhYmxlZF09XCIhdXNlUHJvamVjdGVkQ29udGVudFwiXG4gICAgbWF0SW5wdXRcbiAgICAjaW5wdXRFbFxuICAgIG1hdFRvb2x0aXA9XCJ7eyB0b29sVGlwVGV4dCB9fVwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCJcbiAgICBtYXRUb29sdGlwRGlzYWJsZWQ9XCJ7eyAhdG9vbFRpcEZvcklucHV0RW5hYmxlZCB9fVwiXG4gIC8+XG5cbiAgPHRleHRhcmVhXG4gICAgKm5nSWY9XCJtdWx0aWxpbmVcIlxuICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogdXNlUHJvamVjdGVkQ29udGVudCA/ICdub25lJyA6ICdibG9jaycgfVwiXG4gICAgW3Jvd3NdPVwicm93c1wiXG4gICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgIGNsYXNzPVwibXVsdGlsaW5lIGNvbnRlbnRcIlxuICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvck1hdGNoZXJcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgcmVhZG9ubHlcbiAgICBbZGlzYWJsZWRdPVwiIXVzZVByb2plY3RlZENvbnRlbnRcIlxuICAgIG1hdElucHV0XG4gICAgW2Nka1RleHRhcmVhQXV0b3NpemVdPVwibXVsdGlsaW5lQXV0b1NpemVcIlxuICA+PC90ZXh0YXJlYT5cbiAgPG5nLWNvbnRlbnQgKm5nSWY9XCJ1c2VQcm9qZWN0ZWRDb250ZW50XCIgLz5cbiAgPG1hdC1lcnJvcj57eyBlcnJvck1lc3NhZ2UgfX08L21hdC1lcnJvcj5cbiAgPG1hdC1pY29uIGRhdGEtY3k9XCJzdWZmaXgtaWNvblwiICpuZ0lmPVwic3VmZml4XCIgKGNsaWNrKT1cInN1ZmZpeENsaWNrZWQoKVwiIGNsYXNzPVwicG9pbnRlclwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdFN1ZmZpeD57eyBzdWZmaXggfX08L21hdC1pY29uPlxuICA8bWF0LWljb24gZGF0YS1jeT1cInByZWZpeC1pY29uXCIgKm5nSWY9XCJwcmVmaXhcIiAoY2xpY2spPVwicHJlZml4Q2xpY2tlZCgpXCIgY2xhc3M9XCJwb2ludGVyXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0UHJlZml4Pnt7IHByZWZpeCB9fTwvbWF0LWljb24+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -1,9 +1,11 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
- import { ControlContainer, FormGroupDirective } from "@angular/forms";
2
+ import { ControlContainer, FormGroupDirective } from '@angular/forms';
3
+ import { ReadOnlyFormFieldComponent } from '../readonly-form-field/readonly-form-field.component';
4
+ import { NgIf } from '@angular/common';
5
+ import { ObserversModule } from "@angular/cdk/observers";
3
6
  import * as i0 from "@angular/core";
4
7
  import * as i1 from "@angular/forms";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "../readonly-form-field/readonly-form-field.component";
8
+ import * as i2 from "@angular/cdk/observers";
7
9
  /**
8
10
  * Wraps a mat-form-field to replace it by a readOnly representation if necessary
9
11
  *
@@ -53,8 +55,7 @@ export class ReadOnlyFormFieldWrapperComponent {
53
55
  this.doRendering();
54
56
  this.extractValue();
55
57
  }
56
- ngAfterViewChecked() {
57
- }
58
+ ngAfterViewChecked() { }
58
59
  ngOnChanges(_) {
59
60
  this.doRendering();
60
61
  }
@@ -70,6 +71,10 @@ export class ReadOnlyFormFieldWrapperComponent {
70
71
  prefixClicked() {
71
72
  this.prefixClickedEmitter.emit(null);
72
73
  }
74
+ onContentChange() {
75
+ this.extractLabel();
76
+ this.extractValue();
77
+ }
73
78
  doRendering() {
74
79
  if (!this.originalContent) {
75
80
  return;
@@ -114,11 +119,11 @@ export class ReadOnlyFormFieldWrapperComponent {
114
119
  }
115
120
  }
116
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldWrapperComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ReadOnlyFormFieldWrapperComponent, selector: "mad-readonly-form-field-wrapper", inputs: { readonly: "readonly", value: "value", textAlign: "textAlign", formatNumber: "formatNumber", decimalPlaces: "decimalPlaces", roundValue: ["roundDisplayValue", "roundValue"], autofillDecimals: "autofillDecimals", unit: "unit", unitPosition: "unitPosition", errorMessage: "errorMessage", id: "id", multiline: "multiline", rows: "rows", shrinkIfEmpty: "shrinkIfEmpty", hideIconInReadOnlyMode: "hideIconInReadOnlyMode", suffix: "suffix", prefix: "prefix", multilineAutoSize: "multilineAutoSize" }, outputs: { suffixClickedEmitter: "suffixClickedEmitter", prefixClickedEmitter: "prefixClickedEmitter" }, viewQueries: [{ propertyName: "originalContent", first: true, predicate: ["contentWrapper"], descendants: true }, { propertyName: "readOnlyContentWrapper", first: true, predicate: ["readOnlyContentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #contentWrapper [hidden]=\"readonly\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [multilineAutoSize]=\"multilineAutoSize\"\n (suffixClickedEmitter)=\"suffixClicked()\"\n (prefixClickedEmitter)=\"prefixClicked()\"\n >\n </mad-readonly-form-field>\n </ng-container>\n</div>\n", styles: ["mat-form-field{width:inherit}div{width:inherit}::ng-deep .custom-tooltip{font-size:14px!important;word-break:break-all!important;white-space:normal!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ReadOnlyFormFieldComponent, selector: "mad-readonly-form-field", inputs: ["useProjectedContent", "value", "label", "textAlign", "formatNumber", "decimalPlaces", "roundDisplayValue", "autofillDecimals", "unit", "unitPosition", "errorMessage", "multiline", "rows", "id", "shrinkIfEmpty", "suffix", "prefix", "multilineAutoSize"], outputs: ["suffixClickedEmitter", "prefixClickedEmitter"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ReadOnlyFormFieldWrapperComponent, isStandalone: true, selector: "mad-readonly-form-field-wrapper", inputs: { readonly: "readonly", value: "value", textAlign: "textAlign", formatNumber: "formatNumber", decimalPlaces: "decimalPlaces", roundValue: ["roundDisplayValue", "roundValue"], autofillDecimals: "autofillDecimals", unit: "unit", unitPosition: "unitPosition", errorMessage: "errorMessage", id: "id", multiline: "multiline", rows: "rows", shrinkIfEmpty: "shrinkIfEmpty", hideIconInReadOnlyMode: "hideIconInReadOnlyMode", suffix: "suffix", prefix: "prefix", multilineAutoSize: "multilineAutoSize" }, outputs: { suffixClickedEmitter: "suffixClickedEmitter", prefixClickedEmitter: "prefixClickedEmitter" }, viewQueries: [{ propertyName: "originalContent", first: true, predicate: ["contentWrapper"], descendants: true }, { propertyName: "readOnlyContentWrapper", first: true, predicate: ["readOnlyContentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #contentWrapper [hidden]=\"readonly\" (cdkObserveContent)=\"onContentChange()\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [multilineAutoSize]=\"multilineAutoSize\"\n (suffixClickedEmitter)=\"suffixClicked()\"\n (prefixClickedEmitter)=\"prefixClicked()\"\n >\n </mad-readonly-form-field>\n </ng-container>\n</div>\n", styles: ["mat-form-field{width:inherit}div{width:inherit}::ng-deep .custom-tooltip{font-size:14px!important;word-break:break-all!important;white-space:normal!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ReadOnlyFormFieldComponent, selector: "mad-readonly-form-field", inputs: ["useProjectedContent", "value", "label", "textAlign", "formatNumber", "decimalPlaces", "roundDisplayValue", "autofillDecimals", "unit", "unitPosition", "errorMessage", "multiline", "rows", "id", "shrinkIfEmpty", "suffix", "prefix", "multilineAutoSize"], outputs: ["suffixClickedEmitter", "prefixClickedEmitter"] }, { kind: "ngmodule", type: ObserversModule }, { kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] }); }
118
123
  }
119
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldWrapperComponent, decorators: [{
120
125
  type: Component,
121
- args: [{ selector: 'mad-readonly-form-field-wrapper', viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], template: "<div #contentWrapper [hidden]=\"readonly\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [multilineAutoSize]=\"multilineAutoSize\"\n (suffixClickedEmitter)=\"suffixClicked()\"\n (prefixClickedEmitter)=\"prefixClicked()\"\n >\n </mad-readonly-form-field>\n </ng-container>\n</div>\n", styles: ["mat-form-field{width:inherit}div{width:inherit}::ng-deep .custom-tooltip{font-size:14px!important;word-break:break-all!important;white-space:normal!important}\n"] }]
126
+ args: [{ selector: 'mad-readonly-form-field-wrapper', viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], standalone: true, imports: [NgIf, ReadOnlyFormFieldComponent, ObserversModule], template: "<div #contentWrapper [hidden]=\"readonly\" (cdkObserveContent)=\"onContentChange()\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [multilineAutoSize]=\"multilineAutoSize\"\n (suffixClickedEmitter)=\"suffixClicked()\"\n (prefixClickedEmitter)=\"prefixClicked()\"\n >\n </mad-readonly-form-field>\n </ng-container>\n</div>\n", styles: ["mat-form-field{width:inherit}div{width:inherit}::ng-deep .custom-tooltip{font-size:14px!important;word-break:break-all!important;white-space:normal!important}\n"] }]
122
127
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FormGroupDirective }], propDecorators: { originalContent: [{
123
128
  type: ViewChild,
124
129
  args: ['contentWrapper', { static: false }]
@@ -175,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
175
180
  }], prefixClickedEmitter: [{
176
181
  type: Output
177
182
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL3JlYWRvbmx5L3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFcEU7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxpQ0FBaUM7SUFtRTVDLFlBQ1UsY0FBaUMsRUFDakMsYUFBaUM7UUFEakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQS9EM0M7OztXQUdHO1FBQ00sYUFBUSxHQUFHLElBQUksQ0FBQztRQVFMLGNBQVMsR0FBcUIsTUFBTSxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDckMsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDbkIsaUJBQVksR0FBcUIsTUFBTSxDQUFDO1FBQ3hDLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUUxRDs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTzNCOzs7OztXQUtHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBU3hDOztXQUVHO1FBQ00sc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVlwRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixDQUFDO0lBRUQsV0FBVyxDQUFDLENBQWdCO1FBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztJQUMvRSxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxPQUFPO1NBQ1I7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFO1lBQ2hFLE9BQU87U0FDUjtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBQ0QsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRixJQUFJLFNBQVMsRUFBRTtZQUNiLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQzs4R0F0SlUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsazZCQzNCOUMsaTZCQThCQSxzdEJETGlCLENBQUMsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFDLENBQUM7OzJGQUVsRSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0UsaUNBQWlDLGlCQUc1QixDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBQyxDQUFDO3VIQUk3RSxlQUFlO3NCQURkLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUc1QyxzQkFBc0I7c0JBRHJCLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQU8zQyxRQUFRO3NCQUFoQixLQUFLO2dCQU1VLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFFTSxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ0ssWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNHLGFBQWE7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFDTSxVQUFVO3NCQUFyQyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDQyxnQkFBZ0I7c0JBQTFDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNWLElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFDVSxZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNaLEVBQUU7c0JBQVYsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFRRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuLyoqXG4gKiBXcmFwcyBhIG1hdC1mb3JtLWZpZWxkIHRvIHJlcGxhY2UgaXQgYnkgYSByZWFkT25seSByZXByZXNlbnRhdGlvbiBpZiBuZWNlc3NhcnlcbiAqXG4gKiBAYXV0aG9yIFN0ZWZhbiBMYWVzc2VyXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5jc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW3twcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlfV1cbn0pXG5leHBvcnQgY2xhc3MgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQge1xuICBAVmlld0NoaWxkKCdjb250ZW50V3JhcHBlcicsIHtzdGF0aWM6IGZhbHNlfSlcbiAgb3JpZ2luYWxDb250ZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZWFkT25seUNvbnRlbnRXcmFwcGVyJywge3N0YXRpYzogZmFsc2V9KVxuICByZWFkT25seUNvbnRlbnRXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gXCJmYWxzZVwiLCB0aGUgY29udGFpbmVkIG1hdC1mb3JtLWZpZWxkIGlzIHJlbmRlcmVkIGluIGFsbCBpdCdzIGdsb3J5LlxuICAgKiBJZiBzZXQgdG8gXCJ0cnVlXCIsIGEgcmVhZG9ubHkgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIGlzIHNob3duIHVzaW5nIHRoZSBtYXQtZm9ybS1maWVsZHMgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoaXMgaW5wdXQgKk1VU1QgTUFUQ0gqIHRoZSBtYXQtZm9ybS1maWVsZCB2YWx1ZSB0byBlbnN1cmUgY29ycmVjdCBkYXRhXG4gICAqIGJpbmRpbmcgYW5kIGZvcm1hdHRpbmcgb2YgcmVhZE9ubHkgcmVwcmVzZW50YXRpb24hXG4gICAqL1xuICBASW5wdXQoJ3ZhbHVlJykgdmFsdWU/OiBhbnk7XG5cbiAgQElucHV0KCd0ZXh0QWxpZ24nKSB0ZXh0QWxpZ246ICdyaWdodCcgfCAnbGVmdCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgnZm9ybWF0TnVtYmVyJykgZm9ybWF0TnVtYmVyID0gZmFsc2U7XG4gIEBJbnB1dCgnZGVjaW1hbFBsYWNlcycpIGRlY2ltYWxQbGFjZXMgPSAyO1xuICBASW5wdXQoJ3JvdW5kRGlzcGxheVZhbHVlJykgcm91bmRWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoJ2F1dG9maWxsRGVjaW1hbHMnKSBhdXRvZmlsbERlY2ltYWxzID0gZmFsc2U7XG4gIEBJbnB1dCgndW5pdCcpIHVuaXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoJ3VuaXRQb3NpdGlvbicpIHVuaXRQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdsZWZ0JztcbiAgQElucHV0KCdlcnJvck1lc3NhZ2UnKSBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAvKipcbiAgICogSWYgc2V0IHRvIFwiZmFsc2VcIiwgYSByZWFkb25seSBpbnB1dCB3aWxsIGJlIHJlbmRlcmVkLlxuICAgKiBJZiBzZXQgdG8gXCJ0cnVlXCIsIGEgcmVhZG9ubHkgdGV4dGFyZWEgd2lsbCBiZSByZW5kZXJlZCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KCkgbXVsdGlsaW5lID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHJvd3MgZm9yIHRoZSByZWFkb25seSB0ZXh0YXJlYS5cbiAgICovXG4gIEBJbnB1dCgpIHJvd3M6IG51bWJlcjtcblxuICAvKipcbiAgICogSWYgc2hyaW5rSWZFbXB0eSBpcyBzZXQgdG8gXCJmYWxzZVwiLCBub3RoaW5nIGNoYW5nZXNcbiAgICogSWYgc2V0IHRvIFwidHJ1ZVwiIGFuZCBtdWx0aWxpbmUgaXMgYWxzbyBcInRydWVcIiwgdGhlIHRleHRhcmVhIHdpbGxcbiAgICogc2hyaW5rIHRvIG9uZSByb3csIGlmIHZhbHVlIGlzIGVtcHR5L251bGwvdW5kZWZpbmVkLlxuICAgKiBPdGhlcndpc2UsIHRoZSBkZWZpbmVkIHJvd3MtdmFsdWUgd2lsbCBiZSB1c2VkXG4gICAqL1xuICBASW5wdXQoKSBzaHJpbmtJZkVtcHR5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVJY29uSW5SZWFkT25seU1vZGUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIHN1ZmZpeCBpb2NvblxuICAgKi9cbiAgQElucHV0KCkgc3VmZml4OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwcmVmaXggaW9jb25cbiAgICovXG4gIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nO1xuICAvKipcbiAgICogaWYgY2RrVGV4dGFyZWFBdXRvc2l6ZSBpcyBhY3RpdmUgZm9yIHRleHRhcmVhc1xuICAgKi9cbiAgQElucHV0KCkgbXVsdGlsaW5lQXV0b1NpemUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHN1ZmZpeENsaWNrZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHJlZml4Q2xpY2tlZEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgdGFrZW4gZnJvbSB0aGUgY29udGFpbmVkIDxtYXQtbGFiZWw+XG4gICAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByb290Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmVcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRvUmVuZGVyaW5nKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kb1JlbmRlcmluZygpO1xuICAgIHRoaXMuZXh0cmFjdFZhbHVlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5kb1JlbmRlcmluZygpO1xuICB9XG5cbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMubGFiZWwpIHtcbiAgICAgIHRoaXMuZXh0cmFjdExhYmVsKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgc3VmZml4Q2xpY2tlZCgpIHtcbiAgICB0aGlzLnN1ZmZpeENsaWNrZWRFbWl0dGVyLmVtaXQobnVsbCk7XG4gIH1cblxuICBwcmVmaXhDbGlja2VkKCkge1xuICAgIHRoaXMucHJlZml4Q2xpY2tlZEVtaXR0ZXIuZW1pdChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZG9SZW5kZXJpbmcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMuY29ycmVjdFdpZHRoKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RMYWJlbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb250ZW50IHx8ICF0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy5vcmlnaW5hbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdtYXQtbGFiZWwnKTtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWxFbGVtZW50ID8gbGFiZWxFbGVtZW50LmlubmVySFRNTCA6ICdtYXQtbGFiZWwgaXMgbWlzc2luZyEnO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9ybSA9IHRoaXMucm9vdEZvcm1Hcm91cC5mb3JtO1xuICAgIGlmICghdGhpcy5vcmlnaW5hbENvbnRlbnQgfHwgIXRoaXMub3JpZ2luYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLm9yaWdpbmFsQ29udGVudD8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db250cm9sTmFtZSA9IGlucHV0LmdldEF0dHJpYnV0ZSgnZm9ybUNvbnRyb2xOYW1lJyk7XG4gICAgaWYgKCFmb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGZvcm0gJiYgZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGZvcm0uZ2V0KGZvcm1Db250cm9sTmFtZSkuZ2V0UmF3VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvcnJlY3RXaWR0aCgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGQgPSB0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ21hdC1mb3JtLWZpZWxkJyk7XG4gICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgZm9ybUZpZWxkLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnd2lkdGg6MTAwJScpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2ICNjb250ZW50V3JhcHBlciBbaGlkZGVuXT1cInJlYWRvbmx5XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48ZGl2ICNyZWFkT25seUNvbnRlbnRXcmFwcGVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFyZWFkb25seVwiPlxuICAgIDxtYWQtcmVhZG9ubHktZm9ybS1maWVsZFxuICAgICAgW2xhYmVsXT1cImdldExhYmVsKClcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFt0ZXh0QWxpZ25dPVwidGV4dEFsaWduXCJcbiAgICAgIFtmb3JtYXROdW1iZXJdPVwiZm9ybWF0TnVtYmVyXCJcbiAgICAgIFtkZWNpbWFsUGxhY2VzXT1cImRlY2ltYWxQbGFjZXNcIlxuICAgICAgW3JvdW5kRGlzcGxheVZhbHVlXT1cInJvdW5kVmFsdWVcIlxuICAgICAgW2F1dG9maWxsRGVjaW1hbHNdPVwiYXV0b2ZpbGxEZWNpbWFsc1wiXG4gICAgICBbdW5pdF09XCJ1bml0XCJcbiAgICAgIFt1bml0UG9zaXRpb25dPVwidW5pdFBvc2l0aW9uXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlXCJcbiAgICAgIFttdWx0aWxpbmVdPVwibXVsdGlsaW5lXCJcbiAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgW3Nocmlua0lmRW1wdHldPVwic2hyaW5rSWZFbXB0eVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3N1ZmZpeF09XCJzdWZmaXhcIlxuICAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxuICAgICAgW211bHRpbGluZUF1dG9TaXplXT1cIm11bHRpbGluZUF1dG9TaXplXCJcbiAgICAgIChzdWZmaXhDbGlja2VkRW1pdHRlcik9XCJzdWZmaXhDbGlja2VkKClcIlxuICAgICAgKHByZWZpeENsaWNrZWRFbWl0dGVyKT1cInByZWZpeENsaWNrZWQoKVwiXG4gICAgPlxuICAgIDwvbWFkLXJlYWRvbmx5LWZvcm0tZmllbGQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL3JlYWRvbmx5L3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXZEOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8saUNBQWlDO0lBa0U1QyxZQUNVLGNBQWlDLEVBQ2pDLGFBQWlDO1FBRGpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBb0I7UUE5RDNDOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFRTCxjQUFTLEdBQXFCLE1BQU0sQ0FBQztRQUNsQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNwQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNkLGVBQVUs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Z0JBQ0csYUFBYTtzQkFBcEMsS0FBSzt1QkFBQyxlQUFlO2dCQUNNLFVBQVU7c0JBQXJDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNDLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ1YsSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUNVLFlBQVk7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFDRSxZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ1osRUFBRTtzQkFBVixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQVFHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UmVhZE9ubHlGb3JtRmllbGRDb21wb25lbnR9IGZyb20gJy4uL3JlYWRvbmx5LWZvcm0tZmllbGQvcmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtPYnNlcnZlcnNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzXCI7XG5cbi8qKlxuICogV3JhcHMgYSBtYXQtZm9ybS1maWVsZCB0byByZXBsYWNlIGl0IGJ5IGEgcmVhZE9ubHkgcmVwcmVzZW50YXRpb24gaWYgbmVjZXNzYXJ5XG4gKlxuICogQGF1dGhvciBTdGVmYW4gTGFlc3NlclxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBGb3JtR3JvdXBEaXJlY3RpdmUgfV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCwgT2JzZXJ2ZXJzTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQge1xuICBAVmlld0NoaWxkKCdjb250ZW50V3JhcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBvcmlnaW5hbENvbnRlbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3JlYWRPbmx5Q29udGVudFdyYXBwZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcmVhZE9ubHlDb250ZW50V3JhcHBlcjogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIFwiZmFsc2VcIiwgdGhlIGNvbnRhaW5lZCBtYXQtZm9ybS1maWVsZCBpcyByZW5kZXJlZCBpbiBhbGwgaXQncyBnbG9yeS5cbiAgICogSWYgc2V0IHRvIFwidHJ1ZVwiLCBhIHJlYWRvbmx5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBpcyBzaG93biB1c2luZyB0aGUgbWF0LWZvcm0tZmllbGRzIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHkgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGlzIGlucHV0ICpNVVNUIE1BVENIKiB0aGUgbWF0LWZvcm0tZmllbGQgdmFsdWUgdG8gZW5zdXJlIGNvcnJlY3QgZGF0YVxuICAgKiBiaW5kaW5nIGFuZCBmb3JtYXR0aW5nIG9mIHJlYWRPbmx5IHJlcHJlc2VudGF0aW9uIVxuICAgKi9cbiAgQElucHV0KCd2YWx1ZScpIHZhbHVlPzogYW55O1xuXG4gIEBJbnB1dCgndGV4dEFsaWduJykgdGV4dEFsaWduOiAncmlnaHQnIHwgJ2xlZnQnID0gJ2xlZnQnO1xuICBASW5wdXQoJ2Zvcm1hdE51bWJlcicpIGZvcm1hdE51bWJlciA9IGZhbHNlO1xuICBASW5wdXQoJ2RlY2ltYWxQbGFjZXMnKSBkZWNpbWFsUGxhY2VzID0gMjtcbiAgQElucHV0KCdyb3VuZERpc3BsYXlWYWx1ZScpIHJvdW5kVmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCdhdXRvZmlsbERlY2ltYWxzJykgYXV0b2ZpbGxEZWNpbWFscyA9IGZhbHNlO1xuICBASW5wdXQoJ3VuaXQnKSB1bml0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCd1bml0UG9zaXRpb24nKSB1bml0UG9zaXRpb246ICdyaWdodCcgfCAnbGVmdCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgnZXJyb3JNZXNzYWdlJykgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHNldCB0byBcImZhbHNlXCIsIGEgcmVhZG9ubHkgaW5wdXQgd2lsbCBiZSByZW5kZXJlZC5cbiAgICogSWYgc2V0IHRvIFwidHJ1ZVwiLCBhIHJlYWRvbmx5IHRleHRhcmVhIHdpbGwgYmUgcmVuZGVyZWQgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIG11bHRpbGluZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByb3dzIGZvciB0aGUgcmVhZG9ubHkgdGV4dGFyZWEuXG4gICAqL1xuICBASW5wdXQoKSByb3dzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElmIHNocmlua0lmRW1wdHkgaXMgc2V0IHRvIFwiZmFsc2VcIiwgbm90aGluZyBjaGFuZ2VzXG4gICAqIElmIHNldCB0byBcInRydWVcIiBhbmQgbXVsdGlsaW5lIGlzIGFsc28gXCJ0cnVlXCIsIHRoZSB0ZXh0YXJlYSB3aWxsXG4gICAqIHNocmluayB0byBvbmUgcm93LCBpZiB2YWx1ZSBpcyBlbXB0eS9udWxsL3VuZGVmaW5lZC5cbiAgICogT3RoZXJ3aXNlLCB0aGUgZGVmaW5lZCByb3dzLXZhbHVlIHdpbGwgYmUgdXNlZFxuICAgKi9cbiAgQElucHV0KCkgc2hyaW5rSWZFbXB0eSA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlSWNvbkluUmVhZE9ubHlNb2RlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBzdWZmaXggaW9jb25cbiAgICovXG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nO1xuICAvKipcbiAgICogcHJlZml4IGlvY29uXG4gICAqL1xuICBASW5wdXQoKSBwcmVmaXg6IHN0cmluZztcbiAgLyoqXG4gICAqIGlmIGNka1RleHRhcmVhQXV0b3NpemUgaXMgYWN0aXZlIGZvciB0ZXh0YXJlYXNcbiAgICovXG4gIEBJbnB1dCgpIG11bHRpbGluZUF1dG9TaXplID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzdWZmaXhDbGlja2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZWZpeENsaWNrZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHRha2VuIGZyb20gdGhlIGNvbnRhaW5lZCA8bWF0LWxhYmVsPlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJvb3RGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZG9SZW5kZXJpbmcoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRvUmVuZGVyaW5nKCk7XG4gICAgdGhpcy5leHRyYWN0VmFsdWUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHt9XG5cbiAgbmdPbkNoYW5nZXMoXzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZG9SZW5kZXJpbmcoKTtcbiAgfVxuXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmV4dHJhY3RMYWJlbCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgfVxuXG4gIHN1ZmZpeENsaWNrZWQoKSB7XG4gICAgdGhpcy5zdWZmaXhDbGlja2VkRW1pdHRlci5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJlZml4Q2xpY2tlZCgpIHtcbiAgICB0aGlzLnByZWZpeENsaWNrZWRFbWl0dGVyLmVtaXQobnVsbCk7XG4gIH1cblxuICBvbkNvbnRlbnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5leHRyYWN0TGFiZWwoKTtcbiAgICB0aGlzLmV4dHJhY3RWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkb1JlbmRlcmluZygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5jb3JyZWN0V2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdExhYmVsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcmlnaW5hbENvbnRlbnQgfHwgIXRoaXMub3JpZ2luYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSB0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ21hdC1sYWJlbCcpO1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbEVsZW1lbnQgPyBsYWJlbEVsZW1lbnQuaW5uZXJIVE1MIDogJ21hdC1sYWJlbCBpcyBtaXNzaW5nISc7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtID0gdGhpcy5yb290Rm9ybUdyb3VwLmZvcm07XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsQ29udGVudCB8fCAhdGhpcy5vcmlnaW5hbENvbnRlbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dCA9IHRoaXMub3JpZ2luYWxDb250ZW50Py5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbnRyb2xOYW1lID0gaW5wdXQuZ2V0QXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnKTtcbiAgICBpZiAoIWZvcm1Db250cm9sTmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybSAmJiBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKS5nZXRSYXdWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29ycmVjdFdpZHRoKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMub3JpZ2luYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignbWF0LWZvcm0tZmllbGQnKTtcbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICBmb3JtRmllbGQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDoxMDAlJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICNjb250ZW50V3JhcHBlciBbaGlkZGVuXT1cInJlYWRvbmx5XCIgIChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2UoKVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiAjcmVhZE9ubHlDb250ZW50V3JhcHBlcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhcmVhZG9ubHlcIj5cbiAgICA8bWFkLXJlYWRvbmx5LWZvcm0tZmllbGRcbiAgICAgIFtsYWJlbF09XCJnZXRMYWJlbCgpXCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbdGV4dEFsaWduXT1cInRleHRBbGlnblwiXG4gICAgICBbZm9ybWF0TnVtYmVyXT1cImZvcm1hdE51bWJlclwiXG4gICAgICBbZGVjaW1hbFBsYWNlc109XCJkZWNpbWFsUGxhY2VzXCJcbiAgICAgIFtyb3VuZERpc3BsYXlWYWx1ZV09XCJyb3VuZFZhbHVlXCJcbiAgICAgIFthdXRvZmlsbERlY2ltYWxzXT1cImF1dG9maWxsRGVjaW1hbHNcIlxuICAgICAgW3VuaXRdPVwidW5pdFwiXG4gICAgICBbdW5pdFBvc2l0aW9uXT1cInVuaXRQb3NpdGlvblwiXG4gICAgICBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiXG4gICAgICBbbXVsdGlsaW5lXT1cIm11bHRpbGluZVwiXG4gICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgIFtzaHJpbmtJZkVtcHR5XT1cInNocmlua0lmRW1wdHlcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIFtzdWZmaXhdPVwic3VmZml4XCJcbiAgICAgIFtwcmVmaXhdPVwicHJlZml4XCJcbiAgICAgIFttdWx0aWxpbmVBdXRvU2l6ZV09XCJtdWx0aWxpbmVBdXRvU2l6ZVwiXG4gICAgICAoc3VmZml4Q2xpY2tlZEVtaXR0ZXIpPVwic3VmZml4Q2xpY2tlZCgpXCJcbiAgICAgIChwcmVmaXhDbGlja2VkRW1pdHRlcik9XCJwcmVmaXhDbGlja2VkKClcIlxuICAgID5cbiAgICA8L21hZC1yZWFkb25seS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -11,16 +11,41 @@ import { MatIconModule } from '@angular/material/icon';
11
11
  import * as i0 from "@angular/core";
12
12
  export class ReadOnlyFormFieldModule {
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent], imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule, MatIconModule], exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent] }); }
15
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, providers: [FormGroupDirective], imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule, MatIconModule] }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, imports: [CommonModule,
15
+ RouterModule,
16
+ MatFormFieldModule,
17
+ MatInputModule,
18
+ FormsModule,
19
+ MatTooltipModule,
20
+ MatIconModule,
21
+ ReadOnlyFormFieldComponent,
22
+ ReadOnlyFormFieldWrapperComponent], exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent] }); }
23
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, providers: [FormGroupDirective], imports: [CommonModule,
24
+ RouterModule,
25
+ MatFormFieldModule,
26
+ MatInputModule,
27
+ FormsModule,
28
+ MatTooltipModule,
29
+ MatIconModule,
30
+ ReadOnlyFormFieldComponent,
31
+ ReadOnlyFormFieldWrapperComponent] }); }
16
32
  }
17
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, decorators: [{
18
34
  type: NgModule,
19
35
  args: [{
20
- declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
21
- imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule, MatIconModule],
36
+ imports: [
37
+ CommonModule,
38
+ RouterModule,
39
+ MatFormFieldModule,
40
+ MatInputModule,
41
+ FormsModule,
42
+ MatTooltipModule,
43
+ MatIconModule,
44
+ ReadOnlyFormFieldComponent,
45
+ ReadOnlyFormFieldWrapperComponent,
46
+ ],
22
47
  exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
23
- providers: [FormGroupDirective]
48
+ providers: [FormGroupDirective],
24
49
  }]
25
50
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDdEgsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBUXJELE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLGlCQUxuQiwwQkFBMEIsRUFBRSxpQ0FBaUMsYUFDbEUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsYUFDNUcsMEJBQTBCLEVBQUUsaUNBQWlDOytHQUc1RCx1QkFBdUIsYUFGdkIsQ0FBQyxrQkFBa0IsQ0FBQyxZQUZyQixZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYTs7MkZBSTNHLHVCQUF1QjtrQkFObkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxpQ0FBaUMsQ0FBQztvQkFDN0UsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQztvQkFDdkgsT0FBTyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUM7b0JBQ3hFLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7UmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50fSBmcm9tICcuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7UmVhZE9ubHlGb3JtRmllbGRDb21wb25lbnR9IGZyb20gJy4vcmVhZG9ubHktZm9ybS1maWVsZC9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge0Zvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0VG9vbHRpcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCwgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCwgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbRm9ybUdyb3VwRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBSZWFkT25seUZvcm1GaWVsZE1vZHVsZSB7fVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBaUJ2RCxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7K0dBQXZCLHVCQUF1QixZQWJoQyxZQUFZO1lBQ1osWUFBWTtZQUNaLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsMEJBQTBCO1lBQzFCLGlDQUFpQyxhQUV6QiwwQkFBMEIsRUFBRSxpQ0FBaUM7K0dBRzVELHVCQUF1QixhQUZ2QixDQUFDLGtCQUFrQixDQUFDLFlBWDdCLFlBQVk7WUFDWixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYiwwQkFBMEI7WUFDMUIsaUNBQWlDOzsyRkFLeEIsdUJBQXVCO2tCQWZuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLDBCQUEwQjt3QkFDMUIsaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxpQ0FBaUMsQ0FBQztvQkFDeEUsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcmVhZG9ubHktZm9ybS1maWVsZC9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBSZWFkT25seUZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCwgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbRm9ybUdyb3VwRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZE9ubHlGb3JtRmllbGRNb2R1bGUge31cbiJdfQ==
@@ -1,9 +1,10 @@
1
1
  import { CdkStepHeader, STEP_STATE } from '@angular/cdk/stepper';
2
2
  import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { NgClass, NgIf } from '@angular/common';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "@angular/cdk/a11y";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/icon";
7
+ import * as i2 from "@angular/material/icon";
7
8
  export class StepHeaderComponent extends CdkStepHeader {
8
9
  constructor(_focusMonitor, _elementRef) {
9
10
  super(_elementRef);
@@ -45,14 +46,14 @@ export class StepHeaderComponent extends CdkStepHeader {
45
46
  return '';
46
47
  }
47
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepHeaderComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: StepHeaderComponent, selector: "mad-step-header", inputs: { color: "color", index: "index", label: "label", state: "state", errorMessage: "errorMessage", selected: "selected", active: "active", optional: "optional", hasError: "hasError", completed: "completed", closed: "closed" }, host: { attributes: { "role": "tab" }, classAttribute: "mad-step-header" }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"header\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span data-testid=\"step-number\" *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div data-testid=\"step-label\" class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px;flex-direction:row;box-sizing:border-box;display:flex;gap:1em}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: StepHeaderComponent, isStandalone: true, selector: "mad-step-header", inputs: { color: "color", index: "index", label: "label", state: "state", errorMessage: "errorMessage", selected: "selected", active: "active", optional: "optional", hasError: "hasError", completed: "completed", closed: "closed" }, host: { attributes: { "role": "tab" }, classAttribute: "mad-step-header" }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"header\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span data-testid=\"step-number\" *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div data-testid=\"step-label\" class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px;flex-direction:row;box-sizing:border-box;display:flex;gap:1em}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
50
  }
50
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepHeaderComponent, decorators: [{
51
52
  type: Component,
52
53
  args: [{ selector: 'mad-step-header', inputs: ['color'], host: {
53
54
  class: 'mad-step-header',
54
55
  role: 'tab',
55
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"header\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span data-testid=\"step-number\" *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div data-testid=\"step-label\" class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px;flex-direction:row;box-sizing:border-box;display:flex;gap:1em}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"] }]
56
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, MatIconModule, NgIf], template: "<div\n class=\"header\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span data-testid=\"step-number\" *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div data-testid=\"step-label\" class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px;flex-direction:row;box-sizing:border-box;display:flex;gap:1em}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"] }]
56
57
  }], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { index: [{
57
58
  type: Input
58
59
  }], label: [{
@@ -74,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
74
75
  }], closed: [{
75
76
  type: Input
76
77
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWVuSSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXVCcEQsWUFDVSxhQUEyQixFQUNuQyxXQUFvQztRQUVwQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUlyQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixLQUFLLENBQUMsTUFBb0IsRUFBRSxPQUFzQjtRQUNoRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDekUsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLDRCQUE0QjtTQUMxRDthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QixPQUFPLHFCQUFxQixDQUFDO1NBQzlCO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sa0JBQWtCLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sZUFBZSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQWhFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrWUNoQmhDLHMxQkFtQkE7OzJGREhhLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxpQkFBaUIsVUFHbkIsQ0FBQyxPQUFPLENBQUMsUUFDWDt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QixJQUFJLEVBQUUsS0FBSztxQkFDWixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzBHQUkvQyxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1N0ZXBIZWFkZXIsIFNURVBfU1RBVEUsIFN0ZXBTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGVwLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnY29sb3InXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbWFkLXN0ZXAtaGVhZGVyJyxcbiAgICByb2xlOiAndGFiJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwSGVhZGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHN0YXRlOiBTdGVwU3RhdGU7XG5cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGhhc0Vycm9yOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNvbXBsZXRlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjbG9zZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgc3RlcCBoZWFkZXIuICovXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luLCBvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBnZXRDc3NGb3JTdGF0ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSBTVEVQX1NUQVRFLk5VTUJFUiAmJiAhdGhpcy5jb21wbGV0ZWQgJiYgIXRoaXMuaGFzRXJyb3IpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1uZXV0cmFsJzsgLy9pbml0aWFsZSBzdGF0ZSBpcyAnbnVtYmVyJ1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1jb21wbGV0ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtZXJyb3InO1xuICAgIH1cbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlX291dGxpbmUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdlcnJvcl9vdXRsaW5lJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaGVhZGVyXCJcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwidGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAnI2Q4ZTJlOScgOiAnI2ZmZmZmZidcIlxuICBbbmdDbGFzc109XCJ0aGlzLmhhc0Vycm9yID8gJ2Vycm9yLWJvcmRlcicgOiAnY2hlY2stYm9yZGVyJ1wiXG4+XG4gIDxkaXYgW25nQ2xhc3NdPVwidGhpcy5nZXRDc3NGb3JTdGF0ZSgpXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAge3sgdGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAna2V5Ym9hcmRfYXJyb3dfZG93bicgOiAna2V5Ym9hcmRfYXJyb3dfcmlnaHQnIH19XG4gICAgPC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ0aGlzLmNvbXBsZXRlZCB8fCB0aGlzLmhhc0Vycm9yXCIgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwidGhpcy5jb21wbGV0ZWQgPyAnZ3JlZW4tY2hlY2snIDogJ3JlZC1lcnJvcidcIj5cbiAgICAgIHt7IGdldEljb24oKSB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8c3BhbiBkYXRhLXRlc3RpZD1cInN0ZXAtbnVtYmVyXCIgKm5nSWY9XCIhdGhpcy5oYXNFcnJvciAmJiAhdGhpcy5jb21wbGV0ZWRcIiBjbGFzcz1cImhlYWRlci1sYWJlbFwiPnt7IHRoaXMuaW5kZXggKyAxICsgJy4nIH19PC9zcGFuPlxuICA8ZGl2IGRhdGEtdGVzdGlkPVwic3RlcC1sYWJlbFwiIGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+e3sgdGhpcy5sYWJlbCB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5JLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBZ0JoRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXVCcEQsWUFDVSxhQUEyQixFQUNuQyxXQUFvQztRQUVwQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUlyQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixLQUFLLENBQUMsTUFBb0IsRUFBRSxPQUFzQjtRQUNoRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDekUsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLDRCQUE0QjtTQUMxRDthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QixPQUFPLHFCQUFxQixDQUFDO1NBQzlCO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sa0JBQWtCLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sZUFBZSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQWhFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzWkNwQmhDLHMxQkFtQkEsa29CRERZLE9BQU8sbUZBQUUsYUFBYSxvTEFBRSxJQUFJOzsyRkFFM0IsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGlCQUFpQixVQUduQixDQUFDLE9BQU8sQ0FBQyxRQUNYO3dCQUNKLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLElBQUksRUFBRSxLQUFLO3FCQUNaLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUM7MEdBSXZDLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrU3RlcEhlYWRlciwgU1RFUF9TVEFURSwgU3RlcFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXN0ZXAtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ2NvbG9yJ10sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ21hZC1zdGVwLWhlYWRlcicsXG4gICAgcm9sZTogJ3RhYicsXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTWF0SWNvbk1vZHVsZSwgTmdJZl0sXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwSGVhZGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHN0YXRlOiBTdGVwU3RhdGU7XG5cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGhhc0Vycm9yOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNvbXBsZXRlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjbG9zZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgc3RlcCBoZWFkZXIuICovXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luLCBvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBnZXRDc3NGb3JTdGF0ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSBTVEVQX1NUQVRFLk5VTUJFUiAmJiAhdGhpcy5jb21wbGV0ZWQgJiYgIXRoaXMuaGFzRXJyb3IpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1uZXV0cmFsJzsgLy9pbml0aWFsZSBzdGF0ZSBpcyAnbnVtYmVyJ1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1jb21wbGV0ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtZXJyb3InO1xuICAgIH1cbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlX291dGxpbmUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdlcnJvcl9vdXRsaW5lJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaGVhZGVyXCJcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwidGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAnI2Q4ZTJlOScgOiAnI2ZmZmZmZidcIlxuICBbbmdDbGFzc109XCJ0aGlzLmhhc0Vycm9yID8gJ2Vycm9yLWJvcmRlcicgOiAnY2hlY2stYm9yZGVyJ1wiXG4+XG4gIDxkaXYgW25nQ2xhc3NdPVwidGhpcy5nZXRDc3NGb3JTdGF0ZSgpXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAge3sgdGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAna2V5Ym9hcmRfYXJyb3dfZG93bicgOiAna2V5Ym9hcmRfYXJyb3dfcmlnaHQnIH19XG4gICAgPC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ0aGlzLmNvbXBsZXRlZCB8fCB0aGlzLmhhc0Vycm9yXCIgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwidGhpcy5jb21wbGV0ZWQgPyAnZ3JlZW4tY2hlY2snIDogJ3JlZC1lcnJvcidcIj5cbiAgICAgIHt7IGdldEljb24oKSB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8c3BhbiBkYXRhLXRlc3RpZD1cInN0ZXAtbnVtYmVyXCIgKm5nSWY9XCIhdGhpcy5oYXNFcnJvciAmJiAhdGhpcy5jb21wbGV0ZWRcIiBjbGFzcz1cImhlYWRlci1sYWJlbFwiPnt7IHRoaXMuaW5kZXggKyAxICsgJy4nIH19PC9zcGFuPlxuICA8ZGl2IGRhdGEtdGVzdGlkPVwic3RlcC1sYWJlbFwiIGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+e3sgdGhpcy5sYWJlbCB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=