@porscheinformatik/material-addons 17.4.5 → 18.0.0

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 (76) hide show
  1. package/esm2022/lib/alert/alert.component.mjs +4 -4
  2. package/esm2022/lib/button/button.module.mjs +4 -4
  3. package/esm2022/lib/button/danger-button/danger-button.component.mjs +4 -6
  4. package/esm2022/lib/button/flat-button/link-button.component.mjs +4 -6
  5. package/esm2022/lib/button/icon-button/icon-button.component.mjs +4 -6
  6. package/esm2022/lib/button/mad-basic-button.mjs +4 -4
  7. package/esm2022/lib/button/mad-button/mad-button.directive.mjs +4 -4
  8. package/esm2022/lib/button/mad-button-group/mad-button-group.component.mjs +3 -3
  9. package/esm2022/lib/button/outline-button/outline-button.component.mjs +4 -6
  10. package/esm2022/lib/button/primary-button/primary-button.component.mjs +4 -6
  11. package/esm2022/lib/card/card.component.mjs +5 -5
  12. package/esm2022/lib/card/card.module.mjs +4 -4
  13. package/esm2022/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +5 -5
  14. package/esm2022/lib/data-table/data-table-filter/data-table-filter-component/data-table-filter-dialog/data-table-filter-dialog.component.mjs +3 -3
  15. package/esm2022/lib/data-table/data-table-filter/data-table-filter-component/data-table-filter.component.mjs +4 -4
  16. package/esm2022/lib/data-table/data-table-filter/data-table-filter-header.directive.mjs +4 -4
  17. package/esm2022/lib/data-table/data-table-filter/data-table-filter.directive.mjs +4 -4
  18. package/esm2022/lib/data-table/data-table-persistence.service.mjs +4 -4
  19. package/esm2022/lib/data-table/data-table-template/data-table-template-cell-definition.directive.mjs +3 -3
  20. package/esm2022/lib/data-table/data-table-template/data-table-template-column-definition.directive.mjs +3 -3
  21. package/esm2022/lib/data-table/data-table-template/data-table-template-expandable-cell-definition.directive.mjs +3 -3
  22. package/esm2022/lib/data-table/data-table-template/data-table-template-expandable-column-definition.directive.mjs +3 -3
  23. package/esm2022/lib/data-table/data-table.component.mjs +4 -4
  24. package/esm2022/lib/data-table/util/data-table-action-util.mjs +1 -1
  25. package/esm2022/lib/data-table/util/data-table-data-util.mjs +1 -1
  26. package/esm2022/lib/data-table/util/data-table-sort-util.mjs +1 -1
  27. package/esm2022/lib/file-upload/drag-and-drop-directive.directive.mjs +4 -4
  28. package/esm2022/lib/file-upload/file-upload.component.mjs +4 -4
  29. package/esm2022/lib/layout/content-panel/content-header/content-header.component.mjs +3 -3
  30. package/esm2022/lib/layout/content-panel/content-panel-container/content-panel-container.component.mjs +4 -4
  31. package/esm2022/lib/layout/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +3 -3
  32. package/esm2022/lib/layout/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +4 -4
  33. package/esm2022/lib/layout/content-panel/content-panel-container-sidebar/content-panel-container-sidebar.component.mjs +3 -3
  34. package/esm2022/lib/layout/content-panel/content-panel.module.mjs +4 -4
  35. package/esm2022/lib/layout/content-panel/main-container/main-container.component.mjs +3 -3
  36. package/esm2022/lib/layout/flowbar/flowbar.component.mjs +4 -4
  37. package/esm2022/lib/layout/flowbar/flowbar.module.mjs +4 -4
  38. package/esm2022/lib/layout/sidebar/sidebar-item/sidebar-item.component.mjs +3 -3
  39. package/esm2022/lib/layout/sidebar/sidebar.component.mjs +3 -3
  40. package/esm2022/lib/layout/sidebar/sidebar.module.mjs +4 -4
  41. package/esm2022/lib/layout/sidebar-layout/sidebar-layout.component.mjs +3 -3
  42. package/esm2022/lib/layout/toolbar/toolbar.component.mjs +5 -5
  43. package/esm2022/lib/layout/toolbar/toolbar.module.mjs +4 -4
  44. package/esm2022/lib/layout/toolbar/toolbar.service.mjs +4 -4
  45. package/esm2022/lib/material-action-button/material-action-button.component.mjs +4 -4
  46. package/esm2022/lib/material-action-button/material-action-button.module.mjs +4 -4
  47. package/esm2022/lib/material-addons.module.mjs +4 -4
  48. package/esm2022/lib/numeric-field/number-format.service.mjs +4 -4
  49. package/esm2022/lib/numeric-field/numeric-field.directive.mjs +4 -4
  50. package/esm2022/lib/numeric-field/numeric-field.module.mjs +4 -4
  51. package/esm2022/lib/quick-list/base-quick-list.component.mjs +4 -4
  52. package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +3 -3
  53. package/esm2022/lib/quick-list/quick-list.component.mjs +3 -3
  54. package/esm2022/lib/quick-list/quick-list.module.mjs +4 -4
  55. package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +3 -3
  56. package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +3 -3
  57. package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +5 -5
  58. package/esm2022/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +4 -4
  59. package/esm2022/lib/readonly/readonly-form-field.module.mjs +4 -4
  60. package/esm2022/lib/stepper/step-header/step-header.component.mjs +5 -5
  61. package/esm2022/lib/stepper/stepper.component.mjs +8 -8
  62. package/esm2022/lib/stepper/stepper.module.mjs +4 -4
  63. package/esm2022/lib/table/table.component.mjs +4 -4
  64. package/esm2022/lib/table/table.module.mjs +4 -4
  65. package/esm2022/lib/throttle-click/throttle-click.directive.mjs +3 -3
  66. package/esm2022/lib/throttle-click/throttle-click.module.mjs +4 -4
  67. package/fesm2022/porscheinformatik-material-addons.mjs +216 -226
  68. package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -1
  69. package/lib/button/danger-button/danger-button.component.d.ts.map +1 -1
  70. package/lib/button/flat-button/link-button.component.d.ts.map +1 -1
  71. package/lib/button/icon-button/icon-button.component.d.ts.map +1 -1
  72. package/lib/button/outline-button/outline-button.component.d.ts.map +1 -1
  73. package/lib/button/primary-button/primary-button.component.d.ts.map +1 -1
  74. package/package.json +3 -2
  75. package/themes/common/styles.scss +3 -3
  76. package/themes/common/theme.scss +6 -6
@@ -118,10 +118,10 @@ export class ReadOnlyFormFieldWrapperComponent {
118
118
  formField.setAttribute('style', 'width:100%');
119
119
  }
120
120
  }
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 }); }
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 }] }); }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ReadOnlyFormFieldWrapperComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", 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 }] }); }
123
123
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldWrapperComponent, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ReadOnlyFormFieldWrapperComponent, decorators: [{
125
125
  type: Component,
126
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"] }]
127
127
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FormGroupDirective }], propDecorators: { originalContent: [{
@@ -180,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
180
180
  }], prefixClickedEmitter: [{
181
181
  type: Output
182
182
  }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL3JlYWRvbmx5L3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXZEOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8saUNBQWlDO0lBa0U1QyxZQUNVLGNBQWlDLEVBQ2pDLGFBQWlDO1FBRGpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBb0I7UUE5RDNDOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFRTCxjQUFTLEdBQXFCLE1BQU0sQ0FBQztRQUNsQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNwQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNkLGVBQVUs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Z0JBQ0csYUFBYTtzQkFBcEMsS0FBSzt1QkFBQyxlQUFlO2dCQUNNLFVBQVU7c0JBQXJDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNDLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ1YsSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUNVLFlBQVk7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFDRSxZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ1osRUFBRTtzQkFBVixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQVFHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UmVhZE9ubHlGb3JtRmllbGRDb21wb25lbnR9IGZyb20gJy4uL3JlYWRvbmx5LWZvcm0tZmllbGQvcmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtPYnNlcnZlcnNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzXCI7XG5cbi8qKlxuICogV3JhcHMgYSBtYXQtZm9ybS1maWVsZCB0byByZXBsYWNlIGl0IGJ5IGEgcmVhZE9ubHkgcmVwcmVzZW50YXRpb24gaWYgbmVjZXNzYXJ5XG4gKlxuICogQGF1dGhvciBTdGVmYW4gTGFlc3NlclxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBGb3JtR3JvdXBEaXJlY3RpdmUgfV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCwgT2JzZXJ2ZXJzTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQge1xuICBAVmlld0NoaWxkKCdjb250ZW50V3JhcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBvcmlnaW5hbENvbnRlbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3JlYWRPbmx5Q29udGVudFdyYXBwZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcmVhZE9ubHlDb250ZW50V3JhcHBlcjogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIFwiZmFsc2VcIiwgdGhlIGNvbnRhaW5lZCBtYXQtZm9ybS1maWVsZCBpcyByZW5kZXJlZCBpbiBhbGwgaXQncyBnbG9yeS5cbiAgICogSWYgc2V0IHRvIFwidHJ1ZVwiLCBhIHJlYWRvbmx5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBpcyBzaG93biB1c2luZyB0aGUgbWF0LWZvcm0tZmllbGRzIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHkgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGlzIGlucHV0ICpNVVNUIE1BVENIKiB0aGUgbWF0LWZvcm0tZmllbGQgdmFsdWUgdG8gZW5zdXJlIGNvcnJlY3QgZGF0YVxuICAgKiBiaW5kaW5nIGFuZCBmb3JtYXR0aW5nIG9mIHJlYWRPbmx5IHJlcHJlc2VudGF0aW9uIVxuICAgKi9cbiAgQElucHV0KCd2YWx1ZScpIHZhbHVlPzogYW55O1xuXG4gIEBJbnB1dCgndGV4dEFsaWduJykgdGV4dEFsaWduOiAncmlnaHQnIHwgJ2xlZnQnID0gJ2xlZnQnO1xuICBASW5wdXQoJ2Zvcm1hdE51bWJlcicpIGZvcm1hdE51bWJlciA9IGZhbHNlO1xuICBASW5wdXQoJ2RlY2ltYWxQbGFjZXMnKSBkZWNpbWFsUGxhY2VzID0gMjtcbiAgQElucHV0KCdyb3VuZERpc3BsYXlWYWx1ZScpIHJvdW5kVmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCdhdXRvZmlsbERlY2ltYWxzJykgYXV0b2ZpbGxEZWNpbWFscyA9IGZhbHNlO1xuICBASW5wdXQoJ3VuaXQnKSB1bml0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCd1bml0UG9zaXRpb24nKSB1bml0UG9zaXRpb246ICdyaWdodCcgfCAnbGVmdCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgnZXJyb3JNZXNzYWdlJykgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHNldCB0byBcImZhbHNlXCIsIGEgcmVhZG9ubHkgaW5wdXQgd2lsbCBiZSByZW5kZXJlZC5cbiAgICogSWYgc2V0IHRvIFwidHJ1ZVwiLCBhIHJlYWRvbmx5IHRleHRhcmVhIHdpbGwgYmUgcmVuZGVyZWQgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIG11bHRpbGluZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByb3dzIGZvciB0aGUgcmVhZG9ubHkgdGV4dGFyZWEuXG4gICAqL1xuICBASW5wdXQoKSByb3dzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElmIHNocmlua0lmRW1wdHkgaXMgc2V0IHRvIFwiZmFsc2VcIiwgbm90aGluZyBjaGFuZ2VzXG4gICAqIElmIHNldCB0byBcInRydWVcIiBhbmQgbXVsdGlsaW5lIGlzIGFsc28gXCJ0cnVlXCIsIHRoZSB0ZXh0YXJlYSB3aWxsXG4gICAqIHNocmluayB0byBvbmUgcm93LCBpZiB2YWx1ZSBpcyBlbXB0eS9udWxsL3VuZGVmaW5lZC5cbiAgICogT3RoZXJ3aXNlLCB0aGUgZGVmaW5lZCByb3dzLXZhbHVlIHdpbGwgYmUgdXNlZFxuICAgKi9cbiAgQElucHV0KCkgc2hyaW5rSWZFbXB0eSA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlSWNvbkluUmVhZE9ubHlNb2RlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBzdWZmaXggaW9jb25cbiAgICovXG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nO1xuICAvKipcbiAgICogcHJlZml4IGlvY29uXG4gICAqL1xuICBASW5wdXQoKSBwcmVmaXg6IHN0cmluZztcbiAgLyoqXG4gICAqIGlmIGNka1RleHRhcmVhQXV0b3NpemUgaXMgYWN0aXZlIGZvciB0ZXh0YXJlYXNcbiAgICovXG4gIEBJbnB1dCgpIG11bHRpbGluZUF1dG9TaXplID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzdWZmaXhDbGlja2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZWZpeENsaWNrZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHRha2VuIGZyb20gdGhlIGNvbnRhaW5lZCA8bWF0LWxhYmVsPlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJvb3RGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZG9SZW5kZXJpbmcoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRvUmVuZGVyaW5nKCk7XG4gICAgdGhpcy5leHRyYWN0VmFsdWUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHt9XG5cbiAgbmdPbkNoYW5nZXMoXzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZG9SZW5kZXJpbmcoKTtcbiAgfVxuXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmV4dHJhY3RMYWJlbCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgfVxuXG4gIHN1ZmZpeENsaWNrZWQoKSB7XG4gICAgdGhpcy5zdWZmaXhDbGlja2VkRW1pdHRlci5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJlZml4Q2xpY2tlZCgpIHtcbiAgICB0aGlzLnByZWZpeENsaWNrZWRFbWl0dGVyLmVtaXQobnVsbCk7XG4gIH1cblxuICBvbkNvbnRlbnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5leHRyYWN0TGFiZWwoKTtcbiAgICB0aGlzLmV4dHJhY3RWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkb1JlbmRlcmluZygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5jb3JyZWN0V2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdExhYmVsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcmlnaW5hbENvbnRlbnQgfHwgIXRoaXMub3JpZ2luYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSB0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ21hdC1sYWJlbCcpO1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbEVsZW1lbnQgPyBsYWJlbEVsZW1lbnQuaW5uZXJIVE1MIDogJ21hdC1sYWJlbCBpcyBtaXNzaW5nISc7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtID0gdGhpcy5yb290Rm9ybUdyb3VwLmZvcm07XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsQ29udGVudCB8fCAhdGhpcy5vcmlnaW5hbENvbnRlbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dCA9IHRoaXMub3JpZ2luYWxDb250ZW50Py5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbnRyb2xOYW1lID0gaW5wdXQuZ2V0QXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnKTtcbiAgICBpZiAoIWZvcm1Db250cm9sTmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybSAmJiBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKS5nZXRSYXdWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29ycmVjdFdpZHRoKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMub3JpZ2luYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignbWF0LWZvcm0tZmllbGQnKTtcbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICBmb3JtRmllbGQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDoxMDAlJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICNjb250ZW50V3JhcHBlciBbaGlkZGVuXT1cInJlYWRvbmx5XCIgIChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2UoKVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiAjcmVhZE9ubHlDb250ZW50V3JhcHBlcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhcmVhZG9ubHlcIj5cbiAgICA8bWFkLXJlYWRvbmx5LWZvcm0tZmllbGRcbiAgICAgIFtsYWJlbF09XCJnZXRMYWJlbCgpXCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbdGV4dEFsaWduXT1cInRleHRBbGlnblwiXG4gICAgICBbZm9ybWF0TnVtYmVyXT1cImZvcm1hdE51bWJlclwiXG4gICAgICBbZGVjaW1hbFBsYWNlc109XCJkZWNpbWFsUGxhY2VzXCJcbiAgICAgIFtyb3VuZERpc3BsYXlWYWx1ZV09XCJyb3VuZFZhbHVlXCJcbiAgICAgIFthdXRvZmlsbERlY2ltYWxzXT1cImF1dG9maWxsRGVjaW1hbHNcIlxuICAgICAgW3VuaXRdPVwidW5pdFwiXG4gICAgICBbdW5pdFBvc2l0aW9uXT1cInVuaXRQb3NpdGlvblwiXG4gICAgICBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiXG4gICAgICBbbXVsdGlsaW5lXT1cIm11bHRpbGluZVwiXG4gICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgIFtzaHJpbmtJZkVtcHR5XT1cInNocmlua0lmRW1wdHlcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIFtzdWZmaXhdPVwic3VmZml4XCJcbiAgICAgIFtwcmVmaXhdPVwicHJlZml4XCJcbiAgICAgIFttdWx0aWxpbmVBdXRvU2l6ZV09XCJtdWx0aWxpbmVBdXRvU2l6ZVwiXG4gICAgICAoc3VmZml4Q2xpY2tlZEVtaXR0ZXIpPVwic3VmZml4Q2xpY2tlZCgpXCJcbiAgICAgIChwcmVmaXhDbGlja2VkRW1pdHRlcik9XCJwcmVmaXhDbGlja2VkKClcIlxuICAgID5cbiAgICA8L21hZC1yZWFkb25seS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL3JlYWRvbmx5L3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXZEOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8saUNBQWlDO0lBa0U1QyxZQUNVLGNBQWlDLEVBQ2pDLGFBQWlDO1FBRGpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBb0I7UUE5RDNDOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFRTCxjQUFTLEdBQXFCLE1BQU0sQ0FBQztRQUNsQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNwQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNkLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQXFCLE1BQU0sQ0FBQztRQUN4QyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFFMUQ7OztXQUdHO1FBQ00sY0FBUyxHQUFHLEtBQUssQ0FBQztRQU8zQjs7Ozs7V0FLRztRQUNNLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQVN4Qzs7V0FFRztRQUNNLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFVakQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxrQkFBa0IsS0FBVSxDQUFDO0lBRTdCLFdBQVcsQ0FBQyxDQUFnQjtRQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7SUFDL0UsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqRSxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7OEdBeEpVLGlDQUFpQztrR0FBakMsaUNBQWlDLHM3QkNoQzlDLDQ4QkE4QkEsME5EQVksSUFBSSw2RkFBRSwwQkFBMEIscVlBQUUsZUFBZSw0TkFGNUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQzs7MkZBSXBFLGlDQUFpQztrQkFSN0MsU0FBUzsrQkFDRSxpQ0FBaUMsaUJBRzVCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLENBQUMsY0FDbkUsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFLGVBQWUsQ0FBQzt1SEFJNUQsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHOUMsc0JBQXNCO3NCQURyQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPN0MsUUFBUTtzQkFBaEIsS0FBSztnQkFNVSxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBRU0sU0FBUztzQkFBNUIsS0FBSzt1QkFBQyxXQUFXO2dCQUNLLFlBQVk7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFDRyxhQUFhO3NCQUFwQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ00sVUFBVTtzQkFBckMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ0MsZ0JBQWdCO3NCQUExQyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDVixJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBQ1UsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNFLFlBQVk7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFDWixFQUFFO3NCQUFWLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudH0gZnJvbSAnLi4vcmVhZG9ubHktZm9ybS1maWVsZC9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge09ic2VydmVyc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vYnNlcnZlcnNcIjtcblxuLyoqXG4gKiBXcmFwcyBhIG1hdC1mb3JtLWZpZWxkIHRvIHJlcGxhY2UgaXQgYnkgYSByZWFkT25seSByZXByZXNlbnRhdGlvbiBpZiBuZWNlc3NhcnlcbiAqXG4gKiBAYXV0aG9yIFN0ZWZhbiBMYWVzc2VyXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5jc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSB9XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIFJlYWRPbmx5Rm9ybUZpZWxkQ29tcG9uZW50LCBPYnNlcnZlcnNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkT25seUZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRXcmFwcGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG9yaWdpbmFsQ29udGVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVhZE9ubHlDb250ZW50V3JhcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByZWFkT25seUNvbnRlbnRXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gXCJmYWxzZVwiLCB0aGUgY29udGFpbmVkIG1hdC1mb3JtLWZpZWxkIGlzIHJlbmRlcmVkIGluIGFsbCBpdCdzIGdsb3J5LlxuICAgKiBJZiBzZXQgdG8gXCJ0cnVlXCIsIGEgcmVhZG9ubHkgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIGlzIHNob3duIHVzaW5nIHRoZSBtYXQtZm9ybS1maWVsZHMgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoaXMgaW5wdXQgKk1VU1QgTUFUQ0gqIHRoZSBtYXQtZm9ybS1maWVsZCB2YWx1ZSB0byBlbnN1cmUgY29ycmVjdCBkYXRhXG4gICAqIGJpbmRpbmcgYW5kIGZvcm1hdHRpbmcgb2YgcmVhZE9ubHkgcmVwcmVzZW50YXRpb24hXG4gICAqL1xuICBASW5wdXQoJ3ZhbHVlJykgdmFsdWU/OiBhbnk7XG5cbiAgQElucHV0KCd0ZXh0QWxpZ24nKSB0ZXh0QWxpZ246ICdyaWdodCcgfCAnbGVmdCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgnZm9ybWF0TnVtYmVyJykgZm9ybWF0TnVtYmVyID0gZmFsc2U7XG4gIEBJbnB1dCgnZGVjaW1hbFBsYWNlcycpIGRlY2ltYWxQbGFjZXMgPSAyO1xuICBASW5wdXQoJ3JvdW5kRGlzcGxheVZhbHVlJykgcm91bmRWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoJ2F1dG9maWxsRGVjaW1hbHMnKSBhdXRvZmlsbERlY2ltYWxzID0gZmFsc2U7XG4gIEBJbnB1dCgndW5pdCcpIHVuaXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoJ3VuaXRQb3NpdGlvbicpIHVuaXRQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdsZWZ0JztcbiAgQElucHV0KCdlcnJvck1lc3NhZ2UnKSBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAvKipcbiAgICogSWYgc2V0IHRvIFwiZmFsc2VcIiwgYSByZWFkb25seSBpbnB1dCB3aWxsIGJlIHJlbmRlcmVkLlxuICAgKiBJZiBzZXQgdG8gXCJ0cnVlXCIsIGEgcmVhZG9ubHkgdGV4dGFyZWEgd2lsbCBiZSByZW5kZXJlZCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KCkgbXVsdGlsaW5lID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHJvd3MgZm9yIHRoZSByZWFkb25seSB0ZXh0YXJlYS5cbiAgICovXG4gIEBJbnB1dCgpIHJvd3M6IG51bWJlcjtcblxuICAvKipcbiAgICogSWYgc2hyaW5rSWZFbXB0eSBpcyBzZXQgdG8gXCJmYWxzZVwiLCBub3RoaW5nIGNoYW5nZXNcbiAgICogSWYgc2V0IHRvIFwidHJ1ZVwiIGFuZCBtdWx0aWxpbmUgaXMgYWxzbyBcInRydWVcIiwgdGhlIHRleHRhcmVhIHdpbGxcbiAgICogc2hyaW5rIHRvIG9uZSByb3csIGlmIHZhbHVlIGlzIGVtcHR5L251bGwvdW5kZWZpbmVkLlxuICAgKiBPdGhlcndpc2UsIHRoZSBkZWZpbmVkIHJvd3MtdmFsdWUgd2lsbCBiZSB1c2VkXG4gICAqL1xuICBASW5wdXQoKSBzaHJpbmtJZkVtcHR5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVJY29uSW5SZWFkT25seU1vZGUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIHN1ZmZpeCBpb2NvblxuICAgKi9cbiAgQElucHV0KCkgc3VmZml4OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwcmVmaXggaW9jb25cbiAgICovXG4gIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nO1xuICAvKipcbiAgICogaWYgY2RrVGV4dGFyZWFBdXRvc2l6ZSBpcyBhY3RpdmUgZm9yIHRleHRhcmVhc1xuICAgKi9cbiAgQElucHV0KCkgbXVsdGlsaW5lQXV0b1NpemUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHN1ZmZpeENsaWNrZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHJlZml4Q2xpY2tlZEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgdGFrZW4gZnJvbSB0aGUgY29udGFpbmVkIDxtYXQtbGFiZWw+XG4gICAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcm9vdEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kb1JlbmRlcmluZygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZG9SZW5kZXJpbmcoKTtcbiAgICB0aGlzLmV4dHJhY3RWYWx1ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge31cblxuICBuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5kb1JlbmRlcmluZygpO1xuICB9XG5cbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMubGFiZWwpIHtcbiAgICAgIHRoaXMuZXh0cmFjdExhYmVsKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgc3VmZml4Q2xpY2tlZCgpIHtcbiAgICB0aGlzLnN1ZmZpeENsaWNrZWRFbWl0dGVyLmVtaXQobnVsbCk7XG4gIH1cblxuICBwcmVmaXhDbGlja2VkKCkge1xuICAgIHRoaXMucHJlZml4Q2xpY2tlZEVtaXR0ZXIuZW1pdChudWxsKTtcbiAgfVxuXG4gIG9uQ29udGVudENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV4dHJhY3RMYWJlbCgpO1xuICAgIHRoaXMuZXh0cmFjdFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIGRvUmVuZGVyaW5nKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcmlnaW5hbENvbnRlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmNvcnJlY3RXaWR0aCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0TGFiZWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsQ29udGVudCB8fCAhdGhpcy5vcmlnaW5hbENvbnRlbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGxhYmVsRWxlbWVudCA9IHRoaXMub3JpZ2luYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignbWF0LWxhYmVsJyk7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsRWxlbWVudCA/IGxhYmVsRWxlbWVudC5pbm5lckhUTUwgOiAnbWF0LWxhYmVsIGlzIG1pc3NpbmchJztcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFZhbHVlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLnJvb3RGb3JtR3JvdXAuZm9ybTtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb250ZW50IHx8ICF0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5vcmlnaW5hbENvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29udHJvbE5hbWUgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoJ2Zvcm1Db250cm9sTmFtZScpO1xuICAgIGlmICghZm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChmb3JtICYmIGZvcm0uZ2V0KGZvcm1Db250cm9sTmFtZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpLmdldFJhd1ZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb3JyZWN0V2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5vcmlnaW5hbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdtYXQtZm9ybS1maWVsZCcpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIGZvcm1GaWVsZC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOjEwMCUnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2NvbnRlbnRXcmFwcGVyIFtoaWRkZW5dPVwicmVhZG9ubHlcIiAgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ29udGVudENoYW5nZSgpXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48ZGl2ICNyZWFkT25seUNvbnRlbnRXcmFwcGVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFyZWFkb25seVwiPlxuICAgIDxtYWQtcmVhZG9ubHktZm9ybS1maWVsZFxuICAgICAgW2xhYmVsXT1cImdldExhYmVsKClcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFt0ZXh0QWxpZ25dPVwidGV4dEFsaWduXCJcbiAgICAgIFtmb3JtYXROdW1iZXJdPVwiZm9ybWF0TnVtYmVyXCJcbiAgICAgIFtkZWNpbWFsUGxhY2VzXT1cImRlY2ltYWxQbGFjZXNcIlxuICAgICAgW3JvdW5kRGlzcGxheVZhbHVlXT1cInJvdW5kVmFsdWVcIlxuICAgICAgW2F1dG9maWxsRGVjaW1hbHNdPVwiYXV0b2ZpbGxEZWNpbWFsc1wiXG4gICAgICBbdW5pdF09XCJ1bml0XCJcbiAgICAgIFt1bml0UG9zaXRpb25dPVwidW5pdFBvc2l0aW9uXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlXCJcbiAgICAgIFttdWx0aWxpbmVdPVwibXVsdGlsaW5lXCJcbiAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgW3Nocmlua0lmRW1wdHldPVwic2hyaW5rSWZFbXB0eVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3N1ZmZpeF09XCJzdWZmaXhcIlxuICAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxuICAgICAgW211bHRpbGluZUF1dG9TaXplXT1cIm11bHRpbGluZUF1dG9TaXplXCJcbiAgICAgIChzdWZmaXhDbGlja2VkRW1pdHRlcik9XCJzdWZmaXhDbGlja2VkKClcIlxuICAgICAgKHByZWZpeENsaWNrZWRFbWl0dGVyKT1cInByZWZpeENsaWNrZWQoKVwiXG4gICAgPlxuICAgIDwvbWFkLXJlYWRvbmx5LWZvcm0tZmllbGQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -10,8 +10,8 @@ import { MatTooltipModule } from '@angular/material/tooltip';
10
10
  import { MatIconModule } from '@angular/material/icon';
11
11
  import * as i0 from "@angular/core";
12
12
  export class ReadOnlyFormFieldModule {
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, imports: [CommonModule,
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ReadOnlyFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: ReadOnlyFormFieldModule, imports: [CommonModule,
15
15
  RouterModule,
16
16
  MatFormFieldModule,
17
17
  MatInputModule,
@@ -20,7 +20,7 @@ export class ReadOnlyFormFieldModule {
20
20
  MatIconModule,
21
21
  ReadOnlyFormFieldComponent,
22
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,
23
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ReadOnlyFormFieldModule, providers: [FormGroupDirective], imports: [CommonModule,
24
24
  RouterModule,
25
25
  MatFormFieldModule,
26
26
  MatInputModule,
@@ -30,7 +30,7 @@ export class ReadOnlyFormFieldModule {
30
30
  ReadOnlyFormFieldComponent,
31
31
  ReadOnlyFormFieldWrapperComponent] }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ReadOnlyFormFieldModule, decorators: [{
34
34
  type: NgModule,
35
35
  args: [{
36
36
  imports: [
@@ -45,15 +45,15 @@ export class StepHeaderComponent extends CdkStepHeader {
45
45
  }
46
46
  return '';
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 }); }
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 }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepHeaderComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", 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:#d3d3d3}.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 }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepHeaderComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepHeaderComponent, decorators: [{
52
52
  type: Component,
53
53
  args: [{ selector: 'mad-step-header', inputs: ['color'], host: {
54
54
  class: 'mad-step-header',
55
55
  role: 'tab',
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
+ }, 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:#d3d3d3}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"] }]
57
57
  }], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { index: [{
58
58
  type: Input
59
59
  }], label: [{
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
75
75
  }], closed: [{
76
76
  type: Input
77
77
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5JLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBZ0JoRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXVCcEQsWUFDVSxhQUEyQixFQUNuQyxXQUFvQztRQUVwQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUlyQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixLQUFLLENBQUMsTUFBb0IsRUFBRSxPQUFzQjtRQUNoRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDekUsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLDRCQUE0QjtTQUMxRDthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QixPQUFPLHFCQUFxQixDQUFDO1NBQzlCO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sa0JBQWtCLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sZUFBZSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQWhFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzWkNwQmhDLHMxQkFtQkEsa29CRERZLE9BQU8sbUZBQUUsYUFBYSxvTEFBRSxJQUFJOzsyRkFFM0IsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGlCQUFpQixVQUduQixDQUFDLE9BQU8sQ0FBQyxRQUNYO3dCQUNKLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLElBQUksRUFBRSxLQUFLO3FCQUNaLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUM7MEdBSXZDLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrU3RlcEhlYWRlciwgU1RFUF9TVEFURSwgU3RlcFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXN0ZXAtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ2NvbG9yJ10sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ21hZC1zdGVwLWhlYWRlcicsXG4gICAgcm9sZTogJ3RhYicsXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTWF0SWNvbk1vZHVsZSwgTmdJZl0sXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwSGVhZGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHN0YXRlOiBTdGVwU3RhdGU7XG5cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGhhc0Vycm9yOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNvbXBsZXRlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjbG9zZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgc3RlcCBoZWFkZXIuICovXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luLCBvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBnZXRDc3NGb3JTdGF0ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSBTVEVQX1NUQVRFLk5VTUJFUiAmJiAhdGhpcy5jb21wbGV0ZWQgJiYgIXRoaXMuaGFzRXJyb3IpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1uZXV0cmFsJzsgLy9pbml0aWFsZSBzdGF0ZSBpcyAnbnVtYmVyJ1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1jb21wbGV0ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtZXJyb3InO1xuICAgIH1cbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlX291dGxpbmUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdlcnJvcl9vdXRsaW5lJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaGVhZGVyXCJcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwidGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAnI2Q4ZTJlOScgOiAnI2ZmZmZmZidcIlxuICBbbmdDbGFzc109XCJ0aGlzLmhhc0Vycm9yID8gJ2Vycm9yLWJvcmRlcicgOiAnY2hlY2stYm9yZGVyJ1wiXG4+XG4gIDxkaXYgW25nQ2xhc3NdPVwidGhpcy5nZXRDc3NGb3JTdGF0ZSgpXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAge3sgdGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAna2V5Ym9hcmRfYXJyb3dfZG93bicgOiAna2V5Ym9hcmRfYXJyb3dfcmlnaHQnIH19XG4gICAgPC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ0aGlzLmNvbXBsZXRlZCB8fCB0aGlzLmhhc0Vycm9yXCIgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwidGhpcy5jb21wbGV0ZWQgPyAnZ3JlZW4tY2hlY2snIDogJ3JlZC1lcnJvcidcIj5cbiAgICAgIHt7IGdldEljb24oKSB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8c3BhbiBkYXRhLXRlc3RpZD1cInN0ZXAtbnVtYmVyXCIgKm5nSWY9XCIhdGhpcy5oYXNFcnJvciAmJiAhdGhpcy5jb21wbGV0ZWRcIiBjbGFzcz1cImhlYWRlci1sYWJlbFwiPnt7IHRoaXMuaW5kZXggKyAxICsgJy4nIH19PC9zcGFuPlxuICA8ZGl2IGRhdGEtdGVzdGlkPVwic3RlcC1sYWJlbFwiIGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+e3sgdGhpcy5sYWJlbCB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5JLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBZ0JoRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXVCcEQsWUFDVSxhQUEyQixFQUNuQyxXQUFvQztRQUVwQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUlyQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixLQUFLLENBQUMsTUFBb0IsRUFBRSxPQUFzQjtRQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFFLE9BQU8sb0JBQW9CLENBQUMsQ0FBQyw0QkFBNEI7UUFDM0QsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sa0JBQWtCLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsT0FBTyxzQkFBc0IsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0FoRVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsc1pDcEJoQyxzMUJBbUJBLGdvQkREWSxPQUFPLG1GQUFFLGFBQWEsb0xBQUUsSUFBSTs7MkZBRTNCLG1CQUFtQjtrQkFkL0IsU0FBUzsrQkFDRSxpQkFBaUIsVUFHbkIsQ0FBQyxPQUFPLENBQUMsUUFDWDt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QixJQUFJLEVBQUUsS0FBSztxQkFDWixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDOzBHQUl2QyxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1N0ZXBIZWFkZXIsIFNURVBfU1RBVEUsIFN0ZXBTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1zdGVwLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydjb2xvciddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdtYWQtc3RlcC1oZWFkZXInLFxuICAgIHJvbGU6ICd0YWInLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE1hdEljb25Nb2R1bGUsIE5nSWZdLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrU3RlcEhlYWRlciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIGluZGV4OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBzdGF0ZTogU3RlcFN0YXRlO1xuXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBvcHRpb25hbDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBoYXNFcnJvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjb21wbGV0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY2xvc2VkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgKSB7XG4gICAgc3VwZXIoX2VsZW1lbnRSZWYpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsIHRydWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpO1xuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIHN0ZXAgaGVhZGVyLiAqL1xuICBmb2N1cyhvcmlnaW4/OiBGb2N1c09yaWdpbiwgb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmIChvcmlnaW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLl9lbGVtZW50UmVmLCBvcmlnaW4sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3NzRm9yU3RhdGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gU1RFUF9TVEFURS5OVU1CRVIgJiYgIXRoaXMuY29tcGxldGVkICYmICF0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtbmV1dHJhbCc7IC8vaW5pdGlhbGUgc3RhdGUgaXMgJ251bWJlcidcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcGxldGVkKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtY29tcGxldGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdzdGVwLXN0YXRlLWVycm9yJztcbiAgICB9XG4gIH1cblxuICBnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY29tcGxldGVkKSB7XG4gICAgICByZXR1cm4gJ2NoZWNrX2NpcmNsZV9vdXRsaW5lJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzRXJyb3IpIHtcbiAgICAgIHJldHVybiAnZXJyb3Jfb3V0bGluZSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImhlYWRlclwiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInRoaXMuc2VsZWN0ZWQgJiYgIXRoaXMuY2xvc2VkID8gJyNkOGUyZTknIDogJyNmZmZmZmYnXCJcbiAgW25nQ2xhc3NdPVwidGhpcy5oYXNFcnJvciA/ICdlcnJvci1ib3JkZXInIDogJ2NoZWNrLWJvcmRlcidcIlxuPlxuICA8ZGl2IFtuZ0NsYXNzXT1cInRoaXMuZ2V0Q3NzRm9yU3RhdGUoKVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgIHt7IHRoaXMuc2VsZWN0ZWQgJiYgIXRoaXMuY2xvc2VkID8gJ2tleWJvYXJkX2Fycm93X2Rvd24nIDogJ2tleWJvYXJkX2Fycm93X3JpZ2h0JyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidGhpcy5jb21wbGV0ZWQgfHwgdGhpcy5oYXNFcnJvclwiIGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+XG4gICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cInRoaXMuY29tcGxldGVkID8gJ2dyZWVuLWNoZWNrJyA6ICdyZWQtZXJyb3InXCI+XG4gICAgICB7eyBnZXRJY29uKCkgfX1cbiAgICA8L21hdC1pY29uPlxuICA8L2Rpdj5cbiAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJzdGVwLW51bWJlclwiICpuZ0lmPVwiIXRoaXMuaGFzRXJyb3IgJiYgIXRoaXMuY29tcGxldGVkXCIgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj57eyB0aGlzLmluZGV4ICsgMSArICcuJyB9fTwvc3Bhbj5cbiAgPGRpdiBkYXRhLXRlc3RpZD1cInN0ZXAtbGFiZWxcIiBjbGFzcz1cImhlYWRlci1sYWJlbFwiPnt7IHRoaXMubGFiZWwgfX08L2Rpdj5cbjwvZGl2PlxuIl19
@@ -74,10 +74,10 @@ export class StepComponent extends CdkStep {
74
74
  this.state = STEP_STATE.ERROR;
75
75
  }
76
76
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepComponent, deps: [{ token: forwardRef(() => StepperComponent) }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: StepComponent, isStandalone: true, selector: "mad-step", outputs: { onNext: "onNext", onDone: "onDone", onHeaderClick: "onHeaderClick" }, providers: [{ provide: CdkStep, useExisting: StepComponent }], usesInheritance: true, ngImport: i0, template: "<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <mad-primary-button data-cy=\"next-step-button\" (click)=\"next()\">{{ nextBtnLbl }}</mad-primary-button>\n </div>\n <div *ngIf=\"last\">\n <mad-primary-button data-cy=\"complete-step-button\" (click)=\"completeLast()\">{{ doneBtnLbl }}</mad-primary-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;flex-direction:column;box-sizing:border-box;display:flex}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepComponent, deps: [{ token: forwardRef(() => StepperComponent) }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: StepComponent, isStandalone: true, selector: "mad-step", outputs: { onNext: "onNext", onDone: "onDone", onHeaderClick: "onHeaderClick" }, providers: [{ provide: CdkStep, useExisting: StepComponent }], usesInheritance: true, ngImport: i0, template: "<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <mad-primary-button data-cy=\"next-step-button\" (click)=\"next()\">{{ nextBtnLbl }}</mad-primary-button>\n </div>\n <div *ngIf=\"last\">\n <mad-primary-button data-cy=\"complete-step-button\" (click)=\"completeLast()\">{{ doneBtnLbl }}</mad-primary-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;flex-direction:column;box-sizing:border-box;display:flex}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: 'mad-step', providers: [{ provide: CdkStep, useExisting: StepComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, PrimaryButtonComponent], template: "<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <mad-primary-button data-cy=\"next-step-button\" (click)=\"next()\">{{ nextBtnLbl }}</mad-primary-button>\n </div>\n <div *ngIf=\"last\">\n <mad-primary-button data-cy=\"complete-step-button\" (click)=\"completeLast()\">{{ doneBtnLbl }}</mad-primary-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;flex-direction:column;box-sizing:border-box;display:flex}.step-content,.step-buttons{padding:2em}\n"] }]
83
83
  }], ctorParameters: () => [{ type: StepperComponent, decorators: [{
@@ -102,7 +102,7 @@ export class StepperComponent extends CdkStepper {
102
102
  }
103
103
  ngOnInit() {
104
104
  // Only linear stepper implementation is supported
105
- super.linear = true;
105
+ this.linear = true;
106
106
  }
107
107
  ngAfterContentInit() {
108
108
  super.ngAfterContentInit();
@@ -130,10 +130,10 @@ export class StepperComponent extends CdkStepper {
130
130
  _stepIsNavigable(index, step) {
131
131
  return step.completed || this.selectedIndex === index || !this.linear;
132
132
  }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: StepperComponent, isStandalone: true, selector: "mad-stepper", inputs: { nextButtonLabel: "nextButtonLabel", doneButtonLabel: "doneButtonLabel" }, outputs: { animationDone: "animationDone" }, host: { attributes: { "role": "tablist" }, properties: { "class.stepper-vertical": "true", "attr.aria-orientation": "\"vertical\"" } }, providers: [{ provide: CdkStepper, useExisting: StepperComponent }], queries: [{ propertyName: "_steps", predicate: StepComponent, descendants: true }], viewQueries: [{ propertyName: "_stepHeader", predicate: StepHeaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Vertical stepper -->\n<ng-container>\n <div data-cy=\"step-container\" *ngFor=\"let step of steps; let i = index; let isLast = last; let isFirst = first\">\n <ng-container [ngTemplateOutlet]=\"stepTemplate\" [ngTemplateOutletContext]=\"{ step: step, i: i }\"></ng-container>\n <div class=\"vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div\n class=\"vertical-stepper-content\"\n role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n (@stepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\"\n >\n <div data-cy=\"stepper-content\" class=\"vertical-content\">\n <ng-container\n [ngTemplateOutlet]=\"step.content\"\n [ngTemplateOutletContext]=\"{\n step: step,\n i: i,\n last: isLast,\n first: isFirst,\n nextBtnLbl: this.nextButtonLabel,\n doneBtnLbl: this.doneButtonLabel\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mad-step-header\n class=\"mat-vertical-stepper-header\"\n (click)=\"step.selectAndMarkAsTouched(i)\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [completed]=\"step.completed\"\n [hasError]=\"step.hasError\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [closed]=\"step.stepClosed\"\n [errorMessage]=\"step.errorMessage\"\n ></mad-step-header>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;flex-direction:column;box-sizing:border-box;display:flex}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: StepHeaderComponent, selector: "mad-step-header", inputs: ["color", "index", "label", "state", "errorMessage", "selected", "active", "optional", "hasError", "completed", "closed"] }], animations: [madStepperAnimations.verticalStepTransition], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepperComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: StepperComponent, isStandalone: true, selector: "mad-stepper", inputs: { nextButtonLabel: "nextButtonLabel", doneButtonLabel: "doneButtonLabel" }, outputs: { animationDone: "animationDone" }, host: { attributes: { "role": "tablist" }, properties: { "class.stepper-vertical": "true", "attr.aria-orientation": "\"vertical\"" } }, providers: [{ provide: CdkStepper, useExisting: StepperComponent }], queries: [{ propertyName: "_steps", predicate: StepComponent, descendants: true }], viewQueries: [{ propertyName: "_stepHeader", predicate: StepHeaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Vertical stepper -->\n<ng-container>\n <div data-cy=\"step-container\" *ngFor=\"let step of steps; let i = index; let isLast = last; let isFirst = first\">\n <ng-container [ngTemplateOutlet]=\"stepTemplate\" [ngTemplateOutletContext]=\"{ step: step, i: i }\"></ng-container>\n <div class=\"vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div\n class=\"vertical-stepper-content\"\n role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n (@stepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\"\n >\n <div data-cy=\"stepper-content\" class=\"vertical-content\">\n <ng-container\n [ngTemplateOutlet]=\"step.content\"\n [ngTemplateOutletContext]=\"{\n step: step,\n i: i,\n last: isLast,\n first: isFirst,\n nextBtnLbl: this.nextButtonLabel,\n doneBtnLbl: this.doneButtonLabel\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mad-step-header\n class=\"mat-vertical-stepper-header\"\n (click)=\"step.selectAndMarkAsTouched(i)\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [completed]=\"step.completed\"\n [hasError]=\"step.hasError\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [closed]=\"step.stepClosed\"\n [errorMessage]=\"step.errorMessage\"\n ></mad-step-header>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;flex-direction:column;box-sizing:border-box;display:flex}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: StepHeaderComponent, selector: "mad-step-header", inputs: ["color", "index", "label", "state", "errorMessage", "selected", "active", "optional", "hasError", "completed", "closed"] }], animations: [madStepperAnimations.verticalStepTransition], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperComponent, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepperComponent, decorators: [{
137
137
  type: Component,
138
138
  args: [{ selector: 'mad-stepper', host: {
139
139
  '[class.stepper-vertical]': 'true',
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
155
155
  type: ContentChildren,
156
156
  args: [StepComponent, { descendants: true }]
157
157
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBNEIsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFFWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7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LEVBQUUsbUJBQW1CLENBQUM7OzBCQXNCMUMsUUFBUTtrR0FsQkYsYUFBYTtzQkFBL0IsTUFBTTtnQkFHUCxlQUFlO3NCQURkLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUc2QixXQUFXO3NCQUE3QyxZQUFZO3VCQUFDLG1CQUFtQjtnQkFHc0IsTUFBTTtzQkFBNUQsZUFBZTt1QkFBQyxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBDZGtTdGVwLCBDZGtTdGVwcGVyLCBTVEVQX1NUQVRFLCBTdGVwQ29udGVudFBvc2l0aW9uU3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RlcEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc3RlcC1oZWFkZXIvc3RlcC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IG1hZFN0ZXBwZXJBbmltYXRpb25zIH0gZnJvbSAnLi9tYWQtc3RlcHBlci1hbmltYXRpb24nO1xuaW1wb3J0IHsgUHJpbWFyeUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9wcmltYXJ5LWJ1dHRvbi9wcmltYXJ5LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENka1N0ZXAsIHVzZUV4aXN0aW5nOiBTdGVwQ29tcG9uZW50IH1dLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIFByaW1hcnlCdXR0b25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwQ29tcG9uZW50IGV4dGVuZHMgQ2RrU3RlcCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIC8qKiBBY3Rpb24gZXZlbnQgZm9yIHRoZSBuZXh0IGJ1dHRvbi4gSWYgbm90IHNldCB0aGUgU3RlcENvbXBvbmVudCB3aWxsIGhhbmRsZSB0aGUgc3RlcCBuYXZpZ2F0aW9uICovXG4gIEBPdXRwdXQoKVxuICBvbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKiogQWN0aW9uIGV2ZW50IGZvciB0aGUgZG9uZSBidXR0b24uIElmIG5vdCBzZXQgdGhlIFN0ZXBDb21wb25lbnQgd2lsbCBoYW5kbGUgdGhlIHN0ZXAgbmF2aWdhdGlvbiAgKi9cbiAgQE91dHB1dCgpXG4gIG9uRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKiogQWN0aW9uIGV2ZW50IHdoZW4gdGhlIGhlYWRlciBpcyBjbGlja2VkLiBJZiBub3Qgc2V0IHRoZSBTdGVwQ29tcG9uZW50IHdpbGwgaGFuZGxlIHRoZSBzdGVwIG5hdmlnYXRpb24qL1xuICBAT3V0cHV0KClcbiAgb25IZWFkZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHN0ZXBDbG9zZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9pc1NlbGVjdGVkID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBTdGVwcGVyQ29tcG9uZW50KSkgcHJpdmF0ZSBzdGVwcGVyOiBTdGVwcGVyQ29tcG9uZW50LFxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICkge1xuICAgIHN1cGVyKHN0ZXBwZXIpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuX2lzU2VsZWN0ZWQgPSB0aGlzLl9zdGVwcGVyLnN0ZXBzLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9zdGVwcGVyLnNlbGVjdGlvbkNoYW5nZS5waXBlKFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4gZXZlbnQuc2VsZWN0ZWRTdGVwID09PSB0aGlzKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiAodGhpcy5zdGVwQ2xvc2VkID0gZmFsc2UpKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9zdGVwcGVyLnNlbGVjdGVkID09PSB0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5faXNTZWxlY3RlZC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmV4dChtYXJrRm9ybUFzVG91Y2hlZCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBWYWxpZGF0aW9uKG1hcmtGb3JtQXNUb3VjaGVkKTtcblxuICAgIGlmICh0aGlzLm9uTmV4dC5vYnNlcnZlcnMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuc3RlcHBlci5uZXh0KCk7XG4gICAgfVxuICAgIHRoaXMub25OZXh0LmVtaXQoKTtcbiAgfVxuXG4gIHNlbGVjdEFuZE1hcmtBc1RvdWNoZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8vTWFyayBjdXJyZW50IHNlbGVjdGVkIHN0ZXAgYXMgdG91Y2hlZCBiZWZvcmUgc2VsZWN0aW5nIHRvIGRpc3BsYXkgZXJyb3JzIGluIHRoZSBmcm9tXG4gICAgdGhpcy5fc3RlcHBlci5zZWxlY3RlZD8uc3RlcENvbnRyb2w/Lm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB0aGlzLnN0ZXBDbG9zZWQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5vbkhlYWRlckNsaWNrLm9ic2VydmVycy5sZW5ndGggPD0gMCkge1xuICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICB9XG4gICAgdGhpcy5vbkhlYWRlckNsaWNrLmVtaXQoaW5kZXgpO1xuICB9XG5cbiAgY29tcGxldGVMYXN0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcFZhbGlkYXRpb24odHJ1ZSk7XG4gICAgdGhpcy5zdGVwQ2xvc2VkID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLm9uRG9uZS5vYnNlcnZlcnMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuc3RlcHBlci5uZXh0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkRvbmUuZW1pdCgpO1xuICB9XG5cbiAgcmVzZXRWYWxpZGF0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5jb21wbGV0ZWQgPSB0cnVlO1xuICAgIHRoaXMuc3RhdGUgPSBTVEVQX1NUQVRFLkRPTkU7XG4gIH1cblxuICBwcml2YXRlIHN0ZXBWYWxpZGF0aW9uKG1hcmtGb3JtQXNUb3VjaGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKG1hcmtGb3JtQXNUb3VjaGVkKSB7XG4gICAgICB0aGlzLnN0ZXBDb250cm9sPy5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0ZXBDb250cm9sPy52YWxpZCkge1xuICAgICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5jb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZSA9IFNURVBfU1RBVEUuRE9ORTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZSA9IFNURVBfU1RBVEUuRVJST1I7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1zdGVwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnN0ZXBwZXItdmVydGljYWxdJzogJ3RydWUnLFxuICAgICdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdcInZlcnRpY2FsXCInLFxuICAgIHJvbGU6ICd0YWJsaXN0JyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW21hZFN0ZXBwZXJBbmltYXRpb25zLnZlcnRpY2FsU3RlcFRyYW5zaXRpb25dLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ2RrU3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIFN0ZXBIZWFkZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrU3RlcHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGN1cnJlbnQgc3RlcCBpcyBkb25lIHRyYW5zaXRpb25pbmcgaW4uICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBhbmltYXRpb25Eb25lOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgbmV4dEJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZG9uZUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG4gIC8qKiBTdGVwIGhlYWRlcnMgb2YgYWxsIHN0ZXBzIGluc2lkZSB0aGUgc3RlcHBlciAqL1xuICBAVmlld0NoaWxkcmVuKFN0ZXBIZWFkZXJDb21wb25lbnQpIF9zdGVwSGVhZGVyOiBRdWVyeUxpc3Q8U3RlcEhlYWRlckNvbXBvbmVudD47XG5cbiAgLyoqIFN0ZXBzIGluc2lkZSB0aGUgU3RlcHBlciAqL1xuICBAQ29udGVudENoaWxkcmVuKFN0ZXBDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgX3N0ZXBzOiBRdWVyeUxpc3Q8U3RlcENvbXBvbmVudD47XG5cbiAgLyoqIFN0ZXBzIHRoYXQgYmVsb25nIHRvIHRoZSBjdXJyZW50IHN0ZXBwZXIsIGV4Y2x1ZGluZyBvbmVzIGZyb20gbmVzdGVkIHN0ZXBwZXJzLiAqL1xuICBzdGVwczogUXVlcnlMaXN0PFN0ZXBDb21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdDxTdGVwQ29tcG9uZW50PigpO1xuXG4gIHJlYWRvbmx5IF9hbmltYXRpb25Eb25lID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgZGlyOiBEaXJlY3Rpb25hbGl0eSwgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHN1cGVyKGRpciwgY2hhbmdlRGV0ZWN0b3JSZWYsIGVsZW1lbnRSZWYpO1xuICAgIHRoaXMub3JpZW50YXRpb24gPSAndmVydGljYWwnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gT25seSBsaW5lYXIgc3RlcHBlciBpbXBsZW1lbnRhdGlvbiBpcyBzdXBwb3J0ZWRcbiAgICBzdXBlci5saW5lYXIgPSB0cnVlO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuXG4gICAgdGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2FuaW1hdGlvbkRvbmVcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoKGV2ZW50LnRvU3RhdGUgYXMgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlKSA9PT0gJ2N1cnJlbnQnKSB7XG4gICAgICAgICAgdGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHBhdGNoZWQgdG8gZW5hYmxlIHRoZSBjbG9zaW5nIG9mIHRoZSBsYXN0IHN0ZXAuXG4gICAqL1xuICBfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGluZGV4OiBudW1iZXIpOiBTdGVwQ29udGVudFBvc2l0aW9uU3RhdGUge1xuICAgIGNvbnN0IGNsb3NlTGFzdFN0ZXAgPSB0aGlzLnNlbGVjdGVkSW5kZXggPT09IHRoaXMuc3RlcHMubGVuZ3RoIC0gMSAmJiB0aGlzLl9zdGVwcy5sYXN0Py5jb21wbGV0ZWQgJiYgdGhpcy5fc3RlcHMubGFzdD8uc3RlcENsb3NlZDtcbiAgICBpZiAoY2xvc2VMYXN0U3RlcCkge1xuICAgICAgcmV0dXJuICduZXh0JztcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLl9nZXRBbmltYXRpb25EaXJlY3Rpb24oaW5kZXgpO1xuICB9XG5cbiAgX3N0ZXBJc05hdmlnYWJsZShpbmRleDogbnVtYmVyLCBzdGVwOiBTdGVwQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ZXAuY29tcGxldGVkIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXggfHwgIXRoaXMubGluZWFyO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgbGV0LWxhc3Q9XCJsYXN0XCIgbGV0LW5leHRCdG5MYmw9XCJuZXh0QnRuTGJsXCIgbGV0LWRvbmVCdG5MYmw9XCJkb25lQnRuTGJsXCI+XG4gIDxkaXYgY2xhc3M9XCJzdGVwLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdGVwLWNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1idXR0b25zXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWxhc3RcIj5cbiAgICAgICAgPG1hZC1wcmltYXJ5LWJ1dHRvbiBkYXRhLWN5PVwibmV4dC1zdGVwLWJ1dHRvblwiIChjbGljayk9XCJuZXh0KClcIj57eyBuZXh0QnRuTGJsIH19PC9tYWQtcHJpbWFyeS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsYXN0XCI+XG4gICAgICAgIDxtYWQtcHJpbWFyeS1idXR0b24gZGF0YS1jeT1cImNvbXBsZXRlLXN0ZXAtYnV0dG9uXCIgKGNsaWNrKT1cImNvbXBsZXRlTGFzdCgpXCI+e3sgZG9uZUJ0bkxibCB9fTwvbWFkLXByaW1hcnktYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiIsIjwhLS0gVmVydGljYWwgc3RlcHBlciAtLT5cbjxuZy1jb250YWluZXI+XG4gIDxkaXYgZGF0YS1jeT1cInN0ZXAtY29udGFpbmVyXCIgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0OyBsZXQgaXNGaXJzdCA9IGZpcnN0XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzdGVwOiBzdGVwLCBpOiBpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtY29udGVudC1jb250YWluZXJcIiBbY2xhc3MubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZV09XCIhaXNMYXN0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidmVydGljYWwtc3RlcHBlci1jb250ZW50XCJcbiAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgW0BzdGVwVHJhbnNpdGlvbl09XCJfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGkpXCJcbiAgICAgICAgKEBzdGVwVHJhbnNpdGlvbi5kb25lKT1cIl9hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGRhdGEtY3k9XCJzdGVwcGVyLWNvbnRlbnRcIiBjbGFzcz1cInZlcnRpY2FsLWNvbnRlbnRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLmNvbnRlbnRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgc3RlcDogc3RlcCxcbiAgICAgICAgICAgICAgaTogaSxcbiAgICAgICAgICAgICAgbGFzdDogaXNMYXN0LFxuICAgICAgICAgICAgICBmaXJzdDogaXNGaXJzdCxcbiAgICAgICAgICAgICAgbmV4dEJ0bkxibDogdGhpcy5uZXh0QnV0dG9uTGFiZWwsXG4gICAgICAgICAgICAgIGRvbmVCdG5MYmw6IHRoaXMuZG9uZUJ1dHRvbkxhYmVsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtc3RlcD1cInN0ZXBcIiBsZXQtaT1cImlcIiAjc3RlcFRlbXBsYXRlPlxuICA8bWFkLXN0ZXAtaGVhZGVyXG4gICAgY2xhc3M9XCJtYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXJcIlxuICAgIChjbGljayk9XCJzdGVwLnNlbGVjdEFuZE1hcmtBc1RvdWNoZWQoaSlcIlxuICAgIChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG4gICAgW3RhYkluZGV4XT1cIl9nZXRGb2N1c0luZGV4KCkgPT09IGkgPyAwIDogLTFcIlxuICAgIFtpZF09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuICAgIFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiaSArIDFcIlxuICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJzdGVwcy5sZW5ndGhcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PSBpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0ZXAuYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIhc3RlcC5hcmlhTGFiZWwgJiYgc3RlcC5hcmlhTGFiZWxsZWRieSA/IHN0ZXAuYXJpYUxhYmVsbGVkYnkgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIl9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcCkgPyBudWxsIDogdHJ1ZVwiXG4gICAgW2luZGV4XT1cImlcIlxuICAgIFtjb21wbGV0ZWRdPVwic3RlcC5jb21wbGV0ZWRcIlxuICAgIFtoYXNFcnJvcl09XCJzdGVwLmhhc0Vycm9yXCJcbiAgICBbc3RhdGVdPVwiX2dldEluZGljYXRvclR5cGUoaSwgc3RlcC5zdGF0ZSlcIlxuICAgIFtsYWJlbF09XCJzdGVwLnN0ZXBMYWJlbCB8fCBzdGVwLmxhYmVsXCJcbiAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG4gICAgW2FjdGl2ZV09XCJfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApXCJcbiAgICBbb3B0aW9uYWxdPVwic3RlcC5vcHRpb25hbFwiXG4gICAgW2Nsb3NlZF09XCJzdGVwLnN0ZXBDbG9zZWRcIlxuICAgIFtlcnJvck1lc3NhZ2VdPVwic3RlcC5lcnJvck1lc3NhZ2VcIlxuICA+PC9tYWQtc3RlcC1oZWFkZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBNEIsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFFWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7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Q3BELGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDOzswQkFzQjFDLFFBQVE7a0dBbEJGLGFBQWE7c0JBQS9CLE1BQU07Z0JBR1AsZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFHNkIsV0FBVztzQkFBN0MsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBR3NCLE1BQU07c0JBQTVELGVBQWU7dUJBQUMsYUFBYSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQ2RrU3RlcCwgQ2RrU3RlcHBlciwgU1RFUF9TVEFURSwgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0ZXBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBtYWRTdGVwcGVyQW5pbWF0aW9ucyB9IGZyb20gJy4vbWFkLXN0ZXBwZXItYW5pbWF0aW9uJztcbmltcG9ydCB7IFByaW1hcnlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vcHJpbWFyeS1idXR0b24vcHJpbWFyeS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDZGtTdGVwLCB1c2VFeGlzdGluZzogU3RlcENvbXBvbmVudCB9XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBQcmltYXJ5QnV0dG9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcENvbXBvbmVudCBleHRlbmRzIENka1N0ZXAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAvKiogQWN0aW9uIGV2ZW50IGZvciB0aGUgbmV4dCBidXR0b24uIElmIG5vdCBzZXQgdGhlIFN0ZXBDb21wb25lbnQgd2lsbCBoYW5kbGUgdGhlIHN0ZXAgbmF2aWdhdGlvbiAqL1xuICBAT3V0cHV0KClcbiAgb25OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqIEFjdGlvbiBldmVudCBmb3IgdGhlIGRvbmUgYnV0dG9uLiBJZiBub3Qgc2V0IHRoZSBTdGVwQ29tcG9uZW50IHdpbGwgaGFuZGxlIHRoZSBzdGVwIG5hdmlnYXRpb24gICovXG4gIEBPdXRwdXQoKVxuICBvbkRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKioqIEFjdGlvbiBldmVudCB3aGVuIHRoZSBoZWFkZXIgaXMgY2xpY2tlZC4gSWYgbm90IHNldCB0aGUgU3RlcENvbXBvbmVudCB3aWxsIGhhbmRsZSB0aGUgc3RlcCBuYXZpZ2F0aW9uKi9cbiAgQE91dHB1dCgpXG4gIG9uSGVhZGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBzdGVwQ2xvc2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaXNTZWxlY3RlZCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlckNvbXBvbmVudCkpIHByaXZhdGUgc3RlcHBlcjogU3RlcHBlckNvbXBvbmVudCxcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHtcbiAgICBzdXBlcihzdGVwcGVyKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9pc1NlbGVjdGVkID0gdGhpcy5fc3RlcHBlci5zdGVwcy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fc3RlcHBlci5zZWxlY3Rpb25DaGFuZ2UucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IGV2ZW50LnNlbGVjdGVkU3RlcCA9PT0gdGhpcyksXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMuc3RlcENsb3NlZCA9IGZhbHNlKSksXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fc3RlcHBlci5zZWxlY3RlZCA9PT0gdGhpcyksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2lzU2VsZWN0ZWQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5leHQobWFya0Zvcm1Bc1RvdWNoZWQgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwVmFsaWRhdGlvbihtYXJrRm9ybUFzVG91Y2hlZCk7XG5cbiAgICBpZiAodGhpcy5vbk5leHQub2JzZXJ2ZXJzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgIH1cbiAgICB0aGlzLm9uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBzZWxlY3RBbmRNYXJrQXNUb3VjaGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvL01hcmsgY3VycmVudCBzZWxlY3RlZCBzdGVwIGFzIHRvdWNoZWQgYmVmb3JlIHNlbGVjdGluZyB0byBkaXNwbGF5IGVycm9ycyBpbiB0aGUgZnJvbVxuICAgIHRoaXMuX3N0ZXBwZXIuc2VsZWN0ZWQ/LnN0ZXBDb250cm9sPy5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5zdGVwQ2xvc2VkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMub25IZWFkZXJDbGljay5vYnNlcnZlcnMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxuICAgIHRoaXMub25IZWFkZXJDbGljay5lbWl0KGluZGV4KTtcbiAgfVxuXG4gIGNvbXBsZXRlTGFzdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBWYWxpZGF0aW9uKHRydWUpO1xuICAgIHRoaXMuc3RlcENsb3NlZCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5vbkRvbmUub2JzZXJ2ZXJzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgIH1cblxuICAgIHRoaXMub25Eb25lLmVtaXQoKTtcbiAgfVxuXG4gIHJlc2V0VmFsaWRhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuY29tcGxldGVkID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXRlID0gU1RFUF9TVEFURS5ET05FO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGVwVmFsaWRhdGlvbihtYXJrRm9ybUFzVG91Y2hlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChtYXJrRm9ybUFzVG91Y2hlZCkge1xuICAgICAgdGhpcy5zdGVwQ29udHJvbD8ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwQ29udHJvbD8udmFsaWQpIHtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdGUgPSBTVEVQX1NUQVRFLkRPTkU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tcGxldGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdGUgPSBTVEVQX1NUQVRFLkVSUk9SO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5zdGVwcGVyLXZlcnRpY2FsXSc6ICd0cnVlJyxcbiAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnXCJ2ZXJ0aWNhbFwiJyxcbiAgICByb2xlOiAndGFibGlzdCcsXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFttYWRTdGVwcGVyQW5pbWF0aW9ucy52ZXJ0aWNhbFN0ZXBUcmFuc2l0aW9uXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBTdGVwcGVyQ29tcG9uZW50IH1dLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0LCBTdGVwSGVhZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckNvbXBvbmVudCBleHRlbmRzIENka1N0ZXBwZXIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjdXJyZW50IHN0ZXAgaXMgZG9uZSB0cmFuc2l0aW9uaW5nIGluLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgYW5pbWF0aW9uRG9uZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIG5leHRCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGRvbmVCdXR0b25MYWJlbDogc3RyaW5nO1xuICAvKiogU3RlcCBoZWFkZXJzIG9mIGFsbCBzdGVwcyBpbnNpZGUgdGhlIHN0ZXBwZXIgKi9cbiAgQFZpZXdDaGlsZHJlbihTdGVwSGVhZGVyQ29tcG9uZW50KSBfc3RlcEhlYWRlcjogUXVlcnlMaXN0PFN0ZXBIZWFkZXJDb21wb25lbnQ+O1xuXG4gIC8qKiBTdGVwcyBpbnNpZGUgdGhlIFN0ZXBwZXIgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihTdGVwQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIF9zdGVwczogUXVlcnlMaXN0PFN0ZXBDb21wb25lbnQ+O1xuXG4gIC8qKiBTdGVwcyB0aGF0IGJlbG9uZyB0byB0aGUgY3VycmVudCBzdGVwcGVyLCBleGNsdWRpbmcgb25lcyBmcm9tIG5lc3RlZCBzdGVwcGVycy4gKi9cbiAgc3RlcHM6IFF1ZXJ5TGlzdDxTdGVwQ29tcG9uZW50PiA9IG5ldyBRdWVyeUxpc3Q8U3RlcENvbXBvbmVudD4oKTtcblxuICByZWFkb25seSBfYW5pbWF0aW9uRG9uZSA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihkaXIsIGNoYW5nZURldGVjdG9yUmVmLCBlbGVtZW50UmVmKTtcbiAgICB0aGlzLm9yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIE9ubHkgbGluZWFyIHN0ZXBwZXIgaW1wbGVtZW50YXRpb24gaXMgc3VwcG9ydGVkXG4gICAgdGhpcy5saW5lYXIgPSB0cnVlO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuXG4gICAgdGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2FuaW1hdGlvbkRvbmVcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoKGV2ZW50LnRvU3RhdGUgYXMgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlKSA9PT0gJ2N1cnJlbnQnKSB7XG4gICAgICAgICAgdGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHBhdGNoZWQgdG8gZW5hYmxlIHRoZSBjbG9zaW5nIG9mIHRoZSBsYXN0IHN0ZXAuXG4gICAqL1xuICBfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGluZGV4OiBudW1iZXIpOiBTdGVwQ29udGVudFBvc2l0aW9uU3RhdGUge1xuICAgIGNvbnN0IGNsb3NlTGFzdFN0ZXAgPSB0aGlzLnNlbGVjdGVkSW5kZXggPT09IHRoaXMuc3RlcHMubGVuZ3RoIC0gMSAmJiB0aGlzLl9zdGVwcy5sYXN0Py5jb21wbGV0ZWQgJiYgdGhpcy5fc3RlcHMubGFzdD8uc3RlcENsb3NlZDtcbiAgICBpZiAoY2xvc2VMYXN0U3RlcCkge1xuICAgICAgcmV0dXJuICduZXh0JztcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLl9nZXRBbmltYXRpb25EaXJlY3Rpb24oaW5kZXgpO1xuICB9XG5cbiAgX3N0ZXBJc05hdmlnYWJsZShpbmRleDogbnVtYmVyLCBzdGVwOiBTdGVwQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ZXAuY29tcGxldGVkIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXggfHwgIXRoaXMubGluZWFyO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgbGV0LWxhc3Q9XCJsYXN0XCIgbGV0LW5leHRCdG5MYmw9XCJuZXh0QnRuTGJsXCIgbGV0LWRvbmVCdG5MYmw9XCJkb25lQnRuTGJsXCI+XG4gIDxkaXYgY2xhc3M9XCJzdGVwLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdGVwLWNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1idXR0b25zXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWxhc3RcIj5cbiAgICAgICAgPG1hZC1wcmltYXJ5LWJ1dHRvbiBkYXRhLWN5PVwibmV4dC1zdGVwLWJ1dHRvblwiIChjbGljayk9XCJuZXh0KClcIj57eyBuZXh0QnRuTGJsIH19PC9tYWQtcHJpbWFyeS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsYXN0XCI+XG4gICAgICAgIDxtYWQtcHJpbWFyeS1idXR0b24gZGF0YS1jeT1cImNvbXBsZXRlLXN0ZXAtYnV0dG9uXCIgKGNsaWNrKT1cImNvbXBsZXRlTGFzdCgpXCI+e3sgZG9uZUJ0bkxibCB9fTwvbWFkLXByaW1hcnktYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiIsIjwhLS0gVmVydGljYWwgc3RlcHBlciAtLT5cbjxuZy1jb250YWluZXI+XG4gIDxkaXYgZGF0YS1jeT1cInN0ZXAtY29udGFpbmVyXCIgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0OyBsZXQgaXNGaXJzdCA9IGZpcnN0XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzdGVwOiBzdGVwLCBpOiBpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtY29udGVudC1jb250YWluZXJcIiBbY2xhc3MubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZV09XCIhaXNMYXN0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidmVydGljYWwtc3RlcHBlci1jb250ZW50XCJcbiAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgW0BzdGVwVHJhbnNpdGlvbl09XCJfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGkpXCJcbiAgICAgICAgKEBzdGVwVHJhbnNpdGlvbi5kb25lKT1cIl9hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGRhdGEtY3k9XCJzdGVwcGVyLWNvbnRlbnRcIiBjbGFzcz1cInZlcnRpY2FsLWNvbnRlbnRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLmNvbnRlbnRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgc3RlcDogc3RlcCxcbiAgICAgICAgICAgICAgaTogaSxcbiAgICAgICAgICAgICAgbGFzdDogaXNMYXN0LFxuICAgICAgICAgICAgICBmaXJzdDogaXNGaXJzdCxcbiAgICAgICAgICAgICAgbmV4dEJ0bkxibDogdGhpcy5uZXh0QnV0dG9uTGFiZWwsXG4gICAgICAgICAgICAgIGRvbmVCdG5MYmw6IHRoaXMuZG9uZUJ1dHRvbkxhYmVsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtc3RlcD1cInN0ZXBcIiBsZXQtaT1cImlcIiAjc3RlcFRlbXBsYXRlPlxuICA8bWFkLXN0ZXAtaGVhZGVyXG4gICAgY2xhc3M9XCJtYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXJcIlxuICAgIChjbGljayk9XCJzdGVwLnNlbGVjdEFuZE1hcmtBc1RvdWNoZWQoaSlcIlxuICAgIChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG4gICAgW3RhYkluZGV4XT1cIl9nZXRGb2N1c0luZGV4KCkgPT09IGkgPyAwIDogLTFcIlxuICAgIFtpZF09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuICAgIFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiaSArIDFcIlxuICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJzdGVwcy5sZW5ndGhcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PSBpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0ZXAuYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIhc3RlcC5hcmlhTGFiZWwgJiYgc3RlcC5hcmlhTGFiZWxsZWRieSA/IHN0ZXAuYXJpYUxhYmVsbGVkYnkgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIl9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcCkgPyBudWxsIDogdHJ1ZVwiXG4gICAgW2luZGV4XT1cImlcIlxuICAgIFtjb21wbGV0ZWRdPVwic3RlcC5jb21wbGV0ZWRcIlxuICAgIFtoYXNFcnJvcl09XCJzdGVwLmhhc0Vycm9yXCJcbiAgICBbc3RhdGVdPVwiX2dldEluZGljYXRvclR5cGUoaSwgc3RlcC5zdGF0ZSlcIlxuICAgIFtsYWJlbF09XCJzdGVwLnN0ZXBMYWJlbCB8fCBzdGVwLmxhYmVsXCJcbiAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG4gICAgW2FjdGl2ZV09XCJfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApXCJcbiAgICBbb3B0aW9uYWxdPVwic3RlcC5vcHRpb25hbFwiXG4gICAgW2Nsb3NlZF09XCJzdGVwLnN0ZXBDbG9zZWRcIlxuICAgIFtlcnJvck1lc3NhZ2VdPVwic3RlcC5lcnJvck1lc3NhZ2VcIlxuICA+PC9tYWQtc3RlcC1oZWFkZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -8,8 +8,8 @@ import { CdkStepperModule } from '@angular/cdk/stepper';
8
8
  import { ButtonModule } from '../button/button.module';
9
9
  import * as i0 from "@angular/core";
10
10
  export class StepperModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, imports: [CommonModule,
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: StepperModule, imports: [CommonModule,
13
13
  MatButtonModule,
14
14
  MatIconModule,
15
15
  CdkStepperModule,
@@ -17,7 +17,7 @@ export class StepperModule {
17
17
  StepperComponent,
18
18
  StepHeaderComponent,
19
19
  StepComponent], exports: [StepperComponent, StepHeaderComponent, StepComponent] }); }
20
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, imports: [CommonModule,
20
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepperModule, imports: [CommonModule,
21
21
  MatButtonModule,
22
22
  MatIconModule,
23
23
  CdkStepperModule,
@@ -26,7 +26,7 @@ export class StepperModule {
26
26
  StepHeaderComponent,
27
27
  StepComponent] }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: StepperModule, decorators: [{
30
30
  type: NgModule,
31
31
  args: [{
32
32
  imports: [
@@ -90,10 +90,10 @@ export class TableComponent {
90
90
  isClickOnRowMenuIcon(event) {
91
91
  return event?.target?.classList.contains('mat-icon');
92
92
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: TableComponent, isStandalone: true, selector: "mad-table", inputs: { columns: "columns", filterLabel: "filterLabel", filterPlaceholder: "filterPlaceholder", noDataText: "noDataText", pageSizeOptions: "pageSizeOptions", defaultPageSize: "defaultPageSize", rowActions: "rowActions", tableActions: "tableActions", displayedData: "displayedData", paginationEnabled: "paginationEnabled", filterEnabled: "filterEnabled" }, outputs: { tableAction: "tableAction", rowAction: "rowAction", sortEvent: "sortEvent" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<!-- Table actions -->\n<div *ngIf=\"tableActions?.length\">\n <mad-primary-button class=\"table-action\" *ngFor=\"let tableAction of tableActions\" (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label }}\n </mad-primary-button>\n</div>\n\n<!-- Row action buttons -->\n<mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\" (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table filter -->\n<mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel }}</mat-label>\n <input matInput (keyup)=\"onFilter($event?.target?.value)\" placeholder=\"{{ filterPlaceholder }}\" />\n</mat-form-field>\n\n<!-- Table -->\n<div *ngIf=\"dataSource?.data?.length > 0; else noData\" class=\"mad-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column -->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\" *ngIf=\"rowActions?.length\" sticky>\n <th mat-header-cell *matHeaderCellDef class=\"row-action-button\"></th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <mad-icon-button [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.label\" [sticky]=\"column.isSticky\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.label }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\">\n {{ element[column.dataPropertyName] }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnNames\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnNames\"\n ></tr>\n </table>\n</div>\n<!-- Pagination -->\n<mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n showFirstLastButtons\n>\n</mat-paginator>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n {{ noDataText }}\n </div>\n</ng-template>\n", styles: [".text-right{text-align:right!important}.table-action{margin-right:.5em;margin-bottom:.5em}.row-action-button{width:10px}.noDataText{width:100%;text-align:center}.mad-table{width:100%;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { 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: "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: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i5.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i7.MatPaginator, selector: "mat-paginator", inputs: ["disabled", "color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig"], outputs: ["page"], exportAs: ["matPaginator"] }] }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: TableComponent, isStandalone: true, selector: "mad-table", inputs: { columns: "columns", filterLabel: "filterLabel", filterPlaceholder: "filterPlaceholder", noDataText: "noDataText", pageSizeOptions: "pageSizeOptions", defaultPageSize: "defaultPageSize", rowActions: "rowActions", tableActions: "tableActions", displayedData: "displayedData", paginationEnabled: "paginationEnabled", filterEnabled: "filterEnabled" }, outputs: { tableAction: "tableAction", rowAction: "rowAction", sortEvent: "sortEvent" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<!-- Table actions -->\n<div *ngIf=\"tableActions?.length\">\n <mad-primary-button class=\"table-action\" *ngFor=\"let tableAction of tableActions\" (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label }}\n </mad-primary-button>\n</div>\n\n<!-- Row action buttons -->\n<mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\" (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table filter -->\n<mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel }}</mat-label>\n <input matInput (keyup)=\"onFilter($event?.target?.value)\" placeholder=\"{{ filterPlaceholder }}\" />\n</mat-form-field>\n\n<!-- Table -->\n<div *ngIf=\"dataSource?.data?.length > 0; else noData\" class=\"mad-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column -->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\" *ngIf=\"rowActions?.length\" sticky>\n <th mat-header-cell *matHeaderCellDef class=\"row-action-button\"></th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <mad-icon-button [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.label\" [sticky]=\"column.isSticky\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.label }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\">\n {{ element[column.dataPropertyName] }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnNames\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnNames\"\n ></tr>\n </table>\n</div>\n<!-- Pagination -->\n<mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n showFirstLastButtons\n>\n</mat-paginator>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n {{ noDataText }}\n </div>\n</ng-template>\n", styles: [".text-right{text-align:right!important}.table-action{margin-right:.5em;margin-bottom:.5em}.row-action-button{width:10px}.noDataText{width:100%;text-align:center}.mad-table{width:100%;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { 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: "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: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i5.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i7.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] }); }
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableComponent, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TableComponent, decorators: [{
97
97
  type: Component,
98
98
  args: [{ selector: 'mad-table', standalone: true, imports: [
99
99
  NgIf,
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
143
143
  }], filterEnabled: [{
144
144
  type: Input
145
145
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBUSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFxQjlDLE1BQU0sT0FBTyxjQUFjO0lBbkIzQjtRQW9CVyxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4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bUIsa0dBQ25CLGFBQWEsbUxBQ2Isa0JBQWtCOzsyRkFHVCxjQUFjO2tCQW5CMUIsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2Isa0JBQWtCO3FCQUNuQjs4QkFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVxQyxTQUFTO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0osSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVV2QixhQUFhO3NCQUF6QixLQUFLO2dCQVFPLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFVRixhQUFhO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydCwgU29ydCwgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgQ29sdW1uSGVhZGVyIH0gZnJvbSAnLi9jb2x1bW4taGVhZGVyJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uIH0gZnJvbSAnLi90YWJsZS1hY3Rpb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFByaW1hcnlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vcHJpbWFyeS1idXR0b24vcHJpbWFyeS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgUHJpbWFyeUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29sdW1uczogQ29sdW1uSGVhZGVyW10gPSBbXTtcbiAgQElucHV0KCkgZmlsdGVyTGFiZWwgPSAnTk9UIFNFVCc7XG4gIEBJbnB1dCgpIGZpbHRlclBsYWNlaG9sZGVyID0gJ05PVCBTRVQnO1xuICBASW5wdXQoKSBub0RhdGFUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFs1LCAxMCwgMTVdO1xuICBASW5wdXQoKSBkZWZhdWx0UGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplT3B0aW9ucz8uWzBdIHx8IDEwO1xuICBASW5wdXQoKSByb3dBY3Rpb25zOiBUYWJsZUFjdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHRhYmxlQWN0aW9uczogVGFibGVBY3Rpb25bXSA9IFtdO1xuXG4gIEBPdXRwdXQoKSB0YWJsZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSByb3dBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uPigpO1xuICBAT3V0cHV0KCkgc29ydEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IHRydWUgfSkgc29ydDogTWF0U29ydDtcblxuICByZWFkb25seSBBQ1RJT05fQ09MVU1OX05BTUUgPSAnX19hY3Rpb25fXyc7XG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnlbXT47XG4gIGNvbHVtbk5hbWVzOiBzdHJpbmdbXTtcbiAgaXNSb3dDbGlja2FibGU6IGJvb2xlYW47XG4gIGRlZmF1bHRBY3Rpb246IFRhYmxlQWN0aW9uO1xuICBpc0ZpbHRlckVuYWJsZWQgPSBmYWxzZTtcbiAgaXNQYWdpbmF0aW9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBkaXNwbGF5ZWREYXRhKGRhdGE6IGFueVtdKSB7XG4gICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8YW55PihkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBwYWdpbmF0aW9uRW5hYmxlZChpc1BhZ2luYXRpb25FbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1BhZ2luYXRpb25FbmFibGVkID0gaXNQYWdpbmF0aW9uRW5hYmxlZDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBwYWdlU2l6ZSA9IHRoaXMuaXNQYWdpbmF0aW9uRW5hYmxlZCA/IHRoaXMuZGVmYXVsdFBhZ2VTaXplIDogTnVtYmVyLk1BWF9WQUxVRTtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlLnBhZ2luYXRvcikge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvci5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBmaWx0ZXJFbmFibGVkKGlzRmlsdGVyRW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNGaWx0ZXJFbmFibGVkID0gaXNGaWx0ZXJFbmFibGVkO1xuICAgIHRoaXMuc2V0RmlsdGVyVmFsdWUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uTmFtZXMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5sYWJlbCk7XG4gICAgdGhpcy5pc1Jvd0NsaWNrYWJsZSA9IHRoaXMucm93QWN0aW9ucy5sZW5ndGggPiAwO1xuICAgIGlmICh0aGlzLmlzUm93Q2xpY2thYmxlKSB7XG4gICAgICB0aGlzLmNvbHVtbk5hbWVzLnVuc2hpZnQodGhpcy5BQ1RJT05fQ09MVU1OX05BTUUpO1xuICAgICAgdGhpcy5kZWZhdWx0QWN0aW9uID0gdGhpcy5yb3dBY3Rpb25zWzBdO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgLy8gc2V0IGN1c3RvbSBmaWx0ZXIgcHJlZGljYXRlIHRvIGVuYWJsZSBzZWFyY2ggZm9yIG11bHRpcGxlIHNlYXJjaCBzdHJpbmdzOlxuICAgIC8vIGUuZy4gXCJvbmUgdHdvIHRocmVlXCJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGE6IGFueSwgZmlsdGVyOiBzdHJpbmcpOiBhbnkgPT5cbiAgICAgICFmaWx0ZXIgfHwgZmlsdGVyLnNwbGl0KC9cXHMrLykuZXZlcnkoKHRlcm0pID0+ICEhT2JqZWN0LmtleXMoZGF0YSkuZmluZCgoa2V5KSA9PiBkYXRhW2tleV0uaW5jbHVkZXModGVybSkpKTtcbiAgfVxuXG4gIG9uRmlsdGVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNldEZpbHRlclZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIG9uUm93RXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvdzogYW55LCBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoISFhY3Rpb24gJiYgIXRoaXMuaXNDbGlja09uUm93TWVudUljb24oZXZlbnQpKSB7XG4gICAgICB0aGlzLnJvd0FjdGlvbi5lbWl0KHsgLi4uYWN0aW9uLCBvdXRwdXRSb3c6IHJvdyB9KTtcbiAgICB9XG4gIH1cblxuICBvblNvcnRpbmdFdmVudChzb3J0aW5nUGFyYW1zOiBTb3J0KTogdm9pZCB7XG4gICAgdGhpcy5zb3J0RXZlbnQuZW1pdChzb3J0aW5nUGFyYW1zKTtcbiAgfVxuXG4gIG9uVGFibGVBY3Rpb24odGFibGVBY3Rpb246IFRhYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCEhdGFibGVBY3Rpb24pIHtcbiAgICAgIHRoaXMudGFibGVBY3Rpb24uZW1pdCh0YWJsZUFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWx0ZXJWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9IHZhbHVlPy50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbGlja09uUm93TWVudUljb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGV2ZW50Py50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5jbGFzc0xpc3QuY29udGFpbnMoJ21hdC1pY29uJyk7XG4gIH1cbn1cbiIsIjwhLS0gVGFibGUgYWN0aW9ucyAtLT5cbjxkaXYgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/Lmxlbmd0aFwiPlxuICA8bWFkLXByaW1hcnktYnV0dG9uIGNsYXNzPVwidGFibGUtYWN0aW9uXCIgKm5nRm9yPVwibGV0IHRhYmxlQWN0aW9uIG9mIHRhYmxlQWN0aW9uc1wiIChjbGljayk9XCJvblRhYmxlQWN0aW9uKHRhYmxlQWN0aW9uKVwiPlxuICAgIHt7IHRhYmxlQWN0aW9uLmxhYmVsIH19XG4gIDwvbWFkLXByaW1hcnktYnV0dG9uPlxuPC9kaXY+XG5cbjwhLS0gUm93IGFjdGlvbiBidXR0b25zIC0tPlxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCI+XG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgcm93QWN0aW9uIG9mIHJvd0FjdGlvbnNcIiBtYXQtbWVudS1pdGVtIGNsYXNzPVwicm93LWFjdGlvblwiIChjbGljayk9XCJvblJvd0V2ZW50KCRldmVudCwgZWxlbWVudCwgcm93QWN0aW9uKVwiPlxuICAgICAge3sgcm93QWN0aW9uLmxhYmVsIH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuXG48IS0tIFRhYmxlIGZpbHRlciAtLT5cbjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImlzRmlsdGVyRW5hYmxlZFwiPlxuICA8bWF0LWxhYmVsPnt7IGZpbHRlckxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwib25GaWx0ZXIoJGV2ZW50Py50YXJnZXQ/LnZhbHVlKVwiIHBsYWNlaG9sZGVyPVwie3sgZmlsdGVyUGxhY2Vob2xkZXIgfX1cIiAvPlxuPC9tYXQtZm9ybS1maWVsZD5cblxuPCEtLSBUYWJsZSAtLT5cbjxkaXYgKm5nSWY9XCJkYXRhU291cmNlPy5kYXRhPy5sZW5ndGggPiAwOyBlbHNlIG5vRGF0YVwiIGNsYXNzPVwibWFkLXRhYmxlXCI+XG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQgKG1hdFNvcnRDaGFuZ2UpPVwib25Tb3J0aW5nRXZlbnQoJGV2ZW50KVwiPlxuICAgIDwhLS0gUm93IGFjdGlvbnMgY29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJBQ1RJT05fQ09MVU1OX05BTUVcIiAqbmdJZj1cInJvd0FjdGlvbnM/Lmxlbmd0aFwiIHN0aWNreT5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJyb3ctYWN0aW9uLWJ1dHRvblwiPjwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIGNsYXNzPVwicm93LWFjdGlvbi1idXR0b25cIj5cbiAgICAgICAgPG1hZC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJEYXRhXT1cInsgZWxlbWVudDogZWxlbWVudCB9XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYWQtaWNvbi1idXR0b24+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gQ29sdW1ucyB3aXRoIGRhdGEgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5sYWJlbFwiIFtzdGlja3ldPVwiY29sdW1uLmlzU3RpY2t5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmlzU29ydGFibGU7IGVsc2Ugbm9Tb3J0XCI+XG4gICAgICAgIDx0aFxuICAgICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgbWF0LXNvcnQtaGVhZGVyPVwie3sgY29sdW1uLmxhYmVsIH19XCJcbiAgICAgICAgICBbYXJyb3dQb3NpdGlvbl09XCJjb2x1bW4uaXNSaWdodEFsaWduZWQgPyAnYmVmb3JlJyA6ICdhZnRlcidcIlxuICAgICAgICAgIFtjbGFzcy50ZXh0LXJpZ2h0XT1cImNvbHVtbi5pc1JpZ2h0QWxpZ25lZFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgPC90aD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub1NvcnQ+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgW2NsYXNzLnRleHQtcmlnaHRdPVwiY29sdW1uLmlzUmlnaHRBbGlnbmVkXCI+XG4gICAgICAgICAge3sgY29sdW1uLmxhYmVsIH19XG4gICAgICAgIDwvdGg+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIiBbY2xhc3MudGV4dC1yaWdodF09XCJjb2x1bW4uaXNSaWdodEFsaWduZWRcIj5cbiAgICAgICAge3sgZWxlbWVudFtjb2x1bW4uZGF0YVByb3BlcnR5TmFtZV0gfX1cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5OYW1lc1wiPjwvdHI+XG4gICAgPHRyXG4gICAgICBtYXQtcm93XG4gICAgICBbY2xhc3MuY2xpY2thYmxlLXRhYmxlLXJvd109XCJpc1Jvd0NsaWNrYWJsZVwiXG4gICAgICAoY2xpY2spPVwib25Sb3dFdmVudCgkZXZlbnQsIHJvdylcIlxuICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbk5hbWVzXCJcbiAgICA+PC90cj5cbiAgPC90YWJsZT5cbjwvZGl2PlxuPCEtLSBQYWdpbmF0aW9uIC0tPlxuPG1hdC1wYWdpbmF0b3JcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNQYWdpbmF0aW9uRW5hYmxlZCA/ICdibG9jaycgOiAnbm9uZSdcIlxuICBbcGFnZVNpemVdPVwiZGVmYXVsdFBhZ2VTaXplXCJcbiAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICBzaG93Rmlyc3RMYXN0QnV0dG9uc1xuPlxuPC9tYXQtcGFnaW5hdG9yPlxuXG48IS0tIE5vIGRhdGEgYWxlcnQgLS0+XG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgPGRpdiBjbGFzcz1cIm5vRGF0YVRleHRcIj5cbiAgICB7eyBub0RhdGFUZXh0IH19XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBUSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFxQjlDLE1BQU0sT0FBTyxjQUFjO0lBbkIzQjtRQW9CVyxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4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LHMxQkFDYixrQkFBa0IsMFNBQ2xCLGNBQWMsMFdBQ2QsY0FBYyxzZ0NBQ2QsYUFBYSxrZEFDYixtQkFBbUIsa0dBQ25CLGFBQWEsbUxBQ2Isa0JBQWtCOzsyRkFHVCxjQUFjO2tCQW5CMUIsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2Isa0JBQWtCO3FCQUNuQjs4QkFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVxQyxTQUFTO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0osSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVV2QixhQUFhO3NCQUF6QixLQUFLO2dCQVFPLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFVRixhQUFhO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydCwgU29ydCwgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgQ29sdW1uSGVhZGVyIH0gZnJvbSAnLi9jb2x1bW4taGVhZGVyJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uIH0gZnJvbSAnLi90YWJsZS1hY3Rpb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFByaW1hcnlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vcHJpbWFyeS1idXR0b24vcHJpbWFyeS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgUHJpbWFyeUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29sdW1uczogQ29sdW1uSGVhZGVyW10gPSBbXTtcbiAgQElucHV0KCkgZmlsdGVyTGFiZWwgPSAnTk9UIFNFVCc7XG4gIEBJbnB1dCgpIGZpbHRlclBsYWNlaG9sZGVyID0gJ05PVCBTRVQnO1xuICBASW5wdXQoKSBub0RhdGFUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFs1LCAxMCwgMTVdO1xuICBASW5wdXQoKSBkZWZhdWx0UGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplT3B0aW9ucz8uWzBdIHx8IDEwO1xuICBASW5wdXQoKSByb3dBY3Rpb25zOiBUYWJsZUFjdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHRhYmxlQWN0aW9uczogVGFibGVBY3Rpb25bXSA9IFtdO1xuXG4gIEBPdXRwdXQoKSB0YWJsZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSByb3dBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uPigpO1xuICBAT3V0cHV0KCkgc29ydEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IHRydWUgfSkgc29ydDogTWF0U29ydDtcblxuICByZWFkb25seSBBQ1RJT05fQ09MVU1OX05BTUUgPSAnX19hY3Rpb25fXyc7XG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnlbXT47XG4gIGNvbHVtbk5hbWVzOiBzdHJpbmdbXTtcbiAgaXNSb3dDbGlja2FibGU6IGJvb2xlYW47XG4gIGRlZmF1bHRBY3Rpb246IFRhYmxlQWN0aW9uO1xuICBpc0ZpbHRlckVuYWJsZWQgPSBmYWxzZTtcbiAgaXNQYWdpbmF0aW9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBkaXNwbGF5ZWREYXRhKGRhdGE6IGFueVtdKSB7XG4gICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8YW55PihkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBwYWdpbmF0aW9uRW5hYmxlZChpc1BhZ2luYXRpb25FbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1BhZ2luYXRpb25FbmFibGVkID0gaXNQYWdpbmF0aW9uRW5hYmxlZDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBwYWdlU2l6ZSA9IHRoaXMuaXNQYWdpbmF0aW9uRW5hYmxlZCA/IHRoaXMuZGVmYXVsdFBhZ2VTaXplIDogTnVtYmVyLk1BWF9WQUxVRTtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlLnBhZ2luYXRvcikge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvci5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBmaWx0ZXJFbmFibGVkKGlzRmlsdGVyRW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNGaWx0ZXJFbmFibGVkID0gaXNGaWx0ZXJFbmFibGVkO1xuICAgIHRoaXMuc2V0RmlsdGVyVmFsdWUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uTmFtZXMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5sYWJlbCk7XG4gICAgdGhpcy5pc1Jvd0NsaWNrYWJsZSA9IHRoaXMucm93QWN0aW9ucy5sZW5ndGggPiAwO1xuICAgIGlmICh0aGlzLmlzUm93Q2xpY2thYmxlKSB7XG4gICAgICB0aGlzLmNvbHVtbk5hbWVzLnVuc2hpZnQodGhpcy5BQ1RJT05fQ09MVU1OX05BTUUpO1xuICAgICAgdGhpcy5kZWZhdWx0QWN0aW9uID0gdGhpcy5yb3dBY3Rpb25zWzBdO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgLy8gc2V0IGN1c3RvbSBmaWx0ZXIgcHJlZGljYXRlIHRvIGVuYWJsZSBzZWFyY2ggZm9yIG11bHRpcGxlIHNlYXJjaCBzdHJpbmdzOlxuICAgIC8vIGUuZy4gXCJvbmUgdHdvIHRocmVlXCJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGE6IGFueSwgZmlsdGVyOiBzdHJpbmcpOiBhbnkgPT5cbiAgICAgICFmaWx0ZXIgfHwgZmlsdGVyLnNwbGl0KC9cXHMrLykuZXZlcnkoKHRlcm0pID0+ICEhT2JqZWN0LmtleXMoZGF0YSkuZmluZCgoa2V5KSA9PiBkYXRhW2tleV0uaW5jbHVkZXModGVybSkpKTtcbiAgfVxuXG4gIG9uRmlsdGVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNldEZpbHRlclZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIG9uUm93RXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvdzogYW55LCBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoISFhY3Rpb24gJiYgIXRoaXMuaXNDbGlja09uUm93TWVudUljb24oZXZlbnQpKSB7XG4gICAgICB0aGlzLnJvd0FjdGlvbi5lbWl0KHsgLi4uYWN0aW9uLCBvdXRwdXRSb3c6IHJvdyB9KTtcbiAgICB9XG4gIH1cblxuICBvblNvcnRpbmdFdmVudChzb3J0aW5nUGFyYW1zOiBTb3J0KTogdm9pZCB7XG4gICAgdGhpcy5zb3J0RXZlbnQuZW1pdChzb3J0aW5nUGFyYW1zKTtcbiAgfVxuXG4gIG9uVGFibGVBY3Rpb24odGFibGVBY3Rpb246IFRhYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCEhdGFibGVBY3Rpb24pIHtcbiAgICAgIHRoaXMudGFibGVBY3Rpb24uZW1pdCh0YWJsZUFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWx0ZXJWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9IHZhbHVlPy50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbGlja09uUm93TWVudUljb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGV2ZW50Py50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5jbGFzc0xpc3QuY29udGFpbnMoJ21hdC1pY29uJyk7XG4gIH1cbn1cbiIsIjwhLS0gVGFibGUgYWN0aW9ucyAtLT5cbjxkaXYgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/Lmxlbmd0aFwiPlxuICA8bWFkLXByaW1hcnktYnV0dG9uIGNsYXNzPVwidGFibGUtYWN0aW9uXCIgKm5nRm9yPVwibGV0IHRhYmxlQWN0aW9uIG9mIHRhYmxlQWN0aW9uc1wiIChjbGljayk9XCJvblRhYmxlQWN0aW9uKHRhYmxlQWN0aW9uKVwiPlxuICAgIHt7IHRhYmxlQWN0aW9uLmxhYmVsIH19XG4gIDwvbWFkLXByaW1hcnktYnV0dG9uPlxuPC9kaXY+XG5cbjwhLS0gUm93IGFjdGlvbiBidXR0b25zIC0tPlxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCI+XG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgcm93QWN0aW9uIG9mIHJvd0FjdGlvbnNcIiBtYXQtbWVudS1pdGVtIGNsYXNzPVwicm93LWFjdGlvblwiIChjbGljayk9XCJvblJvd0V2ZW50KCRldmVudCwgZWxlbWVudCwgcm93QWN0aW9uKVwiPlxuICAgICAge3sgcm93QWN0aW9uLmxhYmVsIH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuXG48IS0tIFRhYmxlIGZpbHRlciAtLT5cbjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImlzRmlsdGVyRW5hYmxlZFwiPlxuICA8bWF0LWxhYmVsPnt7IGZpbHRlckxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwib25GaWx0ZXIoJGV2ZW50Py50YXJnZXQ/LnZhbHVlKVwiIHBsYWNlaG9sZGVyPVwie3sgZmlsdGVyUGxhY2Vob2xkZXIgfX1cIiAvPlxuPC9tYXQtZm9ybS1maWVsZD5cblxuPCEtLSBUYWJsZSAtLT5cbjxkaXYgKm5nSWY9XCJkYXRhU291cmNlPy5kYXRhPy5sZW5ndGggPiAwOyBlbHNlIG5vRGF0YVwiIGNsYXNzPVwibWFkLXRhYmxlXCI+XG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQgKG1hdFNvcnRDaGFuZ2UpPVwib25Tb3J0aW5nRXZlbnQoJGV2ZW50KVwiPlxuICAgIDwhLS0gUm93IGFjdGlvbnMgY29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJBQ1RJT05fQ09MVU1OX05BTUVcIiAqbmdJZj1cInJvd0FjdGlvbnM/Lmxlbmd0aFwiIHN0aWNreT5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJyb3ctYWN0aW9uLWJ1dHRvblwiPjwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIGNsYXNzPVwicm93LWFjdGlvbi1idXR0b25cIj5cbiAgICAgICAgPG1hZC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJEYXRhXT1cInsgZWxlbWVudDogZWxlbWVudCB9XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYWQtaWNvbi1idXR0b24+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gQ29sdW1ucyB3aXRoIGRhdGEgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5sYWJlbFwiIFtzdGlja3ldPVwiY29sdW1uLmlzU3RpY2t5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmlzU29ydGFibGU7IGVsc2Ugbm9Tb3J0XCI+XG4gICAgICAgIDx0aFxuICAgICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgbWF0LXNvcnQtaGVhZGVyPVwie3sgY29sdW1uLmxhYmVsIH19XCJcbiAgICAgICAgICBbYXJyb3dQb3NpdGlvbl09XCJjb2x1bW4uaXNSaWdodEFsaWduZWQgPyAnYmVmb3JlJyA6ICdhZnRlcidcIlxuICAgICAgICAgIFtjbGFzcy50ZXh0LXJpZ2h0XT1cImNvbHVtbi5pc1JpZ2h0QWxpZ25lZFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgPC90aD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub1NvcnQ+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgW2NsYXNzLnRleHQtcmlnaHRdPVwiY29sdW1uLmlzUmlnaHRBbGlnbmVkXCI+XG4gICAgICAgICAge3sgY29sdW1uLmxhYmVsIH19XG4gICAgICAgIDwvdGg+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIiBbY2xhc3MudGV4dC1yaWdodF09XCJjb2x1bW4uaXNSaWdodEFsaWduZWRcIj5cbiAgICAgICAge3sgZWxlbWVudFtjb2x1bW4uZGF0YVByb3BlcnR5TmFtZV0gfX1cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5OYW1lc1wiPjwvdHI+XG4gICAgPHRyXG4gICAgICBtYXQtcm93XG4gICAgICBbY2xhc3MuY2xpY2thYmxlLXRhYmxlLXJvd109XCJpc1Jvd0NsaWNrYWJsZVwiXG4gICAgICAoY2xpY2spPVwib25Sb3dFdmVudCgkZXZlbnQsIHJvdylcIlxuICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbk5hbWVzXCJcbiAgICA+PC90cj5cbiAgPC90YWJsZT5cbjwvZGl2PlxuPCEtLSBQYWdpbmF0aW9uIC0tPlxuPG1hdC1wYWdpbmF0b3JcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNQYWdpbmF0aW9uRW5hYmxlZCA/ICdibG9jaycgOiAnbm9uZSdcIlxuICBbcGFnZVNpemVdPVwiZGVmYXVsdFBhZ2VTaXplXCJcbiAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICBzaG93Rmlyc3RMYXN0QnV0dG9uc1xuPlxuPC9tYXQtcGFnaW5hdG9yPlxuXG48IS0tIE5vIGRhdGEgYWxlcnQgLS0+XG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgPGRpdiBjbGFzcz1cIm5vRGF0YVRleHRcIj5cbiAgICB7eyBub0RhdGFUZXh0IH19XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -12,8 +12,8 @@ import { TableComponent } from './table.component';
12
12
  import { ButtonModule } from '../button/button.module';
13
13
  import * as i0 from "@angular/core";
14
14
  export class TableModule {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: TableModule, imports: [CommonModule,
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: TableModule, imports: [CommonModule,
17
17
  MatButtonModule,
18
18
  MatIconModule,
19
19
  MatFormFieldModule,
@@ -24,7 +24,7 @@ export class TableModule {
24
24
  MatTableModule,
25
25
  ButtonModule,
26
26
  TableComponent], exports: [TableComponent] }); }
27
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableModule, imports: [CommonModule,
27
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TableModule, imports: [CommonModule,
28
28
  MatButtonModule,
29
29
  MatIconModule,
30
30
  MatFormFieldModule,
@@ -36,7 +36,7 @@ export class TableModule {
36
36
  ButtonModule,
37
37
  TableComponent] }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableModule, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TableModule, decorators: [{
40
40
  type: NgModule,
41
41
  args: [{
42
42
  imports: [